第三章:重定向,管道符,環境變數
3.1 輸入輸出重定向
-
定義:輸入重定向是指將檔案匯入命令中,輸出重定向是指將原本顯示到螢幕的資訊輸出問檔案。相較於輸入重定向,輸出重定向使用的更多,下面重點介紹輸出重定向
-
輸出重定向用到的符號和作用如下所示
符號 作用 命令 > 檔案 將標準輸出重定向到一個檔案中(同時清空檔案中原有內容) 命令 2> 檔案 將錯誤輸出重定向到一個檔案中(同時清空檔案中原有內容) 命令 >> 檔案 將標準輸出重定向到一個檔案中(在檔案中原有內容後追加) 命令 2>> 檔案 將錯誤輸出重定向到一個檔案中(在檔案中原有內容後追加) 命令 &>> 檔案 將標準和錯誤重定向到一個檔案中(在檔案中原有內容後追加) -
示例
-
# 在使用者家目錄下輸入命令ls,並將輸出到螢幕的內容寫入到檔案list中 ls > list.txt
-
# 錯誤重定向 cd list.txt 2> cd list.txt
-
# 標準輸出重定向在檔案中原有內容追加 ls >> list.txt
-
3.2 管道符
-
命令格式:“命令1 | 命令2”
-
作用:把前一個命令原本要輸入到螢幕的資料當作是後一個命令的標準輸入
-
示例
-
# 找出被限制登入的使用者的數量 grep "/sbin/nologin" /etc/passwd | wc -l
-
# 翻頁形式檢視/etc目錄下的列表 ls -l /etc/ | more
-
# 一句話完成密碼重置操作 echo "newpasswd" | passwd --stdin root
-
-
管道符不僅僅侷限於兩個命令的組合,可以有“命令1 | 命令2 | 命令3”
3.3 命令列萬用字元
-
(*)表示匹配零個或多個字元,(?)表示匹配單個字元,中括號中新增字元([0-9] ,[a-z],[abc])表示匹配其中某個字元
-
以RHEL8中/dev目錄做演示
-
# 輸出所有以tty開頭的檔案 ls -l /dev/tty*
-
# 輸出結束符號在0-9範圍的tty檔案 ls -l /dev/tty[0-9]
-
# 輸出只緊跟一個字元的tty檔案 ls -l /dev/tty?
-
3.4 常用的轉義符
-
四個常用的轉義符
- 反斜槓(\): 使得斜槓後面的一個變數變為單純的字串
- 單引號(''): 轉義其中所有的變數為單純的字串
- 雙引號(""): 保留其中的變數屬性,不進行轉義處理
- 反引號 (``): 把其中的命令執行後返回結果
-
示例:首先定義一個變數
-
# 如果我們希望輸出“Price is $5" # 使用轉義符(\) echo "Price is \$$PRICE"
-
# 如果需要某個命令的輸出值,可以使用`命令` # 如,檢視本機的Linux版本資訊 echo uname -a
-
3.5 重要的環境變數
-
環境變數定義:Linux變數名稱一般都是大寫的(約定俗成),我們可以通過變數名來提取對應的變數值
-
格式:"echo $變數名稱"
-
常用的變數名稱
變數名稱 作用 HOME 使用者的主目錄 SHELL 使用者在使用的SHELL直譯器名稱 MAIL 郵件的儲存路徑 PATH 定義直譯器搜尋使用者執行命令的路徑 -
示例