一、概述
(1)重定向指令清單
指令 | 說明 |
---|---|
command >file | #將輸出重新導向到file |
command | 將輸入重定向到file |
#command >> file | 將輸出以追加的方式重定向到file |
n > file | 將檔案描述符為n 的檔案重定向到file |
n >> file | 將檔案描述符為n 的檔案以追加的方式重定向到file |
n >& m | 將輸出檔m 和n 合併 |
n | 將輸入檔m 和n 合併 |
# | 將開始標記tag 和結束標記tag 之間的內容作為輸入 |
(2)檔案描述符
0:通常是標準輸入(STDIN)
1:是標準輸出(STDOUT)
2:是標準錯誤輸出(STDERR)
二、輸出重定向
(1)指令解析
command > file #执行command然后将输出的内容存入file。
注意:
file中的內容將會被新內容取代掉,如果不想被全部取代掉而是追加到檔案結尾,那就使用> ;>操作符。
(2)實例解析
[root@localhost ~]# w 20:41:36 up 55 days, 5:17, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 223.166.20.53 20:24 0.00s 0.05s 0.00s w [root@localshost ~]# w > users #w命令执行后的结果输出到users文件中 [root@localshost ~]# ll -rw-r--r-- 1 root root 204 Jan 3 20:41 users [root@localshost ~]# cat users #查看users文件内容,正是w命令执行后的输出结果 20:41:58 up 55 days, 5:17, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 223.166.20.53 20:24 6.00s 0.05s 0.00s w [root@localshost ~]# who root pts/0 2021-01-03 20:24 (223.166.20.53) [root@localshost ~]# who > users #将who命令执行结果输出重定向到users文件 [root@localshost ~]# cat users #发现users文件中原先w命令的输出内容被who命令覆盖了 root pts/0 2021-01-03 20:24 (223.166.20.53) [root@localshost ~]# echo "Hello world" >> users #使用>>操作符则会追加在后面输出 [root@localshost ~]# cat users root pts/0 2021-01-03 20:24 (223.166.20.53) Hello world [root@localshost ~]#
注意:
上面實例中很多命令列出現了兩個#:
第一個#表示的是目前使用者為root使用者(當是其他使用者時這裡會是$符);
#第二個#在上面則表示的是註解的意思。
三、輸入重定向
1、指令解析
#Unix指令也可以從檔案取得輸入,語法為:
command < file #获取file文件中的内容作为输入内容,并用于commmand执行
注意:
輸出重定向是大於號(>),輸入重定向是小於號(
2、實例解析
[root@localhost ~]# wc -l users 2 users #wc指令可以计算文件的Byte数、字数、或是行/列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。 [root@localhost ~]# wc -l < users 2 #将输入重定向到 users 文件,上面命令作用就是将users文件内容作为输入重定向计算行数了
注意:
第一個例子,會輸出檔名;
#第二個不會,因為它僅僅知道從標準輸入讀取內容。
command < infile > outfile #同时替换输入和输出,执行command,从文件infile读取内容,然后将输出写入到outfile中。 #理解成,从标准输入中获取内容(输入重定向到infile)作为标准输出(输出重定向到outfile)。
四、深入理解重定向
上面檔案描述子中已經簡單介紹過標準輸入、標準輸出和標準錯誤輸出等,下面再詳細講解。
1、簡介
一般情況下,每個Unix/Linux 指令執行時都會開啟三個檔案:
1)標準輸入檔(stdin) :
stdin的檔案描述符為0,Unix程式預設從stdin讀取資料。
2)標準輸出檔(stdout):
stdout 的檔案描述子為1,Unix程式預設向stdout輸出資料。
3)標準錯誤檔案(stderr):
stderr的檔案描述符為2,Unix程式會寫入錯誤訊息給stderr流中。
預設情況下,command > file 將 stdout 重定向到 file,command
2、命令詳解
command 2>file #stderr 重定向到 file command 2>>file #stderr 追加到 file 文件末尾 command > file 2>&1 command >> file 2>&1 #stdout 和 stderr 合并后重定向到 file command < file1 >file2 #对 stdin 和 stdout 都重定向 #command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2
五、Here Document
Here Document 是Shell 中的一種特殊的重定向方式,用來將輸入重定向到一個互動式Shell 腳本或程式。
1、語法
它的基本的形式如下:
command << delimiter document delimiter #作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。
#注意:
結尾的delimiter 一定要頂格寫,前面不能有任何字符,後面不能有任何字符,包括空格和tab 縮排。
開始的delimiter前後的空格會被忽略掉。
2、實例解析
EOF是END Of File的縮寫,表示自訂終止符。既然可以自定,因此EOF並非具有固定值,可以隨意設定別名,例如在Linux中,按下Ctrl-D可作為EOF代替。
EOF一般會配合cat能夠多行文字輸出。
實例如下:
[root@localhost ~]# wc -l << EOF > a > b > c > d > e > EOF 5 #输入内容为5行 [root@localhost ~]# cat << EOF > a > b > c > d > e > f > EOF a b c d e f
EOF也是可以自訂如下所示:
[root@iZ2ze95cxr3kx9il409khtZ ~]# cat << CCC > a > b > c > d > CCC a b c d
執行腳本輸入的時候就可以用以下形式:
#拥有大量输入的时候可以用下面的形式,将标准输入的内容重定向到(输入到)test.sh文件中。 [root@localhost ~]# cat << EOF >test.sh > 123123123 > 3452354345 > asdfasdfs > EOF [root@localhost ~]# cat test.sh 123123123 3452354345 asdfasdfs [root@localhost ~]#
以上是linux操作之重定向問題怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Linux系統的五大支柱是:1.內核,2.系統庫,3.Shell,4.文件系統,5.系統工具。內核管理硬件資源並提供基本服務;系統庫為應用程序提供預編譯函數;Shell是用戶與系統交互的接口;文件系統組織和存儲數據;系統工具用於系統管理和維護。

在Linux系統中,可以通過在啟動時按特定鍵或使用命令如“sudosystemctlrescue”進入維護模式。維護模式允許管理員在不受干擾的情況下進行系統維護和故障排除,如修復文件系統、重置密碼、修補安全漏洞等。

Linux初學者應掌握文件管理、用戶管理和網絡配置等基本操作。 1)文件管理:使用mkdir、touch、ls、rm、mv、cp命令。 2)用戶管理:使用useradd、passwd、userdel、usermod命令。 3)網絡配置:使用ifconfig、echo、ufw命令。這些操作是Linux系統管理的基礎,熟練掌握它們可以有效管理系統。

本文解釋瞭如何管理Linux中的Sudo特權,包括授予,撤銷和安全性最佳實踐。關鍵重點是安全和sudoers安全和限制訪問。Character數量:159

本文提供了有關使用Google Authenticator在Linux上設置兩因素身份驗證(2FA)的指南,詳細介紹了安裝,配置和故障排除步驟。它突出了2FA的安全益處,例如增強的SEC

本文討論了使用TOP,HTOP和VMSTAT監視Linux系統性能,並詳細介紹其獨特功能和自定義選項,以進行有效的系統管理。

文章討論了使用APT,YUM和DNF在Linux中管理軟件包,涵蓋安裝,更新和刪除。它比較了它們對不同分佈的功能和適用性。

本文介紹瞭如何在Linux中使用正則表達式(REGEX)進行模式匹配,文件搜索和文本操作,詳細列式,命令和工具,例如GREP,SED和AWK。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能