重定向和管道符

2022-05-20 02:00:00 字數 2646 閱讀 9684

重定向和管道符:

1.重定向

程式 = 指令 + 資料

命令     變數

在程式中,資料如何輸入?如何輸出?

資料輸入:鍵盤--標準輸入,但並不是唯一輸入方式;

--stdin

echo "123456" | passwd --stdin "username"

例如:功能新增使用者 useradd.sh txt文字文件1000個使用者

./useradd.sh a

./useradd.sh b

..../useradd.sh < user.txt

while line;do

迴圈體 $line

done < /etc/passwd

資料輸出:顯示器--標準輸出,但並不是唯一輸出方式

ls /etc/ > a.txt

fd 檔案識別符號 0-9 相當於給檔案分類;

0 1 2被定義的識別符號

3-9未被定義的識別符號

0--標準輸出

1--標準輸入

2--錯誤輸入輸出(標準錯誤)

常見重定向符號

1.標準輸出

> 覆蓋重定向

>> 追加重定向

set -c 關閉覆蓋重定向

>| 強制重定向

2.標準輸入

<

tr 替換檔案內容

tr set1[set2] < file.txt

tr abc abc /etc/passwd

tr abc abc /etc/passwd > /etc/passwd

將passwd檔案中的a、b、c替換成a、b、c

<<

多行資料同時輸入

cat >>a.txt<11

>2

>3

>eof

3.錯誤輸出

2> 2>>

/dev/null 黑洞檔案(刪除)

/dev/zero

ls /etc/ > /dev/null 2> /dev/null——

&> &>> == 2&>1         |=

ls /etc/ &> /dev/null<————

擴充套件:不需要輸出內容,只需要輸出狀態;

ls /etc/ > /dev/null

if[$?(命令執行狀態) -eq 0];then

迴圈體fi

ls > /dev/null 2>dev/null

2.管道-tee

command1|command2|command3|...

前乙個命令的執行結果交給後乙個命令來執行;

【linux思想:結合小功能實現大功能】

free -m|grep "^mem"|cut -d'' -f19

free -m|grep "^mem"|awk ''

free【範圍】-name ab* -type f -perm 600 -mtime +7|xargs rm -rf

tee[option]...螢幕上輸出一次,然後儲存一次(一路輸入,兩路輸出)

tee /tmp/tee.out //如果沒有檔案,會建立,預設如果檔案存在有內容,會覆蓋

練習:1.將/etc/passwd檔案中的前5行內容轉換為大寫後儲存至/tmp/passwd.out檔案中

head -5 /etc/passwd | tr [a-z][a-z] > /tmp/passwd.out

2.將登入至當前系統上的使用者資訊彙總的後3位資訊轉換為大寫後儲存至/tmp/who.out檔案中

who | tail -3 | cut -d'' -f1 | tr [[:lower:]] [[:upper:]] | tree /tmp/who.out

tail——檢視檔案尾部多少行(預設為10行)

-n tail -(n)5 /etc/passwd

-f 實時檢視檔案更新內容

tial -f /var/log/message

sleep 等待多長時間後再向下執行

head——檢視檔案頭部多少行(預設10行)

-n # 前#行,簡寫-#

取10-20行:head -20 /etc/passwd | tail -10

文字處理工具-wc,cut,sort,uniq

wc 統計文字中的字元個數

wc filename

行數 字元個數 檔案大小(位元組) 檔名

cut

用來做檔案分隔

-d 指定分隔符(delimiter)

-f 指定提取哪一列

-f2-f1,3

-f1-3

--output-delimiter='xx'

【cut的侷限性:1、-d指定分隔符,不能同時指定多個;2、不能做高階的格式化輸出】

sort 排序命令,預設檢視第乙個字元(包括數字字母以及空格和特殊符號),以ascii碼來排序 (大小寫不是)

-r 逆序

-u 去掉重複

-n 按數字排序

-t -k 指定分隔符以及按照哪個區間排序

uniq 去除重複內容

連續且相同的命令,才被視為重複

建議,先排序,後去重

-c 統計某些字元重複次數

sort filename|uniq -c

Linux重定向 管道符

輸出重定向 file 重新定向正確輸出到file中 會覆蓋原檔案 2 file 重新定向錯誤輸出到file中 會覆蓋原檔案 file 重新定向所有輸出到file中 會覆蓋原檔案 file 清空file 重新定向會覆蓋原檔案內容 示例 find etc name passwd file 定向正確輸出到...

重定向,管道符,黑洞檔案

輸出重定向 將命令的正常輸出結果儲存到指定的檔案,而不是直接顯示到螢幕上語法 檔名 表示將標準輸出的內容,覆蓋寫到後面的檔案中 檔名 表示將標準輸出的內容,追加寫到後面的檔案中 將核心的版本資訊追加到1.txt檔案中 輸入重定向 將命令中接受輸入的路徑由預設的鍵盤改為其他檔案 eof本意是end o...

linux 管道符 輸出重定向

1 輸出重定向 ll a.txt 將 ll的結果寫入到a.txt 2 管道符 ls la grep h 這條命令的理解為 ls la 的結果作為gerp h 的結果 gerp 是強大的文字搜尋工具 他能使用正規表示式搜尋,grep 格式 主要引數 grep c 只輸出匹配的計數 grep i 不區分...