shell 特殊字符
* 任意个字符
? 任意一个字符
# 注释字符
\ 脱义字符
| 管道符
$ 变量前缀,!$ 组合, 正则里面表示行尾
; 多条命令写到一行, 用分号分隔
~ 用户家目录, 正则表达式表示匹配符
& 放到命令后面, 会把命令丢到后台
\>,>>,2>,2>>,&>(正确和错误重定向)
[] 指定字符中的一个,[0-9],[a-zA-Z],[abc]
|| 当前面的命令成功不执行后面的, 前面不成功才执行后面的
&& 当前面的命令不成功不执行后面的, 前面成功才执行后面哦
cut 命令
截取字符串
-d 指定分隔符,-f 指定截取指定的字段号,-c 指定第几个字符
- [root@aminglinux-02 ~]# cat /etc/passwd |head -2
- root:x:0:0:root:/root:/bin/bash
- bin:x:1:1:bin:/bin:/sbin/nologin
- [root@aminglinux-02 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1
- root
- bin
- [root@aminglinux-02 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2
- root:x
- bin:x
- [root@aminglinux-02 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3
- root:x:0
- bin:x:1
- [root@aminglinux-02 ~]# cat /etc/passwd |head -2 |cut -c 4
- t
- :
sort 命令
ASCII 码排序, 按字母顺序排序
- [root@aminglinux-02 ~]# sort /etc/passwd
- adm:x:3:4:adm:/var/adm:/sbin/nologin
- aming:x:1000:1000::/home/aming:/bin/bash
- bin:x:1:1:bin:/bin:/sbin/nologin
- chrony:x:997:995::/var/lib/chrony:/sbin/nologin
- daemon:x:2:2:daemon:/sbin:/sbin/nologin
-n 以数字排序, 字母和特殊符号默认为零
- [root@aminglinux-02 ~]# sort -n 1.txt
- [
- ]
- adm:x:3:4:adm:/var/adm:/sbin/nologin
- bin:x:1:1:bin:/bin:/sbin/nologin
- daemon:x:2:2:daemon:/sbin:/sbin/nologin
- halt:x:7:0:halt:/sbin:/sbin/halt
- lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
- mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
- operator:x:11:0:operator:/root:/sbin/nologin
- root:x:0:0:root:/root:/bin/bash
- *sdshdjhj
- shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
- sync:x:5:0:sync:/sbin:/bin/sync
- 22aaa
- 2222222aaaaaa
- 11134444
- 222221111
- 4234234252sdadhkajhkj
-r 反序排列
- [root@aminglinux-02 ~]# sort -nr 1.txt
- 4234234252sdadhkajhkj
- 222221111
- 11134444
- 2222222aaaaaa
- 22aaa
- sync:x:5:0:sync:/sbin:/bin/sync
- shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
- *sdshdjhj
- root:x:0:0:root:/root:/bin/bash
- operator:x:11:0:operator:/root:/sbin/nologin
- mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
- lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
- halt:x:7:0:halt:/sbin:/sbin/halt
- daemon:x:2:2:daemon:/sbin:/sbin/nologin
- bin:x:1:1:bin:/bin:/sbin/nologin
- adm:x:3:4:adm:/var/adm:/sbin/nologin
- }
-t 分隔符,-kn1/-kn1,n2
wc 命令
-l 统计行数
- [root@aminglinux-02 ~]# wc -l 1.txt
- 23 1.txt
-m 统计字符数
-w 统计词组数, 用空白字符区分
uniq 命令
去重,-c 统计行数几行去重
- [root@aminglinux-02 ~]# sort 2.txt
- 1
- 1
- 123
- 123
- 2
- abc
- abc 111,222
- [root@aminglinux-02 ~]# sort 2.txt |uniq
- 1
- 123
- 2
- abc
- abc 111,222
- [root@aminglinux-02 ~]# sort 2.txt |uniq -c
- 1
- 2 1
- 2 123
- 1 2
- 1 abc
- 1 abc 111,222
tee 命令
和 > 类似, 重定向的同时还在屏幕显示
- [root@aminglinux-02 ~]# sort 2.txt |uniq -c> a.txt
- [root@aminglinux-02 ~]# sort 2.txt |uniq -c |tee a.txt
- 2 1
- 2 123
- 1 2
- 1 abc
- 1 abc 111,222
加 - a 和 >> 类似, 追加并显示追加的内容
tr 替换字符
- [root@aminglinux-02 ~]# echo "aminglinux" |tr '[al]' '[AL]'
- AmingLinux
- [root@aminglinux-02 ~]# echo "aminglinux" |tr '[a-z]' '[A-Z]'
- AMINGLINUX
split 命令
-b 以文件大小切割, 后面加文件名, 还可以在后面指定切割后的文件名前缀
-l 以行数大小切割, 后面加文件名, 还可以在后面指定切割后的文件名前缀
- [root@aminglinux-02 test]# split -b 100k q.txt abc.
- [root@aminglinux-02 test]# ls
abc.aa abc.ab abc.ac q.txt
- [root@aminglinux-02 test]# split -l 1000 q.txt abc.
- [root@aminglinux-02 test]# ls
abc.aa abc.ab abc.ac abc.ad abc.ae abc.af abc.ag q.txt
测试 http://ask.apelearn.com/question/5437
来源: http://www.bubuko.com/infodetail-2574035.html