linux shell中的特殊符号
*:代表零个或多个任意字符
?:只代表一个任意字符,不管是数字还是字母,只要是一个字符,都能匹配出来
#:表注释说明,即后面的内容都会被忽略
如:
root@centos001:~# a=1
root@centos001:~# b=2
root@centos001:~# c=\$a\$b
root@centos001:~# echo $c
$a$b
****:脱义字符,会将后面的特殊符号还原为普通字符
几个与特殊符号**|**相关的命令
注:这些操作都不会改变文件的内容,相当于一种读取手段
命令cut:用于截取某个字段
语法:cut 【选项】;
-d:后面跟分隔字符,分隔字符要用单引号(实际双引号也行)括起来。
-c:后面接的是第几个字符。
-f:后面接的是第几个区块。
*后面会学到专门用于分割的命令awk
root@centos001:~# cat /etc/passwd |head -2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
root@centos001:~# cat /etc/passwd |head -2 |cut -d ":" -f 1 //截取在冒号第一冒号前面的字符
root
bin
root@centos001:~# cat /etc/passwd |head -2 |cut -d ":" -f 1,2
root:x
bin:x
root@centos001:~# cat /etc/passwd |head -2 |cut -d ":" -f 1-3
root:x:0
bin:x:1
root@centos001:~# cat /etc/passwd |head -2 |cut -c 4 //截取第4个字符
t
:
命令sort:用于排序
注:当sort不加任何选项的时候,将会从首字符依次向后按ASCII码值进行比较,最后按升序排序
-n:表示纯数字排序 ,字母会被认为是零
-r:反向排序
-t:后面跟分隔字符,同cut -d
-kn1,n2:表示由n1区间排序到n2区间
命令wc:用于统计文档的行数、字符数或词数
-l:统计行数
-m:统计字符数,会连隐藏的字符一起统计
-w:统计词数,以空格作为分割符号
命令 uniq: 用来删除重复的行,需要先给文件排序,不然不管用
-c: 用于统计重复的行
命令 tee:命令后跟文件名,类似重定向> 但是多一个功能,在屏幕显示
命令 tr: 用于替换字符
常用于把小写字母变成大写字母,
如tr '[a-z]' '[A-Z]'
命令 split: 用于切割文档
-b: 按大小分割文档,单位是byte
-l: 按行数来分割文档 注:切割一个文件时系统会自动给切割后的文件分配文件名,默认x开头, 当然也可以自定义前缀名
[root@centos001 test]# split -b 1000 a.txt abc
[root@centos001 test]# ls
abcaa abcaw abcbs abcco abcdk abceg abcfc abcfy abcgu abchq abcim abcji
特殊符号
特殊符号 $ :表示变量前缀
!$:正则里表示行尾,上条命令中的最后一个变量
特殊符号 ; :换行符
当我们在一行中需要两个或这以上的命令的时候就需要用到;
特殊符号 ~ :匹配符,表示用户的家目录
特殊符号 & :放到命令后面,会把命令放到后台
重定向符号 > >> 2> 2>> &> ,取代追加
>: 取代
>>: 追加
2>: 错误重定向
2>>: 错误追加重定向
&>: 正确错误全部输入
中括号 [] :括号内为字符组合,代表其中任何一个,也可以是一个范围
**特殊符号 && 和 || **
&&:表示只有前面的命令执行成才会执行后面的命令。
||:表示或者的意思,1.当两条命令同时执行,第一跳没成功时会执行第二条;2.当第一条执行成功的时候,不会执行第二条,当然就不会有显示。
扩展