当前位置:   article > 正文

shell中的基础命令_shell脚本基本命令

shell脚本基本命令


前言

一、shell命令以及示例

一、diff命令

用于比较两个文件内容中的不同点也可以,将目录中的相同文件名进行比较,但是不会比较其子目录下的文件

参数作用
-a逐行比较文件内容
-B忽略空行
-b忽略空格
-c显示文件内容同时将不同点列出
-r对比目录
-u合并输出
-y并列显示输出结果
-w忽略全部空格字符
-I <指定字符串>若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异
-H比较大文件时可以加快速度
-i不检测大小写
-W指定宽度-y参数存在时用来进行制定列表的宽度

输出结果中,a表示添加,c表示更改,d表示删除

在这里插入图片描述-表示2中比1中少了这个内容+表示多了这个内容
在这里插入图片描述在这里插入图片描述<表示这个这个内容1中有2中没有

二、path命令

主要用来进行打补丁使用的

参数解释
-b备份源文件
-p表示跳过几层目录给文件打补丁

生成补丁文件时必须用新文件比较老文件才能进行正常的补丁步骤

diff -t -u  2 1 > 1.patch
patch -b -p0 1 1.patch
  • 1
  • 2

在这里插入图片描述

一个补丁文件只能进行一次补丁除非内容更换

三、sort命令

纯数字排序,使得数字进行排序

参数作用
-n纯数字排序正序
-u去处重复
-r倒叙排序
-k制定排序的列
-t制定分割副
-o输出到文件
sort -t : -n -k 3 passwd -o westos
  • 1

在这里插入图片描述

四、uniq命令

参数作用
-c将重复的数据合并
-u现实重复的行
-d显示唯一的行

五、tr命令解释

cat passwd | tr 'a-z' 'A-Z' | sort -r -k 3 -t : -o westos 
  • 1

在这里插入图片描述

六、test命令

test主要作用为条件见判断使用进行对文件的条件判断段以及对数字的条件判断时使用的

参数作用
-a并且,对于条件的判定and
-o或者,对于条件的判定or
-eq等于,对于数字的条件判定
-nq不等于,对于数字之间的条件判定
-lt小于等于,对于数字的条件判定
-le小于,对于数字的条件判定
-gt小于等于,对于数字的条件判定
-ge大于,对于与数字的条件判定
-z判定内容为空,对空的判定
-n判定内容不为空,对空的判定
-ef判定文件节点号是否一致,即是否为硬连接
-nt判定文件的生成时间,即文件1比文件2要新
-ot判定文件的生成时间,即文件1比文件2要老
-d判定是否为目录
-S判定是否为套接子
-L判定是否为软连接
-f判断是否为普通设备文件
-b判断是否为快设备
-c判断是否为字符设备

||表示不符合条件的结果&&表示符合条件的结果

二、脚本练习

一、命令测试

  1. ip addr show 网卡 可以显示此网卡的信息
    显示信息中包含此网卡使用的ip地址
    请用命令过滤此ip并在输出时只显示ip其他信息不显示
ip addr show eth0 | grep "inet\>" | cut -d " " -f 6
  • 1
  1. 找出能登陆系统用户中UID最大的用户,并显示其名称
sort -n -t : -k 3 passwd | cut -d : -f 1,3,6-7 | grep "bash$"
  • 1

二、编写脚本完成以下条件

  1. file_check.sh 在执行时
    如果脚本后未指定检测文件报错“未指定检测文件,请指定”
    如果脚本后指定文件不存在报错“此文件不存在”
    当文件存在时请检测文件类型并显示到输出中
#!/bin/bash
[ -z "$1" ] || {
[ -S $1 ] && {
echo "是一个套接子"
exit
}||
[ -L $1 ] && {
echo "是一个软连接"
exit
}||
[ -d $1 ] && {
echo "是一个目录"
exit
}||
[ -f $1 ] && {
echo "是一个文件"
exit
}
exit
}&&{
echo "请输入正确参数"
exit
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  1. 执行下列脚本来判断用户类型
    user_check.sh 用户
    用户类型为
    super user
    system user
    common user
#!/bin/bash
USR=$( id -u $1)
[ $USR -eq 0 ] && {
echo "super user"
exit
}||
[ $USR -gt 0 -a $USR -lt 1000 ] && {
echo "system user"
exit
}||
[ $USR -gt 1000 ] && {
echo "common user"
exit
}||{
echo "请输入系统存在的用户"
exit
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

总结

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/154299
推荐阅读
相关标签
  

闽ICP备14008679号