在bash下,可以使用:
* 来匹配零个或多个字符
? 匹配一个字符
[] 满足一个范围[0-9a-zA-Z]中的一个
{} 或的意思,{a,b,c,1,2,3}逗号隔开,满足一个
[^] 否,有且仅有一个,且不是所枚举的字符,如[^a-zA-Z]
# 注释符号
\ 转义符,将特殊字符或通配符还原成一般字符
| 管道符
; 命令连接符,连续执行多个命令
~ 当前用户家目录
& 工作控制,放在命令后面,将指令变成后台工作
! 逻辑非
> >> << < 数据流重定向
' ' 单引号,无法引用变量
" " 双引号,可以引用变量
` ` 反引号,指令引用,类似$(command)
[root@localhost tmp]# ls
222.txt 333.txt shadow-text.txt systemd-private taroo1 test01 vimtest01.txt vmware-root zip-test
[root@localhost tmp]# ls *.txt
222.txt 333.txt shadow-text.txt vimtest01.txt
[root@localhost tmp]# ll *.tx*
-rw-rw-r--. 1 panyu001 panyu001 8927 8月 4 16:12 222.txt
-rwx--x--x. 1 panyu001 root 80 8月 6 21:51 333.txt
-rw-r--r--. 1 root root 2018 8月 6 21:45 shadow-text.txt
-rw-r--r--. 1 root root 670293 8月 12 22:22 vimtest01.txt
[root@localhost tmp]# ls ???.txt
222.txt 333.txt
[root@localhost tmp]# ls [0-300].txt
ls: 无法访问[0-300].txt: 没有那个文件或目录
[root@localhost tmp]# ls [2-3][2-3][2-3].txt
222.txt 333.txt
[root@localhost tmp]# ls [2][23][23]*
222.txt
[root@localhost tmp]# ls [0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z]
taroo1
test01:
111.txt 222
[root@localhost tmp]# ls {222,333}.txt
222.txt 333.txt