Linux 之 Bash -- 認識Bash這個shell

如果經(jīng)常接觸“使用Linux的大神們”俩垃,聽他們的討論励幼,就應(yīng)該不會對“shell”陌生,它是我們下達命令的一種方式口柳。想要像大神們一樣面對高級的黑屏幕輕松通過shell腳本批量得完成一連串的工作嗎苹粟?那就來試著學(xué)習(xí)寫shell吧。今天跃闹,對于我們初出茅廬的小白嵌削,先從bash開始來認識shell毛好。然后過些時日再學(xué)習(xí)寫shell腳本~激動嗎?無論如何苛秕,貓毛是激動的~

前面我們都有提到肌访,管理計算機硬件的其實是操作系統(tǒng)的核心(kernel),由于它太重要了艇劫,倘若被用戶輕易修改便會造成系統(tǒng)崩潰吼驶,因此核心通常都是被保護的。雖然我們不能隨意使用kernel港准,但總是要讓我們操作系統(tǒng)嘛旨剥,于是就有了操作系統(tǒng)層面之上發(fā)展的 - 應(yīng)用程序。下面這張圖片不知道用了多少次了浅缸,還是再放一次吧轨帜,有利于理解:


應(yīng)用程式=應(yīng)用程序

從圖可以看出,應(yīng)用程序其實是在最外層衩椒,就如同雞蛋的外殼蚌父,用戶可以通過應(yīng)用程序來指揮核心,讓核心達成我們所需要的硬件任務(wù)毛萌,如下圖苟弛,Shell,KDE,application都是應(yīng)用程序。補充一個附加知識點 -(KDE:K桌面環(huán)境的縮寫阁将,一種著名的運行于Linux膏秫、Unix以及FreeBSD等操作系統(tǒng)上的自由圖形桌面環(huán)境,整個系統(tǒng)采用的都是 TrollTech公司所開發(fā)的Qt程序庫)

硬件做盅、核心與用戶的相關(guān)性圖示

扯了那么多缤削,到底什么是shell(殼程序)?

shell就是一種具有特定功能的應(yīng)用程序!它有什么特定功能吹榴?它的功能就是給用戶提供操作系統(tǒng)的接口亭敢,同時,可以操作其他各種應(yīng)用程序來呼叫核心工作图筹。因而帅刀,廣義上講,只要能夠操作應(yīng)用程序的接口都能夠稱為殼程序(shell)远剩,其中也包括圖形接口的軟件(只要該圖形接口也能夠操作各種應(yīng)用程序來呼叫核心工作就可以)扣溺。
狹義的殼程序是指令列方面的軟件(即文字接口的shell),而我們提到更多的也就是這種狹義上的殼程序(殼程序=shell)瓜晤。還記得Linux基礎(chǔ)操作里面學(xué)到的一些指令嘛娇妓?例如,man,vi等等指令活鹰,這些指令其實都是獨立的應(yīng)用程序哈恰,而我們可以通過shell來操作這些應(yīng)用程序,讓這些應(yīng)用程序呼叫核心來運作所需要的工作志群。
終于要切入正題了着绷,今天要學(xué)習(xí)的Bash,就是一種文字接口的shell锌云。由于shell依據(jù)發(fā)展的不同有很多的版本荠医,例如 Bourne SHell(sh)、在Sun里頭預(yù)設(shè)的C Shell等等桑涎。

1.系統(tǒng)合法的shell 與 /etc/shells功能

就像前面提到的彬向,shell的版本有很多,雖然各家shell的功能都差不多攻冷,但是在某些語法的下達方面則有所不同娃胆,還是要根據(jù)自己的需求一種選擇適合自己系統(tǒng)的shell來學(xué)習(xí)為好,而Linux預(yù)設(shè)就是使用bash等曼。所以我們這里就要好好認識bash了里烦。
不過,什么是系統(tǒng)合法的shell?
系統(tǒng)合法的shell都是要寫入/etc/shells文件的禁谦,系統(tǒng)某些服務(wù)在運作過程中胁黑,會通過讀取這份文件來檢查使用者能夠使用的shells。

設(shè)置系統(tǒng)合法的shell干什么用州泊?(附加知識)
舉例來說,某些FTP網(wǎng)站會去檢查使用者的可用shell丧蘸,如果不想讓某些用戶使用FTP以外的主機資源時,可能會給予該使用者一些怪怪的shell遥皂,讓使用者無法以其他服務(wù)登入主機力喷。然后你就要將那些怪怪的shell寫到/etc/shells文件當(dāng)中了。(這里看不懂沒關(guān)系渴肉,不影響后面理解的)

2.Bash shell的功能

2.1 命令編修能力(history)

