#diff
diff命令用于比较两个文件或目录之间有何不同
输出信息:[num1,num2] [a|c|d] [num3,num4]
num1和num2表示第一个文件中的行,a表示添加,c表示更改,d表示删除,<表示第一个文件中的内容,>表示第二个文件中的内容,num3和num4表示第二个文件中的行。
常用对比时的参数
-b忽略空格,-B忽略空行,-i忽略大小写,-c显示文件所有内容并标示不同(默认对比相同的行会隐藏),-r对比目录,-u合并输出
path补丁文件的使用
安装patch :dnf install patch
patch westos westos.path给westos文件打补丁,打完后和westos.new文件相同。-b参数在打补丁时生成备份.orig文件。即westos的备份文件。
#sort
sort命令用于对文件中内容排序
sort -un westos -o file
-n纯数字排序,-r倒序,-u去掉重复,-o输出到指定文件
sort -n -t :-k 2 wesots
-t指定分隔符为:,-k指定排序的列为第二列。
vim中批量插入字符方法:命令模式下先按ctrl+v 选中要加的位置,按大写A或I输入要加的字符,按esc即可
#uniq(要结合sort排序使用)
用于对重复数据处理
sort -n westos | uniq -c
-c合并重复的数并统计个数
-d只显示重复的数
-u只显示不重复的数
#tr命令,转换字符大小写
#&&和||
&&用于符合条件的动作,||用于不符合条件时的动作
ping -c1 -w1 172.25.254.100 &> /dev/null (echo 1;echo 2)} ||(echo 3;echo 4)
ping成功输出12,失败输出34
shell脚本中的写法vim test.sh
#判断用户是否存在练习
$*用于获取用户输入
#test命令
test命令就相当于[] ,test "$a" = "$b"等价于[ "$a" = "$b" ]判断ab是否相等
test的数字对比参数:
-eq 相等,也可直接写为=
-ne 不相等,也可直接写为 !=
-lt小于,-le小于等于,-gt大于,-ge大于等于
在条件前加!表示反选,即当条件不成立时为真。
test的条件关系参数
-a为并且,-o为或者
[ "$a" -gt "0" -a "$a" -lt "10" ] && echo yes || echo no
当变量a的值大于0小于10时条件为真输出yes,否则输出no
-n判定内容是否不为空,-z判定内容是否为空
test对于文件的参数判定
-ef判断文件节点号是否一致(硬链接)
-nt判断文件1是否比文件2新
-ot判断文件1是否比文件2老
-d判断是否为目录
-S判断是否为套接字
-L判断是否为软链接
-e判断是否存在
-f判断是否为普通文件
-b快设备
-c字符设备
#cut命令
-d指定分隔符
-f显示指定的列,如3表示第三列, 3,5为第三列和第五列,3-5为3到5列,5-为第五列之后,-5为之前
-c指定截取的字符,数字用法同-f
cut -d : -f 3-5 file 查看file文件三到五行,以:为分隔符。
cut -c 4- file截取file文件第四行之后的字符
练习:抓取指定网卡的ip
ifconfig ens160 | head -n 2 | tail -n 1 | cut -d " " -f 10
或ifconfig ens160 | awk '/inet\>/{print $2}'(后面要学习的语法)