Linux下的shell脚本常用命令

diff

diff命令是用来比较两个文件或目录的不同

diff  [options] file1 file2   
diff directory1 directory2

(1)

diff westos1 westos2    ##比较westos1 和 westos2文件的不同

测试

##vim westos1
hello westos 
##vim westos2
hello westos
123

在这里插入图片描述
(2) -b 不检查空格字符

diff -b westos1 westos2

测试

将westos2内容修改为
hello westos (加空格)
diff westos1 westos2   识别出不同

在这里插入图片描述

diff -b westos1 westos2   ##没有识别出不同

在这里插入图片描述
(3)-B 不检查空白行

##将westos2的内容修改为
hello westos (加空行)
##diff westos1 westos2
识别出不同
##diff -B westos1 westos2
没有识别出不同

在这里插入图片描述
(4)-c 显示全部内文,并标出不同之处

#将westos2的内容修改为
hello westos 123
##diff -c westos1 westos2
会在不同的行前以感叹号标注

在这里插入图片描述
(5)-r 比较子目录中的文件

##mkdir /mnt/westos /mnt/lee
cd /mnt/westos  touch hello
diff -r /mnt/westos /mnt/lee
会显示只有westos下有

在这里插入图片描述
(6) -u 以合并的方式来显示文件内容的不同

##将westos2中的内容修改为
hello westos
lee
test 123
##将westos1中的内容
hello westos
lee 
test
diff -u westos1 westos2

在这里插入图片描述

patch 用于文件打补丁

diff -u westos1 westos2 > westos.path  ##将合并的文件内容导入到补丁包中
cat westos.path ##补丁包

在这里插入图片描述

yum install patch
patch -b westos.path westos1  ##给westos1打补丁 
cat westos1  westos2  ##两个文件内容相同

在这里插入图片描述
在这里插入图片描述
-b:保存 加上-b参数
在这里插入图片描述

cut多用于字符截取

cut -d     指定分隔符 空格的分割符表示" "(或者应该可以使用转义字符表示空格)
cut -f 1,7|1-7 指定截取的列(第1和第7列/第1至7列)
cut -c 1,4|1-4  指定截取的字符位置为(第1和第4个字符/第1至4个字符)

常用方式:

cut -d : -f 1 passwd
截取操作文件passwd,以:作为分隔符,取出第一列

在这里插入图片描述

cut -c 1-4 passwd
截取操作文件passwd,取出第1-4列字符(这个命令没有分隔符,应该也会取出空格,空行等作为字符)

在这里插入图片描述

ifconfig eth0 | grep 'inet '|cut -d " " -f 10 ##ifconfig eth0 把IP截取出来

在这里插入图片描述

sort 对文本排序

参数解释
-n纯数字排序
-r倒序/逆序
-u去掉重复数字
-o输出到指定文件
-t指定分隔符
-k指定要排序的列

在这里插入图片描述

sort westos

在这里插入图片描述

sort -n westos

在这里插入图片描述

sort -nr westos

在这里插入图片描述

sort -nru westos

在这里插入图片描述

sort -nr westos | uqid -c | sort -t “ “ -k 2    ##统计重复的次数,并把重复次数的多少由少到多进行排列

在这里插入图片描述

uniq 对重复字符做相应的处理

参数解释说明
uniq -u显示唯一的行
uniq -d显示重复的行
uniq -c每行显示一次并统计重复次数
sort -n westos | uqid -u

在这里插入图片描述

sort -n westos | uniq -d

在这里插入图片描述

sort -n westos | uniq -c

在这里插入图片描述

&&和||

&&用来执行条件成立后执行的命令,|| 用来执行条件不成立后执行的命令
&& 前面的语句正确(符合条件),执行该命令 || 前面的语句错误,执行该命令
只能检测单条语句逻辑,判断执行

##检测能否ping通目标主机

vim ping.sh

ping -c1 -w1 172.25.254.111 &> /dev/null \
&& echo '172.25.254.111 is up' \
|| echo '172.25.254.111 is down' 

在这里插入图片描述

chmod +x ping.sh
sh ping.sh   ##即可执行该脚本

在这里插入图片描述

test

test命令和[]等同

参数解释说明
-lt小于
-le小于等于
-gt大于
-ge大于等于
-ne不等于
-a(and)
-o(or)
-z是否数字为0,或字符为空
-n是否为非空(与-z相反)
-ef是否使用的是同一个节点区域(互为硬链接)
-nt(now than)前一个文件建立的是否比后一个文件晚
-ot(old than)前一个文件建立的是否比后一个文件早
参数解释说明
-e是否存在该文件
-f是否为普通文件
-L是否为软链接(快捷方式)
-S是否为套接字
-b是否为块设备(如,u盘插入后,sdb)
-d是否为目录文件
-c是否为字符设备(/dev/pts/1)

``反向单引号,其内的命令先执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对挂载点/下内存满30时进行报警,报警显示在日志中,并且每分钟执行一次

在这里插入图片描述
在这里插入图片描述
执行成功
在这里插入图片描述

tr 转换大小写字符

echo hello HELLO | tr 'a-z' 'A-Z' 
将小写字母转换为大写字母

在这里插入图片描述

echo hello HELLO | tr 'A-Z' 'a-z'
将大写字母转换为小写字母

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值