項(xiàng)目四LinuxShell程序設(shè)計(jì)課件_第1頁(yè)
項(xiàng)目四LinuxShell程序設(shè)計(jì)課件_第2頁(yè)
項(xiàng)目四LinuxShell程序設(shè)計(jì)課件_第3頁(yè)
項(xiàng)目四LinuxShell程序設(shè)計(jì)課件_第4頁(yè)
項(xiàng)目四LinuxShell程序設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、項(xiàng)目四LinuxShell程序設(shè)計(jì)Linux系統(tǒng)管理與維護(hù)系統(tǒng)管理與維護(hù)項(xiàng)目四 Linux Shell程序設(shè)計(jì) 項(xiàng)目四LinuxShell程序設(shè)計(jì)【學(xué)習(xí)要點(diǎn)】l掌握Shell的基本語(yǔ)法結(jié)構(gòu)。l學(xué)會(huì)編寫并執(zhí)行Shell腳本程序。l學(xué)會(huì)在Linux下進(jìn)行進(jìn)程調(diào)度和作業(yè)調(diào)度。項(xiàng)目四LinuxShell程序設(shè)計(jì)任務(wù)一任務(wù)一 學(xué)習(xí)變量與表達(dá)式學(xué)習(xí)變量與表達(dá)式lShell是操作系統(tǒng)最外面的一層,負(fù)責(zé)管理用戶與操作系統(tǒng)之間的交互,例如等待用戶輸入,向操作系統(tǒng)解釋用戶的輸入,以及處理操作系統(tǒng)的各種輸出結(jié)果。l除了作為命令解釋器之外,Shell本身還是一個(gè)解釋型的程序設(shè)計(jì)語(yǔ)言。Shell程序設(shè)計(jì)語(yǔ)言支持變量、表

2、達(dá)式、函數(shù)和流程控制結(jié)構(gòu)等,任何在終端能夠執(zhí)行的命令也放到Shell程序。l4.1.1 變量l在Shell中有三種變量:系統(tǒng)變量,環(huán)境變量,用戶變量。其中系統(tǒng)變量在對(duì)參數(shù)判斷和命令返回值判斷會(huì)使用,環(huán)境變量主要是在程序運(yùn)行的時(shí)候需要設(shè)置,用戶變量在編程過程中使用最多。 l這幾種變量的賦值方法各不相同,主要有:直接設(shè)置變量值、變量之間的置換、從命令行參數(shù)獲取、從環(huán)境變量獲取和用戶輸入等幾種方式。l引用變量一般采用“$variable”的形式引用變量variable的值。項(xiàng)目四LinuxShell程序設(shè)計(jì)l1系統(tǒng)變量系統(tǒng)變量lShell常用的系統(tǒng)變量用于提供系統(tǒng)信息。系統(tǒng)變量一般采用命令行參數(shù)獲取

3、。 l2環(huán)境變量環(huán)境變量lShell在開始執(zhí)行前就已經(jīng)定義了一些與系統(tǒng)工作環(huán)境有關(guān)的變量。 l顯示環(huán)境變量用echo命令。 l在bash中,設(shè)置環(huán)境變量用set命令 。用unset命令可將環(huán)境變量重新設(shè)置為系統(tǒng)默認(rèn)值,。l用戶并不需要每次登錄后都對(duì)各種環(huán)境變量進(jìn)行手工設(shè)置,通過環(huán)境設(shè)置文件,用戶的工作環(huán)境的設(shè)置可以在登錄的時(shí)候由系統(tǒng)自動(dòng)來完成。環(huán)境設(shè)置文件有兩種:系統(tǒng)環(huán)境設(shè)置文件和用戶環(huán)境設(shè)置文件。項(xiàng)目四LinuxShell程序設(shè)計(jì)表表4-1 常見的系統(tǒng)變量常見的系統(tǒng)變量變量名變量名說明說明$#不包括命令在內(nèi)的命令行參數(shù)的數(shù)目$*命令行所有參數(shù)組成的字符串$命令行所有參數(shù)組成的字符串$nn為數(shù)

