linux實戰(2)輸入輸出與錯誤重定向詳解

2021-10-01 23:14:54 字數 1859 閱讀 3744

簡介:介紹輸入輸出錯誤重定向的使用

1:什麼是輸入重定向?

通俗的講,輸入重定向就是把要輸入的資訊寫入到指定的檔案中去

2:什麼是輸出重定向?

通俗的講,輸出重定向就是把要輸出的資訊寫入到乙個檔案中去,而不是將要輸出的檔案資訊輸出到控制台(顯示屏)

3:什麼是錯誤重定向?

通俗的講,錯誤重定向就是把錯誤的資訊寫入到乙個檔案中去

在linux中一切皆檔案

檔案描述符:

posix名稱 檔案描述符 用途

/dev/stdin 0 標準輸入

/dev/stdout 1 標準輸出

/dev/stderr 2 標準錯誤輸出

1:輸入重定向: <
eg:wc -l <

123.txt #將123.txt裡的輸入,會統計出行數

2:輸出重定向:> 代表覆蓋寫入(之前123.txt裡面的內容會被覆蓋掉) ; >> #代表追加寫入(在原有的基礎上繼續寫入)
eg: cat >>

123.txt ;

cat >

123.txt ; ls -lrt >

123.txt(也可以將ls -lrt列出的內容輸出寫入到123.txt中) ; echo '123455'

>

123.txt(將12345輸入道123.txt)

#ls -ltr(從底往高) ;

ls -lrt /home/

#列出home目錄下的所有東西

3. 錯誤重定向:(錯誤重定向後要寫上2 ,標準輸出要加上的1可以省略)

例如,你輸入llll,,因為這是個錯誤的命令,系統會輸出 -bash :llll :command not found 。這個時候輸入llll 2> 123.txt ,再檢視123.txt這個檔案的時候,裡面的內容就是-bash :llll :command not found 。

linux的錯誤輸出到無底洞:

eg:llll 2

>

123.txt ; llll 2

>

/dev/null #/dev/null 無底洞#這樣輸入的話意思就是直接丟了這錯誤資訊顯示的東西,這個無底洞會直接把這個丟掉,不會占用磁碟。

幾個符號常用符號

& #代表等同於的 意思 ls -lrt /boot /test 1>/root/123.txt 2>&1 #1是標準輸入

&> #代表不分正確還是錯誤的意思 ls -lrt /boot /test &>123.txt #如果是沒有test這個目錄的話,ls-lrt這個命令就會錯誤列不出這個命令,那麼上面的命令就不管這個目錄在不在,這個符號都把他輸入到這個資料夾。

| #管道符 #cat /ect/passwd | grep root #這個管道符就是把passwd的內容列出來,之後grep出passwd裡面含有這列字元的列表。(grep回憶用法見最後一行)

; #代表的是可以執行多條命令 cat /etc/passwd | grep root ; ls -lrt # 先執行cat /etc/passwd再執行 grep root

&&(與與符號) llll && echo 123#前面的命令執行成功的話,後面的才能執行成功。前面的命令執行失敗的話後面的不可以執行。

||(兩個管道符 就是或) #符號前面的命令執行成功的話後面的命令不能執行

grep:grep 『119.4.253.206』 123.txt | wc -l #查詢123.txt裡邊含有這串數字的列表,需要精準匹配則需要加上 - 引數,後面加上 |wc -l就可以統計出這個數字行數。

linux標準輸入輸出錯誤輸出

linux shell 環境中支援輸入輸出重定向,用符號 和 來表示。0 1和2分別表示標準輸入 標準輸出和標準錯誤資訊輸出,可以用來指定需要重定向的標準輸入或輸出,比如 2 a.txt 表示將錯誤資訊輸出到檔案a.txt中。同時,還可以在這三個標準輸入輸出之間實現重定向,比如將錯誤資訊重定向到標準...

linux標準輸入輸出及錯誤輸出

linux shell 環境中支援輸入輸出重定向,用符號 和 來表示。0 1和2分別表示標準輸入 標準輸出和標準錯誤資訊輸出,可以用來指定需要重定向的標準輸入或輸出,比如 2 a.txt 表示將錯誤資訊輸出到檔案a.txt中。同時,還可以在這三個標準輸入輸出之間實現重定向,比如將錯誤資訊重定向到標準...

Linux 標準輸入 輸出 錯誤

1 檔案描述符 檔案檔案描述符 輸入檔案 0 輸出檔案 1 錯誤輸出檔案 2 2 將標準輸出和錯誤輸出重定向到同乙個檔案 2 1 usr bin bashname kevinecho nameipconfigkevin kevin mybash test.sh run.log.test.sh lin...