一、輸入輸出重定向
輸入重定向是指把文件導入到命令中,而輸出重定向則是把本來要輸出到屏幕的數據信息寫入到指定文件中
標準輸入重定向(STDIN,文件描述爲0):默認從鍵盤輸入,也可也從其餘文件或命令輸入
標準輸出重定向(STDOUT,文件描述爲1):默認輸出到屏幕
錯誤重定向(STDERR,文件描述爲2):默認輸出到屏幕
輸入重定向中用到的符號及其做用
命令 < 文件 將文件做爲命令的標準輸入
命令 << 分節符 從標準輸入中讀入,知道碰見分節符才中止
命令 <文件1> 文件2 將文件1做爲命令的標準輸入並將標準輸出到文件2linux
輸出重定向中用到的符號及其做用
命令 > 文件 將標準輸出重定向到一個文件中(清空原有文件的數據)
命令 2> 文件 將錯誤輸出重定向到一個文件中(清空原有文件的數據)
命令 >> 文件 將標準輸出重定向到一個文件中(追加到原有內容的後面)
命令 2>> 文件 將錯誤輸出重定向到一個文件中(追加到原有內容的後面)
命令 >> 文件 2>&1 或 命令 &>> 文件 將標準輸出和錯誤輸出重定向到一個文件中(追加到原有內容的後面)
二、管道符命令
管道符是爲了把前一個命令本來要輸出到屏幕的標準正常數據看成後一個命令的標準輸入
三、命令行的通配符
五、經常使用的轉義符
4個最經常使用的轉義符
反斜槓 \ 使用反斜槓後面的一個變量變成單純的字符串
單引號' ' 轉義其中全部的變量爲單純的字符串
雙引號" "保留其中的變量屬性,不進行轉義處理
反引號'' 把其中的命令執行後返回結果
![]
五、重要的環境變量
變量是計算機系統用於保存可變值得數據類型
用戶在執行一條命令後,linux系統中到底發生了什麼事情?一般來講,命令在linux中執行分爲4個步驟
第一步:判斷用戶是否以絕對路徑或者相對路徑得方式輸入命令?(如/bin/ls),若是是的話直接執行
第二步:Linux 系統檢查用戶輸入的命令是否爲「別名命令」,即用一個自定義的命令名稱來替換本來的命令名稱。能夠用alias 命令來建立一個屬於本身的命令別名,格式爲「alias 別名=命令」。若要取消一個命令別名,則是用unalias 命令,格式爲「unalias 別名」。咱們以前在使用rm 命令刪除文件時,Linux 系統都會要求咱們再確認是否執行刪除操做,其實這就是Linux 系統爲了防止用戶誤刪除文件而特地設置的rm 別名命令,接下來咱們把它取消掉:
第三步:Bash 解釋器判斷用戶輸入的是內部命令仍是外部命令。內部命令是解釋器內部的指令,會被直接執行;而用戶在絕大部分時間輸入的是外部命令,這些命令交由步驟4 繼續處理。可使用「type 命令名稱」來判斷用戶輸入的命令是內部命令仍是外部命令。
第四步:系統在多個路徑中查找用戶輸入的命令文件,而定義這些路徑的變量叫做PATH,能夠簡單地把它理解成是「解釋器的小助手」,做用是告訴Bash 解釋器待執行的命令可能存放的位置,而後Bash 解釋器就會乖乖地在這些位置中逐個查找。PATH 是由多個路徑值組成的變量,每一個路徑值之間用冒號間隔,對這些路徑的增長和刪除操做將影響到Bash 解釋器對Linux 命令的查找。
這裏有比較經典的問題:「爲何不能將當前目錄(.)添加到PATH 中呢? 」 緣由是,儘管能夠將當前目錄(.)添加到PATH 變量中,從而在某些狀況下可讓用戶免去輸入命令所在路徑的麻煩。可是,若是在比較經常使用的公共目錄/tmp 中存放了一個與ls 或cd 命令同名的文件,而用戶又恰巧在公共目錄中執行了這些命令,那麼就極有可能中招了。
因此,做爲一名態度謹慎、有經驗的運維人員,在接手了一臺Linux 系統後必定會在執行命令前先檢查PATH 變量中是否有可疑的目錄,另外讀者從前面的PATH 變量示例中是否也感受到環境變量特別有用呢。咱們可使用env 命令來查看到Linux 系統中全部的環境變量;
linux系統常見的10格系統變量
HOME 用戶的主目錄(即家目錄)
SHELL 用戶在使用的shell解釋器名稱
HISTSIZE 輸出的歷史命令記錄
HISTFILESIZE 保存的歷史命令記錄條數
MAIL郵件保存路徑
LANG 系統語言、語系名稱
RANDOM 生成一個隨機數字
PS1 Bash 解釋器的提示符
PATH 定義解釋器搜索用戶執行命令的路徑
EDITOR 用戶默認的文本編輯器
經過export將變量提高爲全局變量shell