当前位置: 代码迷 >> 综合 >> shell中常用的基础命令(diff、patch、cut、sort、tr、test)
  详细解决方案

shell中常用的基础命令(diff、patch、cut、sort、tr、test)

热度:21   发布时间:2023-12-24 23:12:58.0
  • Shell是指“为使用者提供操作界面”的软件(command interpreter,命令解析器),它接收用户命令,然后调用相应的应用程序。程序是由数据和逻辑组成的,脚本其实就是一个文本,对于遇到文本的升级,可以通过分析对比脚本的不同,然后进行打补丁。

一、diff

用法:diff [options] files|directorys
输出信息: [num1,num2][a|c|d][num3,num4]
num1,num2 :第一个文件中的行
a :添加
c :更改
d :删除
< :第一个文件中的内容
:第二个文件中的内容
num3,num4 :第二个文件中的行

  • 编辑westos和westos.new 两个文件
    diff westos westos.new 可以看到两个文件的不同,表示第一个文件中的第二行添加一个空行便可和第二个文件一样;
    在这里插入图片描述
    给westos.new 第二行后面加一个空格;
    -b :忽略空格
    在这里插入图片描述
    表示第一个文件的第三行删除linux,即可和第二个文件相同
    在这里插入图片描述
    表示第二个文件的第二行发生了更改;
    -c :显示文件所有内容并标示不同
    在这里插入图片描述
    -B :忽略空行
    在这里插入图片描述
    在/westosdir1目录下建立文件;
    -r :对比目录
    在这里插入图片描述
    -u :合并输出
    在这里插入图片描述
    生成补丁文件
    在这里插入图片描述

二、patch

  • 输入命令 dnf install path -y,来安装patch软件(打补丁的工具);
    输入命令 patch westos westos.path 即可用补丁文件来为 westos 文件补全信息;但是之前的文件会被替代;
    在这里插入图片描述
    -b :备份原文件,此时westos.orig就是源文件(westos补丁之前生成的副本)
    在这里插入图片描述
    在这里插入图片描述

三、cut

  • 将/etc/passwd 文件复制到 /mnt 目录,可以用head命令截取所需要的信息
    在这里插入图片描述
    -d : 指定:为分隔符
    -f :指定显示的列,6: 第6列,1-3:第1-3列在这里插入图片描述
    截取第一列和第三列;
    截取第五列之后
    在这里插入图片描述
    截取到第3列
    在这里插入图片描述
    -c :指定截取的字符(数字用法同-f)
    在这里插入图片描述
  • 测试:ifconfig 网卡: 可以显示此网卡的信息, 显示信息中包含此网卡使用的ip地址, 请用命令过滤此ip并在输出时只显示ip其他信息不显示;( (文件存储在硬盘中,程序运行时先要把数据调入内存,这需要时间,所以不能把ifconfig ens3 输出重定向到文件) )
    在这里插入图片描述

四、sort

  • westos文件内容如下
    在这里插入图片描述
    -n :纯数字排序;
    -r :倒叙
    在这里插入图片描述
    -u :去掉重复
    在这里插入图片描述
    westos文件内容如下
    在这里插入图片描述
    -t :指定分隔符
    -k :指定排序的列
    在这里插入图片描述
    倒序
    在这里插入图片描述
    -o :输出到指定文件(/mnt/lr 文件)
    在这里插入图片描述
    westos文件内容如下
    在这里插入图片描述
    uniq -d :显示重复的行;
    -u :显示唯一的行;
    -c :合并重复并统计重复个数
    在这里插入图片描述
    测试:1、找出westos文件中出现次数最多的数字
    方法一:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    方法二:
    在这里插入图片描述
    2、找出能登陆系统用户中UID最大的用户,并显示其名称;
    过滤passwd文件中以bash结尾的行
    在这里插入图片描述

五、tr

  • tr ‘a-z’ ‘A-Z’ :小写转大写
    tr ‘A-Z’ ‘a-z’ :大写转小写
    在这里插入图片描述
    在这里插入图片描述
    && :符合条件作动作
    || :不符合条件作动作
    在这里插入图片描述
    **测试:**1、编写一个脚本,判断用户是否存在
    在这里插入图片描述
    2、编写一个脚本,测试主机能否ping通
    在这里插入图片描述

六、test

test = [] : [] 就相当于test命令
“test $a = b"=["b" = [ "b"=["a” = “$b” ]

  • test数字对比
    =
    !=
    -eq :等于
    -ne :不等于
    -le :小于等于
    -lt :小于
    -ge :大于等于
    -gt :大于
    在这里插入图片描述
    test的条件关系
    -a :并且
    -o :或者
    在这里插入图片描述
    !:条件成立为假
    在这里插入图片描述
    unset:不设置c的值;
    test对空的判定
    -n :nozero 判定内容不为空
    -z :zero 判定内容为空
    在这里插入图片描述
  • test对于文件的判定
    -i:查看文件节点号;
    ln (硬链接),westos和westosfile是相同的
    在这里插入图片描述
    -ef :文件节点号是否一致(硬链)
    -nt :文件1是不是比文件2新
    -ot :文件1是不是比文件2老
    在这里插入图片描述
    重新建立一个文件
    在这里插入图片描述
    -d :目录
    -S :套结字
    在这里插入图片描述
    ln -s (软链接);
    -L :软连接
    在这里插入图片描述
    -e :存在
    -f :普通文件
    在这里插入图片描述
    -b :快设备
    -c :字符设备
    在这里插入图片描述
    **测试:**编写脚本完成以下条件
    file_check.sh 在执行时,如果脚本后未指定检测文件报错“未指定检测文件,请指定”,如果脚本后指定文件不存在报错“此文件不存在”,当文件存在时请检测文件类型并显示到输出中
    在这里插入图片描述
    测试脚本
    在这里插入图片描述
  相关解决方案