文章目录
1.diff
用法:
diff [options] files|directorys
输出信息:
[num1,num2] [a|c|d] [num3,num4]
输出信息 | 内容 |
---|---|
num1,num2 | 第一个文件中的行 |
a | 添加 |
c | 更改 |
d | 删除 |
< | 第一个文件中的内容 |
> | 第二个文件中的内容 |
num3,num4 | 第二个文件中的行 |
常用参数:
参数 | 内容 |
---|---|
-b | 忽略空格 |
-B | 忽略空行 |
-i | 忽略大小写 |
-c | 显示文件所有内容并标示不同 |
-r | 对比目录 |
-u | 合并输出 |
实验:
2.patch
patch 原文件 补丁文件
patch -b 原文件 补丁文件
##备份原文件
3.cut
-d : 指定:为分隔符
-f 指定显示的列
5 第五列
3,5 3和5列
3-5 3到5列
5- 第五列以后
-5 到第五列
-c 指定截取的字符(数字用法同-f)
eg:
cut -d : -f 1 passwd
cut -d : -f 1,4 passwd
cut -d : -f 1-4 passwd
cut -d : -f -4 passwd
cut -d : -f 4- passwd
cut -c 1-4 passwd
练习:
grep bash -v /etc/passwd | cut -d : -f 1
显示当前主机中不能登陆的用户(默认不能bash登陆)
4.sort
sort 参数 | 解释 |
---|---|
-n | 纯数字排序 |
-r | 倒叙 |
-u | 去掉重复 |
-o | 输出到指定文件 |
-t | 指定分隔符 |
-k | 指定排序的列 |
eg:
sort file 排序(文本按照字母排序,数字按照大小排序)
sort -n file 正序
sort -nr file 倒序
sort -nu file 去掉重复
sort -nr file -o output 输出到指定文件
sort -t : -k 2 file 指定分隔符,指定排序的列
5.uniq
uniq参数 | 解释 |
---|---|
-c | 合并重复并统计重复个数 |
-d | 显示重复的行 |
-u | 显示唯一的行 |
练习:
1.ifconfig 网卡,可以显示此网卡的信息,显示信息中包含此网卡使用的ip地址,
请用命令过滤此ip并在输出时之显示ip不显示其他信息。
[root@server mnt]# ifconfig ens3 | head -n 2 | tail -n 1 | cut -c 14-27
172.25.254.121
2.找出能登陆系统用户中UID最大的用户,并显示其名称
[root@server mnt]# grep bash /etc/passwd | sort -nr -t : -k 3 | cut -d : -f 1 |head -n 1
3.当前主机为web服务器,请抓取访问web服务器次数排在前5的ip地址。
[root@server mnt]# cat /etc/httpd/logs/access_log | cut -d " " 1 | |sort -nr | uniq -c | head -n 5 |awk '{print $2}'
6.tr
tr 实现转换
tr 'a-z' 'A-Z' 小写转大写
tr 'A-Z' 'a-z' 大写转小写
cat hello | tr " " "*" 空格转字符
7.test
test = []
[] 就相当于test命令
例如:
test "$a = $b" ---> [ "$a" = "$b" ]
7.1 test数字对比
参数 | 内容 |
---|---|
-eq | 等于 |
-ne | 不等于 |
-le | 小于等于 |
-lt | 小于 |
-ge | 大于等于 |
-gt | 大于 |
7.2 test的条件关系
参数 | 内容 |
---|---|
-a | 并且 |
-o | 或者 |
7.3 test对空的判断
参数 | 内容 |
---|---|
-n | nozero 判定内容不为空 |
-z | 判定内容为空 |
7.4 test对于文件的判定
参数 | 内容 |
---|---|
-ef | 文件节点号是否一致(硬链) |
-nt | 文件1是不是比文件2新 |
-ot | 文件1是不是比文件2老 |
-d | 目录 |
-S | 套结字 |
-L | 软连接 |
-e | 存在 |
-f | 普通文件 |
-b | 块设备 |
-c | 字符设备 |
8.&& ||
&& 符合条件作动作
|| 不符合条件作动作