bash的基本特性之globbing,IO重定向及管道
giobbing:文件名通配
在bash的操作環境中有一個分廠有用的功能那就是gilobbing:文件名通配,這樣我們在處理數據的時候就更方便了。下面我們來羅列一些常用的通配符。(注:globbing是做整體的文件名匹配而非部分)
匹配模式:元字符 *:表示匹配任意長度的任意字符 例:a* 表示a后面任意長度任意字符 a*b 表示a和b中間夾帶任意長度的任意字符 ?:表示匹配任意的單個字符 例:a? 表示a后面只能跟單個的任意字符 a?b 表示a和b之間只有一個單個字符 []:表示指定范圍的任意單個字符或者字符集 例:[a-z]:表示小寫的a到z中任意單個字符 [A-Z]:表示大寫 [0-9]: [a-z0-9]:表示小寫字母或者數字 [[:upper:]]:表示所有的大寫字母 [[:lower:]]:表示所有的小寫字母 [[:alpha:]]:表示所有字母 [[:digit:]]:表示所有數字 [[:alnum:]]:表示所有的字母和數字 [[:space:]]:表示空白字符 [[:punct:]]:所有標點符號 [^]:匹配指定范圍之外的任意單個字符 例:[^[:lower:]]:表示匹配小寫字母之外的任意單個字符 例:[^0-9]:表示匹配數字之外的字符
練習:找出/etc/下以cron開頭的文件
ll -d /etc/cron* -d是為了只顯示目錄
找出/etc/下面文件名剛好是五個字符的文件 ll -d /etc/?????
IO重定向
說道IO重定向就不得不說說命令的執行結果,一般用戶執行一個命令之后這個命令會從文件中讀入數據然后將處理過的數據輸出默認到屏幕上,而IO重定向就是將本來要輸出到屏幕上的數據流重新指定一個輸出位置。而輸入也是同理
計算機上可用于輸入的設備:鍵盤設備,文件系統上的常規文件,網卡等
可用于輸出的設備:顯示器,文件系統上的常規文件,網卡等
程序在執行正確之后所傳出來的數據流我們叫做標準輸出,而執行失敗之后傳輸出來的錯誤信息叫做錯誤輸出,所以程序的數據流有三種
輸入的數據流<–標準輸入 輸出的數據流–>標準輸出 錯誤的輸出流–>錯誤輸出
這里的輸入輸出我們會給予一個文件描述符
標準輸入(stdin):代碼為0 使用 <或<<
標準輸出(stdout):代碼為1 使用>或>>
錯誤輸出(stderr):代碼為2 使用2>或2>>
輸出重定向:>
特性:覆蓋輸出 會覆蓋原文件內容
輸出重定向:>>
特性:追加輸出 不會覆蓋原文件內容 只會在文件尾部追加
set -C 可以禁止輸出重定向至已存在文件
此時可以使用強制覆蓋輸出:>|
set +C 可以關閉上述特性
錯誤輸出流重定向:2>,2>>
特性同上
合并標準輸出流和錯誤輸出流:&>,&>>
COMMADN > /path/to/somefile 2>&1
輸入重定向:<
這里我們要給大家講一個/etc/下比較特殊的兩設備個文件
/dev/null 數據黑洞
/dev/zero 吐零機 可以無限輸出0
管道
連接程序,實現將前一個命令的輸出直接定向后一個程序當作輸入數據流
COMMAND1 | COMMAND2 | COMMAND3
linux的基本命令
tr:轉換或者刪除字符 tr [OPTION]... SET1 [SET2] 把輸入的數據當中的字符,凡是在SET1定義范圍內出現的,通通對位轉換為SET2出現的字符
原創文章,作者:N24-執念,如若轉載,請注明出處:http://www.www58058.com/64169