特殊符号
* 任意离字符
? 任意单字符
# 注释字符
\ 脱义字符
| 管道符
$ 变量前缀,在shell中表示调用后面的变量
!$ 命令里边表示上一条命令,在正则里面表示行尾
; 用于分多条命令
~ 用于命令则表示用户家目录,正则表达式里表示匹配符
& 放到命令后,会直接把命令放在后台运行
[ ] 指定范围或指定字符中的一个,如:[0-9],[a-z],[abc]
{ } 表示集合内的每一个
|| 用于命令之间表示 或,若前面命令执行成功则后面命令不执行
&& 用于命令之间表示 和,若前面命令执行成功则执行后面命令,
如make && make install
> 正确输出 >> 正确追加
2> 错误输出 2>> 错误追加
>+2>= &> 正确输出,错误输出
>>+2>>=&>> 正确追加,错误追加
例:
[root@bogon ~]# ls
’ 1.txt 2.txt 3.txt
456
anaconda-ks.cfg a.txt b.txt c.txt d.txt home initial-setup-ks.cfg
[root@bogon ~]#
[ -d 345 ] || mkdir 345
判断目录345是否存在,不存在则创建,存在则不创建
[root@bogon ~]# ls
’ 1.txt 2.txt
345
3.txt
456
anaconda-ks.cfg a.txt b.txt c.txt d.txt home initial-setup-ks.cfg
[root@bogon ~]#
[ -d 456 ] || mkdir 456
判断目录456是否存在,不存在则创建,存在则不创建
[root@bogon ~]# ls
’ 1.txt 2.txt 345 3.txt
456
anaconda-ks.cfg a.txt b.txt c.txt d.txt home initial-setup-ks.cfg
[root@bogon ~]#
和管道有关的命令
cut 分割
-d 分隔符
-f 指定段号
-c 指定第几个字符
例:
[root@bogon ~]# head -n 2 /etc/passwd |
cut -d ":" -f 1
列出文件前两行,并以:分割出第1段
root
bin
[root@bogon ~]# head -n 2 /etc/passwd |
cut -d ":" -f 2
列出文件前两行,并以:分割出第2段
x
x
[root@bogon ~]# head -n 2 /etc/passwd
|cut -d ":" -f 1-2
列出文件前两行,并以:分割出第1-2段
root:x
bin:x
[root@bogon ~]# head -n 2 /etc/passwd |
cut -c 1
列出文件前两行,并指定显示第4个字符
r
b
[root@bogon ~]#
sort 排序 按照阿斯码排序
-n 以数字排序,字母会被认为是0,排在最前面
-r 反序
-t 分隔符
-kn1
-kn1,n2
wc 统计
-l 统计行数
-m 统计字符数,总数里包括换行符
-w 统计词,以空格字符做分隔符
uniq 去重
-c 统计重复次数
例:
sort 2.txt |uniq -c 先排序再去重
tee 重定向并显示,和>类似
-a 追加并显示追加内容
tr 替换字符,
例:
tr‘a’‘b’
tr ‘[a-z]' '[A-Z]'
split 切割文件,
-b 指定按大小切割文件(默认单位字节,指定单位)
-l 指定以行数切割文件