4、字,$0表示命令名稱,$1表示命令第一個(gè)參數(shù),以此類推$?上一個(gè)命令的返回值,如果正常退出則返回0,反之為非0值$當(dāng)前進(jìn)程的進(jìn)程號(hào)PID$!后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的進(jìn)程號(hào)PID項(xiàng)目四LinuxShell程序設(shè)計(jì)表表4-2 Shell中的環(huán)境變量中的環(huán)境變量變量變量名名說明說明變量變量名名說明說明HOME當(dāng)前用戶的主目錄PWD用戶的當(dāng)前目錄PATH命令搜索路徑UID當(dāng)前用戶標(biāo)識(shí)符LOGNAME用戶登錄名TERM終端的類型PS1第一命令提示符,是#或$SHELL用戶的Shell類型及路徑PS2第二命令提示符,默認(rèn)是HISFILE存儲(chǔ)歷史命令的文件項(xiàng)目四LinuxShell程序設(shè)計(jì)l3用戶變量用戶變

5、量l不管系統(tǒng)變量和環(huán)境變量有多少,對(duì)于需求來說,總是不夠的。用戶常常需要自定義一些變量,這些變量就稱為用戶變量。 l定義用戶變量的語(yǔ)法為:lname=string l局部變量與全局變量局部變量與全局變量lShell變量也有其規(guī)定的作用范圍。局部變量的作用范圍僅僅在其命令行所在的Shell或Shell腳本文件中。全局變量的作用范圍則包括本Shell進(jìn)程及其所有子進(jìn)程,即相當(dāng)于環(huán)境變量, 貫穿于整個(gè)當(dāng)前用戶環(huán)境??梢允褂胑xport命令將局部變量設(shè)置為全局變量。lexport name=string 項(xiàng)目四LinuxShell程序設(shè)計(jì)l【操作實(shí)例【操作實(shí)例4.1】l用文本編輯器gedit編寫一個(gè)S

6、hell腳本test1.sh,顯示執(zhí)行腳本時(shí)輸入的參數(shù)及參數(shù)總數(shù)目,并定義一個(gè)局部變量和一個(gè)全局變量。項(xiàng)目四LinuxShell程序設(shè)計(jì)l4.1.2 表達(dá)式lShell中的表達(dá)式分為算術(shù)運(yùn)算表達(dá)式、關(guān)系與邏輯表達(dá)式和正則表達(dá)式等幾種。l1.expr命令命令lexpr命令的功能是求表達(dá)式的值。 l2. 算術(shù)表達(dá)式算術(shù)表達(dá)式l算術(shù)表達(dá)式可以是由運(yùn)算符+、-、*、/、=組成的表達(dá)式。 l3. 關(guān)系與邏輯表達(dá)式關(guān)系與邏輯表達(dá)式l命令test與方括號(hào) 都用于進(jìn)行條件測(cè)試,測(cè)試的結(jié)果返回邏輯值,即真true(0)和假false(1)。test和 可以相互替換。 項(xiàng)目四LinuxShell程序設(shè)計(jì)表表4-4

7、 常用的數(shù)值測(cè)試運(yùn)算符常用的數(shù)值測(cè)試運(yùn)算符運(yùn)算運(yùn)算符符說明說明-eq如果int1=int2,則為真-ne如果int1!=int2,則為真-gt如果int1int2,則為真-ge如果int1=int2,則為真-lt如果int1int2,則為真-le如果int1=int2,則為真項(xiàng)目四LinuxShell程序設(shè)計(jì)表表4-5 常用的字符串測(cè)試運(yùn)算符常用的字符串測(cè)試運(yùn)算符運(yùn)算運(yùn)算符符說明說明=如果字符串str1和str2相同,則為真!=如果字符串str1和str2不同,則為真-z如果字符串str的長(zhǎng)度為0,則為真-n如果字符串str的長(zhǎng)度不為0,則為真項(xiàng)目四LinuxShell程序設(shè)計(jì)表表4-6 常用

