一、認識bash這個shell
1.管理整個計算機硬體的其實就是作業系統的核心,這個核心是需要被保護的,所以我們一般使用者就只能通過shell來跟核心通訊,以讓核心達到我們所想打到的工作。
2.只要能夠操作應用程式的介面度能夠稱為shell
shell的功能
命令記憶功能history
命令與檔案補全功能
命令別名設定功能(alias)
作業控制,前臺,後臺控制
程式指令碼
萬用字元
二、shell的變數功能
1.環境變數例如PATH,HOME,MAIL,SHELL等,為了區別與自定義變數的不同,環境變數通常以大寫字元來表示
2.我們可以利用echo這個命令來顯示變數,但是變數在被顯示時,前面必須加上字元
3.基本上,命令執行的順序可以這樣看
1.以相對/絕對路徑執行命令
2.由alias找到該命令執行
3.由bash內建的命令來執行
4.通過
預設的組合鍵
Ctrl+C終止目前的命令
Ctrl+D輸入結束EOF
Ctrl+M就是Enter
Ctrl+S暫停螢幕的輸出
Ctrl+Q恢復螢幕的輸出
Ctrl+U在提示符下,將整行命令刪除
Ctrl+Z暫停目前的命令
6.萬用字元與特殊符號
*代表0個到無窮多個任意字元
?代表一定有一個任意字元
[]同一代表一定有一個在中括號內的字元,例如[abcd]代表這四個中一個
[-]例如[0-9]代表0-9之間的所有數字
[^]例如[^abc]表示的是非abc的.其它字元
三、資料流重定向
1.標準輸出指的是命令執行所回傳的正確的資訊,而標準錯誤輸出可理解為命令執行失敗後,所回傳的錯誤資訊
2.標準輸入stdin:程式碼為0,使用<或《
標準輸出stdout:程式碼為1,使用>或》
標準錯誤輸出stderr:程式碼為2,使用2>或2》
3.1>:以覆蓋的方法將正確的資料輸出到指定的檔案或裝置上
1.》:以累加的方法將正確的資料輸出到指定的檔案或裝置上
2.>:以覆蓋的方法將錯誤的資料輸出到指定的檔案或裝置上
3.》:以累加的方法將錯誤的資料輸出到指定的檔案或裝置上
4.&&和||的執行情況
cmd1&&cmd2若cmd1執行完畢且正確執行,則開始執行cmd2;若cmd1執行完畢為錯誤,則cmd2是不執行
cmd1||cmd2若cmd1執行完畢且正確執行,則cmd2不執行;若cmd1執行完畢且為錯誤,則開始執行cmd2
四、管道命令
1.管道命令|僅能經由前面一個命令傳來的正確的資訊,也就是標準輸出的資訊,對於標準錯誤輸出是沒有處理能力
2.在每個管道後面接的第一個資料必定是命令,而且這個命令必須是能夠接收標準輸入的資料才行,這樣的命令才可以是管道命令
3.一般來說,選取資訊通常是針對"行"來分析的,並不是整篇資訊分析的
命令可以將一段資訊的一段切出來,處理的資訊是以行為單位
是抓取我們所需要的資訊
可以進行文字資料來排序
是可以將重複的資料僅列出一個顯示,但是要求必須先排好序
可以用來統計檔案的行數和單詞數
命令可以用來雙向重定向,同時將資料流送與檔案與螢幕