隨筆-208  評(píng)論-469  文章-30  trackbacks-0


          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
          主站蜘蛛池模板: 辽源市| 朝阳县| 将乐县| 凯里市| 谢通门县| 乌拉特前旗| 宜宾县| 佛山市| 简阳市| 鹰潭市| 嵊州市| 东城区| 留坝县| 黎川县| 青铜峡市| 绵竹市| 时尚| 衡阳县| 安塞县| 嫩江县| 嘉鱼县| 伊宁县| 新沂市| 宝丰县| 德江县| 麻阳| 丰台区| 阿拉善右旗| 金川县| 泾源县| 吉林省| 宝应县| 普兰店市| 如皋市| 墨江| 前郭尔| 日喀则市| 郁南县| 通化县| 双柏县| 潜江市|