8、的文件測(cè)試運(yùn)算符常用的文件測(cè)試運(yùn)算符運(yùn)算符運(yùn)算符說明說明-e如果文件存在,則為真-r如果文件存在且可讀,則為真-w如果文件存在且可寫,則為真-x如果文件存在且可執(zhí)行,則為真-s如果文件存在且長(zhǎng)度大于0,則為真-d如果文件存在且為目錄,則為真-f如果文件存在且為普通文件,則為真-b如果文件存在且為特殊塊文件,則為真-L如果文件存在且為符號(hào)鏈接文件,則為真-O如果文件存在且屬于當(dāng)前用戶文件,則為真-G如果文件存在且屬于當(dāng)前組文件,則為真-nt測(cè)試兩個(gè)文件的新舊,前一個(gè)文件比后一個(gè)新,則為真-ot測(cè)試兩個(gè)文件的新舊,前一個(gè)文件比后一個(gè)舊,則為真項(xiàng)目四LinuxShell程序設(shè)計(jì)表表4-7 邏輯運(yùn)算符

9、邏輯運(yùn)算符運(yùn)算運(yùn)算符符說明說明!非運(yùn)算,對(duì)邏輯值取反-a與運(yùn)算,兩個(gè)邏輯值為真返回值才為真,否則為假-o或運(yùn)算,兩個(gè)邏輯值有一個(gè)為真,返回值就為真項(xiàng)目四LinuxShell程序設(shè)計(jì)l【操作實(shí)例【操作實(shí)例4.2】l先練習(xí)使用表達(dá)式,然后用文本編輯器gedit編寫一個(gè)計(jì)算1-5的平方的Shell腳本test2.sh,進(jìn)一步熟悉表達(dá)式的作用。項(xiàng)目四LinuxShell程序設(shè)計(jì)任務(wù)二任務(wù)二 學(xué)習(xí)流程控制結(jié)構(gòu)學(xué)習(xí)流程控制結(jié)構(gòu)l4.2.1 分支結(jié)構(gòu)lShell程序中的條件語(yǔ)句主要有if語(yǔ)句、case語(yǔ)句。l1.if語(yǔ)句語(yǔ)句lif語(yǔ)句根據(jù)表達(dá)式的值來決定要執(zhí)行的程序段落。其語(yǔ)法格式如下:lif表達(dá)式1 th

10、enl語(yǔ)句塊1elif表達(dá)式2 thenl語(yǔ)句塊2elif表達(dá)式3 thenl語(yǔ)句塊3elsel語(yǔ)句塊nlfi 項(xiàng)目四LinuxShell程序設(shè)計(jì)l【操作實(shí)例【操作實(shí)例4.3】l編寫一個(gè)Shell腳本test3.sh,接收用戶輸入的文件名,然后在當(dāng)前目錄下檢查該文件是否存在。項(xiàng)目四LinuxShell程序設(shè)計(jì)l2.case語(yǔ)句語(yǔ)句lcase語(yǔ)句為用戶提供了根據(jù)字符串或變量的值從多個(gè)選項(xiàng)中選擇一項(xiàng)執(zhí)行的方法。case語(yǔ)句的語(yǔ)法格式如下: lcase 字符串 in值1|值2)l語(yǔ)句塊1;值3|值4)l語(yǔ)句塊2;值5|值6)l語(yǔ)句塊3; lesac 項(xiàng)目四LinuxShell程序設(shè)計(jì)l【操作實(shí)例【操

