RedHat Linux 8 中 shell 应用 第一部分

shell中文件常用命令

1. diff
2. patch
3. cut
4. sort
5. uniq
6. tr
7. test

8. && 、 ||


命令操作

diff

作用是用来进行文件内容比较
有一个命令是 “vimdiff filename1 filename2” 可以用来进行两个文件的对比并且标记出不同的内容展示
在这里插入图片描述
在这里插入图片描述
diff命令用法:
diff [options] files/directorys
在这里插入图片描述
在这里插入图片描述
这里出现的信息解释一下:
1a2 --> 1表示file1 中的行,a表示添加 ,如果是d表示删除,c表示更改,后买面的数字2表示file2中的行;
“>”表示第二个文件中的内容, “<” 表示第一个文件中的内容;
diff命令比较两个文件,写在后面的文件会作为标准来对比前面的文件。

常用参数:

参数说明
-b忽略空格
-B忽略空行
-i忽略大小写
-c显示文件所有内容并标示不同
-r对比目录
-u合并输出
  • -b
    在这里插入图片描述
    不加-b参数diff命令会统计两个文件中的内容空格的区别,加上-b就会自动忽略
    在这里插入图片描述
  • -B
    在这里插入图片描述
    在这里插入图片描述
  • -i
    在这里插入图片描述
    在这里插入图片描述
  • -c
    在这里插入图片描述
  • -r
    对比两个目录,会详细列出,目录中独有的文件
    在这里插入图片描述
  • -u
    对比两个文件,以file2为标准对比file1,
    在这里插入图片描述

patch

首先要安装命令包
在这里插入图片描述
命令操作:patch 原文件 补丁文件
补丁文件是通过diff命令来生成的,生成的补丁文件
在这里插入图片描述
生成的补丁文件通过patch命令来进行打补丁,使file1文件更新为file2的内容
在这里插入图片描述
因为直接使用patch命令会将源文件直接更新为新文件,旧文件就被覆盖 了,如果想要旧的文件存在的话,使用参数:-b ,备份原文件
在这里插入图片描述
备份出的文件生成的后缀是 “.orig”,就是源文件


cut

cut 是一个数据的截取命令,在一个文件中,如果想要截取一部分的数据出来看,可以使用cut命令

参数说明
-d指定分隔符
-f指定显示的列 5=第五列;3,5=3和5列;3-5=3到5列;5-=第五列以后;-5=到第五列
-c指定截取的字符(数字用法同-f)

例:cut -d / -f 1,4 passwd,-d指定“/”为分隔符,就是一个分隔符为一列
在这里插入图片描述
-d 指定“:”为分隔符
在这里插入图片描述
如果需要指定空格为分隔符:cut -d ’ ’ -f 2 passwd,单引号中间打空格表示

-c是显示字符,指定需要显示的第几个到第几个字符即可
在这里插入图片描述


sort

sort命令的主要作用是排序

参数说明
-n纯数字排序
-r倒叙
-u去掉重复
-o输出到指定文件
-t指定分隔符
-k指定排序的列

建立文件,内容如下,对于无序的文件我们需要让其按顺序排列的话
在这里插入图片描述
sort -n file1,排序纯数字文件
在这里插入图片描述
sort -nr file1 ,倒叙排序纯数字文件
在这里插入图片描述
sort -nru file1 ,倒叙排序纯数字文件并去掉重复内容
在这里插入图片描述
sort -nru file1 -o file.sort,倒叙排序纯数字文件并去掉重复内容,输出内容到file.sort
在这里插入图片描述
-t 和 -k 会同时使用,如果文件中存在很多列,可以选中分隔符然后指定需要排序的列进行操作
在这里插入图片描述


uniq
参数说明
-c合并重复并统计重复个数
-d显示重复的行
-u显示唯一的行

建立如下文件
在这里插入图片描述
uniq需要配合其他命令使用,如sort命令
sort -n file1 | uniq -c,排序file1 并且合并重复的内容标记个数
在这里插入图片描述
sort -n file1 | uniq -d,排序file1显示出重复行的内容
在这里插入图片描述
sort -n file1 | uniq -u,排序file1显示出独立行的内容
在这里插入图片描述


tr

tr命令主要用途更改文件内容的大小写

tr ‘a-z’ ‘A-Z’小写转大写
tr ‘A-Z’ 'a-z’大写转小写

建立文件如下
在这里插入图片描述
cat file1 | tr ‘a-z’ ‘A-Z’ > file3,查看file1文件,并且将文件的小写全部转换为大写再输出到file3文件中
在这里插入图片描述


&& 、 ||

&& 符合条件作动作
|| 不符合条件作动作


test

test命令是对比命令,可对数字、条件关系、文件等进行对比判定

test = [ ] ,[ ] 就相当于test命令
test " $a " = " $b " = [ " $a " = " $b " ]
$a表示a的值, $b表示b的值,对比a和b,如果相等输出yes,否则输出no
在这里插入图片描述
可以看到两个值都为1,所以输出为yes

test数字对比说明
=是否相等
!=是否不等
-eq等于
-ne不等于
-le小于等于
-lt小于
-ge大于等于
-gt大于
  • -eq 等于
    在这里插入图片描述

  • -lt ,设置b的值为2,测试a是否小于b
    在这里插入图片描述

  • -ge,设置a的值也为2,测试a是否大于等于b
    在这里插入图片描述

test的条件关系
-a ,并且
例如要判定a的值是否大于0小于10
在这里插入图片描述
-o ,或者
测试要判定a的值是否小于0或大于10
在这里插入图片描述
test对空的判定
-n ,nozero 判定内容不为空
测试判定不存在的值c,判定c不为空
在这里插入图片描述
-z ,zero 判定内容为空
测试判定值a,a=2,所以判定结果是no
在这里插入图片描述

test对于文件的判定

参数说明
-ef文件节点号是否一致(硬链)
-nt文件1是不是比文件2新
-ot文件1是不是比文件2老
-d目录
-S套结字
L软连接
-e存在
-f普通文件
-b块设备
-c字符设备
  • -ef
    测试两个文件是否互为硬链接,建立file1 ,为file1建立链接testfile,硬链接两个文件或目录的id是一致的
    在这里插入图片描述
    [ “file1” -ef “testfile” ] && echo yes || echo no ,对比两个文件输出为yes
    在这里插入图片描述

  • -d / -f
    分别测试 /mnt 和 file1 ,/mnt是目录,file1是文件
    在这里插入图片描述
    在这里插入图片描述
    -e 是否存在
    在这里插入图片描述

  • -L,查看是否为软连接
    在这里插入图片描述

  • -b 判定是否是块设备
    /dev/sda1是系统里的磁盘设备,使用-b对它进行判定
    在这里插入图片描述

  • -c 字符设备
    /dev/pts/0 是当前shell 的字符设备
    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Howei__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值