一、Shell 輸入重定向
在Shell中,輸入重定向允許你將一個(gè)文件或命令的輸出作為另一個(gè)命令的輸入,而不是從標(biāo)準(zhǔn)輸入(通常是鍵盤)讀取。這是通過特殊符號(hào)<
實(shí)現(xiàn)的。使用輸入重定向,你可以將文件的內(nèi)容作為命令的輸入,從而執(zhí)行特定的操作。
下面是一個(gè)Shell輸入重定向的案例:
假設(shè)你有一個(gè)名為input.txt
的文件,其中包含以下內(nèi)容:
Hello
World
Shell
Programming
現(xiàn)在,你想使用grep
命令來搜索包含特定字符串的行。你可以使用輸入重定向?qū)?code>input.txt文件的內(nèi)容作為grep
命令的輸入,如下所示:
grep "World" < input.txt
這條命令會(huì)搜索input.txt
文件中包含字符串"World"的行,并將結(jié)果輸出到終端。在這個(gè)例子中,它會(huì)輸出:
World
在這個(gè)案例中,<
符號(hào)將input.txt
文件的內(nèi)容重定向?yàn)?code>grep命令的輸入。這樣,grep
命令就能夠讀取文件內(nèi)容并執(zhí)行搜索操作,而不是從標(biāo)準(zhǔn)輸入(鍵盤)讀取數(shù)據(jù)。
除了使用<
符號(hào)進(jìn)行輸入重定向外,Shell還提供了其他重定向操作符,如輸出重定向(>
、>>
)和錯(cuò)誤輸出重定向(2>
)。這些操作符允許你將命令的輸出或錯(cuò)誤輸出重定向到文件或其他設(shè)備中,從而實(shí)現(xiàn)更靈活的數(shù)據(jù)處理和控制。
Shell輸入重定向是一種強(qiáng)大的工具,它允許你將文件內(nèi)容或其他命令的輸出作為另一個(gè)命令的輸入,從而簡(jiǎn)化數(shù)據(jù)處理流程并提高腳本的靈活性。
二、Shell 輸出重定向
Shell 輸出重定向允許你將命令的標(biāo)準(zhǔn)輸出(stdout)或標(biāo)準(zhǔn)錯(cuò)誤輸出(stderr)重定向到文件或其他設(shè)備,而不是將它們打印到終端。這對(duì)于記錄命令的輸出、將輸出用作其他命令的輸入或過濾輸出內(nèi)容非常有用。
以下是Shell輸出重定向的一些常見用法:
標(biāo)準(zhǔn)輸出重定向:
- 覆蓋輸出到文件:
command > file.txt
這會(huì)將command
的標(biāo)準(zhǔn)輸出保存到file.txt
中。如果文件已存在,其內(nèi)容將被覆蓋。
- 追加輸出到文件:
command >> file.txt
這會(huì)將command
的標(biāo)準(zhǔn)輸出追加到file.txt
的末尾,而不是覆蓋文件內(nèi)容。
標(biāo)準(zhǔn)錯(cuò)誤輸出重定向:
- 將錯(cuò)誤輸出到文件:
command 2> error.txt
這會(huì)將command
的標(biāo)準(zhǔn)錯(cuò)誤輸出保存到error.txt
中。注意2>
用于重定向錯(cuò)誤輸出。
-
同時(shí)重定向標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出到不同文件:
你可以同時(shí)重定向標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出到不同的文件:
command > output.txt 2> error.txt
同時(shí)重定向標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出:
-
將標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出保存到同一個(gè)文件:
你可以使用&>
或>
來同時(shí)重定向標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出:
command &> combined.txt
或者
command > combined.txt 2>&1
2>&1
意味著將文件描述符2(標(biāo)準(zhǔn)錯(cuò)誤輸出)重定向到文件描述符1(當(dāng)前標(biāo)準(zhǔn)輸出)的位置,而標(biāo)準(zhǔn)輸出已經(jīng)被重定向到combined.txt
。
- 追加標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出到同一個(gè)文件:
command &>> combined.txt
或者
command >> combined.txt 2>&1
這會(huì)將標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出追加到combined.txt
的末尾。
禁用輸出:
-
丟棄輸出:
如果你不想看到任何輸出,可以將它們重定向到/dev/null
,這是一個(gè)特殊的設(shè)備文件,它會(huì)丟棄所有寫入它的數(shù)據(jù):
command >/dev/null 2>&1
這條命令會(huì)丟棄command
的所有標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出。
這些重定向操作符提供了很大的靈活性,可以根據(jù)需要定制命令的輸出行為。在實(shí)際使用中,可以根據(jù)具體情況組合使用這些操作符來滿足不同的需求。
三、Shell 重定向命令
在Shell中,重定向允許你將命令的輸入或輸出從默認(rèn)的位置(通常是鍵盤或屏幕)改變到文件或其他設(shè)備。重定向提供了很大的靈活性,讓你能夠控制數(shù)據(jù)的流向,實(shí)現(xiàn)更復(fù)雜的數(shù)據(jù)處理任務(wù)。以下是一些常見的Shell重定向命令列表:
輸出重定向:
-
command > file
:將command
的標(biāo)準(zhǔn)輸出(stdout)重定向到file
中。如果file
已存在,它的內(nèi)容會(huì)被覆蓋。 -
command >> file
:將command
的標(biāo)準(zhǔn)輸出追加到file
的末尾。如果file
不存在,它會(huì)被創(chuàng)建。 -
command 1> file
或command > file
:與command > file
效果相同,明確指定重定向的是標(biāo)準(zhǔn)輸出(文件描述符1)。 -
command 1>> file
:將command
的標(biāo)準(zhǔn)輸出追加到file
的末尾,明確指定重定向的是標(biāo)準(zhǔn)輸出。
錯(cuò)誤輸出重定向:
-
command 2> file
:將command
的錯(cuò)誤輸出(stderr)重定向到file
中。如果file
已存在,它的內(nèi)容會(huì)被覆蓋。 -
command 2>> file
:將command
的錯(cuò)誤輸出追加到file
的末尾。
標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出同時(shí)重定向:
-
command &> file
:將command
的標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都重定向到file
中。如果file
已存在,它的內(nèi)容會(huì)被覆蓋。 -
command &>> file
:將command
的標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都追加到file
的末尾。
輸入重定向:
-
command < file
:將file
的內(nèi)容作為command
的標(biāo)準(zhǔn)輸入(stdin)。
其他重定向用法:
-
command << delimiter
:這里稱為“內(nèi)聯(lián)輸入重定向”或“here document”。它允許你定義一個(gè)多行的輸入,直到遇到指定的delimiter
為止。 -
command 2>&1
:將錯(cuò)誤輸出重定向到標(biāo)準(zhǔn)輸出的當(dāng)前位置。這通常與輸出重定向一起使用,以將標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都發(fā)送到同一個(gè)地方。
文件描述符的重定向:
在更復(fù)雜的場(chǎng)景中,你可能會(huì)使用文件描述符(file descriptors)來進(jìn)行重定向。文件描述符是一個(gè)非負(fù)整數(shù),用于在操作系統(tǒng)中唯一標(biāo)識(shí)打開的文件、設(shè)備或其他輸入/輸出資源。在Shell中,標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤通常分別對(duì)應(yīng)文件描述符0、1和2。
例如:文章來源:http://www.zghlxwxcb.cn/news/detail-851694.html
-
command 3> file
:將文件描述符3重定向到file
。你可以使用exec
命令為文件描述符3分配一個(gè)文件,然后在后續(xù)的命令中使用它。 -
command 3>&-
:關(guān)閉文件描述符3。
這些重定向命令提供了強(qiáng)大的工具,讓你能夠精確地控制Shell命令的輸入和輸出。通過組合使用這些命令,你可以構(gòu)建出復(fù)雜的腳本和命令序列,以滿足各種數(shù)據(jù)處理和自動(dòng)化任務(wù)的需求。文章來源地址http://www.zghlxwxcb.cn/news/detail-851694.html
四、相關(guān)鏈接
- Linux官網(wǎng)
- Linux常用命令
- CentOS官網(wǎng)下載地址
- 「Linux系列」Linux簡(jiǎn)介及常見的Linux系統(tǒng)
- 「Linux系列」Linux 系統(tǒng)啟動(dòng)過程
- 「Linux系列」Linux 系統(tǒng)目錄結(jié)構(gòu)/忘記密碼解決方法
- 「Linux系列」Linux 遠(yuǎn)程登錄/文件基本屬性
- 「Linux系列」Linux 文件與目錄管理
- 「Linux系列」Linux 如何學(xué)習(xí)用戶和用戶組管理
- 「Linux系列」聊聊Linux磁盤管理的事
- 「Linux系列」聊聊vi/vim的3種命令模式
- 「Linux系列」了解下Linux yum(包管理工具)
到了這里,關(guān)于「Linux系列」Shell 輸入/輸出重定向的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!