它能記憶使用過的命令冗懦,因此只要在$提示的指令列按“上”“下”鍵就可以找到前/后一個輸入的指令。而且仇祭,這么多的指令記錄在你的home目錄內(nèi)的.bash_history文件里披蕉。如果你有接觸Linux的渠道,可以按照下面的指令操作來看一下上一次登陸自己執(zhí)行的指令:

$ cd   # 回到home目錄 $指代命令行
$ vi ~/.bash_history  # 查看home目錄下的 .bash_history 文件 $指代命令行

值得注意的是:

  • .bash_history :記錄前一次登陸以前所執(zhí)行過的指令
  • 這一次登陸所執(zhí)行的指令都暫存在內(nèi)存中

2.2 命令與文件補全功能(巧用 tab)

  • tab 接在一串指令的 第一個字母 的后面乌奇,則為 命令補全
  • tab 接在一串指令的 第二個字母 的后面没讲,則為 文件補齊
  • tab 接在某些指令后面,可以進行 選項/參數(shù)的補齊功能(前提:需要安裝 bash-completion軟件)

2.3 命令別名設(shè)定功能(alias)

我們都知道 ls -al 可以知道當(dāng)前目錄底下的所有文件(包含隱藏檔)及所有的文件屬性礁苗,由于這個指令串太長了爬凑,每次輸入都好麻煩,我們可以使用ll代替嘛试伙?
可以直接在命令行中輸入
$ alias ll='ls -al'
以后你就可以直接通過指令“l(fā)l”查看當(dāng)前目錄下所有文件及他們的屬性了

2.4 工作控制嘁信、前景背景控制

這個后面再提于样,使用工作控制和前、背景的控制可以讓工作進行的更為順利潘靖。

2.5 程序化腳本 (shell scripts)

shell scripts可以將你平時管理系統(tǒng)常需要下達的連續(xù)指令寫成一個文件穿剖,該文件并且可以透過對談交互式的方式來進行主機的偵測工作,同時可以借由shell提供的環(huán)境變量及相關(guān)指令來進行設(shè)計卦溢『啵總之功能強大,后面緊接著就要學(xué)習(xí)了单寂。

2.6 通配符(Wildcard)

bash支持許多的通配符來幫助用戶查詢與指令下達贬芥,舉例:

ls -l /user/bin/X* # 知道/user/bin底下有多少X開頭的文件
ls -l /user/bin/ *txt #知道/user/bin底下有多少 txt結(jié)尾的文件

3.查詢指令是否為 Bash shell 的內(nèi)建命令:type

$ type [-tpa] name

4.指令的下達與快速編輯按鈕

4.1 指令跳脫

\有“指令跳脫”的作用,例如\[Enter]讓[Enter]按鍵不再具有“開始執(zhí)行”的功能宣决。注意:\僅跳脫“緊接著的下一個字符”而已

4.2 指令快速編輯按鈕

快速編輯按鈕

當(dāng)我們順利的在終端機上面登入后蘸劈,Linux就會依據(jù)/etc/passwd文件的設(shè)定給我們一個shell(預(yù)設(shè)是bash),然后我們就可以依據(jù)上面的指令下達方式來操作shell疲扎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昵时,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子椒丧,更是在濱河造成了極大的恐慌壹甥,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壶熏,死亡現(xiàn)場離奇詭異句柠,居然都是意外死亡,警方通過查閱死者的電腦和手機棒假,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門溯职,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帽哑,你說我怎么就攤上這事谜酒。” “怎么了妻枕?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵僻族,是天一觀的道長。 經(jīng)常有香客問我屡谐,道長述么,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任愕掏,我火速辦了婚禮度秘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘饵撑。我一直安慰自己剑梳,他們只是感情好唆貌,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阻荒,像睡著了一般挠锥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上侨赡,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音粱侣,去河邊找鬼羊壹。 笑死,一個胖子當(dāng)著我的面吹牛齐婴,可吹牛的內(nèi)容都是我干的油猫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柠偶,長吁一口氣:“原來是場噩夢啊……” “哼情妖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诱担,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤毡证,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蔫仙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體料睛,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年摇邦,在試婚紗的時候發(fā)現(xiàn)自己被綠了恤煞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡施籍,死狀恐怖居扒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丑慎,我是刑警寧澤喜喂,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站立哑,受9級特大地震影響夜惭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铛绰,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一诈茧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捂掰,春花似錦敢会、人聲如沸曾沈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽塞俱。三九已至,卻和暖如春吏垮,著一層夾襖步出監(jiān)牢的瞬間障涯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工膳汪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留唯蝶,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓遗嗽,卻偏偏與公主長得像粘我,于是被迫代替她去往敵國和親咙崎。 傳聞我的和親對象是個殘疾皇子院促,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354