前一阵子系统学习了下《linux shell脚本攻略》这本书。在此记录下自己的学习笔记

1. 输出颜色字符 
echo -e "\e[1:41m" 1表示背景色
 
2.  echo 打印!需要注意 
echo "hello, bash!"  会出错 
需要改成 echo 'hello, bash!'
 
3. printf可用于格式化输出 
printf "format"  var1 var2 ...
 
4.  echo 
echo -n  # 不添加换行符
echo -e  # 使用转义序列  相当于 echo "XXXX"
echo -e "\e[id1 XXXXXX"                 # 
 
echo 显示颜色   
其中id用于设置字背景颜色
 
5.  pgrep  
pgrep 进程名  # 相当于ps -ef  
cat /proc/$PID/environ # 查看进程运行过程中的环境变量
 
6. (())
c=$((a+b))  # 赋值方式1
((c = a+b))  # 赋值方式2
 
7. 重定向
# 将标准输出定向到stdout.txt 将标准错误输出定向到stdout.txt 
sh mybash.sh 1>stdout.txt 2 > stdout.txt
 
# 更简单的方案 注意&和>之间不能有空格 
sh mybash.sh &> stdout.txt
 
8. exec 
# 创建文件描述符
exec 4 < log.txt
exec 5 > log.txt
exec 6 >> log.txt
 
9. 哈希数组 
# 声明
declare -a map
 
# 定义
${map[key]}=value
 
# 获取所有key
${!map[@]}
 
 
10. date 
# 显示秒数
date +%s 
 
# 将秒数转成字符串
date  -d @秒数 
 
11 tput 
# 设置光标位置
tput cup 行号  列号
 
# 保存光标位置
tput sc 
 
# 回到保存的光标位置
tput rc
 
# 清除当前光标到行尾
tput ed
 
12. read 
# 设置不回显
read -s
# 设置超时时间 
read -t 
# 设置读入字节数
read -n 字节数
# 设置提示
read -p "please input passwd"
 
13. cat 
# 删除多余的空行 
cat -s file
 
# 打印行号
cat -n file 
 
# 打印出制表符
cat -T file 
 
14. find 
# 打印
find <path> -name XXX  -print 
 
# 执行命令 
find  <path> -name XXX -exec rm -rf {} \;
 
15. xargs 
# 常用用法
cat file | xargs
 
# 设定每行的字段数
cat file | xargs -n 3 
 
# 以null为换行符
cat file | xargs -0
 
# 代替命令中位置
cat file | xargs -l {} rm -rf {}
 
16. tr 
# 替换 
tr  字符集1 字符集2 
 
# 删除
tr -d 字符集
 
# 补集
tr -d -c 要留下的字符集
 
# 去除重复空格
tr -s " "
 
17. md5sum 
# 生成md5值
md5sum file  > file.md5
 
# 校验 
md5sum -c file.md5
 
18. sort 
# 按照字符串排序 
cat file | sort 
 
#按照数字排序
cat file | sort -n 
 
# 逆序排序
cat file | sort -r
 
# 按照某列排序 
cat file | sort -k 列数 
 
19. dd    生成文件  
# 从/dev/zero生成文件 
dd if=/dev/zero of=data.file bs=100k count=1 
 
20. split  分割文件 
split data.file -b 10k -a 3
 
