Linux自动化运维工程师--(1)shell中常用的基础命令

Linux自动化运维工程师

实验所用系统为Redhat-rhel8.2。


实验环境:
一台配置好网络软件仓库和IP的虚拟机

Linux自动化运维工程师–shell中常用的基础命令

一、diff 文件内容比较命令

用法:

diff [options] files|directorys

输出信息:

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

常用参数:

-b	##忽略空格
-B	##忽略空行
-i	##忽略大小写
-c	##显示文件所有内容并标示不同
-r	##对比目录
-u	##合并输出,生成补丁

实验素材:生成两个内容不同的文件
请添加图片描述
实验:
比较两个文件的不同。第二个文件的第二行比第一个文件增加了一行,内容为123。
请添加图片描述
给westos1文件内容中加一个空格。第二个文件的第一行和第二行相比第一个文件做了更改,加上-b参数可忽略空格引起的不同。
请添加图片描述
在westos1中家一个空行。第二个文件比第一个文件加了第二行和第三行,内容为123和空行。加-B参数可以忽略空行引起的不同。
请添加图片描述
将westos1中某个字母改成大写。加-i参数可以忽略大小写引起的不同。
请添加图片描述
给westos和westos1中都加上相同字符,仍有大小写区别。加参数-c,显示文件所有内容并标示不同
请添加图片描述
新建两个目录,在其中一个中新建文件,加参数-r可以对比目录的不同。
请添加图片描述

diff命令加上-u参数,可以将两个文件合并输出,重定向到一个新文件中生成补丁。
请添加图片描述

二、patch 文件修补命令

dnf install patch -y
patch  原文件 补丁文件
-b				##备份原文件

实验:
安装patch打补丁工具,对westos进行修补。
请添加图片描述
请添加图片描述

此时westos内容与westos1相同。
请添加图片描述

[注意] 如果原文件对比显示缺少,打补丁后会添加;如果原文件对比显示多出,打补丁后会减少;如果原文件对比显示更改,打补丁后会与补丁内容相同。此时,生成补丁后,默认情况下,原文件内容会被改变,并且不会备份。

如需备份原文件,则加上-b参数,原文件会被改变,但会生成备份文件,内容与原文件相同。
请添加图片描述

三、cut 数据截取命令

cut 
-d :	##指定:为分隔符
-f 		##指定显示的列 5第五列| 3,5 3和5列|3-5 3到5列|5- 第五列以后|-5 到第五列
-c		##指定截取的字符(数字用法同-f)

实验:
删除/mnt里的内容,复制/etc/passwd,编辑passwd文件,为了实验效果,删去一些内容。
截取第一列,以:分割。
请添加图片描述
截取第一列和第七列,以:分割。
请添加图片描述
截取第一列到第三列,以:分割。

请添加图片描述
截取第三列到最后一列,以:分割。

请添加图片描述
截取第一列到第三列,以:分割。
请添加图片描述

截取第一个到第四个字符。
请添加图片描述

  • 练习:过滤ens3网卡上的ip并在输出时只显示该ip
    请添加图片描述
    分解思路:
    请添加图片描述

四、sort 排序命令

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

编辑一个内容为无序数字的文件。
请添加图片描述
使用sort命令对westos进行排序。
请添加图片描述

[注意] 此时,默认以每一列的第一个字符排序。

使用sort命令以数字对westos进行排序。

请添加图片描述

使用sort命令以数字倒序对westos进行排序。
请添加图片描述

使用sort命令以数字倒序对westos进行排序并去重
请添加图片描述

使用sort命令以数字倒序对westos进行排序并去重之后输出到指定文件
请添加图片描述
对westos文件添加内容,以:将a和数字分割开。使用sort命令以-t参数指定分割符,-k参数指定排序的列对westos进行排序。
请添加图片描述
请添加图片描述

五、uniq 重复数据处理命令

此命令需配合sort使用。

-c	#合并重复并统计重复个数
-d	#显示重复的行
-u	#显示唯一的行

恢复westos文件为无序数字,可在vim内使用:%s/a://g参数统一删除a:
对重复的内容进行合并,并统计重复个数。左边一列为重复的次数,右边一列为数字排序。
请添加图片描述
对重复的内容进行合并,并显示不唯一的行的内容。即输出重复数字的内容。
请添加图片描述
重复的内容进行合并,并显示唯一的行的内容。即输出不重复数字的内容。

请添加图片描述

  • 练习:找出能登陆系统用户中UID最大的用户,并显示其名称
    请添加图片描述
    分解思路:
    请添加图片描述

六、tr 字符转换命令

tr 'a-z' 'A-Z'		##小写转大写
tr  'A-Z' 'a-z'		##大写转小写

实验:
编辑westos文件内容。
请添加图片描述
对westos文件内容进行字母大小写转换。
请添加图片描述
将westos文件中单个字母‘e’替换为‘v’。

请添加图片描述

七、&& || 条件判断

&&	##符合条件作动作
||	##不符合条件作动作
  • 练习:链接172.25.254.109,如果可以ping通,输出yes,不能则输出no。
    请添加图片描述
    或者使用脚本。
    请添加图片描述
    请添加图片描述
  • 练习:检测westos用户在系统中是否存在,存在显示westos is exist,不存在显示westos is not exist。
    请添加图片描述
    请添加图片描述
    或者:在脚本中不指定用户,通过命令行搜索的方式来找到westos用户。$1指脚本后所跟的第一串字符
    请添加图片描述
    请添加图片描述

八、test 比较命令

test = []							##[] 就相当于test命令
"test $a = $b" = [ "$a" = "$b" ]	##两边必须有空格,元素必须用引号引起来

1、test数字对比

=
!=
-eq		##等于
-ne		##不等于
-le		##小于等于
-lt		##小于
-ge		##大于等于
-gt		##大于

2、test的条件关系

-a	##并且
-o	##或者

实验:
设定a=1,b=1,使用test命令对a和b进行大小比较,并使用&&和||条件判断进行输出。
请添加图片描述

3、test对空的判定

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

实验:
设定a=1,判定a是否为空,并使用&&和||条件判断进行输出。

a=1
[ -z "$a" ] && echo yes || echo no	##判定是否为空
[ -n "$a" ] && echo yes || echo no	##判定是否不为空

请添加图片描述

  • 练习:执行脚本判断数字是否在0-9以内
    请添加图片描述
    请添加图片描述

4、test对于文件的判定

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

实验步骤:
判定文件是否存在。
请添加图片描述
判定文件类型是否是文件,是否是目录。
请添加图片描述
判定类型是否为套接字。
请添加图片描述
请添加图片描述判定是否为块设备。
请添加图片描述
判定是否为链接。
请添加图片描述
判定是否为字符设备。
请添加图片描述

  • 编写脚本完成以下条件
    file_check.sh 在执行时
    如果脚本后未指定检测文件报错“未指定检测文件,请指定”
    如果脚本后指定文件不存在报错“此文件不存在”
    当文件存在时请检测文件类型并显示到输出中
    请添加图片描述
    请添加图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值