Linux系統(tǒng)及編程基礎(chǔ)習(xí)題答案_第1頁
Linux系統(tǒng)及編程基礎(chǔ)習(xí)題答案_第2頁
Linux系統(tǒng)及編程基礎(chǔ)習(xí)題答案_第3頁
Linux系統(tǒng)及編程基礎(chǔ)習(xí)題答案_第4頁
Linux系統(tǒng)及編程基礎(chǔ)習(xí)題答案_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章Linux基礎(chǔ)及安裝.什么是Linux?Linux是一款優(yōu)秀的計(jì)算機(jī)操作系統(tǒng),支持多用戶、多進(jìn)程、多線程,實(shí)時(shí)性好,功能強(qiáng)大且穩(wěn)定。同時(shí),它又具有良好的兼容性和可移植性,被廣泛應(yīng)用于各種計(jì)算機(jī)平臺上。作為Internet的產(chǎn)物,Linux操作系統(tǒng)由全世界的許多計(jì)算機(jī)愛好者共同合作開發(fā),是一個(gè)自由的操作系統(tǒng)。.Linux的主要特點(diǎn)是什么?Linux具有UNIX的所有特性并且具有自己獨(dú)特的魅力,主要表現(xiàn)在以下幾個(gè)方面:開放性多用戶多任務(wù)出色的穩(wěn)定性能良好的用戶界面:Linux向用戶提供了兩種界面:用戶界面和系統(tǒng)調(diào)用界面。設(shè)備獨(dú)立性:設(shè)備獨(dú)立性是指操作系統(tǒng)把所有外部設(shè)備統(tǒng)一當(dāng)作文件來看,只要安裝它們的驅(qū)動(dòng)程序,任何用戶都可以像使用文件那樣操作并使用這些設(shè)備,而不必知道它們的具體存在形式。豐富的網(wǎng)絡(luò)功能:完善的內(nèi)置網(wǎng)絡(luò)是Linux的一大特點(diǎn),Linux在通信和網(wǎng)絡(luò)功能方面優(yōu)于其他操作系統(tǒng)。其他操作系統(tǒng)不包含如此緊密的內(nèi)核結(jié)合在一起的聯(lián)接網(wǎng)絡(luò)的能力,也沒有內(nèi)置這些聯(lián)網(wǎng)特性的靈活性。而Linux為用戶提供了完善的、強(qiáng)大的網(wǎng)絡(luò)功能??煽康陌踩粤己玫目梢浦残裕嚎梢浦残允侵笇⒉僮飨到y(tǒng)從一個(gè)平臺轉(zhuǎn)移到另一個(gè)平臺,使它仍然能按其自身的方式運(yùn)行的能力。.Linux的主要組成包括什么?(1)Linux內(nèi)核(Kernel):內(nèi)核(Kernel)是系統(tǒng)的心臟,是運(yùn)行程序和管理硬件設(shè)備的內(nèi)核程序,決定著系統(tǒng)的性能和穩(wěn)定性,實(shí)現(xiàn)操作系統(tǒng)的基本功能。(2)Linux的Shell:Shell是系統(tǒng)的用戶界面,提供用戶與內(nèi)核進(jìn)行交互操作的一種接口。Shell是一個(gè)命令解釋器,它解釋由用戶輸入的命令并且把他們送到內(nèi)核執(zhí)行。Shell編程語言具有普通編程語言的很多特點(diǎn),用這種編程語言編寫shell程序與其他應(yīng)用程序具有同樣的效果。(3)Linux文件系統(tǒng):文件系統(tǒng)是文件存放在磁盤等存儲設(shè)備上的組織方法。通常是按照目錄層次的方式進(jìn)行組織,用戶能夠從一個(gè)目錄切換到另一個(gè)目錄,而且可以設(shè)置目錄和文件的權(quán)限、文件的共享程度。(4)Linux實(shí)用程序(utilities)和應(yīng)用程序(Applications):標(biāo)準(zhǔn)的Linux系統(tǒng)都有一套成為應(yīng)用程序的程序集,包括文本編輯器、編程語言、XWindow、辦公套件、Internet工具、數(shù)據(jù)庫等。.Linux與Windows的主要區(qū)別是什么?(1)Linux的應(yīng)用目標(biāo)是網(wǎng)絡(luò):Linux的設(shè)計(jì)定位于網(wǎng)絡(luò)操作系統(tǒng)。雖然現(xiàn)在已經(jīng)實(shí)現(xiàn)Linux操作系統(tǒng)的圖形界面,但仍然沒有舍棄文本命令行。由于純文本可以非常好地跨越網(wǎng)絡(luò)進(jìn)行工作,所以Linux配置文件和數(shù)據(jù)都以文本為基礎(chǔ)。(2)可選的GUI:目前,許多版本的Linux操作系統(tǒng)具有非常精美的圖形界面。Linux支持高端的圖形適配器和顯示器,完全勝任與圖形相關(guān)的工作。但是,圖形環(huán)境并沒有集成到Linux中,而是運(yùn)行于系統(tǒng)之上的單獨(dú)一層。這意味著用戶可以只運(yùn)行GUI,或者在需要時(shí)使用圖形窗口運(yùn)行GUI。(3)文件名擴(kuò)展:Linux不使用文件名擴(kuò)展來識別文件的類型,這與Windows操作系統(tǒng)不同。Linux操作系統(tǒng)是根據(jù)文件的頭內(nèi)容來識別其類型。為了提高用戶的可讀性,Linux仍可以使用文件名擴(kuò)展,這對Linux系統(tǒng)來說沒有任何影響。Linux通過文件訪問權(quán)限來判斷文件是否為可執(zhí)行文件,任何一個(gè)文件都可以賦予可執(zhí)行權(quán)限,程序和腳本的創(chuàng)建者或管理員可以將它們識別為可執(zhí)行文件,這樣做有利于安全,使得保存到系統(tǒng)上的可執(zhí)行文件不能自動(dòng)執(zhí)行,可以防止許多腳本病毒。(4)重新引導(dǎo):在使用Windows系統(tǒng)時(shí),也許已經(jīng)習(xí)慣出于各種原因而重新引導(dǎo)系統(tǒng)(即重新啟動(dòng)),但在Linux系統(tǒng)中這一習(xí)慣需要改變。一旦開始運(yùn)行,它將保持運(yùn)行狀態(tài),直到受到外來因素的影響,比如硬件故障。實(shí)際上,Linux系統(tǒng)的設(shè)計(jì)使得應(yīng)用程序不會導(dǎo)致內(nèi)核的崩潰,因此不必經(jīng)常重新引導(dǎo),所以除了Linux內(nèi)核之外,其他軟件的安裝、啟動(dòng)、停止和重新配置都不用重新引導(dǎo)系統(tǒng)。如果用戶確實(shí)重新引導(dǎo)了Linux系統(tǒng),問題很可能得不到解決,甚至還會使問題更加惡化,因此在學(xué)習(xí)Linux操作系統(tǒng)時(shí),要克服重新引導(dǎo)系統(tǒng)的習(xí)慣。另外,可以遠(yuǎn)程地完成Linux中的很多工作,只要有一些基本的網(wǎng)絡(luò)服務(wù)在運(yùn)行,就可以進(jìn)入到那個(gè)系統(tǒng)。而且,如果系統(tǒng)中一個(gè)特定的服務(wù)出現(xiàn)了問題,用戶還可以在進(jìn)行故障診斷的同時(shí)讓其他服務(wù)繼續(xù)運(yùn)行。當(dāng)用戶在一個(gè)系統(tǒng)上同時(shí)運(yùn)行多個(gè)服務(wù)的時(shí)候,這種管理方式更為重要。(5)命令區(qū)分大小寫:所有的Linux命令和選項(xiàng)都區(qū)分大小寫。.什么是Linux的內(nèi)核版本和發(fā)行版本?Linux的內(nèi)核版本是指在LinusTorvalds領(lǐng)導(dǎo)下開發(fā)小組開發(fā)出的系統(tǒng)內(nèi)核的版本號。內(nèi)核版本號由3個(gè)數(shù)字組成,形式如下::目前發(fā)布的Kernel主版本號。(2)minor:為次版本號,一般來說minor位為偶數(shù)的版本標(biāo)明這是一個(gè)可以使用的穩(wěn)定版本,如2.6.4;minor位為奇數(shù)的版本一般加入了一些新的內(nèi)容,不一定很穩(wěn)定,是測試版本,如。(3)patchlevel:表示對當(dāng)前版本的修補(bǔ)次數(shù)發(fā)行版本是一些組織或廠家將Linux系統(tǒng)內(nèi)核與應(yīng)用軟件和文檔封裝起來,并提供一些安裝界面和系統(tǒng)設(shè)定管理工具的一個(gè)軟件包的集合。目前已經(jīng)有了幾百種發(fā)行版本。.Linux系統(tǒng)的用戶有哪些?Linux是多用戶系統(tǒng),用戶分為根用戶(系統(tǒng)管理員)和普通用戶兩大類。每個(gè)用戶在系統(tǒng)中都有唯一的用戶名稱,該用戶名稱為用戶賬號,使用戶使用系統(tǒng)的憑證。根用戶(系統(tǒng)管理用)又稱為超級用戶,用戶賬號為root,在系統(tǒng)中擁有最高權(quán)限,主要負(fù)責(zé)系統(tǒng)的管理工作。普通用戶賬號有根用戶創(chuàng)建,命名時(shí)不能以數(shù)字和下劃線作為第一個(gè)字符。普通用戶是系統(tǒng)的使用者,只在自己的目錄下工作,沒有系統(tǒng)管理權(quán)限。.什么是運(yùn)行級別?Linux有哪些運(yùn)行級別?所謂運(yùn)行級別就是操作系統(tǒng)當(dāng)前正在運(yùn)行的功能級別。這個(gè)級別從0到6,具有不同的功能,在/etc/inittab文件中定義。七個(gè)運(yùn)行級別為:(1)0一關(guān)機(jī)(千萬不要把initdefault設(shè)置為0)(2)1—單用戶模式(3)2多用戶模式,但是沒有NFS(4)3完全多用戶模式(5)4沒有用到(6)5X11(7)6重啟(千萬不要把initdefault設(shè)置為6).如何更改默認(rèn)的運(yùn)行級別?運(yùn)行級別可以由超級用戶通過telinit命令來轉(zhuǎn)換,此命令可以將轉(zhuǎn)換信號傳遞給init,告訴它切換到哪個(gè)運(yùn)行級別。也可以通過修改/etc/inittab文件來進(jìn)行缺省運(yùn)行級別的修改。.如何登錄和注銷?(1)登錄圖形界面:圖形提示用戶名+口令;字符界面:輸入用戶名+口令(2)注銷圖形界面:運(yùn)行"系統(tǒng)->注銷”命令;字符界面:logout或ctrl+d或exit.如何安全關(guān)閉系統(tǒng)?圖形界面:系統(tǒng)關(guān)機(jī);文本界面:有shutdown、halt、reboot、init。.簡述XWindow的原理。XWindow系統(tǒng)由三部分構(gòu)成。(1)XServer:控制實(shí)際的顯示與輸入設(shè)備(2)XClient:向XServer發(fā)出請求以完成特定的窗口操作。(3)通信通道:負(fù)責(zé)XServer與XClient之間的通信。XServer是用來控制實(shí)際的顯示設(shè)備和輸入設(shè)備(鍵盤和鼠標(biāo)或其他輸入設(shè)備)的軟件。XServe可以建立窗口、在窗口中畫圖形、圖像和文字;響應(yīng)XClient的需求。它不會自己執(zhí)行動(dòng)作,只有在XClient提出請求后才完成動(dòng)作。每一個(gè)顯示設(shè)備只有一個(gè)唯一的XServer。XServer一般由系統(tǒng)的供應(yīng)廠商提供,用戶通常無法修改。對操作系統(tǒng)而言,XServer只是一個(gè)普通的用戶程序而已,因此很容易更換一個(gè)新的版本,甚至可編譯運(yùn)行由第三方廠商提供的原始程序。XClient是指使用系統(tǒng)窗口功能的一些應(yīng)用程序。把XT的應(yīng)用程序稱作XClient,原因是它們是XServer的客戶,XClient要求服務(wù)器應(yīng)它的請求完成特定的動(dòng)作。XClient無法直接影響窗口或顯示,它們只能向XServer發(fā)送請求,讓XServer來完成它們的需求。用戶可以使用不同來源的XClient:一些是由系統(tǒng)提供的(例如時(shí)鐘),一些來自于第三方廠商,一些是用戶為了特殊應(yīng)用而編寫的自己的客戶程序。通信通道是XServer和XClient之間傳遞信息的通道,憑借這個(gè)通道,XClient發(fā)送請求給XServer,而XServer借助于它向XClient回送狀態(tài)及一些其他的信息。第2章Linux的文件系統(tǒng).簡述Linux文件系統(tǒng)的特點(diǎn)。(1)Linux文件系統(tǒng)采用樹形結(jié)構(gòu),從根目錄root(/)開始。(2)Linux的虛擬文件系統(tǒng)允許眾多不同類型文件系統(tǒng)共存,并支持跨文件系統(tǒng)的操作。(3)Linux的文件是無結(jié)構(gòu)字符流式文件,不考慮文件內(nèi)部的邏輯結(jié)構(gòu),只把文件簡單地看作是一系列字符的序列。(4)Linux的文件可由文件擁有者或超級用戶設(shè)置相應(yīng)的訪問權(quán)限而受到保護(hù)。(5)Linux把所有的外部設(shè)備都看做文件,可以使用與文件系統(tǒng)相同的系統(tǒng)調(diào)用和函數(shù)來讀寫外部設(shè)備。.什么是虛擬文件系統(tǒng),Linux為什么采用虛擬文件系統(tǒng)?虛擬文件系統(tǒng)是Linux內(nèi)核中的一個(gè)軟件層,用于給用戶空間的程序提供文件系統(tǒng)接口;同時(shí),它也提供了內(nèi)核中的一個(gè)抽象功能,允許不同的文件系統(tǒng)共存。虛擬文件系統(tǒng)既沒有文件,也不直接管理文件,它只是用戶與實(shí)際文件系統(tǒng)之間的接口。它并不需要保存在永久存儲介質(zhì)中,只是在需要時(shí)由內(nèi)核在內(nèi)存中創(chuàng)建起來的一個(gè)文件系統(tǒng),所以叫做虛擬文件系統(tǒng)。Linux允許眾多不同類型的文件系統(tǒng)共存,并支持跨文件系統(tǒng)的操作,這是由于虛擬文件系統(tǒng)的存在。系統(tǒng)中所有的文件系統(tǒng)不但依賴虛擬文件系統(tǒng)共存,而且也依靠虛擬文件系統(tǒng)協(xié)同工作。.在所用的Linux系統(tǒng)上,根目錄下主要含有哪些子目錄,各子目錄的含義?(1)/bin:存放二進(jìn)制可執(zhí)行命令目錄;(2)/home:用戶主目錄的基點(diǎn)目錄,默認(rèn)情況下每個(gè)用戶的主目錄都設(shè)在該目錄下,如默認(rèn)情況下用戶user01的主目錄就是/home/user01;(3)/lib:存放標(biāo)準(zhǔn)程序設(shè)計(jì)庫目錄,又叫動(dòng)態(tài)鏈接共享庫目錄,目錄中存放的文件作用類似windows里的.dll文件;(4)/etc:存放系統(tǒng)管理和配置文件目錄;(5)/dev:存放設(shè)備特殊文件目錄,如聲卡文件、磁盤文件等;(6)/usr:最龐大的目錄,存放應(yīng)用程序和文件目錄,其中包含如下目錄:(a)/usr/local/bin:存放本地增加的命令目錄;(b)/usr/local/lib:存放本地增加的庫目錄;(c)/usr/X11R6:存放Xwindow目錄;(d)/usr/bin:存放眾多的應(yīng)用程序目錄;(e)/usr/sbin:存放超級用戶的一些管理程序目錄;(f)/usr/doc:存放linux文檔目錄;(g)/usr/include:存放Linux下開發(fā)和編譯應(yīng)用程序所需頭文件目錄;(h)/usr/lib:存放常用的動(dòng)態(tài)鏈接庫和軟件包的配置文件目錄;(i)/usr/man:存放幫助文檔目錄;(j)/usr/src:存放源代碼目錄,Linux內(nèi)核的源代碼就放在/usr/src/linux子目錄中;(7)/proc:虛擬目錄,是系統(tǒng)內(nèi)存的映射,可直接訪問這個(gè)目錄來獲取系統(tǒng)信息;(8)/root:系統(tǒng)管理員的主目錄;(9)/var:存放系統(tǒng)產(chǎn)生的經(jīng)常變化文件目錄,例如打印機(jī)、郵件、新聞等假脫機(jī)目錄、日志文件、格式化后的手冊頁以及一些應(yīng)用程序的數(shù)據(jù)文件等等;(10)/tmp:存放公用臨時(shí)文件目錄。.什么是文件?Linux下主要有哪些類型文件?文件是指由創(chuàng)建者定義的,具有文件名的一組相關(guān)元素的集合,文件可以是文本文檔、圖片、程序等。Linux下的文件類型包括:普通文件,也稱為常規(guī)文件,是Linux中最一般格式的文件,包括系統(tǒng)文件、用戶文件和庫函數(shù);目錄文件,是由文件目錄信息構(gòu)成的特殊文件,目錄文件的內(nèi)容不是應(yīng)用程序和數(shù)據(jù),而是用來檢索普通文件的目錄信息;設(shè)備文件,在Linux中輸入輸出設(shè)備被看做特殊文件,設(shè)備文件分兩類,字符設(shè)備文件和塊設(shè)備文件;符號鏈接文件,是一種特殊類型的文件,它的內(nèi)容只是一個(gè)字符串,該字符串可能指向一個(gè)存在的文件也可能什么都不指向。.什么是工作目錄、用戶主目錄?工作目錄是用戶在登錄到Linux系統(tǒng)中后所處于的目錄,也稱為當(dāng)前目錄。工作目錄用”.”表示,其父目錄用”..”表示。可用pwd命令查看工作目錄,可用cd命令改變工作目錄。用戶主目錄是系統(tǒng)管理員增加用戶時(shí)創(chuàng)建的(以后也可以改變),每個(gè)用戶都有自己的主目錄。普通用戶的主目錄在/home下,root用戶作為系統(tǒng)管理員,因?yàn)樯矸萏毓退杂凶约旱闹髂夸?,?root下。.根據(jù)下圖,圓圈代表目錄,方框代表文件,當(dāng)前目錄為n,用相對路徑法和絕對路徑放分別寫出文件g、o、z的路徑。絕對路徑是指從"/"開始的路徑,也稱為完全路徑;如:/home/user、/usr/bin。相對路徑是從用戶當(dāng)前目錄或用戶主目錄開始的路徑,如:./user1、../user2、~/user3。其中:(1)”.”表示用戶工作目錄”..”表示工作目錄的上一級目錄“?”表示用戶主目錄用戶要訪問一個(gè)文件時(shí),要通過路徑名來引用??梢允褂媒^對路徑名,也可以使用相對路徑名。文件相對路徑絕對路徑g../../e/g/e/go../../e/i/o/e/i/oz./v/x/z/f/n/v/x/z.舉例說明cat、more和less命令的用法。cat命令可以把多個(gè)文件連接后輸出到標(biāo)準(zhǔn)輸出(屏幕)或加“>文件名”輸出到另一個(gè)文件中。如顯示當(dāng)前目錄下文件tesfile1的內(nèi)容可用如下命令:cattestfile1。more命令顯示文本文件的內(nèi)容,一次顯示一屏,滿屏后停下來,可按鍵繼續(xù)。如顯示/etc/pro刊e文件的內(nèi)容,每屏10行可用如下命令:more-10/etc/profile。less命令與more命令相似,分屏顯示文件的內(nèi)容。less命令允許用戶向前(PageUp)或向后(PageDown冽覽文件。如文件/etc/profile中查找字符串“HOSTNAME并從該字符串后顯示可以如下命令:less-pHOSTNAME/etc/profile。.將主目錄下的文件.bashrc復(fù)制到/tmp下,并重命名為bashrc,用命令實(shí)現(xiàn)上述過程。cp~/.bashrc/tmp/bashrc。.舉例說明比較文件的異同使用哪些命令?comm命令對兩個(gè)已經(jīng)排好序的文件進(jìn)行比較,commA文件1和文件2中讀取正文行進(jìn)行比較,生成三行輸出:在兩個(gè)文件中都出現(xiàn)的行,僅在文件1中出現(xiàn)的行,僅在文件2中出現(xiàn)的行。如比較當(dāng)前目錄下的已排好序的兩文件memo和memo酌異同用命令:comm。diff命令比較文本文件,并找出它們的不同。diff命令比comm^令更強(qiáng)大,不要求文件預(yù)先排好顯。如果兩個(gè)文件完全一樣,該命令不顯示任何輸出。如比較當(dāng)前目錄下的未排好序的兩文件memo評口memo酌異同可用如下命令:diff。10.舉例說明怎樣對文件進(jìn)行壓縮和備份?對文件壓縮的命令主要有bzip2和gzip;對文件備份的命令主要有tar如用bzip2命令壓縮當(dāng)前目錄下的文件:bzip2。用gzip命令壓縮壓縮當(dāng)前目錄下的文件:gzip。用tar命令將當(dāng)前目錄下的文件、、備份到文件中:tarcvf。11.將/home/stud1/wang目錄做歸檔壓縮,壓縮后生成文件,并將此文件保存到/home目錄下,用命令實(shí)現(xiàn)上述過程。實(shí)現(xiàn)此任務(wù)的tar命令格式為tarzcvf/home//home/stud1/wang。.在Linux下有一文件列表內(nèi)容如下:Irwxrwxrwxlhawkeyeusers6jul1809:41nurse2-nursel要完整顯示如上文件類別信息,應(yīng)該使用什么命令?ls-l上述文件列表內(nèi)容的第一列內(nèi)容“l(fā)rwxrwxrwx”中的“l(fā)”是什么含義?對于其它類型的文件或目錄還可能出現(xiàn)什么字符,它們分別表示什么含義?“l(fā)”表示該文件是符號鏈接文件?!?”表示該文件是普通文件,“d”表示該文件是目錄,“b”表示該文件是塊設(shè)備文件,“c”表示該文件是字符設(shè)備文件。(3)上述文件列表內(nèi)容的第一列內(nèi)容“l(fā)rwxrwxrwx”中的第一、二、三個(gè)“rwx”分別代表什么含義?第一個(gè)“rwx”表示該文件的文件主人具有讀寫執(zhí)行的權(quán)限,第二個(gè)“rwx”表示該文件的主人同組用戶具有讀寫執(zhí)行的權(quán)限,第三個(gè)“rwx”表示該文件的其他用戶具有讀寫執(zhí)行的權(quán)限。上述文件列表內(nèi)容的第五列內(nèi)容“6”是什么含義?表示該文件的鏈接數(shù)。上述文件列表內(nèi)容的最后一列內(nèi)容“nurse2->nurse1”是什么含義?表示文件nurse2是符號鏈接文件,其鏈接到文件nurse1。.在根目錄下創(chuàng)建目錄gdc,并設(shè)置權(quán)限為gdc的主人具有讀寫執(zhí)行權(quán)限,與主人同組用戶可讀寫,其它任何用戶則只能讀。mkdir/gdc;chmodu=rwx,g=rw,o=r。.在用戶user的主目錄下新建目錄software,并將路徑/etc下所有以h開頭的文件及目錄拷貝到software中,用命令實(shí)現(xiàn)上述過程。mkdir/home/user/software;cp/etc/h*/home/user/software15.什么是符號鏈接,什么是硬鏈接?符號鏈接與硬鏈接的區(qū)別是什么?符號鏈接文件包含到另一個(gè)文件的路徑名。當(dāng)用戶需要在不同的目錄下用到相同的文件時(shí),不需要在每一個(gè)目錄下都存放該文件,只要在某個(gè)固定的目錄下存放,然后在其它的目錄下用命令鏈接(link)它即可,不必重復(fù)的占用磁盤空間,硬鏈接指通過索引節(jié)點(diǎn)來進(jìn)行的鏈接。在Linux系統(tǒng)中,內(nèi)核為每一個(gè)新創(chuàng)建的文件分配一個(gè)Inode(索引結(jié)點(diǎn)),文件屬性保存在索引結(jié)點(diǎn)里,系統(tǒng)是通過索引節(jié)點(diǎn)(而不是文件名)來定位每一個(gè)文件。在Linux系統(tǒng)中,可以通過命令讓多個(gè)文件名指向同一索引節(jié)點(diǎn),這多個(gè)文件即為硬鏈接文件。符號鏈接可以建立對于文件和目錄的鏈接,硬鏈接只能建立對文件的鏈接;符號鏈接可以跨文件系統(tǒng),即可以跨磁盤分區(qū),硬鏈接不可以跨文件系統(tǒng);符號鏈接的文件類型位是l,鏈接文件具有新的i節(jié)點(diǎn),硬鏈接的文件類型位是“-”,且硬鏈接文件的i節(jié)點(diǎn)同被鏈接文件相同。

