婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 什么是Shell?Shell腳本基礎(chǔ)知識詳細(xì)介紹

什么是Shell?Shell腳本基礎(chǔ)知識詳細(xì)介紹

熱門標(biāo)簽:百度地圖標(biāo)注圖標(biāo)更換 佛山高德地圖標(biāo)注中心 地圖標(biāo)注超出范圍怎么辦 excel地址地圖標(biāo)注 杭州機(jī)器人外呼系統(tǒng) 陜西電銷卡外呼系統(tǒng)怎么安裝 百度地圖的地圖標(biāo)注 東莞電銷機(jī)器人價(jià)格一覽表 旅游地圖標(biāo)注大全

Shell本身是一個(gè)用C語言編寫的程序,它是用戶使用Linux的橋梁。Shell既是一種命令語言,又是一種程序設(shè)計(jì)語言。作為命令語言,它交互式地解釋和執(zhí)行用戶輸入的命令;作為程序設(shè)計(jì)語言,它定義了各種變量和參數(shù),并提供了許多在高級語言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支。

它雖然不是Linux系統(tǒng)核心的一部分,但它調(diào)用了系統(tǒng)核心的大部分功能來執(zhí)行程序、建立文件并以并行的方式協(xié)調(diào)各個(gè)程序的運(yùn)行。因此,對于用戶來說,shell是最重要的實(shí)用程序,深入了解和熟練掌握shell的特性極其使用方法,是用好Linux系統(tǒng)的關(guān)鍵。

可以說,shell使用的熟練程度反映了用戶對Linux使用的熟練程度。

Shell有兩種執(zhí)行命令的方式:

交互式(Interactive):解釋執(zhí)行用戶的命令,用戶輸入一條命令,Shell就解釋執(zhí)行一條。
批處理(Batch):用戶事先寫一個(gè)Shell腳本(Script),其中有很多條命令,讓Shell一次把這些命令執(zhí)行完,而不必一條一條地敲命令。

Shell腳本和編程語言很相似,也有變量和流程控制語句,但Shell腳本是解釋執(zhí)行的,不需要編譯,Shell程序從腳本中一行一行讀取并執(zhí)行這些命令,相當(dāng)于一個(gè)用戶把腳本中的命令一行一行敲到Shell提示符下執(zhí)行。

Shell初學(xué)者請注意,在平常應(yīng)用中,建議您不要用 root 帳號運(yùn)行 Shell 。作為普通用戶,不管您有意還是無意,都無法破壞系統(tǒng);但如果是 root,那就不同了,只要敲幾個(gè)字母,就可能導(dǎo)致災(zāi)難性后果。

幾種常見的Shell

上面提到過,Shell是一種腳本語言,那么,就必須有解釋器來執(zhí)行這些腳本。

Linux上常見的Shell腳本解釋器有bash、sh、ash、csh、ksh,習(xí)慣上把它們稱作一種Shell。我們常說有多少種Shell,其實(shí)說的是Shell腳本解釋器。

bash

bash是Linux系統(tǒng)默認(rèn)使用的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內(nèi)部命令一共有40個(gè)。

Linux使用它作為默認(rèn)的shell是因?yàn)樗兄T如以下的特色:
•可以使用類似DOS下面的doskey的功能,用方向鍵查閱和快速輸入并修改命令。
•自動通過查找匹配的方式給出以某字符串開頭的命令。
•包含了自身的幫助功能,你只要在提示符下面鍵入help就可以得到相關(guān)的幫助。

sh

sh 由Steve Bourne開發(fā),是Bourne Shell的縮寫,各種UNIX系統(tǒng)都配有sh。

ash

ash shell 是由Kenneth Almquist編寫的,Linux中占用系統(tǒng)資源最少的一個(gè)小shell,它只包含24個(gè)內(nèi)部命令,因而使用起來很不方便。

csh

csh 是Linux比較大的內(nèi)核,它由以William Joy為代表的共計(jì)47位作者編成,共有52個(gè)內(nèi)部命令。該shell其實(shí)是指向/bin/tcsh這樣的一個(gè)shell,也就是說,csh其實(shí)就是tcsh。

ksh

ksh 是Korn shell的縮寫,由Eric Gisin編寫,共有42條內(nèi)部命令。該shell最大的優(yōu)點(diǎn)是幾乎和商業(yè)發(fā)行版的ksh完全兼容,這樣就可以在不用花錢購買商業(yè)版本的情況下嘗試商業(yè)版本的性能了。

Shell與編譯型語言的差異

大體上,可以將程序設(shè)計(jì)語言可以分為兩類:編譯型語言和解釋型語言。

編譯型語言

