cat:
-A
-n
-s,压缩空白行
more
less -M
head
tail
grep,全面搜索正则表达式,并打印之
egrep -> grep -E 扩展grep
* 0<=次
? 出现0或1次 a?root broot
+ 1<=次 a+root
() .*(abc)*.* wabcv,qwabcqwe
| 或者 like your liker, love your lover l(ik)|(ov)e your lover
fgrep -> grep -F 快速grep
-v:反向显示
-i:忽略大小写
-n:在匹配的结果只挑取有限范围行
-An:在匹配的结果显示匹配范围外的n行
patter,模式,从文件中匹配整个模式,然后显示包含了匹配到得内容的行
元字符
. grep 'r..r' /etc/passwd
* 次数匹配 a*root,abroot,aaroot,aroot,root
.* 匹配任意字符两次
/{n/} a/{2/}root -> aaroot
/{m,n/} 至少m次至多n次 a/{0,2/}root root,aaroot,aroot
/{n,/} 至少n次,多则不限
/(.../) love your lover love.*lover /(love/).*/1r
like your liker, love your lover /(l/).*/1over
^$ 空白行
grep --color=auto 'root' /etc/passwd
* r*t,rt,rrt,rrrt,t 匹配前面字符0次或任意次
r/{2/}*t 中间字符出现两次
r/{2,/}*t 中间字符至少出现两次
锚定符:
^root 以root开头
root$ 以root结尾
[] 匹配括号中的字符范围的单个字符,出现一次
[^] 除了范围之内的范围的单个字符
/< /<root root出现在词首 roota,root
/> root/> root出现在词尾 aroot,root
/< /> /<root/> 确定一个词 root
如何表示以零个或多个大/小写字母开头,后跟一个非句点的字符,再跟零个或多个数字和一个换行符的行
[[:alpha:]]*[^.][0-9]*
如何,精度为2的小数
/<[0-9]/{1,/},[0-9]/{2/}/>
搜索正确的IP地址
/(1[0-9]/{2/}|25[0-4]|[1-9][0-9]|[1-9]|2[0-4][0-9]/)/./(1[0-9]/{2/}|25[0-4]|[1-9][0-9]|[0-9]|2[0-4][0-9]]/)/./(1[0-9]/{2/}|25[0-4]|[1-9][0-9]|[0-9]|2[0-4][0-9]/)/./(1[0-9]/{2/}|25[0-4]|[1-9][0-9]|[1-9]|2[0-4][0-9]/)
cut 用于切割文件内容
cut
-d
-f 选取的段
cut -d: -f1 /etc/passwd | grep "/<root/>"
条件测试:
test express
test 1 > 2 结果0(假)或非0(真)
echo $? 获取最后一个命令的返回值
/dev/null “黑洞” 没用的东西都可以放入其中
wc 统计
-l 统计行数
sort 排序
-o 输出
-r 逆序
-n 以数值来排序
-f 忽略大小写
-u 除去重复行
-t 指定分段 -t:
-k 指定段
uniq 去除重复的行
-c 显示重复个数
-u 显示不重复的行
-d 显示重复的行
test expression test 1 -gt 2
[expression] [1 -gt 2]
[[expression]] [[1 -gt 2]]
-a 与 -o 或 !非
短路操作符
&&
[ $B -gt $A -a $B -gt $C ] -> [ $B -gt $A ] && [ $B -gt $C ]
||
test:
整数测试:
-gt
-lt
-ge
-le
-eq
-ne
(($A > $B))
> >=
字符串测试:
=
!=
>
<
-z
-n
文件测试:
-e FILE
-f
-d
-r
-w
-x
-L/-h 测试一个文件是否为富含连接文件
-o 测试此文件属主是否为发起命令的人
-G 测试此文件属组是否为发起命令的人的组
diff/patch
diff 111 222 用222来补111
diff 111 222 > 333.patch 333.patch为补丁
patch 111 < 333.pach 打补丁
patch -R 111 < 333.pach 补丁降级
diff:
-u 输出格式不同
sed 流编辑器
sed [oprtions] 'parrern/operation' FILE
-i: 修改源文件
-e: 多操作
-f: 引用文件修改
addr1,addr2
1,$
p 后缀,打印
d
s/pattern/substitude/ g 匹配每个字符 i忽略大小写