第3章Linux的VIM編輯器1.vim有幾種工作模式?各模式之間如何轉(zhuǎn)換?第4章Linux系統(tǒng)管理基礎(chǔ).簡述Linux系統(tǒng)引導(dǎo)過程加電.在Linux系統(tǒng)中運(yùn)行級別分為幾級?分別有何特點(diǎn)?系統(tǒng)的運(yùn)行級別是系統(tǒng)運(yùn)行時(shí)所處的一種狀態(tài),不同的運(yùn)行級別在用戶登錄及使用上有一些不同。Linux系統(tǒng)提供7種運(yùn)行級別,7種運(yùn)行級別定義如下:運(yùn)行級別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級別不能設(shè)為0,否則不能正常啟動(dòng)。運(yùn)行級別1:單用戶工作狀態(tài),root權(quán)限,用于系統(tǒng)維護(hù),禁止遠(yuǎn)程登陸。運(yùn)行級別2:多用戶狀態(tài)(沒有NFS支持)運(yùn)行級別3:完全的多用戶狀態(tài)(有NFS),標(biāo)準(zhǔn)運(yùn)行級別,登錄后進(jìn)入命令行模式。運(yùn)行級別4:系統(tǒng)未使用,保留。運(yùn)行級別5:多用戶模式,X11控制臺,登錄后進(jìn)入圖形GUI模式。運(yùn)行級別6:系統(tǒng)正常關(guān)閉并重啟,,默認(rèn)運(yùn)行級別不能設(shè)為6,否則不能正常啟動(dòng)。.關(guān)閉系統(tǒng)的shutdown、halt、reboot、init命令各有何特點(diǎn)?(1)shutdown命令:使用shutdown命令可以安全的關(guān)閉Linux系統(tǒng),shutdown命令是用shell編寫的程序,必須由超級用戶才能執(zhí)行,shutdown命令執(zhí)行后,會以廣播的形式通知正在系統(tǒng)中工作的所有用戶,系統(tǒng)將在指定的時(shí)間內(nèi)關(guān)閉,請保存文件,停止作業(yè),注銷用戶。shutdown命令的語法格式:shutdown[-fFhknrc(參數(shù)名稱)][-t秒數(shù)]時(shí)間[警告信息](2)halt命令:halt是最簡單的關(guān)機(jī)命令,相當(dāng)于shutdown-h組合,halt執(zhí)行時(shí),kill掉所有應(yīng)用程序,然后調(diào)用系統(tǒng)指令sync,sync將所有內(nèi)存信息通過文件系統(tǒng)寫入硬盤,然后停止內(nèi)核。Halt命令格式:#halt(3)reboot命令:reboot命令的執(zhí)行過程與halt基本類似,不同的是halt是用于關(guān)機(jī),而reboot是關(guān)機(jī)后引發(fā)系統(tǒng)重啟。命令格式:#reboot(4)init命令:init進(jìn)程是所有進(jìn)程的祖先,其進(jìn)程號始終為1,init命令主要用于系統(tǒng)不同運(yùn)行級之間的切換,切換的工作是立即完成的。.Linux系統(tǒng)用戶的類型都有哪些?超級用戶(2)普通用戶(3)特殊用戶.Linux用戶管理有哪幾種方法?(1)通過GUI方式管理通過修改用戶管理相關(guān)配置文件管理通過系統(tǒng)管理命令管理.Linux用戶管理相關(guān)的文件有哪些?解釋文件內(nèi)容。在Linux系統(tǒng)中,主要使用/etc目錄下的三個(gè)文件來維護(hù)用戶及用戶組的相關(guān)信息。(1)/etc/passwd文件,其中存放關(guān)于賬戶相關(guān)的信息(2)/etc/shadow文件,/etc/passwd的影子文件,來存放用戶的加密口令。(3)/etc/group文件,其中存放用戶組相關(guān)的信息資料。7.使用useradd命令添加用戶student,然后使用userdel刪除該用戶。(1)useraddstudent(2)passwdstudent(3)userdelstudentLinux系統(tǒng)中設(shè)備如何標(biāo)識?用戶是通過文件系統(tǒng)與設(shè)備接口的,所有設(shè)備都作為設(shè)備文件,設(shè)備文件的文件名一般由兩部分構(gòu)成,第一部分是主設(shè)備號,第二部分是次設(shè)備號。其中,主設(shè)備號代表設(shè)備的類型,可以唯一地確定設(shè)備的驅(qū)動(dòng)程序和界面,如hd表示IDE硬盤,sd表示SCSI硬盤,tty表示終端設(shè)備,lp表示打印機(jī)等;次設(shè)備號代表同類設(shè)備中的序號,如hda表示IDE主硬盤,hdb表示IDE從硬盤,tty0表示編號為0的終端,lp0表示第一個(gè)打印機(jī)等。9.如何進(jìn)行u盤掛載?卸載?掛載u盤設(shè)備(假設(shè)u盤標(biāo)識為sdb1)到/mnt/usb目錄。#mount/dev/sdb1/mnt/usb10.什么是進(jìn)程?“進(jìn)程”(Process)來描述程序動(dòng)態(tài)執(zhí)行過程。11.練習(xí)使用進(jìn)程管理命令對進(jìn)程進(jìn)行查看、調(diào)度、終止。ps,at,kill.Linux系統(tǒng)的日志分為哪幾類?Linux系統(tǒng)中的有三個(gè)主要的日志子系統(tǒng):連接時(shí)間日志子系統(tǒng)進(jìn)程統(tǒng)計(jì)日志子系統(tǒng)錯(cuò)誤日志子系統(tǒng).Linux系統(tǒng)中主要的日志文件有哪些?解釋其文件內(nèi)容。(1)/var/log/dmesg/var/log/dmesg文件保存內(nèi)核啟動(dòng)的信息,在這個(gè)文件里,用戶可以看到內(nèi)核和各種驅(qū)動(dòng)程序的加載,加載硬件驅(qū)動(dòng)時(shí)系統(tǒng)也會顯示出相應(yīng)的信息。(2)/var/log/messages/var/log/messages文件是Linux系統(tǒng)中最全面的log文件,它記錄了內(nèi)核和應(yīng)用程序發(fā)生錯(cuò)誤時(shí)的信息和系統(tǒng)運(yùn)行的一般信息。第5章Linux的網(wǎng)絡(luò)管理及應(yīng)用1.為什么RedHatEnterpriseLinux更適合于做網(wǎng)絡(luò)操作系統(tǒng)?Linux應(yīng)網(wǎng)絡(luò)而生,先天最大的優(yōu)點(diǎn)在于其作為服務(wù)器的強(qiáng)大功能。RedHatEnterpriseLinux更是小紅帽公司的旗艦產(chǎn)品,面向企業(yè)用戶,針對網(wǎng)絡(luò)應(yīng)用做出優(yōu)化,可靠性,安全性高。作為主流的Linux網(wǎng)絡(luò)操作系統(tǒng),現(xiàn)在已成為Linux服務(wù)器應(yīng)用市場的主流。2.Ping命令的返回值有哪些?各有什么含義?有三個(gè)返回值值icmp_seq,ttl,time。icmp_seq表示當(dāng)前是第幾個(gè)icmp包,ttl表示最大生存周期(timetolive),time表示這個(gè)icmp包從發(fā)出到返回所花的時(shí)間。例如:icmp_seq=1ttl=64time=ms。3.使用Nslookup命令進(jìn)行域名解析的全過程?nslookup是DN落戶端,當(dāng)在本機(jī)終端輸入Nslookup之后,本機(jī)先發(fā)DNSS詢數(shù)據(jù)包到本機(jī)所指定白DNSK務(wù)器,DNSK務(wù)器收到查詢包后進(jìn)行解析,如果本地網(wǎng)絡(luò)內(nèi)的DNSK務(wù)器無此條記錄,本地DNSE務(wù)器會向互聯(lián)網(wǎng)上的其它DNSK務(wù)器提出解析請求,得到最終結(jié)果,如沒有就返回錯(cuò)誤。本地DNS在緩存此條記錄的同時(shí)把此解析結(jié)果返回給本機(jī)。本機(jī)得到了的真實(shí)IP或者是無法解析的結(jié)果。.NFS^口samba有什么異同點(diǎn)?兩者都是為了實(shí)現(xiàn)網(wǎng)絡(luò)文件共享,不同點(diǎn)就是NFS是文件系統(tǒng),samba是網(wǎng)絡(luò)協(xié)議;NFS只能用于Unix,Linux類系統(tǒng)內(nèi)部的共享,而samba還可以在Unix,Linux類系統(tǒng)與windows系統(tǒng)之間實(shí)現(xiàn)文件.有哪幾種虛擬Webfc機(jī)技術(shù),各起什么作用?有三種:基于域名,基于IP地址和基于端口號?;谟蛎梢詫?shí)現(xiàn)多個(gè)域名分別指向同一臺主機(jī)上不同WE戚用;基于IP可以給主機(jī)設(shè)置多個(gè)不同的IP區(qū)別不同的WE葩用;基于端口可以讓主機(jī)通過不同的端口來區(qū)分不同的WE戚用。6.郵件服務(wù)器有哪幾種服務(wù)器?哪些是發(fā)郵件,哪些是收郵件的?郵件服務(wù)器有三種:smtp,pop,imap。Smtp是發(fā)郵件服務(wù)器,pop,imap是收郵件服務(wù)器,其中pop和imap相比允許將郵件收到本地客戶端。7.練習(xí)郵件服務(wù)器的配置過程,查找資料學(xué)會outlook郵件客戶端的設(shè)置和使用?以用outlook設(shè)置這個(gè)郵箱為例,第一步得了解收發(fā)郵件服務(wù)器域名或者地址,啟動(dòng)outlook填入用戶名和郵箱地址,設(shè)置pop服務(wù)器為,設(shè)置smtp服務(wù)器為下一步下一步。最后別忘了在工具—-帳戶里選中此郵箱并且右鍵屬性設(shè)置其smtp服務(wù)器需要驗(yàn)證,不然會導(dǎo)致發(fā)郵件發(fā)不出去。.練習(xí)FTP服務(wù)器的配置過程,學(xué)會字符界面下ftp命令連接服務(wù)器上下載文件的基本使用方法。以通過ftp命令連接為例:先在cmd中輸入ftp進(jìn)入到ftp命令行狀態(tài)。輸入open回車連接上服務(wù)器,在提示下輸入用戶名anonymous密碼隨便,成功后輸入dir查看遠(yuǎn)程服務(wù)器上的文件目錄,用cd目錄名稱的方式進(jìn)入到下一級目錄,用cd..回到上一層目錄,用pwd查看當(dāng)前在服務(wù)器的那個(gè)目錄下,用lcd查看本地當(dāng)前目錄和改變本地目錄。.查找資料了解什么是LAMPR務(wù)器?它的需要哪些程序?Linux+Apache+Mysql+Perl/PHP/Python一組常用來搭建動(dòng)態(tài)網(wǎng)站或者服務(wù)器的開源軟件,本身都是各自獨(dú)立的程序,但是因?yàn)槌1环旁谝黄鹗褂茫瑩碛辛嗽絹碓礁叩募嫒荻?,共同組成了一個(gè)強(qiáng)大的Web應(yīng)用程序平臺。隨著開源潮流的蓬勃發(fā)展,開放源代碼的LAMPS經(jīng)與J2EE和.Net商業(yè)軟件形成三足鼎立之勢,并且該軟件開發(fā)的項(xiàng)目在軟件方面的投資成本較低,因此受到整個(gè)IT界的關(guān)注。從網(wǎng)站的流量上來說,70%Z上的訪問流量是LAM陳提供的,LAMP!最強(qiáng)大的網(wǎng)站解決方案。要安裝LAMP?務(wù)器步驟是要依次安裝apache、mysql和PHP。第6章Linux下Shell編程.什么是shell?Linux的shell主要有哪幾種類型?Shell是一個(gè)用戶接口,是一個(gè)命令解釋器,除此之外,shell命令本身還可以作為程序設(shè)計(jì)語言,將多個(gè)shell命令組合起來,編寫能實(shí)現(xiàn)系統(tǒng)或用戶所需功能的程序。Shell類型:bash,bsh,csh,tcsh,ksh,ash,zsh.如何編輯一個(gè)shell腳本、shell腳本的執(zhí)行方式有哪些?Vi+shellscriptname執(zhí)行方式:(1)為腳本文件加上可執(zhí)行權(quán)限,然后在命令行直接輸入shell腳本文件名執(zhí)行。(2)shshell腳本名.shell腳本名shell變量都有哪些?在shell編程中可以使用四種變量:用戶自定義變量、環(huán)境變量、位置變量和特殊變量。shell中都有哪些引號,他們之間的區(qū)別是什么?在shell中引號分為三種:單引號,雙引號和反引號。單引號(’)由單引號括起來的字符都作為普通字符出現(xiàn)。特殊字符用單引號括起來以后也會失去原有意義,而只作為普通字符解釋。雙引號(“)由雙引號括起來的字符,除“$”、“"、…、和“””這幾個(gè)字符仍是特殊字符并保留其特殊功能外,其余字符作為普通字符對待。反引號(')反引號括起來的字符串被shell解釋為命令,在執(zhí)行時(shí),shell首先執(zhí)行該命令,并以它的標(biāo)準(zhǔn)輸出結(jié)果取代整個(gè)反引號(包括兩個(gè)反引號)部分。一個(gè)shell腳本,內(nèi)容如下:#!/bin/bash#finduser尋找是否有第一個(gè)參數(shù)指定的用戶登錄if[$#-ne1]thenechousage:finduserusername>&2exit1fiwho|grep$1驗(yàn)證該腳本執(zhí)行結(jié)果。一個(gè)shell腳本內(nèi)容如下:echo“enterusername:"readuseruntilwho|grep"$user”>/dev/nulldosleep30done驗(yàn)證該腳本執(zhí)行結(jié)果。一個(gè)shell腳本,內(nèi)容如下:#!/bin/bashif[$#-ne2]thenecho“usage:$0mdayssize"1>&2exit1fiif[$1-lt0-o$1-gt30]thenecho“mdaysisoutofrange”exit2fiif[$2-le20]thenecho“sizeisoutofrange”exit3fifind/-xdev-mtime$1-size+$2-print驗(yàn)證該腳本執(zhí)行結(jié)果。從根目錄開始查找所有$1小時(shí)前修改,大小大于$2塊的文件。一個(gè)shell腳本,內(nèi)容如下:echo-n"whichcolordoyoulike?”readcolorcase"$color”in[Bb]l??)echoIfeel$colorechoTheskyis$color;;[Gg]ree*)echo$colorisfortreesecho$colorisforseasick;;red|orange)echo$colorisverywarm!;;*)echonosuchcoloras$color;;esacecho“outofcase”驗(yàn)證該腳本執(zhí)行結(jié)果。設(shè)計(jì)一個(gè)shell腳本:求命令行上所有整數(shù)和。答:sum=0while[$#!=0]doletsum=sum+$1shiftdoneecho“thesumofargumentsis$sum”設(shè)計(jì)一個(gè)shell腳本:判斷當(dāng)前工作目錄下所有的文件類型,如果是目錄顯示目錄名,如果是文件查看文件內(nèi)容,如果都不是,顯示提示信息。forfilein./*doif[-d"$file”]thenls飛file”elif[-f“file”]thenmore"$file”elseecho"$fielisnotadirectoryoraregular”done第7章Linux下編程.gcc編譯過程一般分為哪幾個(gè)階段?各階段的主要工作是什么?gcc編譯過程一般分為預(yù)處理、編譯、匯編、鏈接四個(gè)階段,各階段的主要工作如下:(1)預(yù)處理階段:在該階段,編譯器將上述代碼中的編譯進(jìn)來。GCCT先調(diào)用cpp進(jìn)行預(yù)處理,根據(jù)以字符#開頭的命令修改原始的C程序。如中#include<>指令告訴預(yù)處理器讀系統(tǒng)頭文件的內(nèi)容,并把它直接插入到程序文本中去。結(jié)果就得到經(jīng)過編譯預(yù)處理的源代碼。但實(shí)際工作中通常不用專門生成這種文件,因?yàn)榛旧嫌貌坏?。若非要生成這種文件不可,可以利用下面的示例命令。$gcc-E-o(2)編譯階段:GCCS用cc1檢查代碼的規(guī)范性,是否有語法錯(cuò)誤等,以確定代碼實(shí)際要做的工作,

