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

测试