bash 的主要優點
1、命令記憶功能
- 記錄在~/.bash_history。要注意的是,本次登錄所執行的命令都被暫存在臨時內存中,當你成功注銷后才寫入到文件。
- 可以使用history命令查看曾經執行的命令
!number 可以重復執行history命令(number為history命令查詢出來的命令序號)
2、命令和文件補全功能([Tab]按鍵的好處)
- [Tab]接在一串命令的第一個后面,則為命令補全(所以如果想知道系統當中有多少以c開頭的命令,可以按下"c[Tab][Tab]")
- [Tab]接在一串命令的第二個后面,則為文件補全
3、命令設置別名功能
- 設置臨時別名:alias cls='clear'
- 設置永久別名:將上述命令保存到~/.bashrc
4、作業控制、前臺、后臺控制
可以實現單一登錄的環境中實現多任務
5、腳本程序(shell script)
非常強大
6、通配符
除了完整的字符串之外,bash還支持許多的通配符來幫助用戶查詢與命令執行
例如想要知道/usr/bin下面有多少以X開頭的文件:
ls -l /usr/bin/X*
變量
1、定義變量
myname=helloworld
這樣子就定義好一個變量,可以通過echo $myname或echo ${myname}來打印這個變量
2、取消變量
unset myname即可取消上述設置的變量
3、設置變量的類型
可以用declare來定義變量的類型:declare [-aixr] variable
-a 數組
-i 整形
-x 功能和export一樣
-r readonly
4、變量內容的刪除、替代與替換
刪除與替換
- ${var#str} 若變量內容從頭開始的數據符合關鍵字,則將符合的最短數據刪除
- ${var##str} 若變量內容從頭開始的數據符合關鍵字,則將符合的最長數據刪除
- ${var%str} 若變量內容從尾向前的數據符合關鍵字,則將符合的最短數據刪除
- ${var#str} 若變量內容從尾向前的數據符合關鍵字,則將符合的最短數據刪除
- ${var/str/new_str} 若變量內容符合舊字符串,則將符合的第一個數據刪除
- ${var//str/new_str} 若變量內容符合舊字符串,則將符合的全部數據刪除
變量的測試與替換
\1.PNG
3、變量的作用域
上面定義的變量只能在本進程中使用,父進程定義的變量無法再子進程內使用。不過可以通過export將變量變成環境變量后,就能在子進程下面應用了。
環境變量
1、可以用env查看環境變量,下面是一些環境變量的說明:
- HOME 代表用戶的主文件夾
- SHELL 告知我們目前這個環境使用的shell是哪個程序,默認是/bin/bash
- PATH 就是執行文件查找的路徑,以":"分隔
2、可以用set同時查看環境變量和自定義變量
- PS1 提示符的設置
- $ 代表目前這個shell的線程代號
- ? 關于上一個執行命令的回傳碼
當我們執行某些命令時,這些命令都會回傳一個執行后的代碼。一般來書,如果成功執行改名了,則會回傳一個0。
例如:
echo $HOME //打印 /root
echo $? //打印 0
4、終端機的環境設置
stty -a可以列出所有的按鍵與按鍵內容
bash默認的組合鍵:
- ctrl + c:終止目前的命令
- ctrl + d:輸入結束,例如郵件結束的時候
- ctrl + m:就是enter
- ctrl + s:暫停屏幕的輸出
- ctrl + q:恢復屏幕的輸出
- ctrl + u:在命令提示符下,將整行命令刪除
- ctrl + z:暫停目前的命令