<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一篇對大家學(xué)習,理解linux很有用的文章

一篇對大家學(xué)習,理解linux很有用的文章

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

shell是用戶(hù)和Linux操作系統之間的接口。Linux中有多種shell,其中缺省使用的是Bash。本章講述了shell的工作原理,shell的種類(lèi),shell的一般操作及Bash的特性。

本文引用地址:http://dyxdggzs.com/article/201609/304092.htm

什么是shell

Linux系統的shell作為操作系統的外殼,為用戶(hù)提供使用操作系統的接口。它是命令語(yǔ)言、命令解釋程序及程序設計語(yǔ)言的統稱(chēng)。

shell是用戶(hù)和Linux內核之間的接口程序,如果把Linux內核想象成一個(gè)球體的中心,shell就是圍繞內核的外層。當從shell或其他程序向Linux傳遞命令時(shí),內核會(huì )做出相應的反應。

shell是一個(gè)命令語(yǔ)言解釋器,它擁有自己內建的shell命令集,shell也能被系統中其他應用程序所調用。用戶(hù)在提示符下輸入的命令都由shell先解釋然后傳給Linux核心。

有一些命令,比如改變工作目錄命令cd,是包含在shell內部的。還有一些命令,例如拷貝命令cp和移動(dòng)命令rm,是存在于文件系統中某個(gè)目錄下的單獨的程序。對用戶(hù)而言,不必關(guān)心一個(gè)命令是建立在shell內部還是一個(gè)單獨的程序。

shell首先檢查命令是否是內部命令,若不是再檢查是否是一個(gè)應用程序(這里的應用程序可以是Linux本身的實(shí)用程序,如ls和rm,也可以是購買(mǎi)的商業(yè)程序,如xv,或者是自由軟件,如emacs)。然后shell在搜索路徑里尋找這些應用程序(搜索路徑就是一個(gè)能找到可執行程序的目錄列表)。如果鍵入的命令不是一個(gè)內部命令并且在路徑里沒(méi)有找到這個(gè)可執行文件,將會(huì )顯示一條錯誤信息。如果能夠成功找到命令,該內部命令或應用程序將被分解為系統調用并傳給Linux內核。

shell的另一個(gè)重要特性是它自身就是一個(gè)解釋型的程序設計語(yǔ)言,shell程序設計語(yǔ)言支持絕大多數在高級語(yǔ)言中能見(jiàn)到的程序元素,如函數、變量、數組和程序控制結構。shell編程語(yǔ)言簡(jiǎn)單易學(xué),任何在提示符中能鍵入的命令都能放到一個(gè)可執行的shell程序中。

當普通用戶(hù)成功登錄,系統將執行一個(gè)稱(chēng)為shell的程序。正是shell進(jìn)程提供了命令行提示符。作為默認值(TurboLinux系統默認的shell是BASH),對普通用戶(hù)用“$”作提示符,對超級用戶(hù)(root)用“#”作提示符。

一旦出現了shell提示符,就可以鍵入命令名稱(chēng)及命令所需要的參數。shell將執行這些命令。如果一條命令花費了很長(cháng)的時(shí)間來(lái)運行,或者在屏幕上產(chǎn)生了大量的輸出,可以從鍵盤(pán)上按ctrl+c發(fā)出中斷信號來(lái)中斷它(在正常結束之前,中止它的執行)。

當用戶(hù)準備結束登錄對話(huà)進(jìn)程時(shí),可以鍵入logout命令、exit命令或文件結束符(EOF)(按ctrl+d實(shí)現),結束登錄。

我們來(lái)實(shí)習一下shell是如何工作的。

$ make work

make:***No rule to make target ‘work’. Stop.

$

注釋?zhuān)簃ake是系統中一個(gè)命令的名字,后面跟著(zhù)命令參數。在接收到這個(gè)命令后,shell便執行它。本例中,由于輸入的命令參數不正確,系統返回信息后停止該命令的執行。

