globbing: 文件名通配
匹配模式:元字符
*:匹配任意長度的任意字符
pa* ,*pa* ,*pa, *p*a*
pa, paa, passwd
?: 匹配任意單個字符
pa?
pa, paa 符合 passwd不符
[]:匹配指定范圍內的任意單個字符
有幾種特殊格式; [a-z],[A-z],[a-z0-9]
[[:upper:]]所有大寫字母
[[:lower:]]:所有小寫字母
[[:alpha:]]:所有字母
[[:digit]]:所有數字
[[:alnum:]]:所有字母和數字
[[punct:]]:所有標點符號
pa[0-9][0-9],z[0-9][0-9]
[^]:匹配指定范圍外的任意單個字符
[^[:upper:]]:大寫字母以為的任意字符
[^0-9]
[^[:alnum:]]
練習一:顯示/var目錄所有以1開頭,以一個小寫字母結尾,且中間出現一位任意字符的文件或目錄
ls -d /var/?[[:lower:]]
練習二:顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄:
ls -d /etc/[0-9]*[^0-9]
練習三:顯示/etc目錄下,以非字母開頭,后面跟一個字母及其他任意長度任意字符符文件或目錄
ls -d/etc/[^a-z][a-z]*
練習四:復制/etc目錄下,所有以m開頭,以非數字結尾的文件或目錄至/tmp/magedu.com 目錄下;
rm /etc/8eabc
cp -r /etc/m*[*0-9] /tmp/magedu.com 練習五:復制/usr/share/man 目錄下,所有以man開頭,后跟一個數字結尾的文件或目錄至/tmp/man/目錄下:
cp -r /usr/share/man/man[0-9] /tmp/man/
練習6:復制/etc目錄下,所有以.conf結尾,且以m,n,r,p開頭的文件或目錄至/tmp/conf.d/目錄下;
cp -r /etc/[mnrp]*.conf /tmp/conf.d/
IO重定向及管道
程序:指令+數據
程序:IO
可用輸入的設備:文件
鍵盤設備,文件系統上的常規文件,網卡等;
可輸出設備:文件
顯示器,文件系統上的剎那貴文件,網卡等;
程序是數據流有三種:
輸入的數據流:<—-標準輸入(stdin),鍵盤
輸出的數據流,——->標準輸出 顯示器
fd:file descriptor, 文件描述符
標準輸入:0
標準輸出:1
錯誤輸出:2
IO 重定向:
輸出重定向:>
特性:覆蓋輸出 危險?。?/p>
輸出重定向》 特性:追加輸出
# set -c
禁止覆蓋輸出重定向至已存在的文件
# set +c
關閉上述特性
錯誤輸出流重定向:2>, 2>>
合并正常輸出流和錯誤輸出流,(1) &>,&>>
(2)COMMAND >/path/to/somefile z>&1
COMMAND >> /path/to/somefile 2>&
特殊設備:/dev/null
輸入重定向:<
tr [OPTION]….SET1 [SET2]
把輸入的數據當中的字符,凡是在SET1定義范圍內出現的,通通對位轉換為SET2出現的字符
tr abc ABC
用法1: tr SET1 SET2 < /PATH/FROM/SOMEFILE
用法2: tr -d SET1 < /PATH/FROM/SOMEFILE
注意:不修改源文件
Here Document:<<
cat << EOF
cat > /PATH/TO/SOMEFILE << EOF
管道:連接程序,實現將前一個面臨的輸出直接定向后一個程序當作輸入數據流
COMMAND1 | COMMAND2 | COMMAND3|……
tee命令:
COMMAND | tee / PATH/TO/SOMEFILE
練習1:把/etc/passwd文件的前6行的信息轉換為大寫字符后輸出
head -n 6 /etc/passwd | tr 'a-z' 'A-Z'
命令總結 trtee
原創文章,作者:shadow,如若轉載,請注明出處:http://www.www58058.com/64441