[RHCE] Bash
BASH
一台電腦可以簡單的分為三個部分,硬體、系統核心、以及使用者介面。Shell屬於使用者介面的一種,用來幫助使用者下達命令給核心,核心再去控制硬體。Bash是Linux預設的Shell,全名為Bourne Again Shell。Linux中不只Bash一種Shell,可以在/etc/shells中查詢目前可使用的Shell;Bash主要的優點有以下六點:歷史紀錄
利用 #history 可以列出之前輸入過的的命令,上限筆數預設是1000筆。列表中編號數字越大的表示時間越接近當前。可以利用 #![編號] 重新入數列表中特定編號的命令, #!! 可以重新輸入上一筆命令。利用 #![關鍵字] 可以重新輸入以關鍵字開頭且時間最接近的命令。或者在使用者家目錄下的.bash_history檔中,可以看到使用者最近一次登出前的命令歷史紀錄。
紀錄的上限筆數可以輸入 #echo $HISTSIZE 查詢。
可在/etc/profile中變更上限設定。
命令與檔案補全
在輸入Shell的時候,有些太過複雜難記的的命令或檔案,可以擅用Tab鍵幫忙補全。例如當我們想輸入 #ifconfig 這個命令,但是可能只記得if這兩個字。這時按下Tab,系統不會有反應,但是再按一次系統就會列出所有if開頭的命令。如果是輸入ifco再按下Tab,因為可能的命令只剩下一個了,系統就會自動補齊ifconfig。除了命令之外Tab鍵也可以補齊檔案名稱。別名
別名的概念有點像是快捷鍵,使用簡單易記的自訂命令來取代過長的命令。例如 #route -n 這個指令使用者覺得太長,想用 #rou 這個別名取代原本的命令。這時候就可以輸入 #alias rou='route -n',如此之後輸入 #rou 就可以等同 #route -n。另外也可以使用 #alias [命令] 去查詢這個別名原本的命令。
而輸入 #alias 可以查詢目前所使用的別名有哪些。
工作控制
命令輸入之後會在系統中產生一個工作,Bash可以對這些工作進行控制。Ctrl+C可以終止目前正在進行的工作,Ctrl+Z可以暫停目前正在進行的工作,將之移至背景。前景與背景的差別在於,前景可以讓使用者進行操作,而背景則無法。使用 #jobs 可以查詢目前背景的工作有哪些,這些工作之前會有其編號。加入參數-r是只列出背景執行的工作,-s是列出背景暫停的工作。背景執行是將工作移到背景繼續執行,讓使用者可以繼續輸入別的命令。背景暫停就是將工作暫停移到背景,而工作在背景中是完全靜止的。使用 #fg %[工作編號] 可以將背景中的工作移回前景,若不指定編號則會移動時間最接近的。使用 #bg %[工作編號] 可以將背景中暫停的工作變成背景下執行。或者在命令之後加上「&」,例如 #ping 192.168.1.0 &,這個命令就會被直接移動到背景執行。
留言
張貼留言