久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

完全掌握Linux系統的Shell編程

本篇文章給大家帶來了linux系統中shell編程的相關知識,在學習Shell編程之前,我們應該要先知道什么是Shell,還有什么是shell腳本,希望對大家有幫助。

完全掌握Linux系統的Shell編程

一. 什么是Shell

1. 在學習Shell編程之前,我們應該要先知道什么是Shell

用戶、Shell、Linux內核、硬件的關系如下圖:

完全掌握Linux系統的Shell編程

Shell是一個應用程序,也可以說是一個命令解釋器,它是用戶和Linux內核之間的橋梁,可以將用戶在圖形界面上的操作或在終端輸入的命令傳遞給Linux內核,然后Linux內核再調度各個硬件及其他資源來完成用戶的操作。

什么是Linux的內核?在Linux操作系統中,真正能夠操作計算機硬件完成某個用戶功能的那一部分被稱為Linux系統的內核。用戶在使用Linux系統時,是不可以直接操作內核的,而是通過Shell來間接的操作內核的。Shell不屬于內核的一部分,而是在Linux內核之外開發的應用程序,它將接收到的用戶鼠標點擊操作或輸入的命令傳遞給內核,而內核再去調度硬件去完成指定的操作。這樣用戶就不需要直接操作內核,而是通過Shell間接地操作內核,內核也不會被直接的暴露于外部,保障了內核的安全性,也簡化了用戶的操作。

Shell這個應用程序是開機即啟動的,我們在操作Linux系統時,無時不刻都在直接或者間接地通過Shell去操作Linux內核。其實,在沒有圖形化界面之前,用戶是通過終端或者控制臺直接地去調用Shell這個應用程序,然后通過輸入命令來操作Linux系統的。用戶在控制臺或者終端上看到的 $ 和 # 其實就是Shell的命令提示符,這表明用戶已經進入了Shell這個程序,只需要輸入命令,即可通過Shell來操作Linux內核。只不過root用戶登錄顯示$,而普通用戶登錄顯示#。

完全掌握Linux系統的Shell編程

另外,Shell在將用戶的操作傳遞給內核的過程,就是在調用內核提供的API接口的過程。比如,用戶在圖形界面或者終端命令行做了一個打開文件的操作,而這個用戶的操作Shell接收到后,就會去調用內核提供的相應的函數,然后內核再去調度硬件資源來完成用戶的操作。

2. 常見的Shell

我們知道,Linux 是一個開源的操作系統,它是由世界各地的多個組織機構或個人共同開發完成的,每個組織機構或個人負責一部分功能,最后組合在一起,就構成了現在我們使用的 Linux。也正是這個原因,這些不同的組織機構或者個人都會開發出可以在Linux系統中使用的應用程序,而這些應用程序的功能可能是類似的,各有優缺點,至于使用哪一個由用戶選擇。而Shell就是這樣的一個應用程序,所以Shell有很多個版本,目前Linux的大多數發行版默認使用的Shell是 bash shell。其他常見的Shell版本如下:

(1) sh:sh 的全稱是 Bourne shell,是 UNIX 上的標準 shell,很多 UNIX 版本都配有 sh。sh 是第一個流行的 Shell。

(2) csh:這個 shell 的語法有點類似C語言,所以才得名為 C shell ,簡稱為 csh。

(3) tcsh:tcsh 是 csh 的增強版,加入了命令補全功能,提供了更加強大的語法支持。

(4) ash:一個輕量級占用資源少的 Shell,適合運行于低內存環境,與 bash shell 完全兼容。

(5) bash:bash shell 由 GNU 組織開發,保持了對 sh shell 的兼容性,是各種 Linux 發行版默認配置的 shell。

3. 查看Linux系統的Shell

在Linux系統中,一般默認使用的Shell是bash shell。Shell是一個應用程序,一般都是放在/bin或者/user/bin目錄下,而當前 Linux 系統可用的 Shell 都記錄在/etc/shells文件中。

(1) 查看系統當前可用的Shell,執行命令【cat -n /etc/shells】:

完全掌握Linux系統的Shell編程

(2) 查看系統當前默認使用的shell,執行命令【echo $SHELL】:

完全掌握Linux系統的Shell編程

(3) 查看各個用戶使用的Shell,執行命令【cat -n /etc/passwd】:

完全掌握Linux系統的Shell編程

二. 什么是Shell編程

1. 什么是Shell編程語言

我們已經知道,Shell是一個應用程序,而這個應用程序不單單只是可以將用戶的操作命令傳遞給Linux內核,它也支持編程。Shell都會對應一套編程語言的語法,而這套語言就被稱為Shell編程語言或是Shell腳本語言。Shell編程語言和JavaScript語言一樣是一種腳本語言,它不需要編譯,而它的解釋器就是Shell應用程序本身。

