Linux5.4 shell特殊符号及管道相关命令

特殊符合

        1. * 任意个任意字符
	2. ? 任意一个字符
	3. # 注释字符
	4. \  脱义字符
	5. |  管道符(把前面命令在结果交给后面命令)
	6. $ 变量前缀,正则表示行位
	7. ; 多行命令一行输入,分割用
	8. ~用户家目录,正则表示匹配符
	9. &放到命令后,会把命令丢到后台
	10.  >  >>   2>  2>>   &>
	11. []指定字符中的一个,[0-9][a-zA-Z][abc]
	12. ||   &&    
        || 在shell中是或者的意思,第一条不成功就执行第二条,成功就不在执行第二条      
        &&  第一条成功才执行第二条
        

作业控制

  ctrl  z  暂停一个任务

  比如,在vi编辑文档情况下,一般模式,可以ctrl  z暂停该任务,进行其他操作。

  使用fg可以再调用刚刚的vi到前台。

[root@localhost tmp]# jobs
[1]-  已停止               vi 1.txt
[2]+  已停止               vi 2.txt

  使用bg放到后台。放到后台的区别是我可以执行其他命令,放到前台的区别是我可以操作这个命令。

  命令+&  直接放到后台

cut截取分割

# -d分隔符  
# -f指定段号
# -c指定第几个字符,使用-c就不要使用-d -f
[root@chy002 tmp]# head -2 passwd.txt |cut -d ':' -f 2,4,7
x:0:/bin/bash
x:1:/sbin/nologin
[root@chy002 tmp]# head -2 passwd.txt |cut -c  2,4,7
ot:
i:1

sort排序

#sort常与uniq【去重复】一起用
#-n  以数字排序,字母或者特殊符号认为0
#-r   反序
#-t   分隔符,针对第几段排序,与-k连用  -kn1,n2【很少用】
[root@chy002 tmp]# head -4 passwd.txt  |sort -n
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
root:x:0:0:root:/root:/bin/bash
[root@chy002 tmp]# head -4 passwd.txt  |sort -r
root:x:0:0:root:/root:/bin/bash
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
[root@chy002 tmp]# head -4 passwd.txt  |sort -t ':' -k3
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

wc 统计行数

#-l    统计行数
#-m  统计字符数,会算上隐藏字符
#-w  统计词数,以空白字符分割词
[root@chy002 tmp]# head -4 passwd.txt  |wc -m
142
[root@chy002 tmp]# head -4 passwd.txt  |wc -l
4
[root@chy002 tmp]# head -4 passwd.txt  |wc -w
4
[root@chy002 tmp]# cat !$
cat 234234.txt
123
asdf werr,asdf
[root@chy002 tmp]# wc -w !$
wc -w 234234.txt
3 234234.txt


#cat -A查看隐藏字符,其中的换行符
[root@chy002 tmp]# cat -A passwd.txt| head -4
root:x:0:0:root:/root:/bin/bash$
bin:x:1:1:bin:/bin:/sbin/nologin$
daemon:x:2:2:daemon:/sbin:/sbin/nologin$
adm:x:3:4:adm:/var/adm:/sbin/nologin$

uniq去重

# 仅仅对挨着的两行相同的去重,所以需要先排序。
# -c    统计行数
[root@chy002 tmp]# cat !$
cat 234234.txt
123
123
345
456
asdfb
345
02
asdf werr,asdf
[root@chy002 tmp]# sort !$|uniq -c
sort 234234.txt|uniq -c
      1 02
      2 123
      2 345
      1 456
      1 asdfb
      1 asdf werr,asdf

tee命令

# 与输出重定向>类似,重定向到后面所跟文件中,同时屏幕显示。
# -a   追加
[root@chy002 tmp]# sort 234234.txt|uniq -c| tee ty.txt
      1 02
      2 123
      2 345
      1 456
      1 asdfb
      1 asdf werr,asdf
[root@chy002 tmp]# cat ty.txt
      1 02
      2 123
      2 345
      1 456
      1 asdfb
      1 asdf werr,asdf

tr替换字符

[root@chy002 tmp]# echo "chyuanliulinux" |tr 'l' 'L'
chyuanLiuLinux
[root@chy002 tmp]# echo "chyuanliulinux" |tr 'li' 'L'
chyuanLLuLLnux
[root@chy002 tmp]# echo "chyuanliulinux" |tr 'li' 'LI'
chyuanLIuLInux
[root@chy002 tmp]# echo "chyuanliulinux" |tr 'a-z' 'A-Z'
CHYUANLIULINUX

split切割

# -b 大小【默认单位字节】
# -l 行数
# 如果不指定目标文件名,则会以xaa   xab   ...这样的文件名存取切割后的文件。可以指定目标文件名

[root@chy002 ty]# du -sh ty.txt
244K    ty.txt
[root@chy002 ty]# split -b 50k ty.txt
[root@chy002 ty]# ls
ty.txt  xaa  xab  xac  xad  xae
[root@chy002 ty]# du -sh x*
52K     xaa
52K     xab
52K     xac
52K     xad
44K     xae
[root@chy002 ty]# split -b 50k ty.txt chy
[root@chy002 ty]# ls
chyaa  chyab  chyac  chyad  chyae  ty.txt

 

posted @ 2017-11-17 22:28  chyuanliu  阅读(749)  评论(0编辑  收藏  举报