第三章:重定向,管道符,環境變量
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 定義解釋器搜索用戶執行命令的路徑 -
示例

