bash簡(jiǎn)介
2004-04-23 15:18 pm
來自:Linux文檔
現(xiàn)載:Www.8s8s.coM
地址:無名
bash(Bourne Again Shell) 是 Red Hat 的缺省 shell. 它有40個(gè)內(nèi)建命令和12個(gè)命令行參數(shù)。
shell 是一個(gè)命令語言解釋器(command-language interpreter)。 shell是用戶和linux內(nèi)核之間的接口程序。你在提示符下輸入的每個(gè)命令都由shell先解釋然后傳給Linux內(nèi)核。
shell 如何啟動(dòng) shell在你成功地登錄進(jìn)入系統(tǒng)后啟動(dòng),并始終作為你與系統(tǒng)內(nèi)核的交互手段直至你退出系統(tǒng)。你系統(tǒng)上的每位用戶都有一個(gè)缺省的shell。每個(gè)用戶的缺省shell在系統(tǒng)里的passwd文件里被指定,該文件的路徑是/etc/passwd。
bash 命令概要
這是幾個(gè)最常用的bash內(nèi)部命令:
alias: 設(shè)置bash別名。
bg: 使一個(gè)被掛起的進(jìn)程在后臺(tái)繼續(xù)執(zhí)行。
cd: 改變當(dāng)前工作目錄。
exit: 終止shell。
export: 使變量的值對(duì)當(dāng)前shell的所有子進(jìn)程都可見 。
fc: 用來編輯歷史命令列表里的命令。
fg: 使一個(gè)被掛起的進(jìn)程在前臺(tái)繼續(xù)執(zhí)行。
help: 顯示bash內(nèi)部命令的幫助信息。
kill: 終止某個(gè)進(jìn)程。
pwd: 顯示當(dāng)前工作目錄。
unalias: 刪除已定義的別名。
bash 還有許多命令,但這些是最常用的,想了解更詳細(xì)的情況,請(qǐng)參考bash的手冊(cè)--在提示符下鍵入 man bash。
bash 變量
這里是幾個(gè)最有用的bash變量,包括變量名和簡(jiǎn)單描述。
EDITOR, FCEDIT: bsah fc 命令的缺省編輯器。
HISTFILE: 用于貯存歷史命令的文件。
HISTSIZE: 歷史命令列表的大小。
HOME: 當(dāng)前用戶的用戶目錄。
OLDPWD: 前一個(gè)工作目錄。
PATH: bash尋找可執(zhí)行文件的搜索路徑。
PS1: 命令行的一級(jí)提示符。
PS2: 命令行的二級(jí)提示符。
PWD: 當(dāng)前工作目錄。
SECONDS: 當(dāng)前shell開始后所流逝的秒數(shù)。
bash的特性:
1.命令補(bǔ)齊(Command-Line Completion)
在 bash 下輸入命令時(shí)你不必把命令輸全 shell 就能判斷出你所要輸入的命令。只要輸入命令的一部分,再按下 Tab 鍵,當(dāng)你這樣做以后,bash 將幫你補(bǔ)齊命令并顯示在屏幕上。但在你按下回車鍵以前命令并沒有被執(zhí)行,bash 會(huì)讓你檢驗(yàn)補(bǔ)齊的命令是否是你真正需要的。在輸入象這樣短的命令時(shí)你也許看不出它的價(jià)值所在,甚至在命令很短時(shí)還會(huì)簡(jiǎn)慢輸入的速度,但是當(dāng)你要輸入的命令有點(diǎn)長(zhǎng)時(shí),你會(huì)發(fā)現(xiàn)這個(gè)特性是多么的美好。
2. 通配符
另一個(gè)使命令輸入變得更簡(jiǎn)單的方法是在命令中使用通配符。bash 支持三種通配符:
* 匹配任何字符和任何數(shù)目的字符
? 匹配任何單字符
[...] 匹配任何包含在括號(hào)里的單字符
3. 命令歷史記錄
bash 支持命令歷史記錄。這意味著 bash 保留了一定數(shù)目的你先前已經(jīng)在shell 里輸入過的命令。這個(gè)數(shù)目取決于一個(gè)叫做HISTSIZE的變量。有關(guān) HISTSIZE 的更多信息,請(qǐng)看本文后面的“bash 變量”一節(jié)。
bash 把你先前輸入的命令文本保存在一個(gè)歷史列表中。當(dāng)你用你的帳號(hào)登錄后歷史列表將根據(jù)一個(gè)歷史文件被初始化。歷史文件的文件名被一個(gè)叫 HISTFILE 的 bash變量指定。歷史文件的缺省名字是 .bash_history。這個(gè)文件通常在你的用戶目錄中。(注意該文件的文件名以一個(gè)句號(hào)開頭,這意味著它是隱含的,僅當(dāng)你帶 -a 或 -A參數(shù)的 ls 命令列目錄時(shí)才可見)
使用歷史記錄列表最簡(jiǎn)單的方法是用上方向鍵。按下上方向鍵后最后鍵入的命令將出現(xiàn)在命令行上。再按一下則倒數(shù)第二條命令會(huì)出現(xiàn),以此類推。如果上翻多了的話也可以用向下的方向鍵來下翻。顯示在命令行上的歷史命令可以被編輯。
另一個(gè)使用命令歷史文件的方法是用 bash 的內(nèi)部命令 history 和 fc(fix 命令)命令來顯示和編輯歷史命令。history 命令能以兩種不同的方法來調(diào)用。第一種是:
history [n]
當(dāng) history 命令沒有參數(shù)時(shí),整個(gè)歷史命令列表的內(nèi)容將被顯示出來。下面是一個(gè)命令歷史列表的例子:
使用 n 參數(shù)的作用是僅有最后 n 個(gè)歷史命令會(huì)被列出。例如,history 5 顯示最后 5 個(gè)命令。
調(diào)用 history 命令的第二種方法用于修改命令歷史列表文件的內(nèi)容。命令的語法如下:
history [-r|w|a|n] [filename]
這種形式中,-r 選項(xiàng)告訴 history 命令讀命令歷史列表文件的內(nèi)容并且把它們當(dāng)作當(dāng)前的命令歷史列表。-w 選項(xiàng)將把當(dāng)前的命令歷史記錄寫入文件中并覆蓋文件原來的內(nèi)容。-a 選項(xiàng)把當(dāng)前的命令歷史記錄追加到文件中。-n 選項(xiàng)將讀取文件中的內(nèi)容并加入到當(dāng)前歷史命令列表中。如果 filename 選項(xiàng)沒有被指定,history 命令將用變量HISTFILE 的值來代替。
fc 命令能用兩種方法來編輯歷史命令。第一種使用下列語法:
fc [-e editor_name] [-n] [-l] [-r] [first] [last]
這里所有參數(shù)都是可選的。-e editor_name 選項(xiàng)用來指定用于編輯命令的文本編輯器。 first 和 last 選項(xiàng)用于選擇列出歷史命令的范圍,既可以是數(shù)字也可以是字符串。-n 選項(xiàng)禁止列出命令的編號(hào)。-r 選項(xiàng)反向列出匹配的命令。-l 選項(xiàng)把匹配的命令行列在屏幕上(而不是在編輯器中)。如果-e editor_name參數(shù)沒有被指定,則以變量FCEDIT的值來代替,如果該變量不存在的話,則用變量EDITOR的值來代替,都不存在的話將使用vi編輯器。
4.別名
命令別名通常是其他命令的縮寫,用來減少鍵盤輸入。
alias file='ls -l | grep ^-'
alias ls='ls --color'
alias sub='ls -F -l | grep /$'
這是一些很多用戶認(rèn)為有用的別名,你可以把它們寫入你的.profile文件中提高工作效 :
如果想取消別名,可以使用下面的命令:
unalias <alias name>
定義別名時(shí),等號(hào)的兩頭不能有空格,否則 shell 不能決定你需要做什么。
5.輸入重定向
輸入重定向用于改變一個(gè)命令的輸入源。一些命令需要在命令行里輸入足夠的信息才能工作。 輸入重定向并不經(jīng)常使用因?yàn)榇蠖鄶?shù)命令都以參數(shù)的形式在命令行上指定輸入文件的文件名。盡管如此,當(dāng)你使用一個(gè)不接受文件名為輸入?yún)?shù)的命令,而需要的輸入又是在一個(gè)已存在的文件里時(shí),你就能用輸入重定向解決問題。
6.輸出重定向
輸出重定向比輸入重定向更常用。輸出重定向使你能把一個(gè)命令的輸出重定向到一個(gè)文件里,而不是顯示在屏幕上。
7.管道
管道可以把一系列命令連接起來。這意味著第一個(gè)命令的輸出會(huì)通過管道傳給第二個(gè)命令而作為第二個(gè)命令的輸入,第二個(gè)命令的輸出又會(huì)作為第三個(gè)命令的輸入 ,以此類推。而管道行中最后一個(gè)命令的輸出才會(huì)顯示在屏幕上(如果命令行里使用了輸出重定向的話,將會(huì)放進(jìn)一個(gè)文件里)。
8.提示符
bash 有兩級(jí)用戶提示符。第一級(jí)是你經(jīng)常看到的 bash 在等待命令輸入時(shí)的提示符。缺省的一級(jí)提示符是字符$(如果是超級(jí)用戶,則是#號(hào))。你可以通過改變bash 的PS1變量的值來改變你的缺省提示符。
把bash shell 的提示符該為指定的字符串。
當(dāng)bash 期待輸入更多的信息以完成命令時(shí)顯示第二級(jí)提示符。缺省的第二級(jí)提示符是 >。 果你要改變第二級(jí)提示符,可以通過設(shè)置PS2變量的值來實(shí)現(xiàn)。
另外你還可以用特殊的字符來定義你的提示符,下面的列表列出了最常用的特殊字符。
字符
含義
!
顯示該命令的歷史記錄編號(hào)。
# 顯示當(dāng)前命令的命令編號(hào)。
$ 顯示$符作為提示符,如果用戶是root的話,則顯示#號(hào)。
顯示反斜杠。
d 顯示當(dāng)前日期。
h 顯示主機(jī)名。
打印新行。
nn 顯示nnn的八進(jìn)制值。
s 顯示當(dāng)前運(yùn)行的shell的名字。
顯示當(dāng)前時(shí)間。
u 顯示當(dāng)前用戶的用戶名。
W 顯示當(dāng)前工作目錄的名字。
w 顯示當(dāng)前工作目錄的路徑。
9. 作業(yè)控制(Job Control)
作業(yè)控制能夠控制當(dāng)前正在運(yùn)行的進(jìn)程的行為。特別地,你能把一個(gè)正在運(yùn)行的進(jìn)程掛起,稍后再恢復(fù)它的運(yùn)行。bash 保持對(duì)所有已啟動(dòng)的進(jìn)程的跟蹤,你能在一個(gè)正在運(yùn)行的進(jìn)程的生命期內(nèi)的任何時(shí)候把它掛起或是使它恢復(fù)運(yùn)行。
按下 Ctrl-Z 使一個(gè)運(yùn)行的進(jìn)程掛起。bg 命令使一個(gè)被掛起的進(jìn)程在后臺(tái)恢復(fù)運(yùn)行,反之 fg 命令使進(jìn)程在前臺(tái)恢復(fù)運(yùn)行。這幾個(gè)命令在當(dāng)用戶想在后臺(tái)運(yùn)行而意外的把它放到了前臺(tái)時(shí),經(jīng)常被用到。當(dāng)一個(gè)命令在前臺(tái)被運(yùn)行時(shí),它會(huì)禁止用戶與 shell 的交互,直到該命令結(jié)束。這通常不會(huì)造成麻煩,因?yàn)榇蠖鄶?shù)命令很快就執(zhí)行完了。如果你要運(yùn)行的命令要花費(fèi)很長(zhǎng)的時(shí)間的話,我們通常會(huì)把它放到后臺(tái),以使我們能在前臺(tái)繼續(xù)輸入其他命令。
10. 用戶化配置bash
為了保存這些用戶化配置,必須把它們保存到一個(gè)bash的初始化文件里。 你能把任何想每次進(jìn)入bash都執(zhí)行的命令放到初始化文件里。這個(gè)文件里最常見到的命令通常是alias和變量的初始化。bash的初始化文件叫做 profile。每個(gè)使用bash的用戶都有一個(gè) .profile文件在他的用戶目錄里。bash在每次啟動(dòng)時(shí)都讀取這個(gè)文件,并執(zhí)行所有包含的命令。
下面的代碼是缺省的.profile文件的內(nèi)容。這個(gè)文件的位置在 /etc目錄。如果你想設(shè)置自己的bash 的話把它拷到你的用戶目錄里(如果還沒有的話)并命名為.profile。
posted on 2006-01-17 20:00
EricWong 閱讀(351)
評(píng)論(0) 編輯 收藏 所屬分類:
Linux