很多傳統(tǒng)的程序設(shè)計(jì)語言,例如Fortran、Ada、Pascal、C、C++和Java,都是編譯型語言。這類語言需要預(yù)先將我們寫好的源代碼(source code)轉(zhuǎn)換成目標(biāo)代碼(object code),這個(gè)過程被稱作“編譯”。

運(yùn)行程序時(shí),直接讀取目標(biāo)代碼(object code)。由于編譯后的目標(biāo)代碼(object code)非常接近計(jì)算機(jī)底層,因此執(zhí)行效率很高,這是編譯型語言的優(yōu)點(diǎn)。

但是,由于編譯型語言多半運(yùn)作于底層,所處理的是字節(jié)、整數(shù)、浮點(diǎn)數(shù)或是其他機(jī)器層級的對象,往往實(shí)現(xiàn)一個(gè)簡單的功能需要大量復(fù)雜的代碼。例如,在C++里,就很難進(jìn)行“將一個(gè)目錄里所有的文件復(fù)制到另一個(gè)目錄中”之類的簡單操作。

解釋型語言

解釋型語言也被稱作“腳本語言”。執(zhí)行這類程序時(shí),解釋器(interpreter)需要讀取我們編寫的源代碼(source code),并將其轉(zhuǎn)換成目標(biāo)代碼(object code),再由計(jì)算機(jī)運(yùn)行。因?yàn)槊看螆?zhí)行程序都多了編譯的過程,因此效率有所下降。

使用腳本編程語言的好處是,它們多半運(yùn)行在比編譯型語言還高的層級,能夠輕易處理文件與目錄之類的對象;缺點(diǎn)是它們的效率通常不如編譯型語言。不過權(quán)衡之下,通常使用腳本編程還是值得的:花一個(gè)小時(shí)寫成的簡單腳本,同樣的功能用C或C++來編寫實(shí)現(xiàn),可能需要兩天,而且一般來說,腳本執(zhí)行的速度已經(jīng)夠快了,快到足以讓人忽略它性能上的問題。腳本編程語言的例子有awk、Perl、Python、Ruby與Shell。

什么時(shí)候使用Shell

因?yàn)镾hell似乎是各UNIX系統(tǒng)之間通用的功能,并且經(jīng)過了POSIX的標(biāo)準(zhǔn)化。因此,Shell腳本只要“用心寫”一次,即可應(yīng)用到很多系統(tǒng)上。因此,之所以要使用Shell腳本是基于:

•簡單性:Shell是一個(gè)高級語言;通過它,你可以簡潔地表達(dá)復(fù)雜的操作。
•可移植性:使用POSIX所定義的功能,可以做到腳本無須修改就可在不同的系統(tǒng)上執(zhí)行。
•開發(fā)容易:可以在短時(shí)間內(nèi)完成一個(gè)功能強(qiáng)大又妤用的腳本。


但是,考慮到Shell腳本的命令限制和效率問題,下列情況一般不使用Shell:

1.資源密集型的任務(wù),尤其在需要考慮效率時(shí)(比如,排序,hash等等)。
2.需要處理大任務(wù)的數(shù)學(xué)操作,尤其是浮點(diǎn)運(yùn)算,精確運(yùn)算,或者復(fù)雜的算術(shù)運(yùn)算(這種情況一般使用C++或FORTRAN 來處理)。
3.有跨平臺(操作系統(tǒng))移植需求(一般使用C 或Java)。
4.復(fù)雜的應(yīng)用,在必須使用結(jié)構(gòu)化編程的時(shí)候(需要變量的類型檢查,函數(shù)原型,等等)。
5.對于影響系統(tǒng)全局性的關(guān)鍵任務(wù)應(yīng)用。
6.對于安全有很高要求的任務(wù),比如你需要一個(gè)健壯的系統(tǒng)來防止入侵、破解、惡意破壞等等。
7.項(xiàng)目由連串的依賴的各個(gè)部分組成。
8.需要大規(guī)模的文件操作。
9.需要多維數(shù)組的支持。
10.需要數(shù)據(jù)結(jié)構(gòu)的支持,比如鏈表或數(shù)等數(shù)據(jù)結(jié)構(gòu)。
11.需要產(chǎn)生或操作圖形化界面 GUI。
12.需要直接操作系統(tǒng)硬件。
13.需要 I/O 或socket 接口。
14.需要使用庫或者遺留下來的老代碼的接口。
15.私人的、閉源的應(yīng)用(shell 腳本把代碼就放在文本文件中,全世界都能看到)。

如果你的應(yīng)用符合上邊的任意一條,那么就考慮一下更強(qiáng)大的語言吧——或許是Perl、Tcl、Python、Ruby——或者是更高層次的編譯語言比如C/C++,或者是Java。即使如此,你會發(fā)現(xiàn),使用shell來原型開發(fā)你的應(yīng)用,在開發(fā)步驟中也是非常有用的。

