輸入 輸出和管道及相關的命令

2021-08-29 01:53:32 字數 2464 閱讀 5119

檔案描述符是linux系統內部使用的乙個檔案代號、它決定從**讀入命令所需的輸入和將命令產生的輸出及錯誤顯示送到什麼地方。

檔案描述符的具體含義如下:

0:標準輸入,檔案描述的縮寫為stdin

1:標準輸出,檔案描述的縮寫為stdout

2:標準錯誤(資訊),檔案描述的縮寫為stderr

在以上描述中,0、1和2為檔案描述符的號碼。

find ~ 在路徑名列表中遞迴地向下遍歷目錄樹以尋找與搜尋條件相匹配的檔案時,系統將把滿足條件的每乙個檔案顯示在終端的螢幕上。find pathnames expression actions

find命令中各選項的含義:

find命令中各選項的含義如下為:

pathnames:搜尋起始的絕對路徑或相對路徑

expressions:乙個或多個選型定義的搜尋檔案

actions:當檔案被定位之後需要進行的操作

例:從家目錄開始搜尋名為dog.wolf.baby的檔案:

find - - name dof.wolf.baby

尋找檔案名義dog.開頭並以.baby結尾的檔案:

find - - name "dog.* .baby"

找到disable_dog.wolf.baby的檔案並刪除掉:

find - - name disable dog.wolf.baby -exec rm {} 

在刪除找到的檔案之前先確認:

find - - name dog1.wolf.girl -ok rm {}

在unix或linux上輸出衝定向的符號是:覆蓋原檔案的內容,在原檔案之後追加內容。將wolf目錄中檔案列表寫入到當前目錄的dog.wolf檔案中:ls -l wolf/* > dog_wolf。

將當前日期和時間新增到dog_wolf檔案中:date >> dog_wolf

從/etc目錄開始搜尋名為passwd的檔案,在螢幕上只顯示標準錯誤資訊,而將標準輸出重定向輸出到乙個叫output.std檔案中: find /etc -name passwd 1> output.std    

將find命令的錯誤資訊匯出到errors.std檔案中:find /etc-name passwd 2>errors.std    

標準輸出寫入output、將標準錯誤寫入errors:find /etc - name passwd 2> errors 1> output

tr ~ 轉換、壓縮和/或刪除來自標輸入的字元,並將結果寫到標準輸出上。tr命令不接受檔名形式的引數、而要求它的輸入被重新定向為某個地方。將winsql.sql檔案中的所有大寫字母轉換為小寫: tr 'a - z'  'a - z' < winsql.sql    

刪除dept.data檔案中每行結束符中的\r符號並將結果存入dept.data.unix檔案中: tr ~ -d "\r" < dept.data > dept.data.unix    列出所有ascii碼字元所對應的數字:man ascii

cut [選項]...[檔名]...  其中常用的選項如下:-f 說明(定義)字段(列)    -c:要剪下的字元    -d:說明欄位的分隔符(預設為tab)提取dept.data 檔案第2列、列分隔符為,cut -f2 -d, dept.data

paste ~ 將每乙個檔案中的每一行用tab字元分割開,並順序地寫到標準輸出上。paste[選項]...[檔名]... 如果命令中沒有檔名、或檔名使用了 - ,paste將從標準輸入讀入,paste可將多個檔案合併成乙個檔案,如在命令中使用了 -d 選項將更改輸出的分隔符,預設分隔符是tab字元。

sort ~ 對正文進行排序並將結果送到標準輸出。sort命令不會改變原始檔案中的資料,正文資料既可以來自乙個檔案,也可以來自另乙個命令的輸出,sort [選項]...[檔名]...

sort命令中常用的選項如下:

-r:進行反向排序(降序)

-f:忽略字元的大小寫

-n:以數字的順序進行排序

-u:去掉輸出中的重複行

-t:-t c表示以字元c作為分割符

-k:-k n表示按第n個字段排序

-k: n1,n2表示先按第n1個字段排序,之後再按第n2個字段排序

uniq ~ 刪除掉乙個檔案中的相鄰重複行。

其中經常使用的一些選項如下:

-c:在顯示的行前冠以該行出現的次數

-d:只顯示重複行

-i:忽略字元的大小寫

-u:只顯示唯一的行

| ~ 連線兩個(或多個)linux命令    命令1 | 命令2...    將命令1的標準輸出重定向為命令2的標準輸入,標準錯誤資訊(stderr)並不通過管道傳播,第1個命令的錯誤資訊也不會傳給第二個命令,第2個命令的錯誤資訊也不會傳給下乙個命令等。

例 :列出系統上工作的使用者有多少:  who | wc -l

在管道操作中加入xargs命令的例子:  cat delete_disable | xargs rm -f

tee ~ 將標準輸入複製給每乙個指定的檔案和標準輸出,tee命令也被稱為t型管道。

linux輸入輸出重定向及管道

重定向 1.1,正確內容的重定向符號 輸出重定向到乙個檔案或裝置 覆蓋原來的檔案 輸出重定向到乙個檔案或裝置 強制覆蓋原來的檔案 輸出重定向到乙個檔案或裝置 追加原來的檔案 1.2,標準錯誤重定向符號 2 將乙個標準錯誤輸出重定向到乙個檔案或裝置 覆蓋原來的檔案 b shell 2 將乙個標準錯誤輸...

輸入輸出相關的類

1 標準輸入流物件 能向記憶體緩衝區輸入資料的裝置稱為輸入流。比如 鍵盤 檔案。2 標準輸出流物件 能將記憶體緩衝區的資料儲存起來,或者顯示 總之是從記憶體緩衝區讀取資料 的裝置稱為輸出流。比如 鍵盤 檔案。3 三個標準輸出流之間的關係 引數預設情況下,cerr clog和cout作用一樣。cerr...

輸入輸出相關的類

1 標準輸入流物件 能向記憶體緩衝區輸入資料的裝置稱為輸入流。比如 鍵盤 檔案。2 標準輸出流物件 能將記憶體緩衝區的資料儲存起來,或者顯示 總之是從記憶體緩衝區讀取資料 的裝置稱為輸出流。比如 鍵盤 檔案。3 三個標準輸出流之間的關係 引數預設情況下,cerr clog和cout作用一樣。cerr...