命令別名 alias cls='clear' 在shell中定義的別名僅在當前shell生命周期中有效; 別名的有效範圍:當前shell進程 unalias cls \CMD 使用命令本身 命令替換 $(pwd) , 反引號:`pwd` 把命令中某個子命令替換為其執行結果的過程 echo "The ...
命令別名
alias cls='clear'
在shell中定義的別名僅在當前shell生命周期中有效;
別名的有效範圍:當前shell進程
unalias cls
\CMD 使用命令本身
命令替換 $(pwd) , 反引號:`pwd`
把命令中某個子命令替換為其執行結果的過程
echo "The current directory is $(pwd)."
touch ./file-$(date +%F-%H-%M-%S).txt
bash支持的引號:
``:命令替換
"":弱引用,可以實現變數替換
'':強引用,不完成變數替換
文件名通配,globbing
*,匹配任意長度的任意字元
?,匹配任意單個字元
[],匹配指定範圍內的任意單個字元
[abc],[a-m],[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]
[:space:],表示空白字元
[:punct:],表示所有標點符號
[:lower:],表示小寫字母
[:upper:],表示大寫字母
[:alpha:],表示大小寫字母
^[:alpha:],表示非字母
[:digit:],表示數字
[:alnum:],表示數字和大小寫字母(alpha number)
#man 7 glob
[^],脫字元,匹配指定範圍外的任意單個字元
以一個字母開頭,後面跟數字的文件:ls [[:alpha:]][[:digit:]]*
以a開頭,後面跟任意字元的文件:ls a*
以a開頭,以3結尾的文件:ls a*3
以字母開頭,後面跟任意數字的文件:ls [a-zA-Z][0-9]*
以a開頭,後面跟一個數字:ls a[0-9]*
以任意一個字元開頭,後面跟一個y,又跟其他任意字元的文件:ls ?y*
以字母開頭,中間跟任意字元,以數字結尾: ls [a-zA-Z]*[0-9]
以非數字開頭的所有文件:ls [^0-9]*
以字母開頭,中間包含空白字元,以字母結尾的文件:ls [[:alpha:]]*[[:space:]]*[[:alpha:]]
練習:
1.顯示所有以a或m開頭的文件:ls [am]*
2.顯示所有文件名中包含了數字的文件:ls *[0-9]*
3.顯示所有以數字結尾且文件名中不包含空白的文件:正則表達式
4.顯示文件名中包含了非字母或數字的特殊符號的文件:ls *[^[:alnum:]]*