shell和shell腳本 有什么區(qū)別啊
shell和shell腳本 有什么區(qū)別啊
\”shell\” 和 \”shell script\” 是計(jì)算機(jī)領(lǐng)域的兩個術(shù)語,它們之間有一些區(qū)別。
Shell:這是一種解釋型的命令行界面,是操作系統(tǒng)的一個外殼。
它允許用戶通過命令行來執(zhí)行操作系統(tǒng)的各種任務(wù),如執(zhí)行命令、管理文件、運(yùn)行程序等。
Shell script:這是一種使用 shell 語言編寫的腳本。它允許用戶在 shell 環(huán)境中使用腳本語言自動執(zhí)行一系列命令和任務(wù),以完成一個特定的任務(wù)。
總的來說,shell 是一種命令行界面,而 shell script 則是一種使用 shell 語言的腳本,它可以在 shell 環(huán)境中執(zhí)行。
linux中shell分多少種,都有什么區(qū)別
Shell是一種腳本語言,那么,就必須有解釋器來執(zhí)行這些腳本,常見的腳本解釋器有:
bash:是Linux標(biāo)準(zhǔn)默認(rèn)的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內(nèi)部命令一共有40個。
sh: 由Steve Bourne開發(fā),是Bourne Shell的縮寫,sh 是Unix 標(biāo)準(zhǔn)默認(rèn)的shell。
另外還有:ash、 csh、 ksh等。
擴(kuò)展資料:
常見的編程語言分為兩類:一個是編譯型語言,如:c/c++/java等,它們遠(yuǎn)行前全部一起要經(jīng)過編譯器的編譯。另一個解釋型語言,執(zhí)行時,需要使用解釋器一行一行地轉(zhuǎn)換為代碼,如:awk, perl, python與shell等。
Shell 經(jīng)過了POSIX的標(biāo)準(zhǔn)化,所以它是可以在不同的linux系統(tǒng)上進(jìn)行移植。
shell與Linux命令的區(qū)別是什么?
shell翻譯成殼的意思,它是包裹在Linux內(nèi)核外層的,一個可通過一系列的Linux命令對操作系統(tǒng)發(fā)出相關(guān)指令的人機(jī)界面。shell可以通過其條件語句和循環(huán)語句等,把一系列Linux命令結(jié)合在一起,形成一個相當(dāng)于面向過程的程序,即shell script,從而實(shí)現(xiàn)一些復(fù)雜的功能。
shell可以說是Linux命令集的概稱,屬于命令行的人機(jī)界面。
shell是一個用C語言編寫的程序,它是用戶使用Linux的橋梁。shell既是一個命令語言,也是一個程序設(shè)計(jì)語言;其次,shell也指一種應(yīng)用程序,這個應(yīng)用程序提供了一個界面,用戶通過這個界面訪問操作系統(tǒng)內(nèi)核的服務(wù)。
由此可見,shell相當(dāng)于經(jīng)過裝飾的命令行,它與命令行一樣,都能操作Linux;但是shell是面向過程的,相當(dāng)于有了一定的邏輯和過程,而命令行只是單一的操作。
linux命令是對Linux系統(tǒng)進(jìn)行管理的命令。
對于Linux系統(tǒng)來說,無論是**處理器、內(nèi)存、磁盤驅(qū)動器、鍵盤、鼠標(biāo),還是用戶等都是文件,Linux系統(tǒng)管理的命令是它正常運(yùn)行的核心,與之前的DOS命令類似。linux命令在系統(tǒng)中有兩種類型:內(nèi)置Shell命令和Linux命令。
shell與linux命令的區(qū)別
1、直接在命令行執(zhí)行,就是在當(dāng)前的shell環(huán)境下執(zhí)行,比如涉及到一些環(huán)境變量的時候,必須在當(dāng)前shell環(huán)境里執(zhí)行。
2、在腳本執(zhí)行的話,會fork一個子進(jìn)程,所有操作都在子進(jìn)程中進(jìn)行。如果涉及到一些在腳本里設(shè)置環(huán)境變量的東西,腳本結(jié)束了,環(huán)境變量就消失了,如果是修改環(huán)境變量的話,需要特別注意。
3、shell可以重復(fù)或批量地進(jìn)行一些命令,你也可以把自己要重復(fù)執(zhí)行的命令寫到腳本里面執(zhí)行,而命令行的話就需要一個一個的輸入命令,比較麻煩。
Shell腳本的概念區(qū)別
Shell:Shell是一種程序設(shè)計(jì)語言。作為命令語言,它交互式解釋和執(zhí)行用戶輸入的命令或者自動地解釋和執(zhí)行預(yù)先設(shè)定好的一連串的命令;作為程序設(shè)計(jì)語言,它定義了各種變量和參數(shù),并提供了許多在高級語言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支腳本:腳本,是使用一種特定的描述性語言,依據(jù)一定的格式編寫的可執(zhí)行文件,又稱作宏或批處理文件。
Shell腳本:shell腳本(shellscript)就像早期dos年代的.bat,最簡單的功能就是將許多指令匯整寫一起,讓使用者很容易地就能夠一個操作執(zhí)行多個命令,而shellscript更是提供了數(shù)組,循環(huán),條件以及邏輯判斷等重要功能,讓使用者可以直接以shell來寫程序,而不必使用類似C程序語言等傳統(tǒng)程序編寫的語法。
shell和shell腳本區(qū)別:1.Shell就是一個命令行解釋器,它的作用就是遵循一定的語法將輸入的命令加以解釋并傳給系統(tǒng)??梢杂肧hell來啟動、掛起、停止甚至是編寫一些程序。2.Shell本身是一個用C語言編寫的程序,它是用戶使用Linux的橋梁。3.Shell既是一種命令語言,又是一種程序設(shè)計(jì)語言(就是所說的shell腳本)。
shell命令分為哪兩種,它們之間的區(qū)別是什么?
shell命令顧名思義,是linux下的外殼程序,基本相當(dāng)于windows下的exlpore。shell是用戶和Linux操作系統(tǒng)之間的接口。
Linux中有多種shell,其中缺省使用的是Bash。
本章講述了shell的工作原理,shell的種類,shell的一般操作及Bash的特性。什么是shellLinux系統(tǒng)的shell作為操作系統(tǒng)的外殼,為用戶提供使用操作系統(tǒng)的接口。它是命令語言、命令解釋程序及程序設(shè)計(jì)語言的統(tǒng)稱。shell是用戶和Linux內(nèi)核之間的接口程序,如果把Linux內(nèi)核想象成一個球體的中心,shell就是圍繞內(nèi)核的外層。
當(dāng)從shell或其他程序向Linux傳遞命令時,內(nèi)核會做出相應(yīng)的反應(yīng)。shell是一個命令語言解釋器,它擁有自己內(nèi)建的shell命令集,shell也能被系統(tǒng)中其他應(yīng)用程序所調(diào)用。用戶在提示符下輸入的命令都由shell先解釋然后傳給Linux核心。
Shell是一種具備特殊功能的程序, 它是介于使用者和 UNIX/linux 操作系統(tǒng)之核心程序(kernel)間的一個接口。為什么我們說 shell 是一種介于系統(tǒng)核心程序與使用者間的中介者呢?讀過操作系統(tǒng)概論的讀者們都知道操作系統(tǒng)是一個系統(tǒng)資源的管理者與分配者,當(dāng)您有需求時,您得向系統(tǒng)提出;從操作系統(tǒng)的角度來看,它也必須防止使用者因?yàn)殄e誤的操作而造成系統(tǒng)的傷害?眾所周知,對計(jì)算機(jī)下命令得透過命令(command) 或是程序(program);程序有編譯器(compiler)將程序轉(zhuǎn)為二進(jìn)制代碼,可是命令呢?其實(shí)shell 也是一支程序,它由輸入設(shè)備讀取命令百科,再將其轉(zhuǎn)為計(jì)算機(jī)可以了解的機(jī)械碼,然后執(zhí)行它。各種操作系統(tǒng)都有它自己的 shell,以 DOS 為例,它的 shell 就是 command.com文件。
如同 DOS 下有 NDOS,4DOS,DRDOS 等不同的命令解譯程序可以取代標(biāo)準(zhǔn)的command.com ,UNIX 下除了 Bourne shell(/bin/sh) 外還有 C shell(/bin/csh)、Korn shell(/bin/ksh)、Bourne again shell(/bin/bash)、Tenex C shell(tcsh)等其它的 shell。UNIX/linux將 shell 獨(dú)立于核心程序之外, 使得它就如同一般的應(yīng)用程序, 可以在不影響操作系統(tǒng)本身的情況下進(jìn)行修改、更新版本或是添加新的功能。有一些命令,比如改變工作目錄命令cd,是包含在shell內(nèi)部的。
還有一些命令,例如拷貝命令cp和移動命令rm,是存在于文件系統(tǒng)中某個目錄下的單獨(dú)的程序。對用戶而言,不必關(guān)心一個命令是建立在shell內(nèi)部還是一個單獨(dú)的程序。shell首先檢查命令是否是內(nèi)部命令,若不是再檢查是否是一個應(yīng)用程序(這里的應(yīng)用程序可以是Linux本身的實(shí)用程序,如ls和rm,也可以是購買的商業(yè)程序,如xv,或者是自由軟件,如emacs)。然后shell在搜索路徑里尋找這些應(yīng)用程序(搜索路徑就是一個能找到可執(zhí)行程序的目錄列表)。
如果鍵入的命令不是一個內(nèi)部命令并且在路徑里沒有找到這個可執(zhí)行文件,將會顯示一條錯誤信息。如果能夠成功找到命令,該內(nèi)部命令或應(yīng)用程序?qū)⒈环纸鉃橄到y(tǒng)調(diào)用并傳給Linux內(nèi)核。shell的另一個重要特性是它自身就是一個解釋型的程序設(shè)計(jì)語言,shell程序設(shè)計(jì)語言支持絕大多數(shù)在高級語言中能見到的程序元素,如函數(shù)、變量、數(shù)組和程序控制結(jié)構(gòu)。shell編程語言簡單易學(xué),任何在提示符中能鍵入的命令都能放到一個可執(zhí)行的shell程序中。
當(dāng)普通用戶成功登錄,系統(tǒng)將執(zhí)行一個稱為shell的程序。正是shell進(jìn)程提供了命令行提示符。作為默認(rèn)值(TurboLinux系統(tǒng)默認(rèn)的shell是BASH),對普通用戶用“$”作提示符,對超級用戶(root)用“#”作提示符。一旦出現(xiàn)了shell提示符,就可以鍵入命令名稱及命令所需要的參數(shù)。
shell將執(zhí)行這些命令。如果一條命令花費(fèi)了很長的時間來運(yùn)行,或者在屏幕上產(chǎn)生了大量的輸出,可以從鍵盤上按ctrl+c發(fā)出中斷信號來中斷它(在正常結(jié)束之前,中止它的執(zhí)行)。當(dāng)用戶準(zhǔn)備結(jié)束登錄對話進(jìn)程時,可以鍵入logout命令、exit命令或文件結(jié)束符(EOF)(按ctrl+d實(shí)現(xiàn)),結(jié)束登錄。