一.diff命令
1.diff命令是用来比较两个文件或目录的不同
2.diff在比较文件过程中结果读取方式:
[num1,num2] [a|c|d][num3,num4] num1,num2表示第一个文件中的行数,num3,num4表示第二个文件的行数
a表示添加---add c表示更改----change d表示删除---delete <表示第一个文件中的内容,>表示第二个文件中的内容
例:2,4c2,4表示改变第一个文件的第二行和第四行才能和第二个文件相同
3.diff中常用的参数
-b或--ignore-space-change ##不检查空格字
-B或--ignore-blank-lines ##不检测空白行
-c #显示全部内容,并表示不同指出
-i或--ignore-case ###不检查大小写的不同
-p ###若比较的文件为C语言的程序码文件时,显示差异所在的函数名称
-q或--brief ###仅显示有无差异不显示详细信息
-r或--recursive ##比较子目录中的文件
-u ##以合并的方式来显示文件内容的不同
4.打补丁
diff file file1 ###比较两文件的不同
diff -u file file1 >file.path ##把第一个文件与第二个文件的不同导入file.path中
yum install patch 安装打布丁软件
patch file file.path 打布丁,使file于file1相同
二.Cut 命令
1.cut命令多用于字符截取
2.cut -d 指定分隔符 cut -f 1,7|1-7 指定截取的列 cut -c 1,4|1-4 指定截取的字符位置
3.cut 命令 cut -d : -f 1 passwd ##截取passwd的第一列 分隔符时:
cut -d : -f 1,7 passwd ###截取passwd的第一列和第七列 分隔符为:
cut -d : -f 1-3 passwd ##截取passwd的第一列到第三列
cut -c 1-3 passwd ##截取passwd的第一个字符到第三个字符
cut -c 1,3 passwd ##截取passwd的第一个字符和第三个字符
三. &&和||
&&用来执行条件成立后执行的命令 ||用来执行条件不成立后执行的命令
例: ping -c1 -w1 172.25.254.49 &> /dev/null &&echo 172.25.254.49 is up || echo 172.25.254.49 is down
四.sort 和uniq
1.sort多用于字符排序
sort -n ##纯数字排序
sort -r 倒叙
sort -u 去掉重复数字
sort -o 输出到指定文件中
sort -t 指定分隔符
sort -k 指定要排序的列
2.uniq 对重复的字符做相应的处理
uniq -u 显示唯一的行
uniq -d 显示重复的行
uniq -c 每行显示一次并统计重复次数
五.tr是用来转换大小写的命令
tr ‘A-Z‘ 'a-z' <file ##把file中的字符全部都转换成小写并输出
tr ‘a-z’ ‘A-Z‘ <file ##把file中的字符全部都转换成大写并输出
六. test
test命令和[ ]等同
test “ B“ 等同[ " B“]
(1) A=B ["$A"="$B"] ["$A"eq"$B"] ["$a"="$b"]&&echo yes || echo no test "$a" = "$b" && echo yes || echo no
(2)A!=B
["$A"!="$B"] ["$A" -ne "$B"]
(3)A<=B
["$A"-le"$B"]
(4)a<b
["$a"-lt"$b"]
(5)a>b
["$a"-gt"$b"]
(6)a>=b
["$a"-ge"$b"]
(7)a!=b且a>b
["$a" -ne"$b" -a "$a"-gt "$b"]
(8)a!=b或a>b
["$a" -ne"$b" -o"$a"-gt "$b"]
(9)判断a是空
[-z "$A"]
(10)判断a不为空
[-n "$a"]
(11)判断两个文件为硬链接
["file1" -ef "file2"]
[ "/mnt/file1" -ef "/mnt/file2" ] && echo yes || echo no
(12)判断file1比file2时间早
["file1" -nt "file2"]
["/mnt/file1" -nt "/mnt/file2"] && echo yes || echo no
(13)判断file1比file2时间迟
"file1" -ot"file2"]
["/mnt/file1" --ot "/mnt/file2"] && echo yes || echo no
(14)判断文件是否存在
[-e "file"] [-e "file"]&&echo yes || echo no
(15)判断文件是否为普通文件
[-f "file"]
(16)判断改文件是否为套接字
[-S "file"]
(17)判断改文件是否为块设备
[-b "file"]
(18)判断该文件是否为目录
[-d "file"]
(19)判断该文件是否为字符设备
[-c "file"]