我們平時工作中所說的Shell,大多數情況指的是Shell腳本語言,而不是Shell應用程序。

2. 什么是Shell腳本

我們在使用Shell腳本語言時,可以和Linux系統的其他操作命令結合使用(如 ls、grep等等),而我們使用Shell腳本語言和其他命令結合編寫能夠完成某個特定功能的擴展名為.sh的文本,就叫做Shell腳本程序。

3. 第一個Shell腳本

我們已經知道,Shell有很多個版本,而每個版本支持的Shell腳本語言語法可能是有差異的,而下面的關于Shell腳本的所有例子都是針對于Bash Shell這個版本而言。

(1)在根目錄下新建一個Hello.sh腳本:【vim Hello.sh】

(2)然后輸入以下內容:

#!/bin/bash      echo "Hello World "

第一行:#! 是一個約定標記,它可以告訴系統這個腳本要使用哪個Shell版本作為解釋器,后面緊跟的/bin/bash則是Shell的所在路徑,所以【#!/bin/bash 】表示聲明使用bin目錄下的 bash shell 作為這個腳本的解釋器;

第二行:【echo "Hello World "】表示輸出文本 Hello World !;

(3)然后保存退出:【!wq】;

(4)這樣,一個能夠輸出 Hello World !的腳本就編寫完成。

補充說明:

上面我們已經說過,Shell程序就是Shell腳本語言的解釋器,而我們在使用終端時(例如通過Xshell連接Linux服務器的終端),其實就是已經進入了Shell這個程序,所以其實我們是可以在終端直接輸入Shell編程語言的代碼來運行的,而不需要寫在腳本里再去運行。例如,聲明一個變量并打印這個變量的值:

(1)輸入代碼:【name=張三】,表示定義了一個變量name,它的值為張三;

(2)輸入代碼:【echo $name】,表示打印變量name的值。

完全掌握Linux系統的Shell編程

當然,這種方式只適合去執行邏輯簡單只有一兩句代碼的情況,大多數情況下我們還是將Shell編程代碼寫在.sh腳本中再去執行。

4. 運行Shell腳本的方式

上面我們已經編寫了一個能夠輸出 Hello World !的Shell腳本運行,而現在我們就要執行 Hello.sh 這個腳本。而Shell腳本的執行方式有兩種:

第一種:給予.sh文本可執行權限,然后執行文本:

(1)先給予Shell腳本可執行權限:【chmod +x Hello.sh】;

(2)直接執行:絕對路徑:【/Hello.sh】 或者 相對路徑:【./Hello.sh】

完全掌握Linux系統的Shell編程

注意,這里執行時如果使用的是相對路徑,必須要以./開頭,表示當前目錄,否則系統會找不到腳本,從而導致執行失敗。

第二種:將 Shell 腳本作為參數傳遞給 Bash Shell 解釋器:

(1)這里使用Bash Shell來作為解釋器,那么我們直接調用Bash Shell 這個程序,然后把Hello.sh這個腳本作為參數傳給Shell即可:【/bin/bash Hello.sh】或 【bash Hello.sh】

完全掌握Linux系統的Shell編程

(2)這里需要注意,使用這種方式執行Shell腳本時,在Shell腳本的第一行中就不需要聲明使用哪個版本的Shell來作為解釋器,也就是不需要這行代碼【#!/bin/bash】,因為我們運行腳本的命令中【/bin/bash Hello.sh】,就已經指明了使用哪個版本的Shell作為解釋器。

