file 標準輸入輸出以及輸出重定向 > tr |管道 mail
1.file
file [options] <filename>… 確定文件內容,是根據文件的頭部信息來判斷
hexdump -C -n 100 文件名 查詢頭部信息(查詢二進制信息,-n 100前100行,頭部信息)
-b 列出文件辨識結果時,不顯示文件名稱
-f filelist 列出文件filelist中文件名的文件類型
-F 使用指定分隔符號替換輸出文件名后默認的”:”分隔符
-L 查看對應軟鏈接對應文件的文件類型

2.標準輸入和輸出
打開的文件都有一個fd: file descriptor ( 文件描述符)
Linux 給程序提供三種I/O 設備
標準輸入(STDIN )-0 默認接受來自鍵盤的輸入
標準輸出(STDOUT )-1 默認輸出到終端窗口
標準錯誤(STDERR )-2 默認輸出到終端窗口

輸出重定向 >
> 把正確內容重定向到文件,文件不存在創建一個文件,存在覆蓋
2> 把錯誤提示重定向到文件
> 最后加上1>&2 把所有輸出重定向到文件(舊的) &> (新的)
> 最后加上2>&1 把正確的變成錯誤的
&> /dev/null 全部導入null設備中 “黑洞”
set -C: 禁止將內容覆蓋已有文件, 但可追加
>| file :臨時強制覆蓋
set +C: 允許覆蓋
( cal 2007 ; cal 2008 ) > all.txt () :合并多個程序的STDOUT

3.tr 轉換和刪除字符 必須跟標準輸入
使用< 來重定向標準輸入;某些命令能夠接受從文件中導入的STDIN
tr ‘a-z’ ‘A-Z’< /etc/issue該命令會把/etc/issue的內容小寫變大寫
-d –delete :刪除所有屬于第一字符集的字符
-s –squeeze-repeats :把連續重復的字符以單獨一個字符表示
-t –truncate-set1 :將第一個字符集對應字符轉化為第二字符集,強制對應
例: echo aaabbbcccdddd |tr -t ‘abcd’ ‘efg’ eeefffgggdddd
-c 補集 df -h |tr -c [a-zA-Z] ‘\n’|tr -s [:space:]
-dc ‘ ’ 除‘ ’的刪除其他所有 -sc ‘ ‘ 除‘ ‘其他的連續重復的字符以單獨一個字符表示
[:alnum:]字母和數字 [:alpha:]字母 [:cntrl:] 控制(非打印符)字符 [:digit:]數字
[:graph:]圖形字符 [:lower:]小寫字母 [:print:]可打印字符 [:punct:]標點符號
[:space:]空白符 [:upper:]大寫字母 [:xdigit:]十六進制 字符
cat > file “<< 終止詞”命令
從鍵盤把多行重導向給STDIN,直到終止詞位置的所有文本都發送給STDIN


4.| 管道 減少垃圾文件
| 將正確結果重定向給下一條命令
2>&1 | 或 |& 全部結果重定向
例: 獲取boot目錄所在分區的可用空間

5.tee
命令1 | tee 文件名 | 命令2 同時查看和記錄輸出
-a 把命令1 的STDOUT 保存在文件中,做為命令2 的輸入-a追加

6.mail (利用< |)
mail 郵件
mail -s “主題” 收信人 < 文件內容 發郵件
cat 文件 | mail -s “主題” 收信人 發郵件
mail 查詢郵件 & n 選擇第幾封打開


有 什 么 錯 誤 請 大 家 指 教!
原創文章,作者:along,如若轉載,請注明出處:http://www.www58058.com/81874