當前位置:成語大全網 - 書法字典 - shell是什麽意思?

shell是什麽意思?

分類:教育/科學》》;學習輔助

問題描述:

有什麽用?用簡單明了的話說!

我會的。告訴我!謝謝妳

分析:

操作系統與外界之間的主要接口稱為shell。外殼是操作系統的最外層。Shell管理您與操作系統的交互:等待您的輸入,向操作系統解釋您的輸入,並處理操作系統的各種輸出結果。

shell為您提供了壹種與操作系統通信的方式。這種通信可以以交互方式(鍵盤輸入和即時響應)或shell腳本(非交互)方式進行。Shell腳本是放在文件中的壹系列shell和操作系統命令,可以重復使用。本質上,shell腳本是命令行命令在壹個文件中的簡單組合。

Shell基本上是壹個命令解釋器,類似於DOS下的mand。它接收用戶命令(如ls等。)然後調用相應的應用程序。比較常見的shell是標準Bourne shell(sh)和C shell(csh)。

交互式外殼和非交互式外殼

交互模式是shell等待您的輸入並執行您提交的命令。這種模式被稱為交互模式,因為shell與用戶進行交互。這種模式也是大多數用戶非常熟悉的:登錄、執行壹些命令和註銷。當您簽回時,shell將終止。

Shell也可以在另壹種模式下運行:非交互模式。在這種模式下,shell不與您交互,而是讀取存儲在文件中的命令並執行它們。當到達文件末尾時,shell終止。

外殼類型

UNIX中有兩種主要類型的shell。

Bourne shell(包括sh、ksh和bash)

伯恩·謝爾

科恩殼牌公司(ksh)

伯恩再次殼(巴什)

POSIX外殼(sh)

殼牌公司(包括中海殼牌和tcsh)

c外殼(csh)

TENEX/TOPS C殼牌公司(tcsh)

伯恩外殼

最初的UNIX shell是由Stephen R. Bourne在20世紀70年代中期在& amp;由t .貝爾實驗室編寫,這是伯恩·謝爾。Bourne shell是壹種交換命令解釋器和命令編程語言。Bourne shell可以作為登錄shell或登錄shell的子shell運行。只有login命令可以將Bourne shell作為登錄shell調用。此時,shell首先讀取/etc/profile文件和$HOME/。配置文件。/etc/profile文件為所有用戶定制環境,而$HOME/文件為所有用戶定制環境。配置文件為此用戶定制環境。最後,shell將等待讀取您的輸入。

c殼

20世紀80年代初,Bill Joy在加州大學伯克利分校開發了C shell。主要是為了方便用戶使用交互功能,將ALGOL風格的語法結構改為C語言風格。它增加了命令歷史、別名、文件名替換、作業控制等功能。

科恩殼牌公司

在很長壹段時間裏,只有兩種shell可供人們選擇,用於編程的Bourne shell和用於交互的C shell。為了改變這種情況,AT & amp;T的貝爾實驗室的大衛·科恩開發了科恩外殼。Ksh結合了C shell的所有交互功能,並融入了Bourne shell的語法。因此,Korn shell廣受用戶歡迎。它還增加了壹些功能,如數學計算、協同處理、內聯編輯等。Korn Shell是壹種交互式命令解釋器和命令編程語言。它符合操作系統的國際標準POSIX。POSIX不是壹個操作系統,而是壹個旨在實現應用程序可移植性的標準——它在源程序級別跨越多個平臺。

伯恩再次殼(巴什)

Bash是取代Bourne shell的GNU項目的壹部分。它用於基於GNU的系統,如Linux。大多數Linux(Red Hat、Slackware、Caldera)使用bash作為默認shell,當運行sh時,它實際上會調用bash。

POSIX外殼

POSIX shell是Korn shell的變體。目前,POSIX外殼的最大供應商是惠普。在HP-UX 11.0中,POSIX shell是/bin/sh,bsh是/usr/old/bin/sh。

