1 diff 对比文件不同
bash
diff file1 file2 # 区分两个文件不同的地方
bash
[num1,num2][a|c|d][num3,num4]
num1,num2 ##第一个文件中的行
a ##添加
c ##更改
d ##删除
< ##第一个文件中的内容
> ##第二个文件中的内容
num3,num4 ##第二个文件中的行


-b
忽略空格
-B
忽略空行
-i
忽略大小写
-c
显示文件所有内容并标示不同
-r
对比目录
-u
合并输出
2 patch 打补丁
2.1 patch 原文件 补丁文件

2.1 -b
备份原文件

3 cut 截取
3.1 -d
指定:为分隔符
-f
指定显示的列
3.2 -c
指定截取的字符(数字用法同-f)

4 sort
4.1 -n
##纯数字排序

4.2 -r
##倒叙
4.3 -u
##去掉重复

4.4 -o
##输出到指定文件

4.5 -t
##指定分隔符
4.6 -k
##指定排序的列

5 uniq
5.1 -c
#合并重复并统计重复个数

5.2 -d
#显示重复的行
5.3 -u
#显示唯一的行

6 tr
6.1 tr 'a-z' 'A-Z'
##小写转大写
6.2 tr 'A-Z' 'a-z'
##大写转小写

7 test
bash
test = [] ##[] 就相当于test命令
"test $a = $b" = [ "$a" = "$b" ]

7.1 test数字对比
bash
=
!=
-eq ##等于
-ne ##不等于
-le ##小于等于
-lt ##小于
-ge ##大于等于
-gt ##大于
7.2 test的条件关系
bash
-a ##并且
-o ##或者

7.3 test对空的判定
bash
-n ##nozero 判定内容不为空
-z ##zero 判定内容为空

7.4 test对于文件的判定
bash
-ef ##文件节点号是否一致(硬链)
-nt ##文件1是不是比文件2新
-ot ##文件1是不是比文件2老
-d ##目录
-S ##套结字
-L ##软连接
-e ##存在
-f ##普通文件
-b ##快设备
-c ##字符设备

8 && ||
bash
&& # 符合条件作动作
bash
|| # 不符合条件作动作

9 shell脚本
9.1 显示网卡ip
bash
ifconfig ens160 | head -n 2 | tail -n 1 | cut -d " " -f 10

9.2 显示登录系统UID最大的用户
bash
cat /etc/passwd | grep "/home" | sort -n -t : -k 3 | cut -d : -f 1 | tail -n 1

9.3 判断用户类型
user_check.sh 用户
用户类型为
super user
system user
common user
