/dev/null基本命令查詢當被用作重定向輸出時,程式的輸出被直接丟棄。該檔案用在哪些不關心程式輸出的地方。
當被用作重定向輸入時,輸入則是檔案結束。
/dev/tty
當被用作重定向時,表示重定向到終端。
shell 會沿著$path 來尋找命令。$path 是乙個以冒號分割的目錄列表,你可以在列表所指定的目錄下找到所要執行的命令。命令可能是 shell 指令碼,也可能是編譯後的可執行檔案,從使用者角度來看,二者並無不同。
預設路徑至少包含/bin 和/usr/bin,或許還包含其他的。
名稱為 bin 的目錄用來儲存可執行檔案。
如果要編寫自己的指令碼,最好準備乙個自己的 bin 目錄來存放他們,並且讓 shell 能夠自動找到他們。
$cd
$mkdir bin
$mv nusers bin
$path+$path:$home/bin //將個人的 bin 目錄附加到 path(暫時生效,系統重啟後失效)
nusers
要想永久生效,在/etc/profile 檔案中把你的 bin 目錄加入到$path,而每次登陸時 shell 都將讀取.profile 檔案。
path=$path:$home/bin
$path 裡的空專案表示當前專案。空專案位於路徑中間時,可以用兩個連續的冒號來表示,如果將冒號直接置於最前端或尾端,分別表示查詢的時候最先查詢或最後查詢當前目錄。
$path=:/bin:/usr/bin 先找當前目錄
$path=/bin::/usr/bin 當前目錄居中
$path=/bin:/usr/bin: 最後找當前目錄
<,>,>>以及| 是基本的 i/o 重定向符
重定向的使用規律>箭頭代表重定向
&代表引用
2表示stderr標準錯誤輸出
0表示stdin標準輸入
1表示stdout標準輸出
那你這個>&2的含義:把前面的列印訊息重定向到標準錯誤裡面。(錯誤資訊才輸出)shell會自動為我們開啟和關閉0、1、2這三個檔案描述符,我們不需要顯式地開啟或關閉它們。標準輸入是命令的輸入,預設指向鍵盤;標準輸出是命令的輸出,預設指向螢幕;標準錯誤是命令錯誤資訊的輸出,預設指向螢幕。
"某個命令" 1>/dev/null 2>&1
執行這個命令,然後這個命令執行過程中的所有標準輸出都重定向到/dev/null,空裝置的意思就是標準輸出不列印,
2>&1 就是標準錯誤重定向到標準輸出中。而標準輸出前面已經說了不列印。那麼整體就是標準輸出,標準錯誤都不列印。
如果沒有前提「而標準輸出前面已經說了不列印」,2>&1 意思就很明了了,就是講執行linux命令時的錯誤資訊也輸出到螢幕上。
>&2 使用的比較少,我們很少把其他資訊重定向到標準錯誤中。
這裡使用(echo 1; echo1 1)命令測試
$ (echo 1; echo1 1)
1bash: echo1: command not found
# 可以看到標準輸出進了1.log,標準輸入0和標準輸出1可以省略。(當其出現重定向符號左側時)
$ (echo 1; echo1 1)>1.log
bash: echo1: command not found
$ cat 1.log
1# 可以看到標準輸出進入了1.log,標準錯誤進入了2.log
$ (echo 1; echo1 1) 1>1.log 2>2.log
$ cat 1.log
1$ cat 2.log
bash: echo1: command not found
# 表示把錯誤出定向到標準輸出(此時標準輸出為終端,所以輸出到終端), 標準輸出定位到檔案( >1.log其實是1>1.log),所以看到錯誤資訊輸出到終端,而正確資訊儲存到了1.log
$ (echo 1; echo1 1) 2>&1 >1.log
bash: echo1: command not found
$ cat 1.log
1# 把上面的位置調換下,先把標準輸出定位到1.log
# 把標準輸出定位到檔案,錯誤輸出到標準輸出(此時標準輸出指向檔案,所以輸出到檔案)
$ (echo 1; echo1 1) >1.log 2>&1
$ cat 1.log
1bash: echo1: command not found
# /dev/null 代表空裝置檔案,我們經常把輸出定位到/dev/null這樣可以避免程式不必要的列印。
# 這樣把標準輸出定位到空,再把標準錯誤定位到標準輸出。
$ (echo 1; echo1 1) >/dev/null 2>&1
$
linux中的標準輸出和輸入 linux 特殊檔案和程序
suid的程式被一般使用者執行後,執行者將具有程式擁有者的許可權.查詢當前目錄的使用者 fuser uv 查詢當前目錄所有程序 fuser muv 假如umount不成功,可以用fuser mki刪除占用的程序 fuser mki home 安裝 yuminstall lsof 列出root使用者使...
SHELL程式設計 利用CSIDL開啟特殊資料夾
csidl描述及使用說明 csidl 表示的是windows shell中乙個特殊資料夾的標識值。這裡說的特殊資料夾指的是由windows shell所定義的資料夾,例如 我的文件 站 inernet cache資料夾 就是一些由shell指定的特殊資料夾.這些特殊資料夾可以是乙個磁碟上的物理路徑,...
SHELL程式設計 利用CSIDL開啟特殊資料夾
csidl描述及使用說明 csidl 表示的是windows shell中乙個特殊資料夾的標識值。這裡說的特殊資料夾指的是由windows shell所定義的資料夾,例如 我的文件 站 inernet cache資料夾 就是一些由shell指定的特殊資料夾.這些特殊資料夾可以是乙個磁碟上的物理路徑,...