shell脚本中常用命令

一.diff命令

1.diff命令是用来比较两个文件或目录的不同
2.diff在比较文件过程中结果读取方式:

     [num1,nm2][a|c|d][num3,num4], 
      nmu1,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 jay jay1                    比较两个文件的不同
diff -u jay jay1 > jay.path      把第一文件与第二个文件的不同导入jay.path
yum install patch                安装打补丁软件
patch jay jay.psth               打补丁,使jay与jay1相同

这里写图片描述

这里写图片描述

二.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.110 &> /dev/null && echo 172.25.254.110 is up 
                                                 ||echo 172.25.254.110 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     每行显示一次并统计重复次数

五.test

test命令和[]等同
test “ A "==" B” 等同 [ “ A "==" 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" -ge "$B" ]
 (6)A>B 
     [ "$A" -gt "$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/file" -ef "/mnt/file1" ]&&echo yes ||echo no

这里写图片描述

(12)判断file1比file2时间迟
      [ "file1" -ot "file2" ]       
      [ "/mnt/file" -ot "/mnt/file1" ]&& echo yes || echo no
  (13)判断file1比file2时间早
      [ "file1" -nt "file2" ]   
      [ "/mnt/file" -nt "/mnt/file1" ]&& 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" ]

六.tr

tr是用来转换大小写的命令

 tr  'A-Z' 'a-z' < filefile中的字符全都转换成小写并输出
 tr  'a-z' 'A-Z' < filefile中的字符全都转换成大写并输出
 tr  'A-Z' 'a-z' < filefile中的字符全都转换成小写并输出

这里写图片描述
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/jay_youth/article/details/80686449