linux系統管理 輸入輸出

2022-04-29 08:45:07 字數 2568 閱讀 9710

目錄輸入的重定向使用

管道技術 |

引數傳遞xargs

重定向將原本要輸出到螢幕上的資料資訊,重新定向到指定的檔案中

執行程式,或者輸入乙個命令:預設開啟4個檔案描述符

標準輸入與輸出

名稱檔案描述符

作用標準輸入(stdin)

0通常鍵盤,也可以是其他檔案或者命令的輸出的內容可以作為標準輸入

標準輸出(stdout)

1預設輸出到螢幕

錯誤輸出(stderr)

2預設輸出到螢幕

檔名稱(filename)

3+

/dev/stderr(錯誤輸出) -> /proc/self/fd/2			2 -> /dev/pts/0

/dev/stdin(標準輸入) -> /proc/self/fd/0 0 -> /dev/pts/0

/dev/stdout(標準輸出) -> /proc/self/fd/1 1 -> /dev/pts/0

輸出重定向分類

1>:標準輸出重定向,將命令執行的正確結果輸出到指定的檔案或者裝置中

2>:錯誤輸出重定向

1>>:標準輸出追加重定向,將命令執行的正確結果追加輸出到檔案末尾

2>>:錯輸出追加重定向,將命令執行的錯誤結果追加輸出到檔案末尾

<< :標準輸入重定向,將鍵盤敲的內容,輸入到命令或者檔案中

輸出重定向的使用

#將正確的內容追加到檔案中,錯誤會輸出到螢幕(不會覆蓋原始檔)

echo "this is network conf" >> abc

#將錯誤的內容輸出到檔案中,正確的會輸出到螢幕(會覆蓋原始檔)

find /etc -name "*.conf" 2>b

find /etc -name "*.conf" 1>a 2>b

#合併輸出,錯誤的正確的內容都會輸出到乙個檔案(會覆蓋原始檔)

find /etc -name "*.conf" >c 2>&1

find /etc -name "*.conf" >c 2>c

find /etc -name "*.conf" &>c

#將錯誤輸出重定向到 『黑洞』,正確內容輸出到螢幕/dev/pts/x

ls /root/ /err 2>/dev/null

#將錯誤輸出重定向到 『黑洞』,正確內容輸出到1.txt檔案中

ls /root/ /err >1.txt 2>/dev/null

輸入的重定向使用

< :0<

<<:0<<

案例1:

cat >> zls.txt 20+0 records in

20+0 records out

20971520 bytes (21 mb) copied, 0.011896 s, 1.8 gb/s

案例5:

恢復mysql資料

[root@zls ~]# mysql -uroot -p123 < bbs.sql

案例6:利用重定向建立多行檔案

[root@oldboyedu ~]# cat >file1

案例7:

#!/bin/sh

menu()' /etc/passwd|sort -n

案例2:

統計當前/etc/passwd 中使用者使用的 shell 型別

[root@oldboyedu ~]# awk -f : '' /etc/passwd|sort |uniq|wc -l

5 [root@driver-zeng nginx]# awk '' driverzeng.com_access.log|sort |uniq -c|sort -nr|head -20

案例5:取出cpu已使用的百分比,只顯示數字

[root@oldboyedu ~]# df -h |awk -f '[ %]+' 'nr==2 '

4

tee:相當於管道符

[root@zls ~]# date > date.txt 

[root@zls ~]# date |tee date.txt

將引數列表轉換成小塊分段傳遞給其他命令

讀入stdin的資料轉換為引數新增至命令後面

讓一些不支援管道的命令可以使用管道。

注意:1.在管道後面的命令,都不應該在寫檔名

2.在管道中只有標準輸出才可以傳遞下乙個命令, 標準錯誤輸出會直接輸出終端顯示, 建議在使用管道前將標準錯誤輸出重定向。

例如: find /etc -name "*.conf" 2>/dev/null | grep rc

3.有些命令不支援管道技術, 但是可以通過xargs來實現管道傳遞。

例如: which cat|xargs ls-l

例如: ls |xargs rm -rvf

例如: ls |xargs cp -rvft /tmp/ -> ls | xargs -i {} cp -rvf {} /tmp

例如: ls |xargs mv -t /tmp/ -> ls | xargs -i {} mv {} /tmp

Linux系統管理

程序是正在執行的乙個程式或命令,每乙個程序都有乙個執行的實體,都喲自己的位址空間,並占用一定的系統資源。盤點伺服器的健康狀態 檢視所有系統中所有程序 殺死程序 1.3.1 ps aux 檢視系統中所有程序,使用bsd作業系統格式 1.3.2 ps le 檢視系統中所有程序,使用linux標準命令格式...

Linux 系統管理

linux 系統管理 檢視資料夾大小 du sh 第1章 程序管理 1 1 程序檢視ps命令 1 2 程序的檢視top命令 1 3 殺死程序 1 4 修改程序優先順序 第2章工作管理 2 1 工作管理簡介 2 2 工作管理方法 把命令放到後台 如果想要程序在後台執行 必須不能與前台有互動 1 把程序...

linux 系統管理

正在執行的程式,任何程式執行都要耗費一定的系統資源 判斷伺服器健康狀態 檢視系統中所有程序 殺死程序 1 判斷程序健康狀態 top 選項 d 秒數 指定top命令每隔幾秒更新。預設是3秒 b 使用批處理模式輸出。一般和 n 選項合用 n 次數 指定top命令執行的次數。一般和 b 選項和用 在top...