shell--1--linux基本命令diff cut sort uniq test patch修复文件 &&和||

diff中常用的参数

-b  不检查空格字符的不同

-B 不检查空白行

-c 显示全部内容,并标出不同处

-i 不检查大小写的不同

-p 若比较的文件为c语言的程序码文件是显示差异所在的函数名称

-q  仅显示有无差异不显示详细的信息

-r 比较子目录中的文件

目录下建立westos/westos1  wesots1/westos1 目录名称相同,所以diff比较没有区别,加上-r会递归比较目录下的内容

-u 以合并的方式来显示文件内容的不同

patch修复文件

patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。

@1安装修补软件yum install path -y 

@2比较两个文件的不同,生成修补,进行修补,查看是否修补成功

[root@localhost mnt]# cat file   查看的file内容
hello
[root@localhost mnt]# cat file1   查看的file1内容
hello world
[root@localhost mnt]# diff file file1  比较两个文件
1c1
< hello
---
> hello world
[root@localhost mnt]# diff file file1 > file.path 将比较结果保存到file.path
[root@localhost mnt]# cat file.path   查看补丁包的内容
1c1
< hello
---
> hello world
[root@localhost mnt]# patch -p0 file file.path 使用补丁包升级file文件
patching file file
[root@localhost mnt]# cat file   再次查看file文件
hello world file文件被修改为与file1一样的内容 [Click and drag to move]
cut

cut

用于显示每行从开头算起 num1 到 num2 的文字。

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。

-c :以字符为单位进行分割。

-d :自定义分隔符,默认为制表符。

-f :与-d一起使用,指定显示哪个区域。

-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除
 

cut -d: -f 1  /etc/passwd  ##以:分割开的passwd第一列显示
cut -c 2,3 passwd           ###截取第2,3个字符

Sort

sort命令用于将文本文件内容加以排序。

sort可针对文本文件的内容,以行为单位来排序。

sort 多用于字符的排序

sort  file 只对第一个字符排序

sort -n  纯数字排序

sort -r  倒序

sort -u 去掉重复数字

sort -o 输出到指定的文件中

sort -t  指定分隔符

sort -k  指定要排序的列

uniq

命令用于检查及删除文本文件中重复出现的行列。

uniq可检查文本文件中重复出现的行列。

sort  -rn file |uniq -c 每列旁边显示该行重复出现的次数

&&和||

&&用来执行条件成立后执行的命令

|| 用来执行条件不成立后执行的命令

ping -c1 -w1 172.25.254.23  &>/dev/null && echo 23 is up ||echo 23 is down      ping23主机ping通则为开启

test 命令

 [ "$a" = "$b" ] && echo yes || echo no              等于

 [ "$a" -le "$b" ] && echo yes || echo no            小于等于

 [ "$a" -ge "$b" ] && echo yes || echo no           大于等于

 [ "$a" -gt "$b" ] && echo yes || echo no            大于

 [ "$a" -lt "$b" ] && echo yes || echo no               小于

[ -z "$c" ] && echo yes || echo no                        是否为空

[ -n "$c" ] && echo yes || echo no                       是否不为空

[ "file" -ef "file1" ]&& echo yes || echo no            是否为同一个文件  ls -i  xx 相同

[ "file" -nt "file1" ]&& echo yes || echo no              file比file1新

[ "file" -ot "file1" ]&& echo yes || echo no                      旧

[ -e  /mnt ]&& echo yes || echo no                      是否为存在

[ -d  /mnt/file ]&& echo yes || echo no                 是否为目录

[ -f /mnt ]&& echo yes || echo no                           是否为文件

[ -L /etc/system-release ]&& echo yes || echo no 是否为链接

ll /etc/system-release                                                  链接

yum install mariadb-server -y                                     安装数据库会有套结字

systemctl start mariadb

[ -s /var/lib/mysql/mysql.sock ] && echo yes || echo no  是否有套结字

[ -b /dev/vdb ] && echo yes || echo no                          是否块设备

[ -c /dev/pts/0 ] && echo yes || echo no                      是否字符设备

猜你喜欢

转载自blog.csdn.net/weixin_40460156/article/details/81879150