特殊符号
*任意个任意字符
?任意一个字符
#注释字符,#后面的命令不生效
\脱义字符,取消特殊字符的原意
[root@zyshanlinux-01 ~]# a=1 [root@zyshanlinux-01 ~]# b=2 [root@zyshanlinux-01 ~]# c='$a$b' [root@zyshanlinux-01 ~]# echo $c $a$b [root@zyshanlinux-01 ~]# c=\$a\$b ##脱义 [root@zyshanlinux-01 ~]# echo $c $a$b
|管道符
几个和管道有关的命令,这些命令并没有更改文件的内容。
1、cut分割
cut命令用来显示行中的指定部分,删除文件中指定字段。cut经常用来显示文件的内容,类似于下的type命令。
说明:该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指 明的文件,将它们的内容输出到标准输出上;其二是连接两个或多个文件,如cut fl f2 > f3将把文件fl和几的内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件f3中。
当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
语法
cut (选项) (参数)
选项
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;-f:显示指定字段的内容;-c:仅显示行中指定范围的字符;
参数
文件:指定要进行内容过滤的文件。
示例
[root@zyshanlinux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1 root bin [root@zyshanlinux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2 root:x bin:x [root@zyshanlinux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3 root:x:0 bin:x:1 [root@zyshanlinux-01 ~]# cat /etc/passwd |head -2 |cut -c 4 t :
2、sort排序
sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。
ASCII码排序
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。 [1] 请注意,ASCII是American Standard Code for Information Interchange缩写,而不是ASCⅡ(罗马数字2),有很多人在这个地方产生误解。
语法
sort (选项) (参数)
选项
-n:依照数值的大小排序;
-r:以相反的顺序来排序;
-t<分隔字符>:指定排序时所用的栏位分隔字符; -kn1/-kn1,2
参数
文件:指定待排的文件列表。
示例
[root@zyshanlinux-01 ~]# sort /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
3、wc计算数字
wc命令用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。
语法
wc (选项) (参数)
选项
-l或——lines:只显示行数;-m: 统计字符数;-w或——words:只显示字数;-c或--bytes或——chars:只显示Bytes数;
参数
文件:需要统计的文件列表。
示例
[root@zyshanlinux-01 ~]# wc -l 1.txt10 1.txt
[root@zyshanlinux-01 ~]# wc -m 2.txt8 2.txt[root@zyshanlinux-01 ~]# cat -A 2.txtawk$wwc$[root@zyshanlinux-01 ~]# wc -w 2.txt2 2.txt
4、uniq去重
uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用。
语法
uniq (选项) (参数)
选项
-c或——count:在每列旁边显示该行重复出现的次数;
参数
输入文件:指定要去除的重复行文件。如果不指定此项,则从标准读取数据;输出文件:指定要去除重复行后的内容要写入的输出文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。
示例
[root@zyshanlinux-01 ~]# sort 2.txt |uniq ##先排序,再去重复,否则去重复失败 123 awk c ww
5、tee和>类似,重定向的同时还在屏幕显示
tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上。
语法
tee (选项) (参数)
选项
-a:向文件中重定向时使用追加模式;-i:忽略中断(interrupt)信号。
参数
文件:指定输出重定向的文件。
示例
[root@zyshanlinux-01 ~]# sort 2.txt |uniq -c > a.txt [root@zyshanlinux-01 ~]# cat a.txt 1 2 123 1 awk 1 c 2 ww [root@zyshanlinux-01 ~]# > a.txt ##清空a.txt的内容 [root@zyshanlinux-01 ~]# cat a.txt [root@zyshanlinux-01 ~]# sort 2.txt |uniq -c |tee a.txt 1 2 123 1 awk 1 c 2 ww [root@zyshanlinux-01 ~]# cat a.txt 1 2 123 1 awk 1 c 2 ww [root@zyshanlinux-01 ~]# sort 2.txt |uniq -c |tee -a a.txt ##与>>追加类似 1 2 123 1 awk 1 c 2 ww [root@zyshanlinux-01 ~]# cat a.txt 1 2 123 1 awk 1 c 2 ww 1 2 123 1 awk 1 c 2 ww
6、tr替换字符,tr'a''b',大小写替换tr'[a-z]''[A-Z]'
tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。
语法
tr (选项) (参数)
选项
-c或——complerment:取代所有不属于第一字符集的字符;-d或——delete:删除所有属于第一字符集的字符;-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。
参数
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;字符集2:指定要转换成的目标字符集。
示例
[root@zyshanlinux-01 ~]# echo "zyshanlinux" |tr '[al]' '[AL]' zyshAnLinux [root@zyshanlinux-01 ~]# echo "zyshanlinux" |tr '[zl]' '[ZL]' ZyshanLinux [root@zyshanlinux-01 ~]# echo "zyshanlinux" |tr 'z' 'Z' Zyshanlinux
7、split切割,-b大小(默认单位字节),-l行数
split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
选项
-b:值为每一输出档案的大小,单位为 byte。-C:每一输出档中,单行的最大 byte 数。-d:使用数字作为后缀。-l:值为每一输出档的列数大小。
示例
[root@zyshanlinux-01 ~]# split -b 100M bigfile [root@zyshanlinux-01 ~]# split -l 1000 bigfile
$变量前缀,!$组合,正则里面表示行尾
;多条命令写到一行,用分号分割
~用户家目录,后面正则表达式表示匹配符
&放到命令后面,会把命令丢到后台
> >> 2> 2>> &>
[]指定字符中的要给,[0-9],[z-zA-Z],[abc]
||和&& ,用于命令之间,||类似或,&&类似与
[root@zyshanlinux-01 ~]# ls 1.txt ||wc -l 1.txt ##前一条命令成功,不执行后一条命令 1.txt [root@zyshanlinux-01 ~]# ls 1a.txt ||wc -l 1.txt ##前一条命令失败,执行后一条命令 ls: 无法访问1a.txt: 没有那个文件或目录 10 1.txt [root@zyshanlinux-01 ~]# ls 1.txt &&wc -l 1.txt ##前一条命令成功,执行后一条命令 1.txt 10 1.txt [root@zyshanlinux-01 ~]# ls 1a.txt &&wc -l 1.txt ##前一条命令失败,不执行后条命令 ls: 无法访问1a.txt: 没有那个文件或目录
相关测验题目(必须要做):http://ask.apelearn.com/question/5437
简易审计系统(必须要预习): http://www.68idc.cn/help/server/linux/2014042190951.html
扩展:
关于PROMPT_COMMAND环境变量的含义 http://www.linuxnote.org/prompt_command-environment-variables.html
source exec 区别 http://alsww.blog.51cto.com/2001924/1113112
Linux特殊符号大全http://ask.apelearn.com/question/7720
sort并未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975