在例子中,shell會(huì )尋找名為make的程序,并以work為參數執行它。make是一個(gè)經(jīng)常被用來(lái)編譯大程序的程序,它以參數作為目標來(lái)進(jìn)行編譯。在“make work”中,make編譯的目標是work。因為make找不到以work為名字的目標,它便給出錯誤信息表示運行失敗,用戶(hù)又回到系統提示符下。

另外,用戶(hù)鍵入有關(guān)命令行后,如果shell找不到以其中的命令名為名字的程序,就會(huì )給出錯誤信息。例如,如果用戶(hù)鍵入:

$ myprog

bash:myprog:command not found

$

可以看到,用戶(hù)得到了一個(gè)沒(méi)有找到該命令的錯誤信息。用戶(hù)敲錯命令后,系統一般會(huì )給出這樣的錯誤信息。

shell的種類(lèi)

Linux中的shell有多種類(lèi)型,其中最常用的幾種是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)。三種shell各有優(yōu)缺點(diǎn)。Bourne shell是UNIX最初使用的shell,并且在每種UNIX上都可以使用。Bourne shell在shell編程方面相當優(yōu)秀,但在處理與用戶(hù)的交互方面做得不如其他幾種shell。Linux操作系統缺省的shell是Bourne Again shell,它是Bourne shell的擴展,簡(jiǎn)稱(chēng)Bash,與Bourne shell完全向后兼容,并且在Bourne shell的基礎上增加、增強了很多特性。Bash放在/bin/bash中,它有許多特色,可以提供如命令補全、命令編輯和命令歷史表等功能,它還包含了很多C shell和Korn shell中的優(yōu)點(diǎn),有靈活和強大的編程接口,同時(shí)又有很友好的用戶(hù)界面。

C shell是一種比Bourne shell更適于編程的shell,它的語(yǔ)法與C語(yǔ)言很相似。 Linux為喜歡使用C shell的人提供了Tcsh。Tcsh是C shell的一個(gè)擴展版本。Tcsh包括命令行編輯、可編程單詞補全、拼寫(xiě)校正、歷史命令替換、作業(yè)控制和類(lèi)似C語(yǔ)言的語(yǔ)法,它不僅和Bash shell是提示符兼容,而且還提供比Bash shell更多的提示符參數。

Korn shell集合了C shell和Bourne shell的優(yōu)點(diǎn)并且和Bourne shell完全兼容。Linux系統提供了pdksh(ksh的擴展),它支持任務(wù)控制,可以在命令行上掛起、后臺執行、喚醒或終止程序。

Linux并沒(méi)有冷落其他shell用戶(hù),還包括了一些流行的shell如ash、zsh等。每個(gè)shell都有它的用途,有些shell是有專(zhuān)利的,有些能從Internet網(wǎng)上或其他來(lái)源獲得。要決定使用哪個(gè)shell,只需讀一下各種shell的聯(lián)機幫助,并試用一下。

用戶(hù)在登錄到Linux時(shí)由/etc/passwd文件來(lái)決定要使用哪個(gè)shell。例如:

# fgrep lisa /etc/passwd

lisa:x:500:500:TurboLinux User:/home/lisa:/bin/bash

shell被列每行的末尾(/bin/bash)。

由于Bash是Linux上缺省的shell,本章主要介紹Bash及其相關(guān)知識。

shell命令

命令行c

用戶(hù)登錄到Linux系統時(shí),可以看到一個(gè)shell提示符,標識了命令行的開(kāi)始。用戶(hù)可以在提示符后面輸入任何命令及參數。例如:

$ date

二 11 23 01:34:58 CST 1999

$

用戶(hù)登錄時(shí),實(shí)際進(jìn)入了shell,它遵循一定的語(yǔ)法將輸入的命令加以解釋并傳給系統。命令行中輸入的第一個(gè)字必須是一個(gè)命令的名字,第二個(gè)字是命令的選項或參數,命令行中的每個(gè)字必須由空格或TAB隔開(kāi),格式如下:

$ Command Option Arguments


上一頁(yè) 1 2 3 4 5 6 7 下一頁(yè)

關(guān)鍵詞: 學(xué)習 linux

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>