Linux--Shell脚本常用命令

diff

比较两个文件或目录的不同

diff test1 test2

在这里插入图片描述

diff test1 test2

test2 文件 test 后面有一个空格

在这里插入图片描述

-b
不检查空格字符不同

diff -b test1 test2

在这里插入图片描述

-B
不检查空白行

diff test1 test2

diff -B test1 test2

test2 文件必比 test1 文件多了一行空行

在这里插入图片描述

-c
显示全部内容,并标出不同之处

diff -c test1 test2

test1 与 test2 时间戳不同

test2 多了 一行内容:123

在这里插入图片描述

-i
不检查大小写的不同

diff test1 test2

test1 内容 test

test2 内容第一行:tEst

第二行:123

diff -i test1 test2

只显示 test2 不同,多了一行 123

忽略掉检查大小写

在这里插入图片描述

-q
仅显示有无差异,不显示详细的信息

diff test1 test2

diff -q test1 test2

提示文件 test1 与 test2 有不同之处,不显示不同之处

在这里插入图片描述

-r
比较子目录中的文件

ls /d1 /d2

/d1/test1

/d2/test1

diff -r /d1/test1 /d2/test1

/d2/test1 比 /d1/test1 多了一行内容:123

/d2/test1 是大写 S

/d1/test1 是小写 s

在这里插入图片描述

-u
以合并的方式来显示文件内容的不同

diff -u test1 test2

在这里插入图片描述

diff -u test1 test2 > test.path

test1 与 test2 不同之处,导入到 test.path (补丁)文件中

在这里插入图片描述

patch

用于不同文件之间打补丁

patch -b

yum install patch -y

在这里插入图片描述

patch -b test1 test.path

给 test1 文件打 test.path 补丁 使 test1 文件与 test2 文件相同

cat test1 test2

在这里插入图片描述

cut

多用于字符的截取

cut -d

指定分隔符

cut -f

指定截取的列

cut -c

指定截取的字符位置

实验

截取 ifconfig eth0 命令显示中的 ip :“172.25.254.330”

ifconfig eth0

在这里插入图片描述

ifconfig eth0 | head -n 2 | tail -n 1 | cut -c 14-28

头部2行 | 尾部一行 | 截取第 14 至 28 字符

172.25.254.230

在这里插入图片描述

截取 /etc/passwd 文件中第二行的 “nologin”

在这里插入图片描述

cat passwd | head -n 2 | tail -n 1 | cut -d : -f 7 | cut -d / -f 3

头部 2 行 | 尾部 1 行 | 截取以:分隔的第七列中的以 / 分隔的第三列

在这里插入图片描述

head -n 2 | tail -n 1 | cut -d : -f 1,3,5

头部 2 行 | 尾部 1行 | 分别截取以 : 分隔的第一、三、五列

在这里插入图片描述

sort

用于字符排序

在这里插入图片描述

-n
纯数字排序
sort -n test
在这里插入图片描述

-r
倒序
sort -r test
在这里插入图片描述

sort -rn test
在这里插入图片描述

-u
去掉重复数字
sort -u test
在这里插入图片描述

sort -nru test
在这里插入图片描述

-o
输出到指定文件中

-t
指定分隔符

-k
指定要排序的列

sort -nr test | uniq -c | sort -t " " -k 2

指定每行显示一次并且按照分隔符空格排序两列

在这里插入图片描述

sort -nr test | uniq -c | sort -t " " -k 2 -r

指定每行显示一次并且按照分隔符空格排序两列并且倒序排列

在这里插入图片描述

sort -nr test | uniq -c | sort -t " " -k 2 -r | head -1

指定每行显示一次并且按照分隔符空格排序两列并且倒序排列抓取第一行

在这里插入图片描述

sort -nr test | uniq -c | sort -t " " -k 2 -r -o test1

指定每行显示一次并且按照分隔符空格排序两列并且倒序排列输出到 test1 文件内

cat test1

在这里插入图片描述

uniq

对重复字符做相应处理

在这里插入图片描述

-u
显示唯一的行
uniq -u test
在这里插入图片描述

-d
显示重复的行
uniq -d test

在这里插入图片描述

-c
每行显示一次并统计重复次数
uniq -c test
在这里插入图片描述

&& 和 ||

&&用来执行条件成立后执行的命令

||用来执行条件不成立后执行的命令

实验

vim /ping.sh

ping -w1 -c1 $1 > /dev/null && echo "$1 is up" || echo "$1 is down"

在这里插入图片描述

在这里插入图片描述

sh /ping.sh 172.25.254.30

网络可达:172.25.254.30 is up

sh /ping.sh 192.168.0.30

网络不可达:192.168.0.30 is down

在这里插入图片描述

test

test[] 等同

test "$A" == "$B" 等同于 [ "$A" == "$B" ]

[ "$A" = "$B" ]

A等于B

在这里插入图片描述

[ "$A" -eq "$B" ]

A等于B

在这里插入图片描述

[ "$A" != "$B" ]

A不等于B

在这里插入图片描述

[ "$A" -ne "$B" ]

A不等于B

在这里插入图片描述

[ "$A" -ge "$B" ]

A大于等于B

在这里插入图片描述

[ "$A" -gt "$B" ]

A大于B

在这里插入图片描述

[ "$A" -le "$B" ]

A小于等于B

在这里插入图片描述

[ "$A" -lt "$B" ]

A小于B

在这里插入图片描述

[ -z "$A" ]

字符串的长度为空

在这里插入图片描述

[ -n "$A" ]

字符串的长度非空

在这里插入图片描述

test File1 –ef File2

两个文件是否为同一个文件,可用于硬连接,主要判断两个文件是否指向同一个inod

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

test File1 –nt File2

判断文件1是否比文件2新

test File1 –ot File2

判断文件1比是否文件2旧

在这里插入图片描述

Tr

转换大小写

在这里插入图片描述

实验

查看 / cpu% 使用率

超过 30% 报警

报警信息导入到日志

df | head -n 2 | tsil -n 1

在这里插入图片描述

vim logger.sh

sh logger.sh

cat /var/log/messages | tail -n 1

在这里插入图片描述

每分钟监视一次 / cpu% 使用率

vim logger.sh

cat logger.sh

sh logger.sh

执行 job 任务

cat /var/log/messages | tail -n 1

在这里插入图片描述

实验

vim /root/check_file.sh

[ -z “$1” ] && {
echo “Please input your filename”
exit
}
[ -e “$1” ] || {
echo “$1 is not exist”
exit
}
[ -f “$1” ] && {
echo “$1 is file”
exit
}
[ -d “$1” ] && {
echo “$1 is directory”
exit
}
[ -L"$1" ] && {
echo “$1 is softlinks”
exit
}
[ -S “$1” ] && {
echo “$1 is socket”
exit
}
[ -b “$1” ] && {
echo “$1 is block dev”
exit
}
[-c “$1” ] && {
echo “$1 is character dev”
exit
}

cat /root/check_file.sh

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值