11、作實(shí)例4.4】l編寫一個(gè)Shell腳本test4.sh,用case語(yǔ)句建立一個(gè)菜單,當(dāng)用戶選擇菜單時(shí),執(zhí)行相應(yīng)的操作。項(xiàng)目四LinuxShell程序設(shè)計(jì)l4.2.2 循環(huán)結(jié)構(gòu)lShell常見的循環(huán)語(yǔ)句有for循環(huán)、while循環(huán)、until循環(huán)。l1.for循環(huán)循環(huán)lfor循環(huán)對(duì)一個(gè)變量所有可能的值都執(zhí)行一個(gè)命令序列。賦給變量的幾個(gè)數(shù)值既可以在程序內(nèi)以數(shù)值列表的形式提供,也可以在程序以外以參數(shù)的形式提供。lfor循環(huán)的一般格式如下:lfor循環(huán)變量 in列表dol語(yǔ)句塊done lfor語(yǔ)句對(duì)in列表中的每一項(xiàng)都執(zhí)行一次。列表可以是包括幾個(gè)單詞并且有空格分隔開的變量,也可以是直接輸入的幾個(gè)值。

12、每執(zhí)行一次循環(huán),循環(huán)變量都被賦予列表中的當(dāng)前值,直到最后一個(gè)為止。in列表子句也可以使用通配符。lin列表子句可以省略,此時(shí),假定循環(huán)變量包含執(zhí)行Shell程序時(shí)命令行的所有位置參數(shù),即相當(dāng)于in“$”。項(xiàng)目四LinuxShell程序設(shè)計(jì)l【操作實(shí)例【操作實(shí)例4.5】l編寫一個(gè)Shell腳本test5.sh,顯示當(dāng)前目錄下的所有.sh文件的名稱和內(nèi)容。項(xiàng)目四LinuxShell程序設(shè)計(jì)l2.while循環(huán)和循環(huán)和until循環(huán)循環(huán)lwhile語(yǔ)句與until語(yǔ)句具有類似的語(yǔ)法格式和功能。while語(yǔ)句會(huì)在測(cè)試條件為真時(shí)循環(huán)才執(zhí)行,語(yǔ)法如下:lwhile 測(cè)試表達(dá)式dol語(yǔ)句塊done lunt

13、il語(yǔ)句中當(dāng)表達(dá)式的值為假時(shí),循環(huán)才會(huì)繼續(xù)執(zhí)行命令:luntil 測(cè)試表達(dá)式dol語(yǔ)句塊done 項(xiàng)目四LinuxShell程序設(shè)計(jì)l【操作實(shí)例【操作實(shí)例4.6】l編寫一個(gè)Shell腳本test6.sh,腳本在執(zhí)行時(shí),接收用戶輸入的文件名,然后顯示該文件的內(nèi)容。項(xiàng)目四LinuxShell程序設(shè)計(jì)l3.break和和continuelbreak和continue無條件轉(zhuǎn)移命令。break用于立即終止當(dāng)前循環(huán)的執(zhí)行,continue用于不執(zhí)行循環(huán)中后面的語(yǔ)句而立即開始下一次循環(huán)的執(zhí)行。這兩個(gè)命令只有放在do和done之間才有效。項(xiàng)目四LinuxShell程序設(shè)計(jì)l【操作實(shí)例【操作實(shí)例4.7】l對(duì)【

14、操作實(shí)例【操作實(shí)例4.4】中的Shell腳本進(jìn)行改進(jìn),用循環(huán)語(yǔ)句建立菜單,當(dāng)用戶選擇了一次操作后,再次顯示菜單供用戶進(jìn)行下一次選擇,當(dāng)用戶按“q”鍵后,退出循環(huán)。Shell腳本的文件名為test7.sh。項(xiàng)目四LinuxShell程序設(shè)計(jì)任務(wù)三任務(wù)三 編輯與運(yùn)行編輯與運(yùn)行Shell腳本腳本l4.3.1 vim的使用lvi/vim是Linux系統(tǒng)中使用最為普遍的全屏幕交互式文本編輯程序。它沒有菜單,只有命令,但功能非常強(qiáng)大。vim可以執(zhí)行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據(jù)自己的需要對(duì)其進(jìn)行定制。lVim有3種基本工作模式:命令模式、插入模式和末行模式。l運(yùn)行Vim編輯

