Shell脚本快速入门 (一)常用的基础命令

shell 脚本介绍

  1. shell是一种脚本语言 aming_linux blog.lishiming.net
  2. 可以使用逻辑判断、循环等语法
  3. 可以自定义函数
  4. shell是系统命令的集合
  5. shell脚本可以实现自动化运维,能大大增加我们的运维效率

下面介绍几种常用的shell命令。

1. diff

对比两个文件的不同。

用法:diff  [options]  files | directorys
编写两个文件:
在这里插入图片描述

1.vimdiff

在这里插入图片描述
在这里插入图片描述
可以直接出现两个文件的内容,并提示出不同的内容,方便我们进行更改。

2.diff westos westos.new

在这里插入图片描述
lee 表示.new文件多的内容,westos文件加上westos.new文件中的lee就一样了。
在这里插入图片描述
表示westos.new文件删除lee这一行就一样了。
在这里插入图片描述
在这里插入图片描述
c表示更改。
输出信息:
[num1,num2] [a|c|d] [num3,num4]
num1,num2    ##第一个文件中的行
a         ##添加
c         ##更改
d         ##删除
<         ##第一个文件中的内容
>         ##第二个文件中的内容
num3,num4    ##第二个文件中的行

常用参数:
-b         ##忽略空格
在这里插入图片描述
当有空格时,不会忽略,加上-b就忽略了。
-B         ##忽略空行
在这里插入图片描述
-i         ##忽略大小写
在这里插入图片描述
-c         ##显示文件所有内容并标示不同
在这里插入图片描述
-r         ##对比目录
mkdir 1 2 两个目录,给1下建立file1文件
在这里插入图片描述
-u         ##合并输出
在这里插入图片描述
表示westos文件删除Linux加上linux就一样了。
以后面的文件(westos.new)为模板进行更改。

2. patch

在这里插入图片描述
将两个文件的不同导入到另外一个文件,这个文件就叫做补丁,贴到我们想要更改的文件,就会更新文件内容,这样的方式会更快的修补文件。

yum install patch -y   安装补丁功能

用法:

patch  原文件  补丁文件

在这里插入图片描述
-b        ##备份原文件
在这里插入图片描述
. orig 就是备份的源文件。
在这里插入图片描述

3. cut

cut 命令主要用来截取数据
-d :     ##指定:为分隔符
-f      ##指定显示的列 5第五列| 3,5 3和5列|3-5 3到5列|5- 第五列以后|-5 到第五列

在这里插入图片描述
以:为分隔符,显示/etc/passwd 的第一列。
在这里插入图片描述
1,7意思为第一和第七列。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
-c     ##指定截取的字符(数字用法同-f)
在这里插入图片描述
1,4第一和第四个字符,1-4第一到4个字符。
第五列到最后。

4. sort

-n      ##纯数字排序
在这里插入图片描述
-r      ##倒叙
在这里插入图片描述
-u      ##去掉重复
在这里插入图片描述
-o      ##输出到指定文件
在这里插入图片描述
当文件有很多列时:
在这里插入图片描述
-t      ##指定分隔符
-k      ##指定排序的列
在这里插入图片描述
第二列进行了排序。

5. uniq

在这里插入图片描述
-c      #合并重复并统计重复个数
在这里插入图片描述3个2,2个12,2个78

-d      #显示重复的行
在这里插入图片描述
-u      #显示唯一的行
在这里插入图片描述

6. tr

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

7. test 对比命令

在这里插入图片描述
在这里插入图片描述
测试当a的值=b的值时输出yes,否则输出no。

test = [ ]  ## [ ] 就相当于test命令

"test $a = $b" = [ "$a" = "$b" ]

在这里插入图片描述

test数字对比

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

在这里插入图片描述在这里插入图片描述
!表示括号内的条件不成立的时候。
在这里插入图片描述


test的条件关系
-a               ##并且
在这里插入图片描述
表示当 a 大于 0 并且小于 10 时输出 yes 。

-o               ##或者
在这里插入图片描述
当两个条件都不成立的时候输出no


test对空的判定
-n                  ##nozero 判定内容不为空
在这里插入图片描述
当判定内容不为空时,输出yes,否则输出no
-z                 ##zero 判定内容为空
在这里插入图片描述
当判定内容为空时输出yes,否则输出no。


test对于文件的判定
-ef                  ##文件节点号是否一致(硬链接)
在这里插入图片描述


-nt                  ##文件1是不是比文件2新
-ot                  ##文件1是不是比文件2老
在这里插入图片描述


-d                  ##目录
在这里插入图片描述
判定 /mnt/ 是否为目录,是则输出yes。


-S                  ##套接字
在这里插入图片描述


-L                  ##软连接
在这里插入图片描述
ln -s 为软链接。-L检测文件是否为软链接。


-f                  ##普通文件
在这里插入图片描述


-b                  ##快设备
在这里插入图片描述


-c                  ##字符设备
在这里插入图片描述


-e                  ##存在
在这里插入图片描述
/mnt/file 存在则输出yes,不存在则输出no。

8. && ||

&&      符合条件作动作
||       不符合条件作动作
在这里插入图片描述
表示如果能ping通就输出yes,不符合就输出no

发布了36 篇原创文章 · 获赞 13 · 访问量 1448

猜你喜欢

转载自blog.csdn.net/thermal_life/article/details/105102825