shell脚本中常用的基础命令

本文介绍了shell中多个常用命令,如diff用于比较文件或文件夹差异,patch用于打补丁,cut可进行文本分割,sort能排序,uniq可处理重复行等,还介绍了tr的大小写转换、test的条件判断等功能,最后给出了两个脚本编写的要求示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

diff(比较两个文件或文件夹的不同)

用法:diff+参数+文件或文件夹
输出信息
[num1,num2] [a/b/c] [num3,num4]
num1,num2 ##第一个文件中的行
在这里插入图片描述
a ##添加
c ##更改
d ##删除
< ##第一个文件中的内容
》##第二个文件中的内容
num3,num4 ##第二个文件中的行

常用参数

-b ##忽略空格
在这里插入图片描述
-B ##忽略空行
在这里插入图片描述
-i ##忽略大小写
在这里插入图片描述
-c ##显示文件所有内容并标识不同
在这里插入图片描述
-r ##对比目录
在这里插入图片描述
-u ##合并输出
在这里插入图片描述

patch

patch 源文件 补丁文件
patch -b ##备份源文件

安装patch
dnf install patch -y

cut

-d: ##指定:为分割符
-f ##指定显示的列
-c ##截取指定的字符
测试:将不能登陆的用户列出
在这里插入图片描述

sort

在这里插入图片描述

sort file
在这里插入图片描述
-n ##纯数字排序
在这里插入图片描述
-r ##倒序
在这里插入图片描述
-u ##去掉重复
在这里插入图片描述
-o ##输出到指定文件
在这里插入图片描述
-t ##指定分割符
-k ##指定列

uniq

-c ##合并并输出统计重复个数
在这里插入图片描述
-d ##显示重复的行
在这里插入图片描述
-u ##显示唯一的行
在这里插入图片描述
测试
1.ifconfig网卡 可以显示此网卡的信息,显示网卡信息包括此网卡的使用的ip地址,请用命令过滤此ip并在输出时只显示ip,其他信息不显示
在这里插入图片描述
2.找出能登陆系统用户中UID最大的用户,并显示其名称
在这里插入图片描述

tr

tr ‘a-z’ ‘A-Z’ ##小写转换为大写
在这里插入图片描述

tr ‘A-Z’ ‘a-z’ ##大写转换为小写
在这里插入图片描述

test

test=[ ] ##[ ]就相当于test命令
“test $a = b”=["b ”=["b=["a"="$b"]
test数字对比

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

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

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

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

脚本的编写
1.要求
user_check.sh在执行时,如果脚本未检测到用户报错“ERROR:please input a username !!!”,如果用户uid=0则该用户为super user,如果uid<1000且shell不属于/bin/bash则该用户为system user,如果用户uid>1000且shell属于/bin/bash则该用户为commom user
在这里插入图片描述
2.要求
file_check.sh在执行时
如果脚本未指定检测文件,报错“未指定检测文件,清指定”
如果脚本指定检测文件不存在,报错“文件不存在”
如果文件存在时,请检测文件类型并显示到输出中
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值