shell中的常用命令

1.diff命令

1)diff命令作用

diff命令是用来比较两个文件或目录的不同

diff [options] target1 target2
diff file1 file2
diff direcory1 directory2

在这里插入图片描述
在这里插入图片描述

2)diff在比较文件过程中结果读取方式

[num1 , num2][a|c|d][num3,num4]
num1,num2表示在第一个文件中的行数
a表示添加 ----add
c表示更改 ----change
d表示删除 ----delete
<表示第一个文件中的内容
>表示第二个文件中的内容
分割线
num3,num4表示在第二个文件中的行数

测试:
在这里插入图片描述

[root@shell_example mnt]# diff file1 file2
3c3,4    ##改变第一个文件中的第三行才能匹配第二个文件中的第三行和第四行
< 2 		##第一个文件中的第三行内容
---
> 02		##第二个文件中的第三行和第四行内容
> 27

3)diff在比较目录过程中结果的读取

Only in directory/:filename
directory表示在哪个目录中
filename表示不同的那个文件

测试:

在这里插入图片描述

[root@shell_example mnt]# diff test1/ test2/
Only in test1/: hello     ##不同的文件为test1目录下的hello文件

4)diff中常用的参数

-b 或 --ignore-space-change不检查空格字符的不同
-B 或 --ignore-blank-lines不检查空白行
-c显示全部内文,并标出不同之处
-i 或 --ignore-case不检查大小写的不同
-p若比较的文件为 C 语言的程序码文件时,显示差异所在的
函数名称
-q 或 --brief仅显示有无差异,不显示详细的信息
-r 或 --recursive比较子目录中的文件
-u以合并的方式来显示文件内容的不同

示例:

ddif -b file1 file2    ##不检查空格字符的不同

在这里插入图片描述

diff -B file1 file2      ##不检查空白行

在这里插入图片描述

diff   -c  file1 file2         ##显示全部内文,并标出不同之处
*** file1	2019-02-28 01:02:00.274991808 -0500   ##***表示的文件为file1
--- file2	2019-02-28 01:01:20.320991808 -0500   ##---表示的文件为file2
***************
*** 1,4 ****              ##file1文件一共4行
  hello world
  welcome
! ds						##!所标示的行为与另一个文件不同的行
! hai
--- 1,3 ----				##file2文件一共3行
  hello world
  welcome
! he

在这里插入图片描述

diff -i  file1 file2  ##不检查大小写的不同

在这里插入图片描述

diff  -q   file1 fil2     仅显示有无差异,不显示详细的信息

在这里插入图片描述

diff   -r    test1/     test2/     比较子目录中的文件

在这里插入图片描述

diff -u file1 file2    ##以合并的方式来显示文件内容的不同(常用来生成补丁)

在这里插入图片描述

2.pacth

 用于两不同文件打补丁

1)服务下载

yum install pacth -y

2)命令格式

diff -u file1 file2 > file.path				##生成补丁
patch    file.old file.path					##向老文件打补丁
patch   -b   file.old file.path    			##保留原文件,执行后会出现一个后缀为.orig的文件,其内便是原文件内容

测试:
在这里插入图片描述
保留原文件:
在这里插入图片描述

3.cut命令

1)cut 命令作用

 cut命令多用与字符截取

2)cut命令用法

cut -d指定分隔符
cut -f 1,7/1-7指定截取的列 (,为第几列和第几列 -为第几列到第几列,实际运用需要加上-d指定分隔符)
cut -c 1,4/1-4指定截取的字符位置

测试:

 cut -d : -f 1,7 passwd
 cut -d : -f 1-7 passwd

在这里插入图片描述

cut -c  1,4   passwd
cut -c  1-4   passwd

在这里插入图片描述

4.sort命令

1)sort命令作用

sort命令多用于字符排序

2)sort命令用法

sort -n纯数字排序
sort -r 倒序
sort -u去掉重复数字
sort -o输出到指定文件中
sort -t指定分隔符
sort -k指定要排序的列
sort -n test		##纯数字排序

在这里插入图片描述

sort -nr test     ##纯数字倒叙排列

在这里插入图片描述

sort -u   test    ##去掉重复数字

在这里插入图片描述

sort  -n test -o test1   输出到test1文件中

在这里插入图片描述

sort  -t  :   -k 2   -n  test   ##对以:为分隔符的第二列纯数字排序

在这里插入图片描述

5.uniq命令

1)作用

对重复字符做相应的处理,常与sort -n 一同使用

2)用法

uniq -u显示唯一的行
uniq -d显示重复的行
uniq -c每行显示一次并统计重复次数
sort -n test | uniq -c    ##对test进行排序每行显示一次并统计重复次数
      1 1         ##一个2
      3 3			##三个3
      1 4
      2 6			##两个6
      1 12
      1 24
      1 66

在这里插入图片描述

uniq   -u		##显示唯一行

在这里插入图片描述

uniq -d 			##显示重复行

在这里插入图片描述

6.test 命令

test 命令和 [ ] 等同

test "$A" == "$B" 等同 [ "$A" == "$B" ]

用法

[ "$A" = "$B" ]       ##A等于B
[ "$A" != "$B" ]      ##A不等于B
[ "$A" -eq "$B" ]      ##A等于B
[ "$A" -ne "$B" ]     ##A不等于B
[ "$A" -le "$B" ]     ##A小于或或等于B
[ "$A" -lt "$B" ]     ##A小于B
["$A" -ge "$B" ]      ##A大于或等于B
["$A" -gt "$B" ]      ##A大于B
["$A" -ne "$B" -a "$A" -gt "$B" ]  ##A不等于B 且 A大于B
["$A" -ne "$B" -o "$A" -gt "$B" ]  ##A不等于B 或者 A大于B
[ -z "$A" ]    ##A是否存在
[ -n "$A" ]    ##A是否不存在
["file1" -ef "file2" ]      ##file1和file2创建时间是否相同
["file1" -nt "file2" ]      ##file1是否比file2创建时间晚(是否比他新)
["file1" -ot "file2" ]      ##file1是否比file2创建时间早(是否比他老)
[-e "file" ]		##文件是否存在
[-f "file" ]		##文件是否为纯文本
[-L "file" ]		##文件是否为链接
[-S "file" ]		##文件是否为套接字
[-b "file" ]		##文件是否为块设备(磁盘)
[-d "file" ]		##文件是否为目录
[-c "file" ]		##文件是否为字符设备

补充:
显示大小写的替换:

tr 'a-z' 'A-Z' < test

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值