I O重定向和管道

2022-05-19 16:15:11 字數 2206 閱讀 4928

當程式ps不顯示路徑可使用檢視編號的方式查詢真實路徑:

進入相應編號檔案用ll檢視即可看到口令對應的路徑

shell也屬於乙個程式,每個shell視窗都對應乙個編號

echo $$ 檢視當前所在shell的編號

ll /proc/$$/fd (fd 裝置)

ll /dev/st* (預設情況下最後對應的都是終端視窗)

重定向 redirect

標準輸出

格式: 命令 操作符號 檔名

1> 或》 把輸出stdout重定向檔案(可重定向裝置終端,檔案可新建立檔案)

2> 把stderr重定向到檔案

&> 把所有的輸出重定向到檔案

如果檔案已經存在,檔案內容會被覆蓋

touch和》 建立新檔案的區別:

touch 新建檔案不會覆蓋以前檔案資訊

> 新建檔案會將以前檔案資訊覆蓋,清零檔案

cat /dev/null > 檔案 清空檔案

echo命令本身有換行位元組

如果錯誤重定向的是提示,只是提示被重定向隱藏了,還可以繼續操作。

ls /data /err(標準輸出和錯誤輸出都有)

ls /data/err >/data/stdout.log 2> /data/stderr.log (分別輸出到兩個檔案)

ls /data /err &> /data/all.log (資訊全部輸出到乙個檔案)

ls /data /err > /data/all.log 2>&1

>> 追加內容,不覆蓋原檔案內容(2>> 追加stderr重定向到檔案)

( ) 合併多個命令的輸出

(ls ;hostname)

(區別,花括號每個命令後邊都要帶分號)

管道符|

seq 1 10 生成數字序列1-10

seq -s+ 1 10 生成數字1+..+10

seq -s+ 1 10 | bc

管道符只支援標準輸出,不支援標準錯誤的輸出,可利用2>&1 或|&實現

ls /data /err 2>&1 | tr 'a-z' 'a-z'

ls /data /err |& tr 'a-z' 'a-z'

標準輸入

<

tr 標準輸入 轉換和刪除字元

tr 『135』 『abc』 把135轉換成abc

tr 『123』 『abcd』 d沒有對應關係,不會轉換

tr 『1234』 『abc』 4沒有對應關係,用最後字母c代替轉換

tr -t 『1234』 『abc』 不用最後字元做轉換,只轉換對應字元

tr 『a-z』 『a-z』

tr '[:lower:]' '[:upper:]'

tr -d 刪除屬於第一字元的字符集

tr -s 連續多個字元進行壓縮,成乙個字元

tr -t 將第乙個字符集對應的字元轉化為第二個字符集對應的字元

tr -c 取字符集的補集

tr -dc 刪除除了選取得字元

ll /dev/urandom (隨機字元檔案)

tr -dc '[:alnum:]' < /dev/urandom (刪除除了字母和數字之外的字元)

例echo | tr ' ' +|bc

echo | tr ' ' '\n'^c

hexdump -c win.txt (轉換格式)

tr -d '\015' < win.txt > linux.txt (\015 代表回車 \r)

tr '\n' '\n\r' win2.txt (\012 代表換行 \n)

2&>1 :

1&>2 : 將標準錯誤歸到標準輸出

rev 字串倒過來輸出

echo "fbi waring" |rev rev 字元實現串倒過來輸出

面試:四個重定向方式有錯誤?

tee 命令 可以重定向多個目標

可以同時檢視和記錄輸出

複雜管道的故障排除

tee -a 追加字串

passwd 修改口令

passwd 使用者名稱(互動式)輸兩次口令

passwd --stdin 使用者名稱 修改讀取口令(用於管道)

echo 口令 |passwd --stdin 使用者名稱

I O重定向和管道

輸入輸出重定向和管道是程序間的一種特殊方式。unix程序使用標準的檔案描述符,0 stdin 1 stdout 2 stderr 當程序請求乙個新的檔案描述符的時候,系統核心將最低可用的檔案描述符給它。通常情況下這三個檔案描述符是開啟著的。一 i o重定向 在linux中,我們通過shell與系統互...

管道和I O重定向

i o重定向 i o redirection 0標準輸入 1標準輸出 2標準錯誤 輸出重定向 覆蓋,追加 root localhost date 1 date.txt root localhost date date.txt root localhost ls home aaaaaaaaa list...

I O重定向和管道

i o重定向 是將預設輸出 輸出和錯誤對應的裝置改變,指向新的目標 linux給程式提供三種i o裝置 標準輸入 stdin 0 預設接受來自終端視窗的輸入 標準輸出 stdout 1 預設輸出到終端視窗 標準錯誤 stderr 2 預設輸出到終端視窗 標準輸出和錯誤重定向 重定向到檔案比如 ech...