第一個(gè)Shell腳本

打開文本編輯器,新建一個(gè)文件,擴(kuò)展名為sh(sh代表shell),擴(kuò)展名并不影響腳本執(zhí)行,見名知意就好,如果你用php寫shell 腳本,擴(kuò)展名就用php好了。

輸入一些代碼:

復(fù)制代碼 代碼如下:

#!/bin/bash
echo "Hello World !"

“#!” 是一個(gè)約定的標(biāo)記,它告訴系統(tǒng)這個(gè)腳本需要什么解釋器來執(zhí)行,即使用哪一種Shell。echo命令用于向窗口輸出文本。

運(yùn)行Shell腳本有兩種方法。

作為可執(zhí)行程序

將上面的代碼保存為test.sh,并cd到相應(yīng)目錄:

復(fù)制代碼 代碼如下:

chmod +x ./test.sh  #使腳本具有執(zhí)行權(quán)限
./test.sh  #執(zhí)行腳本

注意,一定要寫成./test.sh,而不是test.sh。運(yùn)行其它二進(jìn)制的程序也一樣,直接寫test.sh,linux系統(tǒng)會去PATH里尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的當(dāng)前目錄通常不在PATH里,所以寫成test.sh是會找不到命令的,要用./test.sh告訴系統(tǒng)說,就在當(dāng)前目錄找。

通過這種方式運(yùn)行bash腳本,第一行一定要寫對,好讓系統(tǒng)查找到正確的解釋器。

這里的"系統(tǒng)",其實(shí)就是shell這個(gè)應(yīng)用程序(想象一下Windows Explorer),但我故意寫成系統(tǒng),是方便理解,既然這個(gè)系統(tǒng)就是指shell,那么一個(gè)使用/bin/sh作為解釋器的腳本是不是可以省去第一行呢?是的。

作為解釋器參數(shù)

這種運(yùn)行方式是,直接運(yùn)行解釋器,其參數(shù)就是shell腳本的文件名,如:

復(fù)制代碼 代碼如下:

/bin/sh test.sh
/bin/php test.php

這種方式運(yùn)行的腳本,不需要在第一行指定解釋器信息,寫了也沒用。

您可能感興趣的文章:
  • Linux Shell簡介

