Shellshell中的常用基础命令
Posted S4061222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shellshell中的常用基础命令相关的知识,希望对你有一定的参考价值。
一、 diff
实验环境:
1.用法:
- 用法
diff [options] files | directorys - 输出信息:
[num1,um2] [a|c|d] [num3,num4]
字符 | 含义 |
---|---|
num1,num2 | 第一个文件中的行 |
a | 添加 |
c | 更改 |
d | 删除 |
< | 第一个文件中的内容 |
> | 第二个文件中的内容 |
num3,num4 | 第二个文件中的行 |
diff westos westos.new ##westos文件添加westos.new文件中的第3行,内容一致
2a3
表示westos文件的第2行,westos.new文件的第3行
>
表示westos.new文件包含,westos文件不包含
diff westos westos.new ##westos文件修改第2行,和 westos.new 文件一致
2c3
表示westos文件的第2行,westos.new文件的第2行,westos文件添加
<
表示westos文件
>
表示westos.new文件
diff westos.new westos ##westos.new删除第3行,与westos一致
3d2
表示westos.new 文件的第3行,westos 文件的第2行,
<
表示westos.new文件
2.常用参数
参数 | 含义 |
---|---|
-b | 忽略空格 |
-B | 忽略空行 |
-i | 忽略大小写 |
-c | 显示文件所有内容并标示不同 |
-r | 对比目录 |
-u | 合并输出 |
diff -b westos westos.new ##忽略空格对比信息
diff -b westos westos.new ##忽略空行对比信息
diff -i westos westos.new ##忽略大小写对比信息
diff -i westos westos.new ##显示所有的对比信息
diff -r westos westos.new ##对比深层目录的内容
diff -u westos westos.new ##合并信息
二、 patch
1. diff -u westos westos.new > westos.path ##合并的信息输出成补丁文件
2. patch 原文件 布丁文件
用补丁文件对原文件补全信息;之前的文件会被替代
3. patch -b westos westos.new
用补丁文件对westos文件补全信息;生成一个 .orig 的源文件(备份)
三、cut
实验环境:
参数 | 含义 |
---|---|
-d : | 指定 : 为分割符 |
-f | 指定显示的列( 5第五列/ 3,5 3和5列 / 3-5 3到5列/ 5- 第五列以后 /-5 到第五列 ) |
-c | 指定截取的字符(数字用法同-f) |
cut -d : -f 6 passwd ##用 : 来分割,显示第6列信息
cut -d : -f 1-3 passwd ##用 : 来分割,显示第1-3列信息
cut -d : -f 1,3 passwd ##用 : 来分割,显示第1和3列信息
cut -d : -f -3 passwd ##用:分割,显示第3列之前的信息
cut -d : -f 3- passwd ##用:分割,显示第3列之后的信息
cut -c 1-4 passwd ##截取 1-4 个字符信息
四、sort
实验环境:
参数 | 含义 |
---|---|
-n | 纯数字排序 |
-r | 倒叙 |
-u | 去掉重复 |
-o | 输出到指定文件 |
-t | 指定分割符 |
-k | 指定排序的列 |
1. sort westos ##第一列排序
2. sort -r westos ##第一列倒叙
3. sort -rn westos ##纯数字倒叙排序
实验环境:
4. sort -t:-k 2 -n westos ##用分割符:对内容进行分割,对第2列按照纯数字进行排序
5. sort -t:-k 2 -n westos ##用分割符:对内容进行分割,对第2列按照纯数字进行倒叙排序
6. sort -t:-k 2 -nru westos ##用分割符:对内容进行分割,对第2列按照纯数字进行倒叙排序,指定到file文件
五、uniq
参数 | 含义 |
---|---|
-c | 合并重复并统计重复个数 |
-d | 显示重复的行 |
-u | 显示唯一的行 |
1. sort -n westos | uniq -d ##纯数字排序,显示重复的行
2. sort -n westos | uniq -u ##纯数字排序,显示唯一的行
3. sort -n westos | uniq -c ##纯数字排序,合并重复并统计重复个数
六、tr
命令 | 含义 |
---|---|
tr ‘a-z’ ‘A-Z’ | 小写转大写 |
tr ‘A-Z’ ‘a-z’ | 大写转小写 |
替换单个字符
七、test
test = [ ] [ ]就相当于 test 命令
test "$a" "$b" = [ "$a" = "$b" ]
1.test数字对比
字符 | 含义 |
---|---|
! | 取反 |
!= | 不等于 |
-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. && 符合条件作动作
2. || 不符合条件作动作
九、练习
1. 截取ens3网卡的ip
ifconfig ens3 | grep "inet" | cut -d " " -f 10
ifconfig ens3 | cut -d " " -f 10 | head -n2 |tail -n1
ifconfig ens3 | awk '/inet\\>/{print $2}'
2. 显示出现次数最多的数字
方法一:
方法二:
3. 找出能登陆系统用户中UID最大的用户,并显示其名
4. 判断 westos 用户是否存在
5. ping ip,ping不通,输出ping is up,ping通,输出ping is down
6. file_check.sh脚本:
编写脚本完成以下条件
file_check.sh 在执行时
如果脚本后未指定检测文件报错“未指定检测文件,请指定”
如果脚本后指定文件不存在报错“此文件不存在”
当文件存在时请检测文件类型并显示到输出中
sh -x
脚本运行多少次,才能找到匹配结果输出
以上是关于Shellshell中的常用基础命令的主要内容,如果未能解决你的问题,请参考以下文章