shell

diff

diff在比较文件过程中结果读取方式:
[num1,num2][a|c|d][num3,num4]
num1,num2表示在第一个文件中的行数
a表示添加
c表示更改
d表示删除
<表示第一个文件中的内容,>表示第二个文件中的内容
---分割线
num3,num4表示在第二个文件中的行数
2,4c2,4表示改变第一行文件中的第二行和第四行才能匹配第二个文件中的第二行和第四行
-b或--ignore-space-change 不检查空格字符的不同
-B或--ignore-blank-lines 不检查空白行
-c 显示全部内文,并标出不同之处
-i 或--ignore-case 不检查大小写的不同
-p 若比较的文件为c语言的程序码文件时,显示差异所在的函数名称
-q 或--brief 仅显示有无差异,不显示详细的信息
-r或--recursive 比较子目录中的文件
-u 以合并的方式来显示文件内容的不同

fiff test test1 比较test与test1的不同
两个文件的第一行不同,test1第二行多了一行空格
在这里插入图片描述
删除test1与test2并新建test1与test2
test1文件中结尾多打一个空格,提示了不同
在这里插入图片描述
加入参数-b则会忽略空格,不提示
在这里插入图片描述
test只有两行文件,test1有3行文件,且第二行为空行

在这里插入图片描述
在这里插入图片描述
diff test test1 B 忽略空行
在这里插入图片描述
diff test test1 -c显示全部明文并标出不同之处
提示在第二行加入字符。
在这里插入图片描述
查看test与test1中的信息

在这里插入图片描述
diff test test1比较不同
在这里插入图片描述
diff test test1 -i忽略大小写比较test与test1不提示。
在这里插入图片描述

diff test test1 -q 只提示是否相同,不显示详细的信息。
在这里插入图片描述
mkdir dir 创建目录dir
mkdir dir1 创建目录dir1
touch dir/file在目录dir下创建文件file
diff dir dir1 -r 比较两个目录子文件的不同
可以看到提示只有目录dir中有文件file
在这里插入图片描述
从 以合并的方式来显示文件内容的不同
提示,删除第一行的Hello,然后加hello及与test1相同
在这里插入图片描述

diff test test1 -u > test.path 会生成补丁文件
yum install patch -y 下载该应用
patch -b test1 test.patch 使用补丁修改文件test1与test相同
diff test test1比较两个文件
在这里插入图片描述

cut命令
cat passwd
在这里插入图片描述
cut -d : -f 1 passwd 指定文件passwd切割符为:并截取第一列

在这里插入图片描述
cut -d : -f 1,3 passwd 文件passwd的分隔符为:并截取第一列和第三列
cut -d : -f 1-3 passwd 文件passwd的分隔符为:并截取第一列到第三列
在这里插入图片描述
截取文件passwd每一列的第一到第三个字符
在这里插入图片描述
截取文件passwd第一列第一个和第三个字符
在这里插入图片描述
sort命令
vim test 编辑文件test
cat test 查看test
在这里插入图片描述

按第一位数字大小排序
在这里插入图片描述
纯数字排序
在这里插入图片描述
sort -r 倒序排列
在这里插入图片描述
去除重复数字后排序
在这里插入图片描述

去除重复数字后倒序排列
在这里插入图片描述
sort -nru test -o westos去除重复数字倒序排列后将排序结果写入westos文件中。
在这里插入图片描述
编辑文件test
在这里插入图片描述
sort -t : -k 2 test对test文件,以:为分隔符并对第二行进行排序
在这里插入图片描述
uniq
uniq可以去除相邻行的重复行,所以我们往往先用sort对文件排序然后再用uniq统计数目大小,注意uniq去除的重复行是相邻的。
编辑test文件如下所示
在这里插入图片描述

uniq -c 每行显示一次并统计次数
左边的为数字出现的次数,右边的为数字

在这里插入图片描述
uniq -u 查看不重复的数字
uniq -d 查看重度的数字
在这里插入图片描述

&&与||
&&表示条件为真,||表示条件为假
编辑脚本如下所示
ping $1 -w 3 >/dev/null && echo “$1 is up” || echo “$1 is down” 表示ping输入的ip($1),若能ping通输出结果为“$1 is up",ping不通则输出结果“$1 is down”($1表示执行脚本输入的ip,>/dev/null表示不显示输出结果)
在这里插入图片描述
结果为真时
在这里插入图片描述
结果为假时
在这里插入图片描述

脚本中的比较

-eq	等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
<(>) 小于(大于)
<=(>=) 小于等于(大于等于)
 !=不相等
 连接字符
 -a 且
 -o 或
 -z 是否为空
 -n 是否不为空
 -ot 文件时间旧
 -nt 文件时间新
 -ef 互为硬链接

编辑脚本ping某个ip地址(该ip可以不加,但不加需要报错),若该ip可以ping通给出提示,否则报错。

#!/bin/bash
[ -z "$1" ] && {
        echo  "Error:please input ipaddress follwing test.sh"
        exit
}
ping $1  -w 3 >/dev/null && {
 echo "$1 is up"
} || {
 echo "$1 is down"
}

执行效果如下所示
不加ip会报错,加入可以ping通的ip会提示该ip正在工作
在这里插入图片描述
ping不通ip时提示该ip不工作
在这里插入图片描述
编写脚本,当根目录的利用率超过80%时报错并且报错写入日志中,且每分钟查询一次。

#!/bin/bash
                [ `df | cut -c 45-55 |tail -n 5 | head -n 1|cut -c 1-2` -ge 80 ] &&
                echo "/space is no enough space" >> /var/log/messages   ||
                echo "/space is enough space" >>/var/log/messages
at now+1min <<-EOF
                /root/text.sh
               EOF

硬链接与软链接
硬链接

ls -i test.sh 查看test.sh的节点
ln /root/test.sh /root/c.sh 新建硬链接c.sh
ls -i c.sh 查看c.sh的节点,可以看到其节点与源文件的节点相同

在这里插入图片描述

在这里插入图片描述
软链接

 ln -s /root/test.sh /root/cn 建立软链接cn
 cat cn查看软链接
  ls -i cn 查看软链接的节点,可以看到其节点与源文件不同 

在这里插入图片描述
在这里插入图片描述
rm -fr /root/test.sh 刪除/root/test.sh(源文件)
查看软链接可以看到无法查看,因为其指向的文件已经被删除。
而硬链接建立的文件依旧可以查看。
软链接只建立一个节点,通过该节点来查找数据块中的内容,而硬链接则会复制其数据块,但节点不会发生改变,即使删除原来的文件,也不会对硬链接产生影响(硬链接,一个节点对应多个文件)。
在这里插入图片描述
cp text.sh test.sh 重新产生新的test.sh文件可以发现,软链接又可以查看了。
在这里插入图片描述
test
test
[-e “file“]文件是否存在
[-f “file“]是否为普通文件
[-L ‘file’] 是否为软链接
[-S “file“] 是否为套结字(socket)
[-b “file”] 是否为块设备
[-d “file”] 是否为目录
[-c “file”]是否为字符设备
在这里插入图片描述
用脚本编写查看文件/mnt/checkfile.sh的类型在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值