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