




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 Linux基礎(chǔ)及應(yīng)用第1章 Linux入門7/22/20221.1 Linux基礎(chǔ)知識(shí) Linux是專門為個(gè)人計(jì)算機(jī)所設(shè)計(jì)的操作系統(tǒng)。它最早是由Linus Torvalds設(shè)計(jì)的。 Linux是在Internet開放環(huán)境中開發(fā)的,它由世界各地的程序員不斷完善,而且免費(fèi)供用戶使用。 7/22/2022Linux具有以下主要特性: 開放性 多用戶 多任務(wù) 良好的用戶界面 設(shè)備獨(dú)立性 提供了豐富的網(wǎng)絡(luò)功能 7/22/2022可靠的系統(tǒng)安全 良好的可移植性 支持多種文件系統(tǒng) 7/22/2022需解決的問題 :企業(yè)級(jí)技術(shù)支持;更多應(yīng)用程序支持;微軟的Windows系列產(chǎn)品之所以能取得今天的市場(chǎng)地位,是
2、與其上擁有眾多的應(yīng)用軟件分不開的。在Linux產(chǎn)品中也必須裝有先進(jìn)的應(yīng)用軟件,在這方面,進(jìn)展雖有,但太過緩慢。如果沒有足夠的需求,銷售商們不會(huì)采用Linux,而如果沒有足夠的應(yīng)用程序,就不會(huì)有需求。因此,應(yīng)用程序這一關(guān)攻不下來,Linux就難以為繼。標(biāo)準(zhǔn)化;UNIX最初也是一個(gè)自由軟件,但發(fā)展到今天,已被各大廠商把持,版本繁多,互不兼容,這實(shí)際上阻礙了UNIX的發(fā)展。7/22/20221.2 Linux系統(tǒng)安裝 做好安裝前的準(zhǔn)備工作 :安裝類型所需空間個(gè)人桌面包括圖形化桌面環(huán)境,至少需要1.78G空閑空間。若兼選GNOME和KDE桌面環(huán)境,則至少需要1.8GB的空閑空間工作站工作站安裝,包括圖
3、形化桌面環(huán)境和軟件開發(fā)工具,至少需要2.1GB的空閑空間。兼選GNOME和KDE桌面環(huán)境至少需要2.2GB空閑空間服務(wù)器最基本的沒有X(圖形化環(huán)境)的服務(wù)器安裝需要850GB空閑空間;若要安裝除X以外的所有軟件包組,需要1.5GB空閑空間;若要安裝包括GNOME和KDE桌面環(huán)境的所有軟件包,至少需要5.0GB空閑空間定制基本的定制安裝需要475MB,如果選擇了全部軟件包,則至少需要5.0GB空閑空間7/22/2022Linux的分區(qū)規(guī)定:(1)設(shè)備管理Linux把各種IDE設(shè)備分配了一個(gè)由hd前綴組成的文件;而對(duì)于各種SCSI設(shè)備,則分配了一個(gè)由sd前綴組成的文件。例如,第一個(gè)IDE設(shè)備,Li
4、nux就定義為hda;第二個(gè)IDE設(shè)備就定義為hdb;下面以此類推。而SCSI、SATA、USB設(shè)備就應(yīng)該是sda、sdb、sdc等。7/22/2022(2)分區(qū)數(shù)量對(duì)于每一個(gè)硬盤(IDE或SCSI)設(shè)備,Linux分配了一個(gè)1到16的序列號(hào)碼,這就代表了這塊硬盤上面的分區(qū)號(hào)碼。例如,第一個(gè)IDE硬盤的第一個(gè)分區(qū),在Linux下面映射的就是hda1,第二個(gè)分區(qū)就稱作是hda2。對(duì)于SCSI、SATA、USB硬盤則是sda1、sdb1等。(3)各分區(qū)的作用Linux規(guī)定了主分區(qū)(或者擴(kuò)展分區(qū))占用1至16號(hào)碼中的前4個(gè)號(hào)碼。以第一個(gè)IDE硬盤為例說明,主分區(qū)(或者擴(kuò)展分區(qū))占用了hda1、hda
5、2、hda3、hda4,而邏輯分區(qū)占用了hda5到hda16等12個(gè)號(hào)碼。因此,Linux下面每一個(gè)硬盤總共最多有16個(gè)分區(qū)。7/22/2022 安裝Fedora Core Linux 1要完成Fedora Linux在本地計(jì)算機(jī)上的安裝,需要準(zhǔn)備一張F(tuán)edora的安裝盤或者自行下載32位或者64位的Fedora系統(tǒng)iso文件,本文安裝的是Fedora22 KDE桌面版,操作步驟如下:7/22/2022(1)插入資源光盤,從光盤引導(dǎo)后會(huì)見到如圖1-1所示的安裝界面。7/22/20222選擇語言7/22/2022(3)進(jìn)入用戶界面安裝信息摘要界面。7/22/2022(4) 配置鍵盤。7/22/2
6、022(5)配置時(shí)區(qū)。7/22/2022(6)設(shè)置主機(jī)名稱。7/22/2022(7)設(shè)置磁盤分區(qū)。 選擇自動(dòng)分區(qū)7/22/2022 選擇自定義分區(qū)方案7/22/20227/22/20227/22/2022(8)安裝配置界面。7/22/2022(9)為root用戶設(shè)置密碼。(10)創(chuàng)建用戶。7/22/2022(11)安裝完成(12)選擇支持的語言(13)選擇鍵盤布局或其他輸入方式。7/22/2022(14)設(shè)置隱私。(15)配置完成。7/22/20221.3 Linux文件及文件系統(tǒng) Linux中常見的文件類型 1系統(tǒng)文件7/22/20222編程和腳本文件7/22/20223常見的媒體文件 7/
7、22/2022文件擴(kuò)展名說明.au音頻文件.gifGIF圖像文件.swfFlash動(dòng)畫文件.html/htmHTML文件.xmlXML文件.bmp位圖文件.jpg圖像文件.pdfPDF文檔的電子映像,代表Portable Document Format(可移植文檔格式).png圖像文件PNG(Portable Network Graphic,可移植網(wǎng)絡(luò)圖形).psPostScript文件,為打印而格式化過的文件.txt純ASCII文本文件.wav音頻文件.xpm圖像文件4壓縮和歸檔文件7/22/2022 Linux文件系統(tǒng)文件系統(tǒng)是操作系統(tǒng)用于明確磁盤或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu);即在磁盤上
8、組織文件的方法。也指用于存儲(chǔ)文件的磁盤或分區(qū),或文件系統(tǒng)種類。Linux是一個(gè)多用戶系統(tǒng),操作系統(tǒng)本身的駐留程序存放在以根目錄開始的專用目錄中,有時(shí)被指定為系統(tǒng)目錄。 7/22/2022Linux支持多種文件系統(tǒng)。下面是最重要的幾個(gè):1minix2xia3ext24ext35 . ext46nfs 7sysv7/22/2022Linux基礎(chǔ)及應(yīng)用第2章 Linux基礎(chǔ)命令 2.1 系統(tǒng)基本操作 1系統(tǒng)登錄(1)root用戶:超級(jí)用戶賬號(hào),使用這個(gè)賬號(hào)可以在系統(tǒng)中做任何事情。(2)普通用戶:只能進(jìn)行有限的操作。 用戶登錄分兩步進(jìn)行:第一步,輸入用戶的登錄名,系統(tǒng)根據(jù)該登錄名來識(shí)別用戶;第二步,輸
9、入用戶的口令,該口令是用戶自己選擇的一個(gè)字符串,對(duì)其他用戶是保密的,是在登錄時(shí)系統(tǒng)用來辨別真假用戶的關(guān)鍵字。 2系統(tǒng)退出 不論是超級(jí)用戶,還是普通用戶,需要退出系統(tǒng)時(shí),在shell提示符下,鍵入exit命令即可。 3重啟和關(guān)閉系統(tǒng)修改口令 : Linux允許不同的用戶通過控制口令來保障信息的安全,用戶只有通過正確的口令才能登錄系統(tǒng),Linux系統(tǒng)下用戶通過passwd命令來修改口令。 Linux用戶包括超級(jí)用戶和普通用戶,超級(jí)用戶具有最高權(quán)限,可以修改所有用戶的口令,而普通用戶只能修改自己的口令。 passwd命令一般格式: passwd 選項(xiàng) 賬戶名稱 2.2 Linux常用操作命令2.2.
10、1文件和目錄的基本概念:1文件與文件名 文件名是文件的標(biāo)識(shí),它由字母、數(shù)字、下劃線和圓點(diǎn)組成的字符串來構(gòu)成。用戶應(yīng)該選擇有意義的文件名。Linux要求文件名的長(zhǎng)度限制在255個(gè)字符以內(nèi)。 2文件的類型 Linux系統(tǒng)中有三種基本的文件類型::普通文件、目錄文件和設(shè)備文件。 普通文件是用戶最經(jīng)常面對(duì)的文件,它又分為文本文件和二進(jìn)制文件。 目錄文件的主要目的是用于管理和組織系統(tǒng)中的大量文件。它存儲(chǔ)一組相關(guān)文件的位置、大小等與文件有關(guān)的信息。目錄文件往往簡(jiǎn)稱為目錄。 Linux系統(tǒng)把每一個(gè)I/O設(shè)備都看成一個(gè)文件,與普通文件一樣處理,這樣可以使文件與設(shè)備的操作盡可能統(tǒng)一。從用戶的角度來看,對(duì)I/O設(shè)
11、備的使用和一般文件的使用一樣,不必了解I/O設(shè)備的細(xì)節(jié)。設(shè)備文件可以細(xì)分為塊設(shè)備文件和字符設(shè)備文件。 3樹型目錄結(jié)構(gòu) Linux系統(tǒng)通過目錄將系統(tǒng)中所有的文件分級(jí)、分層組織在一起,形成了Linux文件系統(tǒng)的樹型層次結(jié)構(gòu)。以根目錄為起點(diǎn),所有其他的目錄都由根目錄派生而來。一個(gè)典型的Linux系統(tǒng)的樹型目錄結(jié)構(gòu) :4工作目錄、用戶主目錄與路徑 從邏輯上講,用戶在登錄到Linux系統(tǒng)中之后,每時(shí)每刻都處在某個(gè)目錄之中,此目錄被稱作工作目錄或當(dāng)前目錄(Working Directory)。工作目錄用“.”表示,其父目錄用“.”表示。 用戶主目錄是系統(tǒng)管理員增加用戶時(shí)建立起來的(以后也可以改變),每個(gè)用
12、戶都有自己的主目錄,不同用戶的主目錄一般互不相同。 路徑是指從樹型目錄中的某個(gè)目錄層次到某個(gè)文件的一條道路。此路徑的主要構(gòu)成是目錄名稱,中間用“/”分開。任一文件在文件系統(tǒng)中的位置都是由相應(yīng)的路徑?jīng)Q定的。用戶在對(duì)文件進(jìn)行訪問時(shí),要給出文件所在的路徑。 路徑又分相對(duì)路徑和絕對(duì)路徑。 絕對(duì)路徑是指從根目錄開始的路徑,也稱為完全路徑;相對(duì)路徑是從用戶工作目錄開始的路徑。2.2.2文件和目錄命令1cat命令cat命令用于將文件內(nèi)容在標(biāo)準(zhǔn)輸出設(shè)備上顯示出來,它類似于DOS下的type命令。cat命令除了顯示文件功能外,還可用來連接兩個(gè)或多個(gè)文件。cat命令用于顯示文件內(nèi)容的格式: cat 選項(xiàng) 文件名1
13、 文件名2文件名N 命令主要選項(xiàng)含義:-n:由1開始對(duì)文件所有輸出的行數(shù)編號(hào)。-b:和-n相似,只不過對(duì)于空白行編號(hào)。-s:當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行。-v:顯示非打印字符。 2more命令more命令用來對(duì)內(nèi)容比較多的文件進(jìn)行分頁顯示。more命令的格式: more 選項(xiàng) 文件名該命令一次顯示一屏,顯示一屏后暫停,并在底部顯示More-,同時(shí)還顯示已經(jīng)顯示的內(nèi)容占整個(gè)內(nèi)容的百分比。按Enter鍵可以向后移動(dòng)一行;按空格鍵可以向后移動(dòng)一頁;按Ctrl+B或b鍵顯示上一屏內(nèi)容;按Q鍵退出。3cp命令 cp命令用于復(fù)制文件或目錄,它相當(dāng)于DOS中的copy命令。 cp命令的
14、格式: cp 選項(xiàng) 源文件或目錄 目標(biāo)文件或目錄該命令把指定的源文件復(fù)制到目標(biāo)文件,或者把指定目錄下的多個(gè)文件復(fù)制到目標(biāo)目錄中。如果指定的目標(biāo)文件名存在,用cp命令拷貝文件后,默認(rèn)情況下這個(gè)文件就會(huì)被新文件覆蓋。 4pwd命令pwd命令用于顯示當(dāng)前所處目錄。pwd命令的格式: pwd此命令不帶任何參數(shù),用于顯示當(dāng)前目錄的絕對(duì)路徑。5ls命令ls命令用于查看目錄的內(nèi)容。ls命令的格式: ls 選項(xiàng) 目錄或文件 該命令列出指定目錄的內(nèi)容,默認(rèn)情況下,輸出條目按字母順序排列。6cd命令cd命令用于更改目錄。cd命令的格式: cd 目錄名該命令將當(dāng)前目錄改變至指定的目錄。若沒有指定的目錄,則回到用戶的
15、個(gè)人目錄。該命令要求用戶必須擁有對(duì)指定目錄的執(zhí)行和讀權(quán)限。要進(jìn)入上一級(jí)目錄,直接執(zhí)行”cd .”命令即可。 7mkdir命令mkdir命令用于創(chuàng)建目錄。mkdir命令的格式: mkdir 選項(xiàng) 目錄名該命令創(chuàng)建目錄時(shí),要求創(chuàng)建目錄的用戶在當(dāng)前目錄中具有寫權(quán)限,并且所創(chuàng)建的目錄名不是當(dāng)前目錄下已有的目錄或文件名。8rmdir命令rmdir命令用于刪除空的目錄。 rmdir命令的格式: rmdir 選項(xiàng) 目錄名該命令從當(dāng)前目錄下刪除一個(gè)或多個(gè)子目錄,被刪除的目錄必須是空目錄。9rm命令rm命令用于刪除文件或目錄。 rm命令的格式: rm 選項(xiàng) 文件名或目錄名該命令刪除一個(gè)或多個(gè)文件(目錄),它可以
16、將某個(gè)目錄及其下的所有文件和子目錄均刪除。如要?jiǎng)h除目錄必須加上參數(shù)“-r”,否則只刪除文件而不刪除目錄。10mv命令mv命令用于移動(dòng)或更名現(xiàn)有的文件或目錄。mv命令的格式: mv 選項(xiàng) 源文件或目錄 目標(biāo)文件或目錄該命令根據(jù)第二個(gè)參數(shù)的類型是文件或者目錄來選擇是執(zhí)行重命名還是移動(dòng)操作。當(dāng)?shù)诙€(gè)參數(shù)是文件時(shí),執(zhí)行重命名操作,此時(shí),源文件或目錄只有一個(gè);當(dāng)?shù)诙€(gè)參數(shù)是已存在的目錄時(shí),源文件或目錄可以有多個(gè),執(zhí)行移動(dòng)操作。 11grep、fgrep和egrep命令 這組命令以指定模式搜索文件,并通知用戶在什么文件中搜索到與指定的模式匹配的字符串,并打印出所有包含該字符串的文本行,在該文本行的最前面是
17、該行所在的文件名。grep命令一次只能搜索一個(gè)指定的模式;egrep命令檢索擴(kuò)展的正則表達(dá)式(包括表達(dá)式組和可選項(xiàng));fgrep命令檢索固定字符串,它不識(shí)別正則表達(dá)式,是快速搜索命令。語法:grep 選項(xiàng) 查找模式 文件名1,文件名2,egrep 選項(xiàng) 查找模式 文件名1,文件名2,fgrep 選項(xiàng) 查找模式 文件名1,文件名2, 12find功能:在目錄結(jié)構(gòu)中搜索文件,并執(zhí)行指定的操作。此命令提供了相當(dāng)多的查找條件,功能很強(qiáng)大。 語法:find 起始目錄 尋找條件 操作13locate命令 locate命令用于查找文件,它比find命令的搜索速度快,它需要一個(gè)數(shù)據(jù)庫,這個(gè)數(shù)據(jù)庫由每天的例行工
18、作(crontab)程序來建立。當(dāng)我們建立好這個(gè)數(shù)據(jù)庫后,就可以方便地來搜尋所需文件了。該命令的一般形式為: locate 相關(guān)字14wc命令wc命令的功能為統(tǒng)計(jì)指定文件中的字節(jié)數(shù)、字?jǐn)?shù)、行數(shù), 并將統(tǒng)計(jì)結(jié)果顯示輸出。語法:wc 選項(xiàng) 文件說明:該命令統(tǒng)計(jì)給定文件中的字節(jié)數(shù)、字?jǐn)?shù)、行數(shù)。如果沒有給出文件名,則從標(biāo)準(zhǔn)輸入讀取。wc同時(shí)也給出所有指定文件的總統(tǒng)計(jì)數(shù)。字是由空格字符區(qū)分開的最大字符串。該命令各選項(xiàng)含義如下:- c 統(tǒng)計(jì)字節(jié)數(shù)。- l 統(tǒng)計(jì)行數(shù)。- w 統(tǒng)計(jì)字?jǐn)?shù)。15ln命令該命令在文件之間創(chuàng)建鏈接。 語法:ln 選項(xiàng) 目標(biāo) 鏈接名ln 選項(xiàng) 目標(biāo) 目錄16sort命令 sort命令的
19、功能是對(duì)文件中的各行進(jìn)行排序。實(shí)際上,sort命令可以被認(rèn)為是一個(gè)非常強(qiáng)大的數(shù)據(jù)管理工具,用來管理內(nèi)容類似數(shù)據(jù)庫記錄的文件。語法: sort 選項(xiàng) 文件17uniq命令 文件經(jīng)過處理后在它的輸出文件中可能會(huì)出現(xiàn)重復(fù)的行。這時(shí)可以使用uniq命令將這些重復(fù)行從輸出文件中刪除,只留下每條記錄的唯一樣本。 語法:uniq 選項(xiàng) 文件 18修改文件權(quán)限 文件或目錄的訪問權(quán)限分為只讀,只寫和可執(zhí)行三種。用戶也可根據(jù)需要把訪問權(quán)限設(shè)置為需要的任何組合。 有三種不同類型的用戶可對(duì)文件或目錄進(jìn)行訪問:文件所有者、同組用戶、其他用戶。 用戶可以利用Linux系統(tǒng)提供的chmod命令來重新設(shè)定不同的訪問權(quán)限。也可
20、以利用chown命令來更改某個(gè)文件或目錄的所有者。利用chgrp命令來更改某個(gè)文件或目錄的用戶組。 19comm命令 命令功能是可以用來比較兩個(gè)文件內(nèi)容的差別。但只對(duì)兩個(gè)有序的文件進(jìn)行比較,排序可以使用sort命令。語法:comm - 123 file1 file2 2.2.3進(jìn)程管理命令 1進(jìn)程及作業(yè)的概念 Linux系統(tǒng)上所有運(yùn)行的東西都可以稱之為一個(gè)進(jìn)程。每個(gè)用戶任務(wù)、每個(gè)系統(tǒng)管理守護(hù)進(jìn)程,都可以稱之為進(jìn)程。進(jìn)程的一個(gè)比較正式的定義是:在自身的虛擬地址空間運(yùn)行的一個(gè)單獨(dú)的程序。 Linux操作系統(tǒng)包括三種不同類型的進(jìn)程,每種進(jìn)程都有自己的特點(diǎn)和屬性。交互進(jìn)程由一個(gè)shell啟動(dòng)的進(jìn)程。交
21、互進(jìn)程既可以在前臺(tái)運(yùn)行,也可以在后臺(tái)運(yùn)行。批處理進(jìn)程這種進(jìn)程和終端沒有聯(lián)系,是一個(gè)進(jìn)程序列。監(jiān)控進(jìn)程(也稱守護(hù)進(jìn)程)Linux系統(tǒng)啟動(dòng)時(shí)啟動(dòng)的進(jìn)程,并在后臺(tái)運(yùn)行。 2啟動(dòng)進(jìn)程 啟動(dòng)一個(gè)進(jìn)程有兩個(gè)主要途徑:手工啟動(dòng)和調(diào)度啟動(dòng) 。(1)手工啟動(dòng)由用戶輸入命令,直接啟動(dòng)一個(gè)進(jìn)程便是手工啟動(dòng)進(jìn)程。但手工啟動(dòng)進(jìn)程又可以分為很多種,根據(jù)啟動(dòng)的進(jìn)程類型不同、性質(zhì)不同,實(shí)際結(jié)果也不一樣。 (2)調(diào)度啟動(dòng)有時(shí)候需要對(duì)系統(tǒng)進(jìn)行一些比較費(fèi)時(shí)而且占用資源的維護(hù)工作,這些工作適合在深夜進(jìn)行,這時(shí)候用戶就可以事先進(jìn)行調(diào)度安排,指定任務(wù)運(yùn)行的時(shí)間或者場(chǎng)合,到時(shí)候系統(tǒng)會(huì)自動(dòng)完成這一切工作。 3進(jìn)程控制命令(1)who命令該命
22、令主要用于查看當(dāng)前在線上的用戶情況。 (2)w命令該命令也用于顯示登錄到系統(tǒng)的用戶情況,但是與who不同的是,w命令功能更加強(qiáng)大,它不但可以顯示有誰登錄到系統(tǒng),還可以顯示出這些用戶當(dāng)前正在進(jìn)行的工作 (3)ps命令ps命令用于查看Linux系統(tǒng)的進(jìn)程狀態(tài)。(4)top命令top命令和ps命令的基本作用是相同的,顯示系統(tǒng)當(dāng)前的進(jìn)程和其他狀況;但是top是一個(gè)動(dòng)態(tài)顯示過程,即可以通過用戶按鍵來不斷刷新當(dāng)前狀態(tài)。 (5)kill命令當(dāng)需要中斷一個(gè)前臺(tái)進(jìn)程的時(shí)候,通常是使用Ctrl+C 組合鍵;但是對(duì)于一個(gè)后臺(tái)進(jìn)程恐怕就不是一個(gè)組合鍵所能解決的了,這時(shí)就必須求助于kill命令。該命令可以終止后臺(tái)進(jìn)程。
23、 2.2.4 文件壓縮命令1gzip命令gzip命令用于對(duì)文件進(jìn)行壓縮和解壓縮。一般格式為: gzip 選項(xiàng) 壓縮文件名/解壓縮文件名2unzip命令unzip命令用于解壓winzip格式的壓縮文件。一般格式為: unzip 選項(xiàng) 壓縮文件名.zip 3tar命令tar命令主要對(duì)文件和目錄進(jìn)行打包。一般格式為: tar 選項(xiàng) 文件或目錄名2.2.5 網(wǎng)絡(luò)命令1ping命令ping命令用于測(cè)試本機(jī)與目標(biāo)主機(jī)是否連通。一般格式為: ping 選項(xiàng) 主機(jī)名(IP地址)該命令使用ICMP傳輸協(xié)議,發(fā)出要求回應(yīng)的信息,若目標(biāo)主機(jī)的網(wǎng)絡(luò)功能沒問題,就會(huì)回應(yīng)該信息,因而得知和目標(biāo)主機(jī)的連接正常。2ifcon
24、fig命令ifconfig命令用于顯示或設(shè)置網(wǎng)絡(luò)設(shè)備。一般格式為: ifconfig 網(wǎng)卡號(hào) 選項(xiàng) IP地址該命令可設(shè)置網(wǎng)絡(luò)設(shè)備的狀態(tài),或是顯示當(dāng)前網(wǎng)絡(luò)狀態(tài)。 3netstat命令 netstat命令的功能是顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接正在運(yùn)作。一般格式為: netstat 選項(xiàng)4traceroute命令 traceroute命令用于顯示本機(jī)到目標(biāo)主機(jī)的路由路徑。一般格式為: traceroute 目標(biāo)主機(jī)名或IP地址5finger命令finger命令用于顯示主機(jī)系統(tǒng)中用戶的信息。一般格式為: finger 選項(xiàng) 賬號(hào)名稱單獨(dú)執(zhí)行finger命令,它會(huì)
25、顯示本地主機(jī)所有用戶的登錄信息,包括賬號(hào)名稱、真實(shí)姓名、登錄的終端、空閑時(shí)間、登錄時(shí)間以及地址和電話。2.2.6 聯(lián)機(jī)幫助命令1man命令man命令用于顯示某一命令的幫助手冊(cè)。一般格式為: man 選項(xiàng) 命令名2help命令help命令用于查看所有shell命令的幫助信息。一般格式為: help 命令名2.2.7 操作要點(diǎn)1Linux是大小寫敏感的系統(tǒng)。 2文件名最多可以有256個(gè)字符,可以包含數(shù)字,點(diǎn)號(hào)”.”,下劃線”_”,橫桿”-”,加上其他一些不被建議使用的字符。 3文件名前面帶”.”的文件在輸入”ls”或者”dir” 命令時(shí)一般不顯示??梢园堰@些文件看作是隱含文件,可以使用命令”ls
26、a”來顯示這些文件。 4“/”對(duì)等于DOS下的”(根目錄,意味著所有其他目錄的父目錄,或者是在目錄之間和目錄和文件之間的一個(gè)間隔符號(hào))5在Linux系統(tǒng)下,所有的目錄顯示在單一目錄樹下(有別于DOS系統(tǒng)的驅(qū)動(dòng)器標(biāo)識(shí))。6在配置文件里,以#打頭的行是注釋行。7Linux是繼承性的多用戶操作系統(tǒng)。8整個(gè)系統(tǒng)范圍的設(shè)定一般放在目錄/etc下。 9和其他的多用戶操作系統(tǒng)類似,在Linux下,文件和目錄有自己的擁有者和訪問權(quán)限。10命令參數(shù)選項(xiàng)一般由”-”引導(dǎo),后面跟一個(gè)字符(或者”-“,當(dāng)選項(xiàng)超過一個(gè)字符時(shí))。舉個(gè)例子,輸入命令 rm -help。2.3 Linux啟動(dòng)過程詳解啟動(dòng)GRUB/LILO
27、GRUB(GRand Unified Bootloader)是一個(gè)將引導(dǎo)裝載程序安裝到主引導(dǎo)記錄的程序,主引導(dǎo)記錄是位于一個(gè)硬盤開始的扇區(qū)。它允許位于主引導(dǎo)記錄區(qū)中特定的指令來裝載一個(gè)GRUB菜單或是GRUB的命令環(huán)境。目前 GRUB 分成 GRUB legacy(以前稱GRUB) 和 GRUB 2。版本號(hào)是 0.9x 以及之前的版本都稱為 GRUB legacy ,從 1.x 開始的就稱為 GRUB 2。 LILO (Linux Loader)是一個(gè)優(yōu)秀的開機(jī)啟動(dòng)管理程序,它的最大的好處就是獨(dú)立于文件系統(tǒng),可以啟動(dòng)各種操作系統(tǒng):從Microsoft、OS/2、SCO Unix、Unixwar
28、e、PC-DOS到Linux等等。 2 加載內(nèi)核 內(nèi)核映像是一個(gè)壓縮過的內(nèi)核映像。在這個(gè)內(nèi)核映像前面是一個(gè)例程,它實(shí)現(xiàn)少量硬件設(shè)置,并對(duì)內(nèi)核映像中包含的內(nèi)核進(jìn)行解壓,然后將其放入內(nèi)存中。該例程會(huì)調(diào)用內(nèi)核,并開始啟動(dòng)內(nèi)核引導(dǎo)的過程。 執(zhí)行init進(jìn)程 init進(jìn)程(Sysv init啟動(dòng)系統(tǒng))是系統(tǒng)所有進(jìn)程的起點(diǎn),內(nèi)核在完成核內(nèi)引導(dǎo)以后,即在本線程(進(jìn)程)空間內(nèi)加載init程序,它的進(jìn)程號(hào)是1。 4 通過/etc/inittab文件進(jìn)行初始化 init的工作是根據(jù)/etc/inittab來執(zhí)行相應(yīng)的腳本進(jìn)行系統(tǒng)初始化,如設(shè)置鍵盤、字體, 裝載模塊,設(shè)置網(wǎng)絡(luò)等等 2.4 Linux系統(tǒng)服務(wù)系統(tǒng)服務(wù)
29、的作用Linux系統(tǒng)服務(wù)主要有以下作用:(1)啟動(dòng)、停止、暫停、恢復(fù)或禁用遠(yuǎn)程和本地計(jì)算機(jī)服務(wù)。(2)管理本地和遠(yuǎn)程計(jì)算機(jī)上的服務(wù)。(3)設(shè)置服務(wù)失敗時(shí)的故障恢復(fù)操作。(4)為特定的硬件配置文件啟用或禁用服務(wù)。 (5)查看每個(gè)服務(wù)的狀態(tài)和描述。 2 Linux系統(tǒng)服務(wù) Linux在啟動(dòng)時(shí)要啟動(dòng)很多系統(tǒng)服務(wù),它們向本地和網(wǎng)絡(luò)用戶提供了Linux的系統(tǒng)功能接口,直接面向應(yīng)用程序和用戶。 2.5 系統(tǒng)安全性1 系統(tǒng)管理員安全安全管理主要分為四個(gè)方面: 防止未授權(quán)存取 防止泄密 防止用戶拒絕系統(tǒng)的管理 防止丟失信息2 文件系統(tǒng)安全 文件系統(tǒng)概述 設(shè)備文件/etc/mknod命令 安裝和拆卸文件系統(tǒng) 系
30、統(tǒng)目錄和文件 /etc/passwd文件 /etc/passwd文件是Linux安全的關(guān)鍵文件之一。該文件用于用戶登錄時(shí)校驗(yàn)用戶的口令,當(dāng)然應(yīng)當(dāng)僅對(duì)root可寫。文件中每行的一般格式為:LOGNAM :PASSWORD:UID:GID:USERINFO:HOME:SHELL4 /etc/group文件 /etc/group文件含有關(guān)于小組的信息, /etc/ passwd中的每個(gè)G I D在本文件中應(yīng)當(dāng)有相應(yīng)的入口項(xiàng),入口項(xiàng)中列出了小組名和小組中的用戶。這樣可方便地了解每個(gè)小組的用戶,否則必須根據(jù)GID在/etc/ passwd文件中從頭至尾地尋找同組用戶。 增加和刪除用戶增加用戶有三個(gè)過程:
31、 在/etc/ passwd文件中寫入新用戶的入口項(xiàng)。 為新登錄用戶建立一個(gè)HOME目錄。 在/etc/group中為新用戶增加一個(gè)入口項(xiàng)。6 系統(tǒng)檢查命令(1)du 報(bào)告在層次目錄結(jié)構(gòu)(當(dāng)前工作目錄或指定目錄起)中各目錄占用的磁盤塊數(shù)。(2)df 報(bào)告整個(gè)文件系統(tǒng)當(dāng)前的空間使用情況。(3)ps 檢查當(dāng)前系統(tǒng)中正在運(yùn)行的所有進(jìn)程。對(duì)于用了大量CPU時(shí)間的進(jìn)程、同時(shí)運(yùn)行了許多進(jìn)程的用戶、運(yùn)行了很長(zhǎng)時(shí)間但用了很少CPU時(shí)間的用戶進(jìn)程應(yīng)當(dāng)深入檢查。還可以查出運(yùn)行了一個(gè)無限循環(huán)的后臺(tái)進(jìn)程的用戶,未注銷帳戶就關(guān)閉終端的用戶(一般發(fā)生在直接連線的終端)。(4)who 可以告訴系統(tǒng)管理員系統(tǒng)中工作的進(jìn)展情況
32、等等許多信息,檢查用戶的登錄時(shí)間,登錄終端。(5)su 每當(dāng)用戶試圖使用su命令進(jìn)入系統(tǒng)用戶時(shí),命令將在/usr/adm/sulog文件中寫一條信息。(6)login 在一些系統(tǒng)中,login程序記錄了無效的登錄企圖Linux基礎(chǔ)及應(yīng)用第3章 Linux下的C編程基礎(chǔ) 3.1 Linux下C語言編程概述3.1.1 C語言簡(jiǎn)單回顧C(jī)語言的特點(diǎn) :(1)簡(jiǎn)潔緊湊、靈活方便(2)運(yùn)算符豐富(3)數(shù)據(jù)結(jié)構(gòu)豐富(4)C是結(jié)構(gòu)式語言(5)C語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大(6)C語言允許直接訪問物理地址,可以直接對(duì)硬件進(jìn)行操作(7)C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高(8)C語言適用范圍大,可移植性
33、好3.1.2 Linux下C語言編程環(huán)境概述(1)編輯器 Linux下的編輯器就如Windows下的word、記事本等一樣,完成對(duì)所錄入文字的編輯功能。Linux中最常用的編輯器有Vi(Vim)和Emacs,它們功能強(qiáng)大,使用方便,廣受編程愛好者的喜愛。 (2)編譯器 編譯是指源代碼轉(zhuǎn)化生成可執(zhí)行代碼的過程??梢?,在編譯過程是非常復(fù)雜的,它包括詞法、語法和語義的分析、中間代碼的生成和優(yōu)化、符號(hào)表的管理和出錯(cuò)處理等。在Linux中,最常用的編譯器是Gcc編譯器。 (3)調(diào)試器 Gdb是絕大多數(shù)Linux開發(fā)人員所使用的調(diào)試器,它可以方便地設(shè)置斷點(diǎn)、單步跟蹤等,足以滿足開發(fā)人員的需要。 (4)項(xiàng)目
34、管理器 Linux中的項(xiàng)目管理器“Make”有些類似于Windows中Visual C+里的“工程”,它是一種控制編譯或者重復(fù)編譯軟件的工具。3.2 vi編輯器3.2.1 vi的工作模式1命令模式 當(dāng)用戶啟動(dòng)vi后,vi就處于命令模式。此時(shí)輸入的任何字符都被當(dāng)作編輯命令。如i表示插入命令、r表示替換命令等。不管在什么時(shí)候,只要按一下Esc鍵,vi就會(huì)回到命令模式。2插入模式 在命令模式下,按字母i、a、o、r等命令就可以切換到插入模式。 3末行模式 在插入模式下,按Esc鍵回到命令模式,再按冒號(hào)(:)鍵,就會(huì)轉(zhuǎn)換到末行模式,此時(shí)光標(biāo)停留在狀態(tài)行上,并等待用戶輸入所需的末行模式的命令。用戶可以用
35、它來保存文件、裝入另外的文件或退出vi。 3.2.2 vi的啟動(dòng)和退出1啟動(dòng)vi 在系統(tǒng)提示符下輸入vi及文件名稱后,就進(jìn)入vi全屏幕編輯界面。2退出vi當(dāng)編輯完文件后,準(zhǔn)備返回到shell狀態(tài)時(shí),需執(zhí)行退出vi的命令。在命令行模式下,按一下冒號(hào)(:)鍵進(jìn)入末行模式。(1):wq 保存文件內(nèi)容并退出編輯器,回到shell狀態(tài)。(2):q! 不保存內(nèi)容強(qiáng)制退出vi。(3):ZZ 僅當(dāng)編輯的內(nèi)容做過修改時(shí),才將將緩沖區(qū)的內(nèi)容保存到文件。(4):x 與:ZZ功能相同。 3.2.3 文本輸入1插入命令(1)i 在i命令之后輸入的內(nèi)容都插在光標(biāo)位置之前,光標(biāo)后的文本相應(yīng)向后移動(dòng)。如按Enter鍵,就插入
36、新的一行或者換行。(2)I 輸入I命令后,光標(biāo)移動(dòng)到該行的行首,輸入相應(yīng)文本則插入到行首相應(yīng)位置。2附加命令(1)a 在a命令之后輸入的內(nèi)容都插在光標(biāo)位置之后。(2)A 輸入A命令后,光標(biāo)移動(dòng)到該行的行尾,輸入相應(yīng)文本則插入到行尾相應(yīng)位置。 3打開命令(1)o 在光標(biāo)所在行的下面新開辟一行,輸入的文本就插入該行。(2)O 在光標(biāo)所在行的上面新開辟一行,輸入的文本就插入該行。4移動(dòng)光標(biāo)3.2.4 文本修改刪除與替換(1) 刪除 在插入模式下,用Backspace鍵來刪除前面的字符,還可以用Delete鍵來刪除當(dāng)前字符。也可在vi的命令模式下用一些命令來刪除一個(gè)字符、一個(gè)單詞或者整行內(nèi)容等 (2)
37、替換在vi的命令模式下還提供了一些命令來替換字符、單詞或者進(jìn)行整行替換 2 .復(fù)制、粘貼和剪切(1)復(fù)制 在vi編輯器中復(fù)制的方式有兩種:鼠標(biāo)方式和命令方式。鼠標(biāo)方式同windows操作系統(tǒng)的復(fù)制操作類似,vi提供的復(fù)制命令見表 (2)粘貼與復(fù)制一樣,vi編輯器中粘貼的方式也有兩種,且不同的復(fù)制方式對(duì)應(yīng)不同的粘貼方式。粘貼方式同windows操作系統(tǒng)的粘貼操作類似,vi提供的粘貼命令很簡(jiǎn)單,有以下兩種形式。1)p:在當(dāng)前光標(biāo)后面粘貼。2)P:在當(dāng)前光標(biāo)前面粘貼。(3)剪切在vi編輯器中,所有的刪除命令也是剪切命令,因?yàn)閯h除的內(nèi)容都被送到剪貼板中。如果用戶用剪切命令剪切,可將剪切的內(nèi)容使用粘貼命
38、令粘貼。3. 撤銷使用撤銷命令可撤銷用戶最后一次的操作。撤銷命令很簡(jiǎn)單,有以下兩種形式。u: 取消上次的操作U: 可以恢復(fù)對(duì)光標(biāo)所在行的所有改變。4. 查找 vi提供字符串查找功能,包括向前查找、向后查找、繼續(xù)上一次查找等。當(dāng)vi向前查找,從光標(biāo)當(dāng)前位置向前查找,當(dāng)找到文本的開頭時(shí),它就到文本的末尾繼續(xù)查找;當(dāng)vi向后查找,從光標(biāo)當(dāng)前位置向后查找,當(dāng)找到文本的最后時(shí),它就到文本的開頭繼續(xù)查找。3.2.5 文件操作打開文件(1)打開一個(gè)文件在命令模式下,使用命令:vi file。其中file是指定路徑的文件,如果沒有指定路徑,就默認(rèn)為當(dāng)前目錄。例如,輸入vi test 就可以打開當(dāng)前目錄下的te
39、st文件,此時(shí)按字母i或a就可以切換到插入模式進(jìn)行文本輸入。(2)打開多個(gè)文件vi能一次打開多個(gè)文件,使用命令:vi file1 file2。其中file1, file2是指定路徑的兩個(gè)文件,如果沒有指定路徑,就默認(rèn)為當(dāng)前目錄。例如,輸入vi test main.c 就可以打開當(dāng)前目錄下的test、main.c文件。2 . 保存文件(1):w 將緩沖區(qū)的內(nèi)容保存到當(dāng)前文件中。(2):w file 將緩沖區(qū)的內(nèi)容保存到名為file的文件中。如果用戶另存為的file文件已經(jīng)存在,則使用該命令保存時(shí)狀態(tài)行會(huì)出現(xiàn)“File exists(add ! to override)”的提示,即需使用“:w!
40、file ”命令來強(qiáng)制覆蓋。(3):w! file 強(qiáng)制將緩沖區(qū)的內(nèi)容保存到名為file的文件中。3.3 Emacs3.3.1 Emacs的基本操作1啟動(dòng)Emacs在系統(tǒng)提示符下直接輸入emacs命令,則進(jìn)入emacs的歡迎界面 2使用Emacs(1)復(fù)制、剪切和粘貼(2)查找文本(3)移動(dòng)光標(biāo)(4)打開、保存和退出文件3.3.2 Emacs的編譯概述 Emacs不僅僅是個(gè)強(qiáng)大的編譯器,它還是一個(gè)集編譯、調(diào)試等于一體的工作環(huán)境。 1Emacs中的模式 Emacs中并沒有像Vi中那樣的“命令行”、“編輯”模式,只有一種編輯模式。Emacs的“模式”,是指Emacs里的各種輔助環(huán)境。 2Emacs
41、編譯調(diào)試程序Emacs默認(rèn)的編輯命令是對(duì)一個(gè)make的調(diào)用。用戶可以打開“tool”下的“Compile”進(jìn)行查看。Emacs可以支持大量的工程項(xiàng)目,以方便程序員的開發(fā)。另外,Emacs為Gdb調(diào)試器提供了一個(gè)功能齊全的接口。在Emacs中使用Gdb的時(shí)候,程序員不僅能夠獲得Gdb用其他任何方式運(yùn)行時(shí)所具有的全部標(biāo)準(zhǔn)特性,還可以通過接口增強(qiáng)而獲得的其他性能。 3.4 Gcc編譯器3.4.1 Gcc簡(jiǎn)介GCC是GNU公社的一個(gè)項(xiàng)目,是一個(gè)用于編程開發(fā)的自由編譯器。Gcc編譯器能將C、C+語言源程序和目標(biāo)程序編譯、連接成可執(zhí)行文件,如果沒有給出可執(zhí)行文件的名字,Gcc將生成一個(gè)名為a.out的文件
42、。 3.4.2 Gcc的基本用法和選項(xiàng) Gcc最基本的用法是:gcc 選項(xiàng) 文件名常用的選項(xiàng)如下: -c:只編譯,不連接成為可執(zhí)行文件,編譯器只是由輸入的.c等源代碼文件生成.o為后綴的目標(biāo)文件,通常用于編譯不包含主程序的子程序文件。-o output_filename:確定輸出文件的名稱為output_filename,同時(shí)這個(gè)名稱不能和源文件同名。如果不給出這個(gè)選項(xiàng),gcc就給出預(yù)設(shè)的可執(zhí)行文件a.out。-E:預(yù)處理后即停止,不進(jìn)行編譯、匯編及連接。-g:產(chǎn)生符號(hào)調(diào)試工具(GNU的gdb)所必要的符號(hào)信息,要想對(duì)源代碼進(jìn)行調(diào)試,必須加入這個(gè)選項(xiàng)。-O:對(duì)程序進(jìn)行優(yōu)化編譯、連接,采用這個(gè)選
43、項(xiàng),整個(gè)源代碼會(huì)在編譯、連接過程中進(jìn)行優(yōu)化處理,這樣產(chǎn)生的可執(zhí)行文件的執(zhí)行效率可以提高,但是,編譯、連接的速度就相應(yīng)地要慢一些。3.4.3 編譯多個(gè)源文件 許多重要的程序都是由多個(gè)源代碼文件組成,并且執(zhí)行最后的鏈接之前,各個(gè)源文件都必須編譯成目標(biāo)文件。為此,要向gcc傳遞要編譯的每個(gè)源代碼文件名??梢允褂萌缦耮cc命令來編譯多個(gè)源文件:rootlocalhost root# gcc file1.c file2.c file3.c o programgcc將創(chuàng)建file1.o、file2.o和file3.o,然后把它們鏈接在一起創(chuàng)建program目標(biāo)文件 3.5 Gdb調(diào)試器GDB四個(gè)方面的功能
44、:(1)啟動(dòng)程序,可以按照自定義的要求隨心所欲的運(yùn)行程序。(2)可讓被調(diào)試的程序在所指定斷點(diǎn)處停住。(3)當(dāng)程序被停住時(shí),可以檢查此時(shí)程序中所發(fā)生的事。(4)動(dòng)態(tài)的改變程序的執(zhí)行環(huán)境。3.5.1 啟動(dòng)Gdb 啟動(dòng)GDB的方法有以下幾種:(1)gdb programprogram也就是執(zhí)行文件,一般在當(dāng)前目錄下。(2)gdb core用gdb同時(shí)調(diào)試一個(gè)運(yùn)行程序和core文件,core是程序非法執(zhí)行core dump后產(chǎn)生的文件。(3)gdb pid如果程序是一個(gè)服務(wù)程序,那么可以指定這個(gè)服務(wù)程序運(yùn)行時(shí)的進(jìn)程ID,gdb會(huì)自動(dòng)進(jìn)行調(diào)試。3.5.2 設(shè)置斷點(diǎn) Gdb中使用break命令來設(shè)置斷點(diǎn),
45、該命令有如下四種形式: break line-number:使程序恰好在執(zhí)行給定行之前停止。 break function-name:使程序恰好在進(jìn)入指定的函數(shù)之前停止。 break line-or-function if condition:如果condition(條件)是真,程序到達(dá)指定行或函數(shù)時(shí)停止。 break routine-name:在指定例程的入口處設(shè)置斷點(diǎn) 3.6 Make工程管理器Make工程管理器也是個(gè)“自動(dòng)編譯管理器”,這里的“自動(dòng)”是指它能夠根據(jù)文件時(shí)間戳自動(dòng)發(fā)現(xiàn)更新過的文件而減少編譯的工作量,同時(shí),它通過讀入Makefile文件的內(nèi)容來執(zhí)行大量的編譯工作。 3.6.1
46、 Makefile基本概念 Makefile 文件相當(dāng)于程序編譯過程中的批處理文件。是工具程序make 運(yùn)行時(shí)的輸入數(shù)據(jù)文件。只要在含有Makefile 的當(dāng)前目錄中鍵入make 命令,它就會(huì)依據(jù)Makefile 文件中的設(shè)置對(duì)源程序或目標(biāo)代碼文件進(jìn)行編譯、連接或進(jìn)行安裝等活動(dòng)。1Makefile變量 Makefile變量名是不包括“:”、“#”、“=”前置空白和尾空白的任何字符串。同時(shí),變量名中包含字母、數(shù)字以及下劃線以外的情況應(yīng)盡量避免,因?yàn)樗鼈兛赡茉趯肀毁x予特別的含義。變量名是大小寫敏感的。Makefle中的變量使用均使用格式為:$(VAR)。Makefile變量分為用戶自定義變量、預(yù)
47、定義變量、自動(dòng)變量及環(huán)境變量。 2Makefile基本結(jié)構(gòu)Makefile是Make讀入的唯一配置文件,在一個(gè)Makefile中通常包含如下內(nèi)容:(1)需要由make工具創(chuàng)建的目標(biāo)體(target),通常是目標(biāo)文件或可執(zhí)行文件; (2)要?jiǎng)?chuàng)建的目標(biāo)體所依賴的文件(dependency_file); (3)創(chuàng)建每個(gè)目標(biāo)體時(shí)需要運(yùn)行的命令(command)。3Makefile規(guī)則一般的,Makefile中的一條語句就是一個(gè)規(guī)則。make還定義了隱式規(guī)則和模式規(guī)則 。(1)隱式規(guī)則隱含規(guī)則能夠告訴make怎樣使用傳統(tǒng)的技術(shù)完成任務(wù),這樣,當(dāng)用戶使用它們時(shí)就不必詳細(xì)指定編譯的具體細(xì)節(jié),而只需把目標(biāo)文件
48、列出即可。(2)模式規(guī)則模式規(guī)則是用來定義相同處理規(guī)則的多個(gè)文件的。模式規(guī)則能引入用戶自定義變量,為多個(gè)文件建立相同的規(guī)則,從而簡(jiǎn)化Makefile的編寫。 3.6.2 Make管理器的使用使用make管理器非常簡(jiǎn)單,在make命令后鍵入目標(biāo)名即可建立指定的目標(biāo):make target。 通過命令行選項(xiàng)中的target ,可指定make要編譯的目標(biāo),并且允許同時(shí)定義編譯多個(gè)目標(biāo),操作時(shí)按照從左向右的順序依次編譯target選項(xiàng)中指定的目標(biāo)文件。 3.7 使用autotoolsautotools的使用流程 (1)手工編寫Makefile.am這個(gè)文件。(2)在源代碼目錄樹的最高層運(yùn)行autosc
49、an,然后手動(dòng)修改configure.scan文件,并改名為configure.ac或configure.in。(3)運(yùn)行aclocal,它會(huì)根據(jù)configure.ac的內(nèi)容生成aclocal.m4文件。(4)運(yùn)行autoconf,它根據(jù)configure.ac和aclocal.m4的內(nèi)容生成configure這個(gè)配置腳本文件。(5)運(yùn)行automake -add-missing,它根據(jù)Makefile.am的內(nèi)容生成Makefile.in。(6)運(yùn)行configure,它會(huì)根據(jù)Makefile.in的內(nèi)容生成Makefile這個(gè)文件。Linux基礎(chǔ)及應(yīng)用第四章 進(jìn)程控制開發(fā)4.1 Linu
50、x下進(jìn)程概述4.1.1 進(jìn)程的概念1進(jìn)程的引入2進(jìn)程及其特征(1)動(dòng)態(tài)性(2)并發(fā)性(3)獨(dú)立性(4)異步性(5)結(jié)構(gòu)特征:進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成3進(jìn)程與程序的關(guān)系程序是指令的有序集合,其本身沒有任何運(yùn)行的含義,是一個(gè)靜態(tài)的概念。而進(jìn)程是程序在處理機(jī)上的一次執(zhí)行過程,它是一個(gè)動(dòng)態(tài)的概念。程序可以作為一種軟件資料長(zhǎng)期存在,而進(jìn)程是有一定生命期的。程序是永久的,進(jìn)程是暫時(shí)的。4.1.2 進(jìn)程的結(jié)構(gòu)(1)進(jìn)程狀態(tài)(2)調(diào)度信息(3)標(biāo)識(shí)符(4)內(nèi)部進(jìn)程通信信息(5)鏈接信息(6)時(shí)間和計(jì)時(shí)器(7)文件系統(tǒng)(8)虛擬內(nèi)存信息(9)處理器信息4.2 Linux進(jìn)程控制編程4.2.1 進(jìn)程
51、的創(chuàng)建方法:調(diào)用系統(tǒng)調(diào)用 fork 系統(tǒng)調(diào)用的語法格式: pid = fork();4.2.2 進(jìn)程的等待pid_t wait(int *stat_loc); pid_t waitpid(pid_t pid,int *stat_loc,int options); wait系統(tǒng)調(diào)用會(huì)使父進(jìn)程阻塞直到一個(gè)子進(jìn)程結(jié)束。如果沒有父進(jìn)程,沒有子進(jìn)程或者其子進(jìn)程已經(jīng)結(jié)束,wait會(huì)立即返回。成功時(shí)wait將返回子進(jìn)程的ID,否則返回-1,并設(shè)置全局變量errno.stat_loc是子進(jìn)程的退出狀態(tài)。 4.2.3 進(jìn)程的終止核心為系統(tǒng)調(diào)用exit完成下列操作:(1)撤銷所有的信號(hào)量(2)釋放其所有的資源,包
52、括存儲(chǔ)空間、已打開文件、工作目錄、信號(hào)處理表等。(3)把進(jìn)程狀態(tài)置為“終止態(tài)”(4)向其父進(jìn)程發(fā)送子進(jìn)程終止的信號(hào)。(5)執(zhí)行相應(yīng)的進(jìn)程調(diào)度。4.2.4 進(jìn)程映像的更換核心為系統(tǒng)調(diào)用exec完成下列操作:(1)驗(yàn)證文件的可執(zhí)行性,即用戶有權(quán)執(zhí)行它。(2)讀文件頭,檢查它是一個(gè)可裝入模塊。(3)釋放原有的內(nèi)存空間。(4)按照可執(zhí)行文件的要求分配新的內(nèi)存空間,并裝入內(nèi)存。4.3 Linux守護(hù)進(jìn)程 守護(hù)進(jìn)程(Daemon)是運(yùn)行在后臺(tái)的一種特殊進(jìn)程。它獨(dú)立于控制終端并且周期性地執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。守護(hù)進(jìn)程是一種很有用的進(jìn)程。Linux的大多數(shù)服務(wù)器就是用守護(hù)進(jìn)程實(shí)現(xiàn)的。 4.3.
53、1 守護(hù)進(jìn)程及其特性 守護(hù)進(jìn)程最重要的特性是后臺(tái)運(yùn)行。在這一點(diǎn)上DOS下的常駐內(nèi)存程序TSR與之相似。守護(hù)進(jìn)程必須與其運(yùn)行前的環(huán)境隔離開來。 4.3.2 守護(hù)進(jìn)程的編程要點(diǎn)(1)在后臺(tái)運(yùn)行。 (2)脫離控制終端、登錄會(huì)話和進(jìn)程組 (3)禁止進(jìn)程重新打開控制終端 (4)關(guān)閉打開的文件描述符 (5)改變當(dāng)前工作目錄 (6)重設(shè)文件創(chuàng)建掩模 (7)處理SIGCHLD信號(hào) 4.4 Linux內(nèi)核簡(jiǎn)介L(zhǎng)inux 內(nèi)核的主要用途就是為了與計(jì)算機(jī)硬件進(jìn)行交互,實(shí)現(xiàn)對(duì)硬件部件的編程控制和接口操作,調(diào)度對(duì)硬件資源的訪問,并為計(jì)算機(jī)上的用戶程序提供一個(gè)高級(jí)的執(zhí)行環(huán)境和對(duì)硬件的虛擬接口。Linux 內(nèi)核主要由5 個(gè)
54、模塊構(gòu)成,它們分別是:進(jìn)程調(diào)度模塊、內(nèi)存管理模塊、文件系統(tǒng)模塊、進(jìn)程間通信模塊和網(wǎng)絡(luò)接口模塊。4.5 shell基本工作原理及編程Linux系統(tǒng)的shell作為操作系統(tǒng)的外殼,為用戶提供使用操作系統(tǒng)的接口。它是用戶和Linux內(nèi)核之間的接口程序。 shell是一個(gè)命令語言解釋器,類似于DOS下的程序,它擁有自己內(nèi)建的shell命令集,shell也能被系統(tǒng)中其他應(yīng)用程序所調(diào)用。 shell有很多種,如:csh,tcsh,pdksh,ash,sash,zsh,bash等。Linux的缺省shell為bash(Bourne Again shell)。用戶如何知道安裝的Linux版本支持哪些shell
55、?在提示符下輸入: cat /etc/shells如果用戶想知道自己現(xiàn)在使用的是哪種shell,可以在提示符后輸入:echo $SHELL4.5.1 shell的基本工作原理(1)讀取用戶由鍵盤輸入的命令行。(2)分析命令,以命令名作為文件名,并將其它參數(shù)改造為系統(tǒng)調(diào)用execve()內(nèi)部處理所要求的形式。(3)終端進(jìn)程調(diào)用fork()建立一個(gè)子進(jìn)程。(4)終端進(jìn)程本身用系統(tǒng)調(diào)用wait4()來等待子進(jìn)程完成(如果是后臺(tái)命令,則不等待)。 (5)如果命令末尾有&號(hào)(后臺(tái)命令符號(hào)),則終端進(jìn)程不用系統(tǒng)調(diào)用wait4()等待,立即發(fā)提示符,讓用戶輸入下一個(gè)命令,轉(zhuǎn)。如果命令末尾沒有&號(hào),則終端進(jìn)程
56、要一直等待,當(dāng)子進(jìn)程(即運(yùn)行命令的進(jìn)程)完成處理后終止,向父進(jìn)程(終端進(jìn)程)報(bào)告,此時(shí)終端進(jìn)程醒來,在做必要的判別等工作后,終端進(jìn)程發(fā)提示符,讓用戶輸入新的命令,重復(fù)上述處理過程。4.5.2 創(chuàng)建和執(zhí)行shell腳本1創(chuàng)建shell腳本 shell腳本是使用用戶環(huán)境shell提供的語句所編寫的命令文件。用戶可以用任何編輯器來編寫shell腳本。因?yàn)閟hell腳本是解釋執(zhí)行的,所以不需要編譯成目標(biāo)文件。 2執(zhí)行shell腳本執(zhí)行shell腳本的方式基本上有三種:(1)輸入定向到shell腳本利用輸入重定向,使shell命令解釋程序的輸入取自指定的文件。一般形式是:$ bash 腳本名例如:$ b
57、ash 。(7)TERM 用戶終端的類型。4位置參數(shù) 位置參數(shù)是一種在調(diào)用shell程序的命令行中按照各自的位置決定的變量,是在程序名之后輸入的參數(shù)。位置參數(shù)之間用空格分隔,shell取第一個(gè)位置參數(shù)替換程序文件中的$1,第二個(gè)替換$2,依次類推。$0是一個(gè)特殊的變量,它的內(nèi)容是當(dāng)前這個(gè)shell程序的文件名,所以,$0不是一個(gè)位置參數(shù),在顯示當(dāng)前所有的位置參數(shù)時(shí)是不包括$0的。 4.5.4 shell的特性1通配符和命令補(bǔ)齊功能通配符(wildcards)是轉(zhuǎn)義字符的子集,下表給出了通配符的含義 :字符含義*匹配0個(gè)或者多個(gè)單字符?匹配一個(gè)單字符 只匹配 內(nèi)的字符??梢允且粋€(gè)單字符,也可以是
58、字符序列。可以使用“-”表示 內(nèi)字符序列的范圍,如用1-5代表12345!匹配除!之外的任意一字符匹配一字符串或字符序列2輸入輸出重定向系統(tǒng)定義三個(gè)標(biāo)準(zhǔn)文件:標(biāo)準(zhǔn)輸入(stdin)、標(biāo)準(zhǔn)輸出(stdout)、標(biāo)準(zhǔn)錯(cuò)誤輸入(stderr)。(1)注釋和管道符注釋:在shell腳本中,以“#”開頭的正文行表示注釋。特別的是,第一行以“#!”開頭,表示腳本所使用的shell的絕對(duì)路徑。例:#!/bin/bash#This script is a test!管道線:將一個(gè)命令的輸出連接到另一個(gè)命令的輸入。 例:ls |sort(2)過濾器(filters):用來接收標(biāo)準(zhǔn)輸入,經(jīng)過一定的轉(zhuǎn)化,再寫到標(biāo)準(zhǔn)
59、輸出。所以,過濾器一般放在管道符中間。常用的過濾器如下:expand,sed,awk,fmt,tac,tr,grep,nl,pr。 重定向用來改變程序運(yùn)行的輸入來源和輸出地點(diǎn)。我們可以通過重定向?qū)⒊绦虻妮斎攵ㄏ虻侥硞€(gè)指定的文件,或者將程序的輸出結(jié)果定向到某個(gè)指定的文件。輸出重定向命令 文件名: 將命令執(zhí)行結(jié)果送到指定的文件,而不在屏幕上顯示。如果指定的文件不存在,則新建這一文件;如果指定文件存在,則原來的內(nèi)容被覆蓋。命令文件名:在進(jìn)行重定向時(shí),只是追加到已有的文件之后,該文件原有的內(nèi)容不被破壞。輸入重定向命令文件名:把命令的標(biāo)準(zhǔn)輸入重新定向到指定文件。命令”,繼續(xù)輸入命令,按回車結(jié)束。4別名使
60、用alias命令,可以定義一些別名。例:#alias rm f rm5更改登錄用戶 命令 su 的意思是“substitute users”(代替用戶),它允許用戶暫時(shí)以其他用戶身份登錄。 6特殊字符雙引號(hào) 由雙引號(hào)括起來的字符,除$(用來訪問變量的值),(命令替換),(轉(zhuǎn)義字符)保留其特殊功能外,其余的字符都作為普通字符處理。單引號(hào) 用單引號(hào)括起來的字符都作為普通字符出現(xiàn)。倒引號(hào) 用倒引號(hào)括起來的字符串被shell解釋為命令行。在執(zhí)行的時(shí)候,shell會(huì)先執(zhí)行該命令行,并以它的標(biāo)準(zhǔn)輸出結(jié)果取代整個(gè)倒引號(hào)部分。反斜杠 轉(zhuǎn)義字符(metacharacters),即把特殊字符變成普通字符。4.5.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程價(jià)格調(diào)整合同條款1-@-1
- 衛(wèi)生間吊頂木龍骨施工方案
- 網(wǎng)架拆除施工方案
- 石墻施工方案
- DB3709T 037-2025泰山茶 茶葉鮮葉采摘分級(jí)技術(shù)規(guī)范
- 博羅縣鋼板支護(hù)樁施工方案
- 海島燕屋年產(chǎn)2500噸高端滋補(bǔ)預(yù)制菜加工項(xiàng)目環(huán)境影響報(bào)告表環(huán)評(píng)報(bào)告表
- 配線架施工施工方案
- 水泥板拉木紋板施工方案
- 2025北京大興高一(上)期末生物(教師版)
- 小區(qū)老樓電梯加裝鋼結(jié)構(gòu)工程施工方案全套
- 食堂遇特殊天氣應(yīng)急預(yù)案
- 礦山機(jī)電專業(yè)課程標(biāo)準(zhǔn)范本
- 食品風(fēng)味化學(xué)(第二版) 課件 第8、9章 風(fēng)味物質(zhì)的提取與分析、食品中風(fēng)味的釋放和穩(wěn)定化
- 精細(xì)化工工藝學(xué)-1緒論課件
- 降低會(huì)陰側(cè)切率的PDCA
- 港口和航運(yùn)行業(yè)數(shù)據(jù)安全與隱私保護(hù)
- 2021年10月自考03347流體力學(xué)試題及答案含評(píng)分標(biāo)準(zhǔn)
- 聚酯生產(chǎn)技術(shù) 聚酯崗位操作規(guī)程
- 變電站建設(shè)工程造價(jià)影響因素分析及控制策略研究
- 人教版道德與法治五年級(jí)下冊(cè)全冊(cè)課件(完整版)
評(píng)論
0/150
提交評(píng)論