輸入輸出重定向

2021-12-30 03:52:19 字數 1680 閱讀 6164

在linux系統中,正確輸出的編號為1,錯誤輸出編號為2

在bash中,顯示的輸出都是顯示在系統的字元裝置中,存放位置在/dev/pts/

在系統中用普通使用者student執行下面命令

find /etc -name passwd

因為student使用者許可權問題會有以下輸出

find: 『/etc/pki/ca/private』: permission denied ##沒有進入權力,報錯

find: 『/etc/pki/rsyslog』: permission denied

find: 『/etc/audit』: permission denied

/etc/passwd ##正確輸出

find: 『/etc/polkit-1/rules.d』: permission denied

find: 『/etc/polkit-1/localauthority』: permission denied

find: 『/etc/dhcp』: permission denied

find: 『/etc/selinux/targeted/modules/active』: permission denied

find: 『/etc/lvm/archive』: permission denied

find: 『/etc/lvm/backup』: permission denied

find: 『/etc/lvm/cache』: permission denied

find: 『/etc/grub.d』: permission denied

/etc/pam.d/passwd ##正確輸出

find: 『/etc/audisp』: permission denied

find: 『/etc/firewalld』: permission denied

find: 『/etc/cups/ssl』: permission denied

find: 『/etc/ipsec.d』: permission denied

find: 『/etc/libvirt』: permission denied

find: 『/etc/sudoers.d』: permission denied

find: 『/etc/named』: permission denied

find /etc -name passwd > file ##重定向正確輸出

正確的輸出重定向到了當前所在目錄下的file檔案中

我們檢視file,就可以看到正確的輸出

find /etc -name passwd 2> file ##重定向錯誤輸出

find /etc -name passwd &> file ##重定向所有輸出

注意: >, 2> ,&> 都會覆蓋原始檔內容

有時候我們想保留每一次的輸出,就可以使用追加

find /etc -name passwd >> file ##追加正確輸出

find /etc -name passwd 2>> file ##追加錯誤輸出

find /etc -name passwd &>> file ##追加所有輸出

## >> 2>> &>> 不會覆蓋原始檔內容,會把相應的輸出字元方到檔案的最後

輸入輸出重定向

使用標準輸入流,標準輸出流和標準錯誤流,這些標準流都被預分配給鍵盤和顯示器。在需要的時候,可以使用重定向臨時改變這些預設分配。重定向是這樣一種過程,我們借助它指定乙個用於替代某個 標準檔案的檔案。輸入重定向 可以將標準輸入從鍵盤重定向到任何文字檔案。輸入重定向運算子為小於號 意味著該命令從此給 派的...

輸入輸出重定向

1.標準輸入的控制 語法 命令 檔案將檔案做為命令的輸入。例如 mail s mail test wesongzhou hotmail.com file1 將檔案file1 當做信件的內容,主 題名稱為mail test,送給收信人。2.標準輸出的控制 語法 命令 檔案將命令的執行結果送至指定的檔案...

輸入輸出重定向

想象一下,當我們寫了個程式,開始是在命令列下執行的程式,後來用mfc之類的改寫為窗體程式,原先用printf輸出的trace都不可見了,但是我們又需要 輸出到檔案分析 怎麼辦?1 開始寫的時候你定義乙個mytrace的巨集 2 你可以把printf換成fprintf 3 使用輸出重定向。第一種情況很...