21. 字符串分割 
# 获取文件后缀
echo ${filename##*.}
 
# 获取文件名
echo ${filename%.*}
 
22. 单词表
cat /usr/share/dict/words
 
23. 自动化交互式输入
# 标准输入
echo "XXX"  | sh interactive.sh
 
# 文件输入
sh interactive.sh < input.data
 
# expect 
spawn  ./interactive.sh 
expect "XXXX"
send "YYY\n"
 
24. comm
# 求差集a-b
comm a.txt b.txt -1
 
# 求a+b并集
comm a.txt b.txt 
 
# 求ab交集
comm a.txt b.txt -1 -2 
 
25. 将文件设置为不可修改
chattr +i file
去除不可修改属性
chattr -i file 
 
26. 寻找软连接
ll -rt | grep -P "^l" | awk '{print $8}'
find . -type l
 
27. diff
diff -u 1.txt 2.txt 
diff -u 1.txt 2.txt > 12.patch 
 
28. patch
patch -p1 1.txt < 12.patch
 
29. pushd、popd、dirs
# 常规用法
pushd  directory
popd 
 
# 指定目录
dirs
pushd +N
popd +N
 
30. grep 
# 显示颜色
grep --color=auto 
 
# 统计匹配行数
grep -c 
 
# 显示匹配行号
grep -n 
 
# 显示匹配字符偏移量
grep -o -b
 
# 显示匹配文件列表
grep -l  1.txt 2.txt
 
# 使用文件匹配
grep -f pattern.txt  file.txt
 
# 静默模式
grep -q 
 
# 定位代码
grep -R -n 
 
# 忽略大小写
grep -i 
 
# 匹配多个样式
grep -e pattern1 -e pattern2
 
# 显示匹配行之前N行
grep -A 
 
# 显示匹配行之后N行
grep -B 
 
# 显示匹配行之前之后N行
grep -C 
 
30. sed 
# sed "s///" 替换
echo  "hello wolrd" | sed "s/hello/goodbye/"
 
# sed -i 替换文件内容
sed -i 's/hello/goodbye/' 1.txt
 
# sed 's///g' 替换所有匹配内容
echo "thisthisthisthis" | sed 's/this/THIS/g'
 
# sed 's///ng' 从第n处匹配开始替换
echo "thisthisthisthis" | sed 's/this/THIS/2g'
 
# sed '//d' 删除匹配行
cat diff.sh | sed '/^$/d' 
 
# 匹配字符串标记
echo this is an example | sed 's/\w\+/[&]/g'
 
# 捕捉字符串
echo "this is a digit 7 in a numbger" | sed 's/digit \([0-9]\)/\1/'
 
31. paste
# 按列合并文件
paste file1 file2
paste file1 file2 -d  ","
 
32. rev
# 字符串逆序
echo "1234" | rev
 
33. tac
# 行逆序
seq 1 10 | tac

linux shell脚本攻略笔记的更多相关文章

  1. 【链接】LINUX SHELL脚本攻略笔记[速查]

    LINUX SHELL脚本攻略笔记[速查]

  2. LINUX SHELL脚本攻略笔记[速查]

    Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述 ...

  3. Linux Shell脚本攻略 读书笔记

    Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...

  4. 读书笔记--Linux Shell脚本攻略

    总结的来说,这本书很实践性和实用性强,都是给的具体的例子,直接可以在终端操作实践,比单纯只看不动手务实多了,另外就是,这本书涵盖的内容也比较广,从文本操作到服务器管理到远程ssh等等,都给出来作者挑选 ...

  5. Linux Shell脚本攻略

    -Linux Shell脚本攻略 总结的来说,这本书很实践性和实用性强,都是给的具体的例子,直接可以在终端操作实践,比单纯只看不动手务实多了,另外就是,这本书涵盖的内容也比较广,从文本操作到服务器管理 ...

  6. linux shell 脚本攻略学习20--awk命令入门详解

    awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...

  7. Linux shell 脚本攻略之统计文件的行数、单词数和字符数

    摘自:<Linux shell 脚本攻略>

  8. Linux shell 脚本攻略之创建不可修改文件

    摘自:<Linux shell 脚本攻略>

  9. Linux shell 脚本攻略之生成任意大小的文件

    摘自:<Linux shell 脚本攻略>

随机推荐

  1. leetcode-三数之和(java)

     三数之和     给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可 ...

  2. 地牢逃脱(BFS(广度优先搜索))

    题目描述 给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一 ...

  3. github 使用“git commit -m"命令时候出现的一个小问题

    git commit -m 使用问题 今天提交文件到github,步骤是: git add abc.py (abc.py是我当前随意写的一个文件名) git commit -m 'add codes ...

  4. Merkle Patricia Tree (MPT) 以太坊中的默克尔树

    本篇博文是自己学习mpt的过程,边学边记录,很多原理性内容非自己原创,好的博文将会以链接形式进行共享. 一.什么是mpt MPT是以太坊中的merkle改进树,基于基数树,即前缀树改进而来,大大提高了 ...

  5. HDU 2489 Minimal Ratio Tree(暴力+最小生成树)(2008 Asia Regional Beijing)

    Description For a tree, which nodes and edges are all weighted, the ratio of it is calculated accord ...

  6. Python中的list

    list的创建 1 字面量 >>>L = [1, 2, 3] [1, 2, 3] 2 通过iterable可迭代对象,比如str对象,range对象,map对象 >>&g ...

  7. Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题

    . 参考界面 : 携程app首页的广告栏, 使用ViewPager实现        自制页面效果图 : 源码下载地址: http://download.csdn.net/detail/han1202 ...

  8. CSS基础小记

    2017/10/29 CSS 认识CSS样式 CSS全称为"层叠样式表 (Cascading Style Sheets)",它主要是用于定义HTML内容在浏览器内的显示样式,如文字 ...

  9. C# 如何在winform中嵌入Excel,内嵌Excel,word

    近使用.net做一个小软件遇到一个问题,就是想实现把excel表格在winform中打开,同时可以操作,不单单是打开.或者就提取数据.在网上找了好多资料,发现这方面的资料比较少,即使有,都是旧版本的使 ...

  10. Thinkphp5使用validate实现验证功能

    作为前端er,对于验证这块有着切身的体会,虽然逐渐得心应手,但始终没有一个内置的功能拿来就能用.tp5恰好提供一个.本文简单介绍并实现以下.主要是实现一下. 验证的实现基于tp5内置的对象valida ...