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
yum install -y patch.x86_64
- patch 原文件 布丁文件
-b
备份原文件(使原文件保留下来,不加的话,原文件就没了)
3.cut
cut
参数 | 作用 |
---|---|
-d | 指定:为分隔符 |
-f | 指定显示的列 |
-c | 指定截取的字符(数字用法同-f) |
-f和-c的用法 | |
---|---|
5 | 第五列 |
3,5 | 3和5列 |
3-5 | 3到5列 |
5- | 第五列以后 |
-5 | 到第五列 |
cut -d : -f 1 passwd##以冒号为分隔符,指定查看第一列
cut -d : -f 1,5 passwdd##以冒号为分隔符,指定查看第1和5列
cut -d : -f 1-5 passwdd##以冒号为分隔符,指定查看第1到5列
cut -d : -f -5 passwd##以冒号为分隔符,指定查看第5列之前
cut -d : -f 2- passwd##以冒号为分隔符,指定查看第2列之后
cut -c -5 passwd##查看按字符,前5列
cut -c 2-5 passwd##查看按字符,第2-5列
- 命令测试:ifconfig 网卡
- 可以显示此网卡的信息,显示信息中包含此网卡使用的ip地址
- 请用命令过滤此ip并在输出时只显示ip,其他信息不显示
ifconfig ens33 | cut -c 14-25 | head -n 2|tail -n 1
有很多种实现方法
4.sort
参数 | 作用 |
---|---|
-n | 纯数字排序 |
-r | 倒序 |
-u | 去掉重复 |
-o | 输出到指定文件 |
-t | 指定分隔符 |
-k | 指定排序的列 |
sort -n file##纯数字排序
sort -nu file##倒序
sort -rnu file##倒序并且去掉重复
sort -rnu file -o file1 ##将排好序的输出到一个文件file1
sort -t : -k 2 file ##以冒号为分隔符,对第二列进行排序
sort -t : -k 2 file -nu##以冒号为分隔符,对第二列进行排序,并且去掉重复
- 练习:
- ls -l 目录 可以显示目录中所有文件案的属性
- 按照文件大小进行排序并找出最大的2个文件并显示其名称
5.uniq
参数 | 作用 |
---|---|
-c | 合并重复并统计重复个数 |
-d | 显示重复的行 |
-u | 显示唯一的行 |
6.tr
- 其他用法可以参见
tr --help
tr 'a-z' 'A-Z' ##小写转大写
tr 'A-Z' 'a-z' ##大写转小写
7.test
test = []
[]就相当于test命令
"test $a = $b" = [ "$a" = "$b" ]
- test数字对比
= | 等于 |
---|---|
!= | 不等于 |
-eq | 等于 |
-ne | 不等于 |
-le | 小于 |
-lt | 小于 |
-ge | 大于 |
-gt | 大于 |
- test的条件关系
-a | 并且 |
---|---|
-o | 或者 |
- test对空的判定
-n (nozero) | 判定内容不为空 |
---|---|
-z (zero) | 判定内容为空 |
- test对于文件的判定
-ef | 文件节点号是否一致(硬连接) |
---|---|
-nt | 文件1是不是比文件2新 |
-ot | 文件1是不是比文件2老 |
-d | 目录 |
-S | 套结字 |
-L | 软连接 |
-e | 存在 |
-f | 普通文件 |
-b | 快设备 |
-c | 字符设备 |
- 小检测:
编写脚本完成以下条件 file_check.sh 在执行时
如果脚本后未指定检测,文件报错“未指定检测文件,请指定”.
如果脚本后指定文件不存在,报错“此文件不存在” .
当文件存在时请检测文件类型,并显示到输出中.
#!/bin/bash
[ -z "$1" ] && {
echo "未指定检测文件,请指定"
exit
}
[ ! -e "$1" ] && {
echo "此文件不存在"
exit
}
[ -d "$1" ] && {
echo "此文件为目录"
exit
}
[ -S "$1" ] && {
echo "此文件为套结字"
exit
}
[ -L "$1" ] && {
echo "此文件为软连接"
exit
}
[ -f "$1" ] && {
echo "此文件为普通文件"
exit
}
[ -b "$1" ] && {
echo "此文件为块设备"
exit
}
[ -c "$1" ] && {
echo "此文件字符设备"
exit
}
8.&& 和 ||
&&
符合条件作动作||
不符合条件作动作
ping -c1 -w1 192.168.1.15 &> /dev/null && echo yes || echo no##能ping通的话显示yes,ping不通的话显示no