標(biāo)簽:青島 朝陽 南充 延邊 通遼 西藏 隨州 雅安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《什么是Shell?Shell腳本基礎(chǔ)知識詳細(xì)介紹》,本文關(guān)鍵詞  什么,是,Shell,腳本,基礎(chǔ)知識,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《什么是Shell?Shell腳本基礎(chǔ)知識詳細(xì)介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于什么是Shell?Shell腳本基礎(chǔ)知識詳細(xì)介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一本久久a久久精品亚洲| 色爱区综合激月婷婷| 99国产精品久久久| 3atv在线一区二区三区| 日本一区二区三区免费乱视频| 一区二区在线免费观看| 国产河南妇女毛片精品久久久| 欧美最猛性xxxxx直播| 国产亚洲综合在线| 日韩va亚洲va欧美va久久| 成人av片在线观看| 久久久久久久网| 日韩av电影免费观看高清完整版在线观看| 成av人片一区二区| 精品成人一区二区| 日韩精品成人一区二区在线| 91在线丨porny丨国产| 国产欧美久久久精品影院| 奇米777欧美一区二区| 欧美午夜不卡视频| 亚洲影院理伦片| 91啪亚洲精品| 亚洲人成伊人成综合网小说| 白白色亚洲国产精品| 中文字幕一区二区视频| 99久精品国产| 亚洲日本韩国一区| 91久久免费观看| 亚洲午夜在线视频| 欧美三级中文字幕| 午夜亚洲福利老司机| 777色狠狠一区二区三区| 日本中文一区二区三区| 日韩一区二区三区四区| 久久9热精品视频| 日韩免费视频一区| 国产91丝袜在线播放九色| 国产欧美日韩三级| 一本久道久久综合中文字幕| 一区二区三区资源| 欧美日韩免费视频| 久久99精品国产.久久久久| 久久久影视传媒| 不卡视频在线看| 亚洲综合色噜噜狠狠| 欧美一级艳片视频免费观看| 久久66热re国产| 国产精品你懂的在线| 欧美在线免费视屏| 美洲天堂一区二卡三卡四卡视频| 久久综合九色综合欧美就去吻| 国产91精品久久久久久久网曝门| 国产精品国产三级国产aⅴ原创 | 亚洲一区二区三区在线| 欧美日韩三级一区| 韩国三级在线一区| 中文字幕综合网| 欧美肥妇bbw| 成人综合在线网站| 天涯成人国产亚洲精品一区av| 欧美电视剧免费全集观看| 成人一区二区三区| 亚洲h在线观看| 国产日韩三级在线| 欧美婷婷六月丁香综合色| 久热成人在线视频| 亚洲男同性恋视频| 精品奇米国产一区二区三区| fc2成人免费人成在线观看播放| 香蕉av福利精品导航| 国产亚洲一二三区| 欧美精品xxxxbbbb| 99久久精品免费观看| 人妖欧美一区二区| 亚洲综合激情另类小说区| 久久免费偷拍视频| 69精品人人人人| 91麻豆精东视频| 国产成人在线免费| 久久国产婷婷国产香蕉| 亚洲午夜私人影院| 综合欧美亚洲日本| 久久久www成人免费无遮挡大片| 欧美亚洲自拍偷拍| av午夜一区麻豆| 国产精品一区二区你懂的| 日韩经典一区二区| 亚洲国产中文字幕| 一区二区三区四区蜜桃 | 亚洲成人综合在线| 国产日韩欧美a| 精品粉嫩aⅴ一区二区三区四区| 5566中文字幕一区二区电影| 在线免费观看日本欧美| 96av麻豆蜜桃一区二区| 成人免费视频免费观看| 九九视频精品免费| 日韩精品五月天| 亚洲电影欧美电影有声小说| 亚洲男同性恋视频| 亚洲人成网站影音先锋播放| 欧美激情中文字幕一区二区| 26uuu精品一区二区三区四区在线| 欧美日韩综合在线| 欧美网站一区二区| 欧美四级电影网| 欧美色图免费看| 欧美亚男人的天堂| 欧美日韩国产成人在线免费| 欧美影院一区二区三区| 精品视频在线看| 欧美精品一二三区| 欧美电影影音先锋| 日韩一区二区三区在线观看| 欧美xxxxx裸体时装秀| 久久一区二区三区四区| 久久久久久夜精品精品免费| 久久久久久久精| 亚洲国产高清aⅴ视频| 国产免费观看久久| 亚洲欧美一区二区三区久本道91 | 成人免费小视频| 亚洲欧美日韩在线播放| 一区二区三区国产精品| 亚洲国产aⅴ天堂久久| 日韩专区欧美专区| 精品一区二区国语对白| 国产一二精品视频| www.成人网.com| 日本丶国产丶欧美色综合| 欧美精品第1页| 26uuu国产在线精品一区二区| 国产欧美一区在线| 亚洲欧洲综合另类| 日本少妇一区二区| 国产一区二区三区观看| 99精品视频一区| 欧美探花视频资源| 久久久精品tv| 伊人婷婷欧美激情| 国内成人精品2018免费看| 不卡一卡二卡三乱码免费网站| 色呦呦一区二区三区| 91麻豆精品91久久久久同性| 精品精品国产高清一毛片一天堂| 欧美高清在线一区| 日韩激情视频在线观看| caoporn国产一区二区| 欧美日韩国产美| 欧美激情在线看| 婷婷一区二区三区| 成人精品在线视频观看| 777奇米成人网| 中文字幕av一区二区三区免费看| 亚洲图片欧美一区| 高清不卡一区二区| 日韩一区二区三区视频在线 | 国产婷婷色一区二区三区在线| 亚洲桃色在线一区| 国产一区二区三区蝌蚪| 在线成人午夜影院| 有码一区二区三区| 高清不卡在线观看| 久久尤物电影视频在线观看| 亚洲午夜免费电影| 99久久99久久久精品齐齐| 亚洲精品一区二区三区香蕉| 伊人婷婷欧美激情| 成人avav在线| 久久婷婷一区二区三区| 丝袜脚交一区二区| 日本韩国欧美在线| 国产精品久久久久婷婷二区次| 日韩经典一区二区| 欧美日韩在线亚洲一区蜜芽| 亚洲视频 欧洲视频| 国产91精品免费| 精品福利一二区| 九九热在线视频观看这里只有精品| 欧美在线高清视频| 亚洲综合免费观看高清完整版 | 日韩一区二区在线观看视频| 亚洲欧美一区二区不卡| 91香蕉视频污在线| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品一区二区免费不卡| 欧美精品一区二区蜜臀亚洲| 麻豆精品久久久| 日韩欧美在线1卡| 美女一区二区三区| 欧美一区国产二区| 日本不卡的三区四区五区| 色又黄又爽网站www久久| 亚洲美腿欧美偷拍| 色中色一区二区| 一区二区日韩av| 欧美日韩国产片| 美女视频第一区二区三区免费观看网站| 欧美日韩成人激情| 麻豆国产精品视频|