15、器的命令格式是:lvim 選項(xiàng) 文件名l執(zhí)行vim命令后,首先進(jìn)入的是命令模式。用戶輸入進(jìn)入插入模式的命令后,即可進(jìn)入插入模式。 項(xiàng)目四LinuxShell程序設(shè)計(jì)圖圖4-1 vim的運(yùn)行模式及轉(zhuǎn)換的運(yùn)行模式及轉(zhuǎn)換項(xiàng)目四LinuxShell程序設(shè)計(jì)l4.3.2 Shell編程l在Linux系統(tǒng)中,用Shell編寫的批處理文件稱為Shell腳本,它包含若干條命令和語(yǔ)句,可以解釋執(zhí)行。lShell腳本的作用主要包括:自動(dòng)執(zhí)行命令;實(shí)現(xiàn)系統(tǒng)管理和維護(hù);創(chuàng)建簡(jiǎn)單的應(yīng)用;操作文本或文件。l1編寫編寫Shell腳本腳本lShell腳本包含如下成分:l注釋部分:注釋部分:注釋部分以#開頭的行。l命令:命令:

16、在Shell腳本中可以出現(xiàn)任何在交互方式下可以使用的命令。l變量:變量:在Shell腳本中既可以使用用戶自定義的變量,也可以使用系統(tǒng)環(huán)境變量。Shell變量分為局部變量和全局變量。局部變量的作用范圍僅僅限制在其命令行所在的Shell或Shell腳本文件中。全局變量的作用范圍則包括本Shell進(jìn)程及其所有子進(jìn)程。可以使用export內(nèi)置命令將局部變量設(shè)置為全局變量。l流程控制:流程控制:流程控制語(yǔ)句對(duì)命令的執(zhí)行流程進(jìn)行控制 (分支、循環(huán)、子Shell調(diào)用)。l用vim等編輯程序就可以創(chuàng)建Shell腳本。Shell腳本的文件擴(kuò)展名一般為“.sh”。 項(xiàng)目四LinuxShell程序設(shè)計(jì)l2執(zhí)行執(zhí)行S

17、hell腳本腳本lShell腳本有三種執(zhí)行方式:l(1)方式1lbash 腳本文件名 l(2)方式2lsource腳本文件名 l(3)方式3lchmod u+x 腳本文件 l./腳本文件名 l用第一種和第二種方式,用戶即使沒有可執(zhí)行權(quán)限,也可執(zhí)行腳本文件。項(xiàng)目四LinuxShell程序設(shè)計(jì)l【操作實(shí)例【操作實(shí)例4.8】l利用循環(huán)計(jì)算10的階乘。Shell腳本的文件名為test8.sh。項(xiàng)目四LinuxShell程序設(shè)計(jì)任務(wù)四任務(wù)四 管理管理Linux中的進(jìn)程與作業(yè)中的進(jìn)程與作業(yè)l4.4.1 Linux中的進(jìn)程中的進(jìn)程l1Linux進(jìn)程的基本概念進(jìn)程的基本概念lLinux是一個(gè)多用戶多任務(wù)的操作

