一篇文章带你学会shell中常用的基础命令
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
前言
本章节开始我带领着大家去学习shell相关的知识点在这章内容开始前我们先思考一个问题
程序由什么组成shell由什么组成
程序由数据和逻辑组成。shell由命令和采集到的程序组成过滤数据用的命令是这章节的主要内容。
一、diff
用于比较文件的差异
用法
diff [options] files|directorys
输出信息
[num1,num2] [a|c|d] [num3,num4]
num1,num2 ##第一个文件中的行
a ##添加
c ##更改
d ##删除
< ##第一个文件中的内容
> ##第二个文件中的内容
num3,num4 ##第二个文件中的行
常用参数
-b | 忽略空格 |
-B | 忽略空行 |
-i | 忽略大小写 |
-c | 显示文件所有内容并标示不同 |
-r | 对比目录 |
-u | 合并输出 |
二、patch
patch 原文件 布丁文件
-b ##备份原文件
patch后原文件就没有了使用-b参数可以备份原文件
三、cut
-d | 指定 为分隔符 |
-f | 指定显示的列 |
-c | 指定截取的字符 |
3,5代表第三及第五
四、sort
-n | 纯数字排序 |
---|---|
-r | 倒序 |
-u | 去掉重复 |
-o | 输出到指定文件 |
-t | 指定分割符 |
-k | 指定排序的列 |
指定第几列
找出能登陆系统用户中UID最大的用户,并显示其名称
五、uniq
-c | 合并重复并统计重复个数 |
---|---|
-d | 显示重复的行 |
-u | 显示唯一的行 |
六、tr
tr ‘a-z’ ‘A-Z’ | 小写转大写 |
---|---|
tr ‘A-Z’ ‘a-z’ | 大写转小写 |
七、test
-eq 等于
-ne 不等于
-le 小于等于
-lt 小于
-ge 大于等于
-gt 大于
-a 并且
– –
-o 或者
-n nozero判定内容不为空
-z zero判定内容为空
-ef 文件节点号是否一致硬链接
-nt 文件1是不是比文件2新
– –
-ot 文件1是不是比文件2老
-d 目录
-S 套接字
-L 软链接
-e 存在
-f 普通文件
-b 块设备
-c 字符设备
test的两种写法
test = [ ] ##[ ] 就相当于test命令
"test $a = $b" = [ "$a" = "$b" ]
test数字对比
=
!=
-eq ##等于
-ne ##不等于
-le ##小于等于
-lt ##小于
-ge ##大于等于
-gt ##大于
test的条件关系
-a ##并且
-o ##或者
test对空的判定
-n ##nozero 判定内容不为空
-z ##zero 判定内容为空
-ef ##文件节点号是否一致硬链接
-nt ##文件1是不是比文件2新
-ot ##文件1是不是比文件2老
-d ##目录
-S ##套接字
-L ##软链接
-e ##存在
-f ##普通文件
-b ##块设备
-c ##字符设备
八、&& ||
条件判断
&& | 符合条件作动作 |
|| | 不符合条件作动作 |
也可以写成文档
vim test
练习
下面来做个小练习检测一下本节课的学习质量
执行下列脚本来判断用户类型
test.sh 用户
当sh test.sh xxx时判断你当前的登录用户id根据用户类型判断并显示不同内容
0 super user
1-999 system user
1000 common user
具体如下