什麼是輸入輸出重新導向

在 shell 中,把指令的標準輸入、標準輸出、標準錯誤輸出的去向,從畫面或鍵盤改成檔案等。> 覆寫檔案,>> 附加到末尾,< 把檔案作為標準輸入,2> 把標準錯誤輸出(編號2)導向檔案。2>&1 會讓標準錯誤輸出與「當下」標準輸出的去向一致,因此 > file 2>&1 與 2>&1 > file 的結果不同。

日文名稱: 入出力のリダイレクト

「輸入輸出重新導向」出現在1領域的3道練習題中(Linux與命令列基礎等)。

這個名詞所屬的領域: Linux與命令列基礎

練習輸入輸出重新導向的題目

在以 SSH 連線的伺服器上,用「./run.sh &」啟動耗時的處理後中斷連線,結果處理也停止了。要讓處理在中斷連線後繼續執行,最適當的啟動方式是下列何者?

  1. A./run.sh > run.log 2>&1 &
  2. Bnice -n 19 ./run.sh > run.log 2>&1 &
  3. Cnohup ./run.sh > run.log 2>&1 &
查看答案與解析

正確答案:C. nohup ./run.sh > run.log 2>&1 &

連線中斷時,通知終端機掛斷的 SIGHUP 會送給 shell,bash 等 shell 也會把 SIGHUP 送給自己的工作。收到 SIGHUP 時的預設動作是結束,所以背景的工作也會停止。nohup 會讓指令以忽略 SIGHUP 的方式啟動,只要把輸出導向檔案,中斷連線後處理仍會繼續。若從終端機啟動而沒有重新導向輸出,nohup 會把輸出寫入名為 nohup.out 的檔案。使用 tmux 或 screen 等工具,讓終端機的工作階段留在伺服器上,之後再重新連回同一個畫面的方法也很常見。

解析中的「輸入輸出重新導向」

出現「輸入輸出重新導向」的題目(3題)

  1. 依序執行上面的指令時,最後的 cat 顯示的內容是下列何者?
  2. 如上所示,在有 a.txt、沒有 nofile 的目錄中執行最後一個指令。結果是下列何者?
  3. 在以 SSH 連線的伺服器上,用「./run.sh &」啟動耗時的處理後中斷連線,結果處理也停止了。要讓處理在中斷連線後繼續執行,最適當的啟動方式是下列何者?

相關名詞

SSH Shell(命令解譯器) 正規表示式 訊號(Unix) 符號連結 硬連結 超級使用者 管線(|) 檔案權限 環境變數

前往名詞解釋列表