shell中的基础命令(diff patch cut sort uniq test)

    技术2022-07-12  89

    实验环境的配置:

    添加一块硬盘: 、 目前该主机为双硬盘主机:

    装虚拟化软件:

    当ks自动安装脚本存在,网络资源存在dhcp存在,安装虚拟机仍然需要重复选择才能进入安装界面: 进入安装界面重复之前的安装选择操作

    为了减少重复操作,选用更简便的方法进行安装,进行如下操作: 可用man virt-install 获取帮助 执行此命令即可开始自动安装:

    1.diff 对比不同

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

    在westos中编辑hello westos,并将westos中的内容导入westos1中,使用diff westos westos1命令查看二者区别,无任何输出,表示二者并无差异: 在westos1的第二行中添加空格: 在westos的第一行中添加空格:

    常用参数:

    diff -b忽略空格diff -B忽略空行diff -i忽略大小写diff -c显示文件所有内容并标识不同diff -r对比目录diff -u合并输出 忽略空格: 忽略空行 修改westos1中的hello westos为Hello westos 忽略大小写: 显示文件所有内容并标识不同:对比目录 合并输出 -合并输出 其中westos.path为补丁文件,此处需要安装patch软件

    2.patch

    yum install patch -y patch 原文件 补丁文件给原文件打补丁patch -b 原文件 补丁文件备份原文件

    给原文件westos打补丁(未备份原文件,此处打完补丁后westos与westos1完全一致,原本的westos被westos1替换) 备份原文件 备份后westos.orig为原文件的备份

    3.cut

    -d :指定:为分隔符-f指定显示的列-c指定截取的字符(用法同-f)-b指定显示字节- -complement反选–output-delimiter=分隔符指定输出的分隔符号

    -f与-c用法相同,此处只写了一种

    -f 5显示第5列-f 2 ,5显示第2列和第5列-f 2-5显示2到5列-f 5-显示第5列以后-f -5显示到第5列cut -d " " -f 2 westos --complement显示除了第二列的内容 以此文件为例:

    查看第一列: 查看第一列到第三列: 查看第一列和第三列 截取1-4 字符 截取1和4字符 指定空格为分隔符,显示第一列、第二列 显示除了第二列以外的内容 指定输出的分隔符号为@ 指定输出的分隔符号为空格 只显示第一个字符 只显示第五个字符之后的内容 只显示到第五个字符

    4.sort

    sort -n纯数字排序sort -r倒叙sort -u去掉重复sort -o输出到指定文件sort -t指定分隔符sort -k指定排序的列 以此文件为例 排序(该文件中将第一个数字排序) 纯数字排序 倒叙 去掉重复 输出到指定文件file中 以此文件为例 指定冒号为分隔符,按照第二列顺序排序:指定冒号为分隔符,按照第二列数字顺序排序:

    5.uniq

    -c合并重复并统计重复个数-d显示重复的行-u显示唯一的行 以如下文件为例: 合并重复并统计重复个数 显示重复的行 显示唯一的行

    练习:

    【1】 ls -l目录,可以显示目录中所有文件的属性,请按照文件大小进行排序并找出做大的2个文件并显示器名称

    方法一: -方法二:

    5.tr

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

    6.&& 与 | |

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

    使用该脚本举例:

    7.test

    test = [] ##[] 就相当于test命令 "test $a = $b" = [ "$a" = "$b" ]

    也可以将test替换成“[ ]”

    != 不等于 条件反选 【1】test数字对比 -eq等于-ne不等于le小于等于-lt小于-ge大于等于-gt大于

    【2】test的条件关系

    -a并且-o或者

    【3】test对空的判定

    -n nozero判定内容不为空-z zero判定内容为空

    【4】test对于文件的判定

    -ef文件节点号是否一致(硬链)-nt文件1是不是比文件2新-ot文件1是不是比文件2老-d是否为目录-S套接字-L软链接-e存在-f普通文件-b块设备-c字符设备 文件节点号是否一致 westos是否比westos1新 westos是否比westos1老 /mnt是否为目录 套接字 软连接 文件是否存在 块设备 普通文件 字符设备

    练习:

    编写脚本完成以下条件:

    file_check.sh在执行时,如果脚本后 未指定检测文件报错“未指定检测文件,请指定”,如果脚本后指定检测文件不存在报错“此文件不存在“,当文件存在时请检测文件类型并显示输出中
    Processed: 0.009, SQL: 9