18、系統(tǒng)。多用戶是指多個(gè)用戶可以在同一時(shí)間使用計(jì)算機(jī)系統(tǒng);多任務(wù)是指Linux可以同時(shí)執(zhí)行幾個(gè)任務(wù),它可以在還未執(zhí)行完一個(gè)任務(wù)時(shí)又執(zhí)行另一項(xiàng)任務(wù)。l程序是為了完成某種任務(wù)而編寫的指令集合。但程序是靜態(tài)的,只是存儲(chǔ)在計(jì)算機(jī)上的一段代碼。為了描述多任務(wù)這樣一個(gè)動(dòng)態(tài)的概念,引入了進(jìn)程。進(jìn)程就是程序在某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng)。l為了區(qū)分進(jìn)程,Linux中每個(gè)進(jìn)程都有一個(gè)標(biāo)識(shí)號(hào),叫做PID(Process ID)。系統(tǒng)啟動(dòng)后的第一個(gè)進(jìn)程是init,它的PID是1。項(xiàng)目四LinuxShell程序設(shè)計(jì)l2Linux中進(jìn)程的分類中進(jìn)程的分類lLinux中的進(jìn)程一般分為交互式進(jìn)程、批處理進(jìn)程和守護(hù)進(jìn)程三類。l交

19、互式進(jìn)程:交互式進(jìn)程:由一個(gè)Shell啟動(dòng)的進(jìn)程。交互進(jìn)程既可以在前臺(tái)運(yùn)行,也可以在后臺(tái)運(yùn)行。典型的應(yīng)用比如編輯器 vim。此類進(jìn)程對(duì)系統(tǒng)響應(yīng)時(shí)間要求比較高,否則用戶會(huì)感覺系統(tǒng)反應(yīng)遲緩。l批處理進(jìn)程批處理進(jìn)程:不與特定的終端相關(guān)聯(lián),提交到等待隊(duì)列種順序執(zhí)行的進(jìn)程。比如編譯器。l守護(hù)進(jìn)程守護(hù)進(jìn)程:一般是由系統(tǒng)在開機(jī)時(shí)通過腳本自動(dòng)激活啟動(dòng)或超級(jí)管理用戶root來啟動(dòng),總是活躍的,一般運(yùn)行于后臺(tái)。這些后臺(tái)守護(hù)進(jìn)程時(shí)刻監(jiān)聽著前臺(tái)客戶的服務(wù)請(qǐng)求,一旦客戶發(fā)出了服務(wù)請(qǐng)求,守護(hù)進(jìn)程便為它們提供服務(wù)。項(xiàng)目四LinuxShell程序設(shè)計(jì)l3Linux進(jìn)程的啟動(dòng)方式進(jìn)程的啟動(dòng)方式l啟動(dòng)一個(gè)進(jìn)程有兩種途徑:手工啟動(dòng)

20、和調(diào)度啟動(dòng)。l(1)手工啟動(dòng)l由用戶輸入命令,直接啟動(dòng)一個(gè)進(jìn)程便是手工啟動(dòng)進(jìn)程。手工啟動(dòng)進(jìn)程又可分為前臺(tái)啟動(dòng)和后臺(tái)啟動(dòng)。l前臺(tái)啟動(dòng):這是啟動(dòng)進(jìn)程最常用的方式。一般地,用戶鍵入一個(gè)命令就是啟動(dòng)了一個(gè)進(jìn)程,而且是一個(gè)前臺(tái)的進(jìn)程。l后臺(tái)啟動(dòng):假設(shè)用戶要啟動(dòng)一個(gè)需要長(zhǎng)時(shí)間運(yùn)行的格式化文本文件的進(jìn)程,為了不使整個(gè)Shell在耗時(shí)進(jìn)程的運(yùn)行過程中都處于“癱瘓”狀態(tài),從后臺(tái)啟動(dòng)這個(gè)進(jìn)程是明智的選擇。從后臺(tái)啟動(dòng)進(jìn)程其實(shí)就是在命令結(jié)尾加上一個(gè)&號(hào)。鍵入命令以后,出現(xiàn)一個(gè)數(shù)字,這個(gè)數(shù)字就是該進(jìn)程的PID。l(2)調(diào)度啟動(dòng)l這種啟動(dòng)方式是事先進(jìn)行調(diào)度安排,指定任務(wù)運(yùn)行的時(shí)間或者場(chǎng)合,到時(shí)候系統(tǒng)會(huì)自動(dòng)啟動(dòng)進(jìn)程

