1.diff
diff命令用于比较文件的差异。diff 以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
用法:diff [options] files|directorys
常用参数 | 解释 |
---|---|
-b | 忽略空格 |
-B | 忽略空行 |
-i | 忽略大小写 |
-c | 显示文件所有内容并标示不同 |
-r | 对比目录 |
-u | 合并输出 |
-y或–side-by-side | 以并列的方式显示文件的异同之处 |
输出信息:
- 【a】 ##添加
- 【c】c ##更改
- 【d】 ##删除
- 【<】 ##第一个文件中的内容
- 【>】 ##第二个文件中的内容
- 【- - -】 ##分割线
示例1:3,4c3
##表示改变第一个文件中的第3行和第四行才能匹配第二个文件的第三行
示例2:diff -u test1 test2
##以test2文件为模板,合并输出,输出表示给test1文件添加test2file内容,就与test2文件内容一致;
diff -u test2 test1
##以test1文件为模板,对test2合并输出,删除test2的test2file添加,内容就与test1文件一致;
2.patch
patch命令用于修补文件。常与diff命令生成补丁文件
dnf install patch -y
##安装patch 软件
用法:
patch 原文件 补丁文件
##根据补丁文件,修补原文件
patch -b 原文件 补丁文件
##修补文件时,备份原文件
3.cut
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。
用法:cut 【options】 file
参数 | 作用 |
---|---|
-b | 以字节为单位进行分割 |
-c | 以字符为单位进行分割 |
-d | 自定义分隔符,默认为制表符 |
-f | 与-d一起使用,指定显示的列 |
4.sort
sort命令用于将文本文件内容以行为单位加以排序。
用法:sort 【options】 file
常用参数 | 作用 |
---|---|
-n | 纯数字排序 |
-r | 倒序 |
-u | 去掉重复 |
-o | 输出到指定文件 |
-t | 指定分隔符 |
-k | 指定排序的列 |
5.uniq
uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
常用参数 | 作用 |
---|---|
-c或 | 在每列旁边显示该行重复出现的次数 |
-d | 仅显示重复出现的行列 |
-u | 仅显示出一次的行列 |
当重复的行并不相邻时,uniq 命令是不起作用的,这时,我们就用sort
6.tr
tr 命令用于转换或删除文件中的字符。
tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
用法: tr [options] set1 set2
①:tr 'a-z' 'A-Z
##把小写字母转换为大写字母
②:tr -d '0-9'
删除数字
③:tr -s ' '
##把连续的空格缩减为1个(-s 用来缩减指定的连续字符)
7. && 和 ||
&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。
|| 则与&&相反。如果||左边的命令(command1)未执行成功,那么就执行||右边的命令(command2);或者换句话说,“如果这个命令执行失败了||那么就执行这个命令。
8.test
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
用法:test $a = &b
或[ $a = $b]
##判断a和b的值是否相等
数值测试:
参数 | 说明 |
---|---|
-eq | 等于则为真 |
-ne | 不等于则为真 |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |
字符串测试:
参数 | 说明 |
---|---|
= | 等于则为真 |
!= | 不相等则为真 |
-z 字符串 | 字符串的长度为零则为真 |
-n 字符串 | 字符串的长度不为零则为真 |
文件测试:
参数 | 说明 |
---|---|
-e 文件名 | 如果文件存在则为真 |
-r 文件名 | 如果文件存在且可读则为真 |
-w 文件名 | 如果文件存在且可写则为真 |
-x 文件名 | 如果文件存在且可执行则为真 |
-s 文件名 | 如果文件存在且至少有一个字符则为真 |
-d 文件名 | 如果文件存在且为目录则为真 |
-f 文件名 | 如果文件存在且为普通文件则为真 |
-c 文件名 | 如果文件存在且为字符型特殊文件则为真 |
-b 文件名 | 如果文件存在且为块特殊文件则为真 |
-L 文件名 | 如果文件为软连接则为真 |
-S 文件名 | 如果文件为套接字文件则为真 |
File1 –ef File2 | 文件节点号一致(硬链)则为真 |
File1 –nt File2 | 文件1比文件2新则为真 |
File1 –ot File2 | 文件1比文件2旧则为真 |
条件关系:
- -a ## 并且
- -o ##或者