注意,這種方式執行腳本文件時,如果使用的是相對路徑,那么【/bin/bash ./Hello.sh】和【/bin/bash Hello.sh】是一樣的,并無使用第一種執行方式中的區別。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
日韩国产一区二| 日韩二区在线观看| 日韩高清一区二区| 日韩中文在线播放| 国产精品1区在线| 日韩和欧美一区二区三区| 婷婷成人在线| 视频在线不卡免费观看| 国产精品一区三区在线观看| 亚洲有吗中文字幕| 亚洲视频www| 国产成人免费精品| 国产亚洲精品美女久久久久久久久久| 午夜一区在线| 99热免费精品| 黄页网站一区| 日韩午夜av| 欧美国产91| 中文字幕在线视频网站| 欧美激情麻豆| 日韩国产欧美三级| 好吊日精品视频| 九色精品91| 久久精品青草| 日韩精品久久久久久久电影99爱| 国产aⅴ精品一区二区三区久久| 国产精品一线天粉嫩av| 欧美偷窥清纯综合图区| 日本不卡视频在线观看 | 亚洲美洲欧洲综合国产一区| 亚洲1234区| 国内精品伊人| 国产黄色一区| 久久精品国产福利| 成人午夜毛片| 欧美一区久久久| 99精品视频在线| 欧美日韩国产在线观看网站| 91精品成人| 国产婷婷精品| 四虎在线精品| 国产亚洲高清一区| 麻豆久久一区二区| 国产成人精品亚洲线观看| 成人在线超碰| 久久久国产精品一区二区中文| 99精品电影| 色婷婷久久久| 国产精品毛片在线| 免费的成人av| 欧美日韩夜夜| 精品女同一区二区三区在线观看| 国产色播av在线| 欧美精品一区二区久久| 水蜜桃久久夜色精品一区的特点 | 亚洲另类av| 国产亚洲电影| 国产 日韩 欧美 综合 一区| 久久人人精品| 亚洲一区二区日韩| 欧美精品观看| 精品资源在线| 99精品美女| 国产亚洲精品v| 国产亚洲一卡2卡3卡4卡新区| 精品国产欧美日韩一区二区三区| 99精品小视频| 亚洲久久一区| 精品精品99| 亚洲午夜黄色| 亚洲精品观看| 久久影院资源站| 久久一区二区三区喷水| 一区二区三区四区日韩| 亚洲精品大片| 欧美精品1区| 亚洲福利久久| 亚洲影院天堂中文av色| 老司机精品视频网| 红桃视频国产精品| 国产欧美一区二区三区国产幕精品| 色综合狠狠操| 蜜桃视频在线观看一区二区| 青青在线精品| 久久久蜜桃一区二区人| 亚洲丝袜啪啪| 日韩高清成人| 日韩精品欧美大片| 亚洲电影有码| 国产亚洲高清在线观看| 久久久久国产| 日韩中文字幕无砖| 精品久久影院| 三级欧美在线一区| 精品一区二区三区中文字幕| 在线国产一区二区| 国产精品免费大片| 红桃视频欧美| 国产aⅴ精品一区二区四区| 欧美中文日韩| 国产一区二区三区视频在线| 亚洲欧美日韩在线观看a三区| 美女久久精品| 自拍自偷一区二区三区| 色网在线免费观看| 色综合视频一区二区三区日韩 | 日韩和欧美的一区| 九色porny丨国产首页在线| 日韩毛片一区| 亚洲婷婷免费| 国产精品网在线观看| 国产精品毛片| 日韩国产一区二区| 国产香蕉精品| 国产精品一区二区av日韩在线| 亚洲免费一区三区| 中文字幕成人| 亚洲乱亚洲高清| 综合亚洲色图| 亚洲精品视频一二三区| 亚洲精品影视| 日本a口亚洲| 国产日韩三级| 美女av一区| 国产 日韩 欧美 综合 一区| 精品视频在线一区二区在线| 精品黄色一级片| 高清一区二区| 激情亚洲影院在线观看| 久久麻豆精品| 不卡在线一区| 亚洲欧美成人综合| 亚洲一区二区三区中文字幕在线观看| 免费一级片91| 日本国产一区| 久久精品免视看国产成人| sm久久捆绑调教精品一区| 天堂8中文在线最新版在线| 亚洲91精品| 国产精品毛片一区二区三区| 久久成人亚洲| 日韩av中文字幕一区二区三区| 国产欧美啪啪| 国产理论在线| 欧美国产91| 日韩专区在线视频| 日本午夜精品久久久| 国产欧美丝祙| 色婷婷色综合| 午夜国产一区二区| 亚洲精品乱码久久久久久蜜桃麻豆| 日本成人在线视频网站| 久久久精品国产**网站| 久久久精品午夜少妇| 视频一区二区三区入口| 日韩三级精品| 精品国产乱码久久久久久1区2匹| 秋霞影视一区二区三区| 久久亚洲电影| 国产精品一区二区三区av麻| 色在线视频观看| 久久夜色精品| 欧美国产免费| 欧美日韩国产亚洲一区| 日本强好片久久久久久aaa| 日韩.com| 天堂va蜜桃一区二区三区| 国产精品香蕉| 国内精品99| 国产精品一区二区精品视频观看| 精品免费av在线| 视频一区视频二区中文字幕| 国产精品.xx视频.xxtv| 国内精品福利| 国产情侣久久| 亚洲午夜精品久久久久久app| 亚洲不卡视频| 在线看片国产福利你懂的| 午夜在线一区二区| 美女毛片一区二区三区四区最新中文字幕亚洲| 日韩精品水蜜桃| 欧美伊人影院| 亚洲手机在线| 国产精品一区二区中文字幕| 免费精品国产| 麻豆一区二区在线| 亚洲精品一二三区区别| 国产福利资源一区| 国产精品日韩| 精品久久精品| 日韩中文字幕无砖| 999精品色在线播放| 日韩av一二三| 久久久久久久久丰满| 午夜精品影视国产一区在线麻豆| 日韩av在线中文字幕| 日韩一二三区在线观看| 中文字幕在线视频网站| 日韩免费精品| 九一国产精品|