21、這一切工作。常用的調(diào)度啟動(dòng)命令有cron、at等。項(xiàng)目四LinuxShell程序設(shè)計(jì)l4.Linux進(jìn)程管理命令進(jìn)程管理命令l(1) 查看進(jìn)程l在Linux中,使用ps命令對(duì)進(jìn)程進(jìn)行查看。 l(2)進(jìn)程通信lLinux進(jìn)程間通信的方式很多,信號(hào)是一種最基本通信方式。lLinux信號(hào)簡(jiǎn)介l信號(hào)可以直接發(fā)送給進(jìn)程,無需用戶接口。進(jìn)程在收到信號(hào)后,會(huì)做出相應(yīng)處理。發(fā)送信號(hào)時(shí)要給出信號(hào)的名字或數(shù)字??梢杂妹睢発ill -l”,顯示當(dāng)前系統(tǒng)支持的所有信號(hào)。用命令“man 7 signal”查看所有信號(hào)的解釋。lkill命令是通過向進(jìn)程發(fā)送指定的信號(hào)來結(jié)束進(jìn)程的。 項(xiàng)目四LinuxShell程序設(shè)計(jì)表表

22、4-6 ps命令常用選項(xiàng)說明命令常用選項(xiàng)說明選選項(xiàng)項(xiàng)說明說明選選項(xiàng)項(xiàng)說明說明a顯示所有進(jìn)程e在命令后顯示環(huán)境變量u顯示進(jìn)程屬主名和啟動(dòng)時(shí)間等信息w寬行輸出x顯示沒有控制終端的進(jìn)程-e 顯示所有進(jìn)程f顯示進(jìn)程樹-f 顯示全部項(xiàng)目四LinuxShell程序設(shè)計(jì)表表4-7 ps命令輸出信息的含義命令輸出信息的含義選項(xiàng)選項(xiàng)說明說明選項(xiàng)選項(xiàng)說明說明PID進(jìn)程號(hào)TIME進(jìn)程占用CPU的時(shí)間PPID父進(jìn)程號(hào)USER用戶名TTY進(jìn)程所啟動(dòng)的終端%CPU進(jìn)程占用CPU時(shí)間與總時(shí)間的百分比STAT進(jìn)程當(dāng)前狀態(tài)%MEM占用內(nèi)存與系統(tǒng)內(nèi)存問題的百分比START進(jìn)程開始執(zhí)行時(shí)間SIZE進(jìn)程大小+數(shù)據(jù)大小+??臻g大小VS

23、Z進(jìn)程占用的虛擬內(nèi)存空間COMMAND進(jìn)程的命令名RSS進(jìn)程占用的內(nèi)存空間項(xiàng)目四LinuxShell程序設(shè)計(jì)l5.進(jìn)程調(diào)度進(jìn)程調(diào)度l(1)進(jìn)程調(diào)度優(yōu)先級(jí)l在Linux 操作系統(tǒng)中,進(jìn)程之間是競(jìng)爭(zhēng)資源關(guān)系。這個(gè)競(jìng)爭(zhēng)優(yōu)劣是通過謙讓度來實(shí)現(xiàn)的。高謙讓度表示進(jìn)程優(yōu)先級(jí)別最低。負(fù)值或0表示最高優(yōu)先級(jí),對(duì)其他進(jìn)程不謙讓,也就是擁有優(yōu)先占用系統(tǒng)資源的權(quán)利。謙讓度的值從 20到19。lnice命令可以在創(chuàng)建進(jìn)程時(shí)為進(jìn)程指定謙讓度的值。 lrenice 是通過進(jìn)程ID(PID)來改變謙讓度,進(jìn)而達(dá)到更改進(jìn)程的優(yōu)先級(jí)。 l(2)交互式的進(jìn)程管理工具l監(jiān)視系統(tǒng)任務(wù)的工具topl系統(tǒng)監(jiān)視器gnome-system-m