每個主要操作系統的默認shell:

在AIX下,它是Korn Shell

Solaris和FreeBSD默認使用Bourne shell。

惠普-UX默認使用POSIX shell。

Linux又變成了伯恩的外殼。

小費

#!/usr/bin/sh的用途

shell腳本的第壹行通常是#!/usr/bin/sh或#!/usr/bin/ksh等。,其目的是指出該腳本是在哪個shell中編寫的,以及系統在執行時應該使用哪個shell來解釋和執行它。

附:LINUX系統的shell原理

作為操作系統的外殼,Linux的外殼為用戶提供了使用操作系統的界面。它是命令語言、命令解釋程序和編程語言的總稱。

Shell是用戶和Linux內核之間的接口程序。如果您將Linux內核視為壹個球體的中心,那麽外殼就是內核周圍的外層。當命令從shell或其他程序傳遞到Linux時,內核將做出相應的反應。Shell是壹個命令語言解釋器,它有自己內置的shell命令集,shell也可以被系統中的其他應用程序調用。用戶在提示符下輸入的命令由shell解釋,然後傳遞給Linux內核。

壹些命令(如更改工作目錄命令cd)包含在shell中。其他命令(如復制命令cp和移動命令rm)是文件系統目錄中的獨立程序。對於用戶來說,不需要關心命令是構建在shell中還是單獨的程序中。

shell首先檢查命令是否是內部命令,如果不是,則檢查它是否是應用程序(這裏的應用程序可以是Linux本身的實用程序,如ls和rm,也可以是購買的商業程序,如xv,或者是免費軟件,如emacs)。然後shell在搜索路徑中查找這些應用程序(搜索路徑是可執行程序所在的目錄列表)。如果您鍵入的命令不是內部命令,並且在路徑中找不到可執行文件,將顯示壹條錯誤消息。如果可以成功找到該命令,內部命令或應用程序將被分解為系統調用並傳遞給Linux內核。

shell的另壹個重要特性是它是壹種解釋性編程語言。shell編程語言支持在高級語言中可以看到的大多數程序元素,例如函數、變量、數組和程序控制結構。shell編程語言很容易學習,任何可以在提示符下鍵入的命令都可以放入可執行的shell程序中。

當普通用戶成功登錄時,系統將執行壹個名為shell的程序。提供命令提示符的是shell進程。作為默認值(TurboLinux系統的默認shell是BASH),使用“$”作為普通用戶的提示,使用“#”作為超級用戶(root)的提示。

出現shell提示符後,您可以鍵入命令名和命令所需的參數。shell將執行這些命令。如果壹個命令需要很長時間運行,或者在屏幕上產生大量輸出,您可以從鍵盤上按ctrl+c發送壹個中斷信號來中斷它(在它正常結束之前停止執行)。

當用戶準備結束登錄對話框過程時,他可以鍵入註銷命令、退出命令或文件終止符(EOF)(按ctrl+d)來結束登錄。

讓我們練習壹下shell是如何工作的。

$制造工作

制定:**沒有使目標“工作”的規則。停下來。

$

註意:make是系統中命令的名稱,後跟命令參數。收到這個命令後,shell執行它。在本例中,由於輸入的命令參數不正確,系統在返回信息後停止執行命令。

在示例中,shell將查找名為make的程序,並以work作為參數執行它。Make是壹個經常用來編譯大型程序的程序。它以參數為目標進行編譯。在“make work”中,make編譯的目標是工作。因為make找不到名為work的目標,所以它會給出壹條錯誤消息,指出操作失敗,然後用戶返回到系統提示。

此外,在用戶鍵入命令行後,如果shell在其中找不到以該命令命名的程序,則會給出錯誤消息。例如,如果用戶鍵入:

$ myprog

bash:myprog:mand未找到

$

如您所見,用戶收到了壹條錯誤消息,指出命令未找到。用戶輸入錯誤的命令後,系統壹般會給出這樣的錯誤信息。