搜尋此網誌

RHCE - BASH


BASH
一台電腦可以簡單的分為三個部分,硬體、系統核心、以及使用者介面。
Shell屬於使用者介面的一種,用來幫助使用者下達命令給核心,核心再去控制硬體。
Bash是Linux預設的Shell,全名為Bourne Again Shell。
Linux中不只Bash一種Shell,可以在/etc/shells中查詢目前可使用的Shell。
2012-01-04_203405.jpg

Bash主要的優點有以下六點。
歷史紀錄:
利用 #history 可以列出之前輸入過的的命令,上限筆數預設是1000筆。
列表中編號數字越大的表示時間越接近當前。
2012-01-04_222806.jpg
可以利用 #![編號] 重新入數列表中特定編號的命令, #!! 可以重新輸入上一筆命令。
利用 #![關鍵字] 可以重新輸入以關鍵字開頭且時間最接近的命令。
或者在使用者家目錄下的.bash_history檔中,可以看到使用者最近一次登出前的命令歷史紀錄。
紀錄的上限筆數可以輸入 #echo $HISTSIZE 查詢。
2012-01-04_222714.jpg
可在/etc/profile中變更上限設定。
2012-01-04_222623.jpg

命令與檔案補全:
在輸入Shell的時候,有些太過複雜難記的的命令或檔案,可以擅用Tab鍵幫忙補全。
例如當我們想輸入 #ifconfig 這個命令,但是可能只記得if這兩個字。
這時按下Tab,系統不會有反應,但是再按一次系統就會列出所有if開頭的命令。
如果是輸入ifco再按下Tab,因為可能的命令只剩下一個了,系統就會自動補齊ifconfig。
除了命令之外Tab鍵也可以補齊檔案名稱。

別名:
別名的概念有點像是快捷鍵,使用簡單易記的自訂命令來取代過長的命令。
例如 #route -n 這個指令使用者覺得太長,想用 #rou 這個別名取代原本的命令。
這時候就可以輸入 #alias rou='route -n',如此之後輸入 #rou 就可以等同 #route -n
2012-01-04_223037.jpg
另外也可以使用 #alias [命令] 去查詢這個別名原本的命令。
2012-01-04_223125.jpg
而輸入 #alias 可以查詢目前所使用的別名有哪些。
2012-01-04_223146.jpg

工作控制:
命令輸入之後會在系統中產生一個工作,Bash可以對這些工作進行控制。
Ctrl+C可以終止目前正在進行的工作,Ctrl+Z可以暫停目前正在進行的工作,將之移至背景。
前景與背景的差別在於,前景可以讓使用者進行操作,而背景則無法。
使用 #jobs 可以查詢目前背景的工作有哪些,這些工作之前會有其編號。
2012-01-04_223444.jpg
加入參數-r是只列出背景執行的工作,-s是列出背景暫停的工作。
背景執行是將工作移到背景繼續執行,讓使用者可以繼續輸入別的命令。
背景暫停就是將工作暫停移到背景,而工作在背景中是完全靜止的。
使用 #fg %[工作編號] 可以將背景中的工作移回前景,若不指定編號則會移動時間最接近的。
使用 #bg %[工作編號] 可以將背景中暫停的工作變成背景下執行。
或者在命令之後加上「&」,例如 #ping 192.168.1.0 &,這個命令就會被直接移動到背景執行。

腳本:
腳本可以讓使用者集合許多命令以及參數,變成一個可以同時完成很多事情的Shell Script。
例如管理員要在每個使用者的家目錄下建立10個不同的檔案,並且移除掉特定副檔名的檔案。
這樣的情況下,經由編寫Shell Script來集合命令,可以讓管理員更快速的完成工作。

萬用字元:
使用者可以使用萬用字元來加速命令的操作。
例如想利用yum安裝跟httpd有關的所有檔案的時候,我們可以輸入 #yum install httpd*
這樣就會把以httpd開頭的檔案通通都安裝了。
 

Copyright © Jackie.Chen | Powered by Blogger | Template by 54BLOGGER | Fixed by Free Blogger Templates