24、onitorlgnome-system-monitor是一個(gè)圖形化的系統(tǒng)監(jiān)視器 項(xiàng)目四LinuxShell程序設(shè)計(jì)l4.4.2 Linux中的作業(yè)控制l1作業(yè)的概念作業(yè)的概念l作業(yè)(Job)是用戶提交給操作系統(tǒng)計(jì)算的一個(gè)獨(dú)立任務(wù)。l作業(yè)流是指在批處理系統(tǒng)中把一批作業(yè)安排在輸入設(shè)備上,然后依次讀入系統(tǒng)進(jìn)行處理,從而形成了作業(yè)流。l操作系統(tǒng)中用來控制作業(yè)的進(jìn)入、執(zhí)行和撤消的一組程序稱為作業(yè)管理程序。作業(yè)管理程序的主要任務(wù)是作業(yè)調(diào)度和作業(yè)控制。lLinux中提供了專門的作業(yè)調(diào)度命令。項(xiàng)目四LinuxShell程序設(shè)計(jì)l2前臺(tái)作業(yè)與后臺(tái)作業(yè)前臺(tái)作業(yè)與后臺(tái)作業(yè)l用戶可以直接控制的作業(yè)稱為前臺(tái)作業(yè)。用戶放

25、在內(nèi)存中自動(dòng)執(zhí)行的作業(yè)稱為后臺(tái)作業(yè)。Linux中提供了一組用于前臺(tái)、后臺(tái)作業(yè)控制的命令。l在后臺(tái)執(zhí)行作業(yè)l將作業(yè)放到后臺(tái)執(zhí)行的方法是在命令后面加上“&”符號(hào)。l將前臺(tái)作業(yè)暫停到后臺(tái)l可以用“Ctrl+Z”鍵將當(dāng)前在前臺(tái)運(yùn)行的作業(yè)放到后臺(tái),并暫停執(zhí)行。l列出后臺(tái)作業(yè)狀態(tài)命令-jobsl將后臺(tái)作業(yè)放到前臺(tái)運(yùn)行l(wèi)使用fg命令可以將后臺(tái)作業(yè)放到前臺(tái)運(yùn)行。l讓后臺(tái)暫停的命令在后臺(tái)作業(yè)l使用bg命令可以將后臺(tái)暫停的命令在后臺(tái)繼續(xù)執(zhí)行。 項(xiàng)目四LinuxShell程序設(shè)計(jì)l3.作業(yè)調(diào)度命令作業(yè)調(diào)度命令lLinux提供了一些作業(yè)調(diào)度命令,用于在特定時(shí)間或周期性地執(zhí)行程序。對(duì)于偶爾運(yùn)行的作業(yè)采用at或batch調(diào)度。對(duì)于特定時(shí)間重復(fù)運(yùn)行的作業(yè)采用cron調(diào)度和anacron 調(diào)度。lat調(diào)度調(diào)度lat用于設(shè)置某一特定時(shí)刻執(zhí)行的命令。at所設(shè)置的命令只執(zhí)行一次。 lbatch調(diào)度調(diào)度lbatch的作用與at類似,但它要在系統(tǒng)平均負(fù)載量降到 0.8 以下時(shí)才執(zhí)行某項(xiàng)一次性的任務(wù)。lcron調(diào)度調(diào)度lcron用于安排周期性的任務(wù)作業(yè)。lanacron調(diào)度調(diào)度lanacron 是和 cron 相似的任務(wù)調(diào)度器,只不過它并不要求系統(tǒng)持續(xù)運(yùn)行,它可以用來運(yùn)行通常由 cron 運(yùn)行的每日、每周、和每月的作業(yè)。項(xiàng)目四Linu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論