本文共 3835 字,大约阅读时间需要 12 分钟。
diff通常比较文件的内容,patch常用来打补丁
diff的输出信息: [num1,num2] [ a | c | d ] [num3,num4] num1,num2 第一个文件中的行 a 添加 c 更改 d 删除 < 第一个文件中的内容 > 第二个文件中的内容
当作比较的两文件无差异时,diff命令不显示信息
diff后更换文件顺序的显示
c表示更改
diff的常用参数 -b 忽略空格 -B 忽略空行 -i 忽略大小写 -c 显示文件所有内容并标示不同 -r 对比目录 -u 合并输出
diff -bB westos westos1 比较时忽略空格和空行
diff -i westos westos1 忽略大小写
diff -c westos westos1 显示文件所有内容并标示不同
diff -r sss/ test/ 显示目录的不同
diff -u westos westos1 > combine 将两文件合并,然后导入到新文件中
patch dnf install patch -y 安装patch diff -u westos westos1 > westos.path 生成补丁文件 patch -b westos westos.path 给westos打补丁同时备份原文件
cut
-b 指定字节 -d : 指定“:”为分隔符(此处指原文件中的分割符) -f 指定列 -c 指定截取字符 --compement 反选 --output-delimiter=分割符 指定输出的分割符
cut -d : -f 1 passwd
cut -d : -f 1-3 passwd
cut -c 1,3 passwd
cut -d " " -f 1-3 westos --complement
cut -d " " -f 1-2 westos --complement --output-delimiter=@
练习1:
用命令过滤ifconfig中此网卡的ip地址,输出时只显示ip,其它信息不显示
ifconfig ens160 | grep "inet " | cut -c 14-26
sort -n 纯数字排序 sort -r 倒序 sort -u 去掉重复数字 sort -o 输出到指定文件中 sort -t 指定分隔符 sort -k 指定要排序的列
sort numbers 默认是正向排序,而且是对每行的第一个单个数字进行排序
sort -n numbers 纯数字排序(此时是根据数字的整个大小排序)
sort -urn numbers 反向纯数字去重排序
sort -urn numbers -o NUM 将输出导入文件
sort -t : -k 2 numbers 以:为分隔符对第二列数字进行排列
sort -t : -k 2 numbers -urn 以:为分隔符对第二列数字进行纯数字去重排列
练习2:
ls -l目录 可以显示目录中所有文件的属性
请按照文件大小进行排序并找出最大的2个文件并显示其名称
ls -l * | cut -d " " -f 5- | sort -nr | head -n 2 | cut -d " " -f 5
uniq -u 显示唯一的行 uniq -d 显示重复的行 uniq -c 每行显示一次并统计重复行数
sort -n NUM | uniq -c 进行纯数字排序之后 重复数字只显示一次,并且在左边显示重复次数
sort -n NUM | uniq -d 进行纯数字排序之后显示重复的行
sort -n NUM | uniq -u 行纯数字排序之后显示不重复的行
tr ‘a-z’ ‘A-Z’ < westos 小写转大写
tr ‘A-Z’ ‘a-z’ < westos 大写转小写
&&与||命令
&&表示正确,||表示错误
ping -c1 -w1 172.25.254.30 &> /dev/null && echo yes ||echo no 能ping通 输出为yes 不能为no
将上述命令写作脚本
#!/bin/bashping -c -w1 172.25.254.$* &>/dev/null && { echo yes exit}||{ echo no exit}
test = [ ] test命令就等于“[ ]”
test数字对比 = 相等 != 不相等 num1 -eq num2 判断 num1 是否和 num2 相等 num1 -ne num2 判断 num1 是否和 num2 不相等 num1 -gt num2 判断 num1 是否大于 num2 num1 -lt num2 判断 num1 是否小于 num2 num1 -ge num2 判断 num1 是否大于等于 num2 num1 -le num2 判断 num1 是否小于等于 num2
练习3:
做一个监控脚本:当/使用量超过80%时发送警告邮件到root用户邮箱中
#!/bin/bash [ "`df -h / | tail -n 1 | awk '{print$5}' | cut -d "%" -f 1 `" -ge "20" ] && { echo "warning: / is full!" | mail -s warnimg root exit }
test的条件关系和对空的判定 -a 并且 -o 或者 -n 判定内容不为空 -z 判定内容为空
3.test对文件的判定
-ef 文件id是否一致
-nt 文件1是否比文件2新
-ot 文件1是否比文件2老
-d 目录
-S 套接字
-L 软连接
-e 存在
-f 普通文件
-b 块设备
-c 字符设备
练习4:编写脚本完成以下任务
file_check.sh 在执行时
如果脚本后未指定检测文件,报错“未指定检测文件,请指定”
如果脚本后指定文件不存在,报错“此文件不存在”
当文件存在时,请检测文件类型并显示到输出中
#!/bin/bash[ -z "$*" ] && { echo "ERROR: please input check file!!" exit} [ -e "$*" ] || { echo "ERROR: please input correct file!!" exit} [ -L "$*" ] && { echo "The input file is soft link" exit} [ -f "$*" ] && { echo "the input file is a common file" exit} [ -d "$*"] && { echo "the input file is adirectory" exit}
转载地址:http://doegn.baihongyu.com/