linux shell基础(三)

8.10 shell特殊符号cut命令
8.11 sort_wc_uniq命令
8.12 tee_tr_split命令
8.13 shell特殊符号下

扩展

  1. source exec 区别 http://alsww.blog.51cto.com/2001924/1113112
  2. Linux特殊符号大全 http://ask.apelearn.com/question/7720
  3. sort并未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975

shell特殊符号总结

  • 表示任意个任意字符,? 表示任意一个字符。这两个是比较常见的通配符,windows下也常用。

shell脚本中是注释字符。终端命令提示符#默认表示root用户,普通用户是$。

\ 是脱义字符。/是斜杠,我以前会把两个符号记混。linux中斜杠使用更多一些,比如目录路径、终端命令换行等。斜杠是横杠左端被压下,我是用“先左后右”“左为尊左常用”来记忆区分这两个符号的。windows下目录路径用的分隔符号与linux相反。

| 管道符是将符号左边命令的标准输出作为符号右边的标准输入参数。管道在shell脚本中十分重要。shell脚本语言没有其他编程语言的函数库,不过shell可以调用linux安装的软件工具,尤其是集成在linux发行版的小工具。下面再介绍几个linux附带工具。

cut 文本分割工具,参数有:-d 分隔符,-f 指定段号,-c 指定第几个字符。示例cut -d ":" -f 2 a.txt就是将a.txt以冒号做标志分隔每行,然后标准输出第二段。

sort 文本排序工具,参数有:-n 以数字排序,字母和符号以零处理,-r 反序排序,-t 指定分隔符常与-k搭配使用,-kn1/-kn1,n2 指定第几段排序,先要用-t指定怎样分隔。sort工具默认用ascii码排序。

wc 文本统计工具,参数有:-l 统计行数,-m 统计字符数,-w 统计词。统计词数时是以空格区分词的,“a,b”中间没有空格(一个或多个)则按一个词算。

uniq 文本去重工具,参数有:-c统计行数。uniq经常与sort一起使用,要先排序再去重。

tee 和>类似,重定向的同时还在屏幕显示。参数-a 和>>类似,用于文本后追加。

tr 替换字符。示例tr 'a' 'b'将a替换为b。如果是大小写替换:tr '[a-z]' '[A-Z]'

split 文本切割工具,参数有:-b 指定切割后分文件大小(默认单位为字节),-l 指定切割后行数。split命令最后可以指定切割后的文件前缀,例如split -b 10M 1.txt abc切割1.txt,切割后的文件以abc开头,每个文件10M。

shell特殊符号总结

$ 变量前缀,!$ 表示上一条命令最后的参数。$ 在正则表达式中表示行尾。

; 多条命令写到一行,用分号分割。

~ 用户家目录。正则表达式中表示匹配符。

& 放到命令后面,会把命令放到后台运行。也可以表示标准输出和标准错误,例如&> 1.txt表示将标准输出和错误输出重定向到1.txt。

> >> 2> 2>> &> 是常用的重定向和重定向追加的几个形式。

[ ] 表示指定总括号中字符中的一个,例如[0-9]表示0-9任一数字,[a-zA-Z]表示任一小写或大写字母,[abc]表示a、b、c中的一个。

|| 和 && 表示逻辑,用于命令之间。command1 && command2 表示执行command1成功后才执行command2。command1 || command2 表示执行command1后执行command2,有一个命令成功则表示这个语句成功(即,如果两条命令有一条成功,则echo $?返回0)

你可能感兴趣的:(linux shell基础(三))