-
diff 比较两文件的不同
diff在比较文件过程中结果读取方式:[num1,num2]a|c|d[num3,num4] num1,num2表示在第一个文件的行数 a表示添加:add c表示更改:change d表示删除:delete num3,num4 表示在第二个文件中的行数
例:
cd /mnt vim westos 建立文件westos写入内容:123 123 vim westos1 建立文件westos1写入内容:第一行123第二行456 123 456
用diff比较两个的文件的不同
diff 的常用参数
-b 或 --ignore-space-change 不检查空格字符的不同
-B 或 --ignore-blank-lines 不检查空白行
-c 显示全部内容,并标出不同之处
-i 或 --ignore-case 不检查大小写的不同
-p : 若比较的文件为C 语言的程序码文件时,显示差异所在的函数名称
-q 或 --brief 仅显示有无差异,不显示详细的信息
-r 或 --brief 比较子目录中的文件
-u 以合并的方式来显示文件内容的不同
2.patch
用于不同的文件打补丁
diff -u westos westos1 > westos.path 制作一个补丁文件westos.path
yum install patch -y 安装path
patch -b westos westos.path 将补丁westos.path 更新给westos
有 -b 参数更新补丁时会备份原文件,生成文件westos.orig
没有 -b 参数更新补丁不会备份原文件
3.cut
cut 命令多用于与字符截取
cut -d 指定分隔符
cut -f 1,7|1-7 指定截取的1和7列或1到7列
cut -c 1,4|1-4 指定截取的字符位置
例:
cp /etc/passwd /mnt
vim passwd 删除一部分内容,留下一部分方便实验
cut -d : -f 1,7 passwd 以 : 为分隔符,截取第1列和第7列
4.sort多用于字符排序
sort -n 纯数字排序
sort -r 倒叙
sort -u 去掉重复数字
sort -o 输出到指定文件中
sort -t 指定分隔符
sort -k 指定要排序的列
例:vim file 无序的输入一些数字
sort -n 数字排序
sort -ru 到序并屏蔽重复数字
5.uniq 对重复字符做相应的处理
uniq -u 显示唯一的行
uniq -d 显示重复的行
uniq -c 每行显示一次并统计重复次数
6.&& 和 ||
&& 用来执行条件成立后执行的命令
|| 用来执行条件不成立后执行的命令
例:vim ping.sh 编辑一个脚本,能ping通ip显示is up 不能通显示is down
#!/bin/bash
ping -c1 -w1 &> /dev/bull\
&& echo $1 is up || echp $1 is down
chmod 755 ping.sh 给脚本文件执行权限
测试:
sh ping.sh 192.168.122.7 | 192.168.122.77
7.test 和[ ]等同
test "$A"="$B" 等同 ["$A"="$B"]
["$A"="$B"] 表示"$A"="$B"成立
["$A"!="$B"] 表示"$A"="$B"不成立
[ -z "$A"] 表示$A是否为空
[ -n "$A"] 表示$A是否不为空
例:
参数:
-eq 等于
-ne 不等于
-le 小于等于
-lt 小于
-ge 大于等于
-gt 大于
例:
参数
-o 表示或者
-a 表示并且
例:
[ "$a" = "$b" -o "$a" -lt "5" ] $a是否等于$b,或者$a小于5
[ "$a" = "$b" -a "$a" -lt "5" ] $a是否等于$b,并且$a小于5
编辑脚本: 判定一个数字是否在0-10之间,脚本后面没数字显示please give me a number! 有数字进行判定在1-10输出yes否则输出no
vim check_num.sh
#!/bin/bash
[-z "$1" ] && { 判定脚本后第一穿字符是否为空
echo please give me a number !!
exit
}
[ "$1" -gt "0" -a "$1" -lt "10" ] && echo yes || echo n
chmod 755 check_num.ph 给脚本执行权限后进行测试
test判定文件类型的参数
[ -e "file" ] 文件是否存在
[ -f "file" ] 文件是否为普通文件
[ -L "file" ] 文件时否为连接(软连接)
[ -S "file" ] 文件是否为套接字
[ -b "file" ] 文件是否为快设备
[ -d "file" ] 文件是否为目录
[ -c "file" ] 文件是否为字符设备
ln -S /mnt/file /mnt/hello 创建链接-s表示软链接,不加-s表示硬链接
例:编辑脚本,检查文件是否存在,如果存在是文件还是目录还是软连接
vim check_file.sh
测试:
8.tr 字符转换(文件内容)
echo hello HELLO
echo hello HELLO | tr 'a-z' 'A-Z'
echo hello HELLO | tr 'A-Z' 'a-z'