shell中的基础命令

1、diff
用法:
diff [options] file | directorys
#对比两个文件的不同

输出信息:

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

常用参数:
-b #忽略空格
-B #忽略空行
-i #忽略大小写
-c #显示文件所有不同并且标注不同
-r #对比目录
-u #合并输出

diff westos lee
diff lee westos
在这里插入图片描述
diff -u westos lee
在这里插入图片描述
diff -b westos lee
在这里插入图片描述
diff -B westos lee
在这里插入图片描述
diff -bB westos lee
在这里插入图片描述
diff -Bi westos lee
在这里插入图片描述
diff -c westos lee
在这里插入图片描述

2、patch

patch 原文件 补丁文件
-b 备份原文件

diff -u westos lee > file.path
dnf install patch -y
在这里插入图片描述
patch westos file.path
在这里插入图片描述
patch -b westos file.path
在这里插入图片描述
3、cut

cut
-d : #指定:为分割符
-f 1 #指定第一列
-c #指定截取的字符(数字用法同f)
在这里插入图片描述
cut -d I -f 1 westos #剪切westos中以:为分隔符的第一列
在这里插入图片描述
cut -d I -f 1-3 westos #剪切westos中以:为分隔符的第一到三列
在这里插入图片描述
cut -d I -f 1,3 westos #剪切westos中以:为分隔符的第一和三列
在这里插入图片描述
cut -d I -f 3- westos #剪切westos中以:为分隔符的第三列之后
在这里插入图片描述
cut -d I -f -3 westos #剪切westos中以:为分隔符的第三列之前
在这里插入图片描述
cut -c 1-4 westos 剪切westos中的第一到四列
在这里插入图片描述
4、sort
-n #纯数字排序
-r #倒叙
-u #去掉重复
-o #输出到指定文件
-t #指定分割符
-k #指定排序的列

在这里插入图片描述
sort -n westos
在这里插入图片描述
sort -nr westos #纯数字倒叙排列
在这里插入图片描述
sort -nr westos -o westosfile #纯数字倒叙排列且输出到westosfile文件中
在这里插入图片描述
sort -n westos
在这里插入图片描述
sort -n -t : -k 2 westos
在这里插入图片描述
sort -un westos #纯数字排序且去掉重复的
在这里插入图片描述

5、uniq
-c #合并重复并统计
-d #显示重复的行
-u #显示唯一的行

sort -n westos | uniq -c
sort -n westos | uniq -d
sort -n westos | uniq -u
在这里插入图片描述
测试:
ifconfig 网卡 可以显示此网卡的信息
显示信息中包含此网卡使用的ip地址
请用命令过滤此ip并在输出时只显示ip其他信息不显示
ifconfig ens160 | head -n 2 | tail -n 1 | cut -d ’ ’ -f 10
ifconfig ens160 | cut -d ’ ’ -f 10 | sed -n ‘2p’
在这里插入图片描述
#sed -n ‘2p’ 指定第二行

6、tr
tr ‘a-z’ ‘A-Z’ #小写转大写
tr ‘A-Z’ ‘a-z’ #大写转小写
在这里插入图片描述
7、test
test = [ ] #[ ]就等于test命令
“test $a = $b” = [ “$a” = “$b” ]

test的数字对比
=
!=
-eq #等于
-ne #不等于
-le #小于等于
-lt #小于
-ge #大于等于
-gt #大于

test的条件关系
-a #并且
-o #或者

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

test对于文件的设定
-ef #文件节点号是否一致
-nt #文件1是不是比文件2新
-ot #文件1是不是比文件2老
-d #目录
-S #套接字
-L #软连接
-e #存在
-f #普通文件
-b #块设备
-c #字符设备

vim ~/.vimrc #编辑vim配置文件
set ts=2 ai #缩进为两个空格

vim中
-e#执行什么动作
32m时绿色
31m为红色
在这里插入图片描述

测试:
编写脚本完成以下操作
check_user.sh在执行时
如果脚本后面未指定用户,报错
如果脚本后面指定用户不存在,报此用户不存在
如果用户存在时,报用户存在

sh check_user.sh

[ -z "$*" ] && {    #test判断内容为空时
	echo error      #报error
}||{               #否则
id $* &> /dev/null &&{    #执行id 输入内容  若执行成功
		echo $* is exist !     #报用户存在
}||{                      #否则
	echo $* is not exist !      #报用户不存在
}
}

在这里插入图片描述

测试:
file_check.sh在执行时
如果脚本后未指定检测文件报错“未指定检测文件,请指定”
如果脚本后指定文件不存在报错 “此文件不存在”
如果文件存在时请检测文件类型并显示到输出中
在这里插入图片描述
8、条件判断
&& #前面命令执行成功
| | #否则,前面命令执行失败则

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值