1.read命令
语法: read -参数
-p:给出提示符。默认不支持"\n"换行
-s:隐藏输入的内容
-t:给出等待的时间,超时会退出read
-n:限制读取字符的个数,触发到临界值会自动执行
demo:
#!/bin/bash
echo "请输入参数"
read -p "提示符: " -t 10 param
echo "$param"
exit 0
测试结果:
[root@iZbp1e9mxelwe7pwimpw8sZ hecr]# ./test.sh
请输入参数
提示符: 测试参数
测试参数
2.grep命令
grep应用场景: 通常对数据进行 行的提取
语法: grep [选项]…[内容]…[file]
-v #对内容进行取反提取
-n #对提取的内容显示行号
-w #精确匹配
-i #忽略大小写
^ #匹配开头行首
-E #正则匹配
demo:
# 查询包含docker字符串的进程,并对宝行"grep"字符串的进行排除
[root@iZbp1e9mxelwe7pwimpw8sZ hecr]# ps -ef | grep -v "grep"| grep "docker"
root 880 1 0 2020 ? 00:41:27 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 20501 880 0 Jun16 ? 00:00:02 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 15672 -container-ip 172.17.0.2 -container-port 15672
root 20512 880 0 Jun16 ? 00:00:02 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 5672 -container-ip 172.17.0.2 -container-port 5672
root 20517 879 0 Jun16 ? 00:01:37 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/c794df1797abdee3fa839ded442cacba3f19c640f22c7532095cf4a4a1b132c2 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
3.cut命令
cut应用场景: 通常对数据进行列的提取
语法: cut [选项]…[file]
-d #指定分割符
-f #指定截取区域
-c #以字符为单位进行分割
注意: 不加-d选项,默认为制表符,不是空格
demo:
# 对ps命令查询结果取第一列
[root@iZbp1e9mxelwe7pwimpw8sZ hecr]# ps -ef | grep -v "grep"| grep "docker" | cut -d " " -f 1
root
root
root
root
4.awk命令
awk的应用场景: 通常对数据进行列的提取
语法:
awk '条件 {执行动作}'文件名
awk ‘条件1 {执行动作} 条件2 {执行动作} …’ 文件名
或awk [选项] ‘条件1 {执行动作} 条件2 {执行动作} …’ 文件名
特殊要点与举例说明:
- printf #格式化输出,不会自动换行。
- print #打印出内容,默认会自动换行
- $1 #代表第一列 $0 #代表一整行
- -F #指定分割符
- NR #行号
demo:
#打印第二列,并且换行
[root@iZbp1e9mxelwe7pwimpw8sZ hecr]# docker ps -a|awk '{print $2}'
ID
rabbitmq:management
rabbitmq:management
#当行号大于等于2时,打印第二列,并且换行.
[root@iZbp1e9mxelwe7pwimpw8sZ hecr]# docker ps -a|awk '(NR >= 2){print $2}'
rabbitmq:management
rabbitmq:management
5.sed命令
sed的应用场景: 主要对数据进行处理(选取,新增,替换,删除,搜索)
sed语法: sed [选项][动作] 文件名
参数说明:
-n或–quiet或–silent 仅显示script处理后的结果。
动作说明:
- a :新增
- c :取代
- p :打印
- s :取代
demo:
#显示第一,第二行
[root@iZbp1e9mxelwe7pwimpw8sZ hecr]# docker ps -a|awk '{print $1}'| sed -n 1,2p
CONTAINER
c794df1797ab
# 在结果的下一行新增内容
[root@iZbp1e9mxelwe7pwimpw8sZ hecr]# docker ps -a|awk '{print $1}'| sed 'a/R/新增'
CONTAINER
/R/新增
c794df1797ab
/R/新增
6.文章参考链接
a. https://www.runoob.com/linux/linux-comm-read.html
b. https://www.cnblogs.com/liuyihua1992/p/9689308.html