在檢查無誤后,把代碼翻譯成匯編語言,生成匯編處理后的匯編代碼。這個(gè)階段對應(yīng)的GCO令如下所示。$gcc-S-o匯編語言是非常有用的,它為不同高級語言不同編譯器提供了通用的語言。如:C編譯器和Fortran編譯器產(chǎn)生的輸出文件用的都是一樣的匯編語言。(3)匯編階段:GCCM用as把編譯階段生成的文件轉(zhuǎn)成編譯后的目標(biāo)文件,但中所引用的其他文件中函數(shù)(如printf)的內(nèi)存位置尚未定義。這個(gè)階段對應(yīng)的GCg令如下所示:$gcc-c-o(4)鏈接階段:GCCM用ld將程序的目標(biāo)文件與所需的所有附加的目標(biāo)文件連接起來,最終生成可執(zhí)行文件。如GC般到所調(diào)用的函數(shù)printf函數(shù)庫所在位置/user/lib,把函數(shù)的實(shí)現(xiàn)鏈接進(jìn)來,生成最終的可執(zhí)行文件hello??梢岳孟旅娴氖纠钔瓿?。$gcc-ohello如果我們不想生成中間的各類型文件,可用如下命令由源文件直接編譯鏈接成可執(zhí)行文件。$gcc-ohello.簡述GNUgdbl勺功能。gdb是Linux系統(tǒng)中一個(gè)功能強(qiáng)大的GNUM試程序,它可以調(diào)試C和C+刑序,使程序開發(fā)者在程序運(yùn)行時(shí)觀察程序的內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況。gdb提供如下功能:(1)運(yùn)行程序,設(shè)置所有的能影響程序運(yùn)行的參數(shù)和環(huán)境;(2)控制程序在指定的條件下停止運(yùn)行;(3)當(dāng)程序停止時(shí),可以檢查程序的狀態(tài);(4)修改程序的錯(cuò)誤,并重新運(yùn)行程序;(5)動(dòng)態(tài)監(jiān)視程序中變量的值;(6)可以單步逐行執(zhí)行代碼,觀察程序的運(yùn)行狀態(tài);(7)分析崩潰程序產(chǎn)生的core文件。.用gdb調(diào)試下面的程序。#include<>#include<>#include<>main(){charmy_string口="hellothere";my_print(my_string);my_print2(my_string);}my_print(char*string){.printf("Thestringis%s\n”,string);}my_print2(char*string){char*string2;intsize,i;size=strlen(string);string2=(char*)malloc(size+1);for(i=0;i<size;i++)string2[size-i]=string[i];string2[size+1]='\0';printf("Thestringprintedbackwardis%s\n”,string2);}gcc-g-ogreeting這個(gè)程序執(zhí)行時(shí)顯示結(jié)果:ThestringishellothereThestringprintedbackwardis輸出的第一行是正確的,但第二行打印出的東西并不是我們所期望的。我們所設(shè)想的輸出應(yīng)該是Thestringprintedbackwardiserehtolleh。由于某些原因,my_print2函數(shù)沒有正常工作。用gdb看調(diào)試程序,先鍵入如下命令:gdbgreeting注意:記得在編譯greeting程序時(shí)把調(diào)試選項(xiàng)打開.—用gdb的run命令運(yùn)行g(shù)reeting。(gdb)runStartingprogram:/root/greetingThestringishellothereThestringprintedbackwardisProgramexitedwithcode040這個(gè)輸出和在gdb外面運(yùn)行的結(jié)果一樣。問題是,為什么反序打印沒有工作?為了找出癥結(jié)所在,在my_print2函數(shù)的for語句后設(shè)一個(gè)斷點(diǎn),具體的做法是在gdb提示符下鍵入list命令三次,列出疝f弋碼:(gdb)list(gdb)list(gdb)list第一次鍵入list命令的輸出如下:如果按下回車,gdb將再執(zhí)行一次list命令,給出下列輸出:再按一次回車將列出greeting程序的剩余部分:根據(jù)列出白源程序,你能看到要設(shè)斷點(diǎn)的地方在第21行,在gdb命令行提示符下鍵入如下命令設(shè)置斷八、、■(gdb)break21gdb將作出如下的響應(yīng):現(xiàn)在再鍵入run命令,將產(chǎn)生如下的輸出:你能通過設(shè)置一個(gè)觀察string2[size-i]變量的值的觀察點(diǎn)來看出錯(cuò)誤是怎樣產(chǎn)生的,做法是:現(xiàn)在可以用next命令來一步步的執(zhí)行for循環(huán)了:(gdb)next經(jīng)過第一次循環(huán)后,gdb告訴我們string2[size-i]的值是'h'.gdb用如下的顯示來告訴你這個(gè)信息:這個(gè)值正是期望的,后來的數(shù)次循環(huán)的結(jié)果都是正確的。當(dāng)i=10時(shí),表達(dá)式string2[size-i]的值等于'e',size-i的值等于1,最后一個(gè)字符已經(jīng)拷到新申里了。如果你再把循環(huán)執(zhí)行下去,你會看到已經(jīng)沒有值分配給string2[0]了,而它是新用的第一個(gè)字符,因?yàn)閙alloc函數(shù)在分配內(nèi)存時(shí)把它們初始化為空(null)字符,所以string2的第一個(gè)字符是空字符,這解釋了為什么在打印string2時(shí)沒有任何輸出了?,F(xiàn)在找出了問題出在哪里,修正這個(gè)錯(cuò)誤是很容易的.你得把代碼里寫入string2的第一個(gè)字符的的偏移量改為size-1而不是size.這是因?yàn)閟tring2的大小為12,但起始偏移量是0,用內(nèi)的字符從偏移量0到偏移量10,偏移量11為空字符保留。為了使代碼正常工作有很多種修改辦法。一種是另設(shè)一個(gè)比用的實(shí)際大小小1的變量。這是這種解決辦法的代碼:#include<>#include<>#include<>main(){charmy_string□="hellothere";my_print(my_string);my_print2(my_string);}my_print(char*string){.printf("Thestringis%s\n”,string);}my_print2(char*string){char*string2;intsize,size2,i;size=strlen(string);size2=size-1;string2=(char*)malloc(size+1);for(i=0;i<size;i++)string2[size2-i]=string[i];string2[s

溫馨提示

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

評論

0/150

提交評論