Linux入门 26_Linux中shell常用的基础命令

1、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		对比后合并输出

2、patch文件修补命令

	patch 原文件 补丁文件		##使用补丁文件修改更新原始文件
	patch -b 原文件 补丁文件 	##使用补丁文件修改更新原始文件时备份原文件

3、cut数据截取命令

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

4、sort排序命令

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

5、uniq重复数据处理命令

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

1、命令练习:过滤ens3网卡上的ip并在输出时只显示该ip
思路:将ifconfig查询显示的信息通过管道,截取前两行后再截取IP所在的最后一行,对其执行cut命令指定以’'空格为分隔符号截取第10列即可得到ip
在这里插入图片描述

2、命令练习:查找能登陆系统用户中UID最大的用户,并显示其名称
思路:抓取/etc/passwd文件中以bash结尾的行(即能登陆系统的用户),将显示的信息通过管道指定以“:”为分隔符号对第3列(UID所在列)进行纯数字倒序排序,截取排序结果的第一行,对其执行cut命令指定以“:”为分隔符号截取第1列即可得到能登陆系统用户中UID最大的用户名称
在这里插入图片描述

6、tr字符转换命令

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

切换到一个空目录/mnt中,新建编辑文件westos,写入一行小写字符和一行大写字符,cat查看文件内容将显示结果通过管道进行字符转换
注意: 只能转换单个字符,如不能将’hello’转换为’test’;可以将给定范围(大写/小写)的字符转换为一个指定字符
在这里插入图片描述

7、&& || 条件判断

	&& 			##符合条件作动作
	|| 			##不符合条件作动作
实验:

1、id+用户名 可以查看系统中某用户是否存在,将命令执行结果导入垃圾箱并使用&&判断如果符合无报错信息条件则输出hello is exist,使用||判断如果不符合无报错信息条件则输出hello is not exist
在这里插入图片描述
2、编写脚本判断某一用户是否在系统中存在

在这里插入图片描述$1 表示id后面跟着的用户名
在这里插入图片描述

8、test比较命令

1、test命令的四则运算

	test = [] 			##[]就相当于test命令,但[后和]前都必须有空格
	"test $a = $b" = [ "$a" = "$b" ]
			 =		##等于
			 !=		##不等于
			 -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	 	##文件类型是否为字符设备

练习:

1、要求写一个脚本,可以用来判断输入的数值是否在0-9的区间中
在这里插入图片描述
在这里插入图片描述
2、编写脚本判断文件类型
在这里插入图片描述
在这里插入图片描述

2、sed

1、sed简介

sed 全名叫 stream editor即流编辑器,与 vim 的交互式编辑方式截然不同,作为一种非交互式编辑器,sed使用预先设定好的编辑指令对输入的文本进行编辑,完成之后输出编辑结果。其功能十分强大,加上正则表达式的支持,可以进行大量的复杂文本的编辑操作。

2、sed命令格式

p :显示

sed 参数 命令 处理对象
sed -n 5p westos 		##显示第5行
sed -n 3,5p westos 		##显示第3行到第5行
sed -n "3p;5p" westos 	##显示第3行和第5行
sed -n 1,5p westos 	##显示1-5行
sed -n '5,$p' westos 	##显示第5行到最后一行
sed -n '/^#/p' fstab 	##显示以#开头的行

d :删除

sed 5d westos 			##删除第5行
sed '/^#/d' fstab 		##把以#开头的行删除
sed '/^UUID/!d' fstab 	##删除不是以UUID开头的所有行
sed  '5,$d' westos		##删除第5行到最后一行

a :添加

sed '$a hello world' fstab		##在最后一行后添加字符串
sed '$a hello\nworld' fstab		##在最后一行后添加字符串,使用换行符隔开
sed '/^#/a hello world' fstab	##在以#开头的行后添加字符串

d)c :替换

sed '/^#/c hello world' fstab	##将所有以#开头的行替换为指定字符串
sed '5chello world' westos		##将第5行替换为指定字符串

w :把符合的行写入到指定文件中

sed '/^UUID/w westofile' westos :把westos中UUID开头的行写入westosfile中

i :插入

sed '5ihello westos' westos:在westos文件的第5行前插入指定字符串

r :整合文件

sed '5r westofile' westos:将westofile文件中的内容整合到westos文件的第5行后
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿王不想秃头

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

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

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

打赏作者

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

抵扣说明:

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

余额充值