




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一部分:上機(jī)作業(yè):第二部分:一、填空1軟件提供的三種模式商業(yè)軟件、共享(試用)軟件、自由軟件。2Linux發(fā)行遵循GNU 的通用公共許可證(GPL),其目標(biāo)是保持和 POSIX 標(biāo)準(zhǔn)兼容.3Posix表示可移植操作系統(tǒng)接口,其目的是是為了提高UNIX環(huán)境下應(yīng)用程序的可移植性。4目前l(fā)inux主要應(yīng)用在軟件供應(yīng)商、學(xué)術(shù)界及ASP、ISP、ICP公司。5目前l(fā)inux發(fā)行版本主要有Debian、Red Hat、Slackware、Openlinux、Blue Point、Red Flag、Xteam Linux、Debian、Suse。6Linux內(nèi)核具有兩種版本號(hào),分別是:實(shí)驗(yàn)版本、產(chǎn)品化版本
2、,這樣區(qū)分的優(yōu)點(diǎn) 可以方便廣大軟件人員加入到Linux的開(kāi)發(fā)和測(cè)試工作中來(lái),另一方面又可以讓一些用戶使用上穩(wěn)定的Linux版本。7操作系統(tǒng)功能可以分為文件系統(tǒng)管理、處理器管理、內(nèi)存管理、 設(shè)備管理、網(wǎng)絡(luò)管理五大部分(子系統(tǒng))。8操作系統(tǒng)的體系結(jié)構(gòu)是軟件內(nèi)部結(jié)構(gòu)配置的一種抽象描述。通常操作系統(tǒng)可劃分為模塊結(jié)構(gòu)、層次結(jié)構(gòu)、對(duì)象結(jié)構(gòu)三種結(jié)構(gòu),linux屬于 模塊結(jié)構(gòu)。9根據(jù)Eric Raymond的觀點(diǎn),他將linux內(nèi)核的開(kāi)發(fā)模式稱為 集市模式,而將傳統(tǒng)軟件的開(kāi)發(fā)模式稱為教堂模式。二、填空1Linux安裝過(guò)程中通常至少要?jiǎng)?chuàng)建根分區(qū)和交換分區(qū)兩個(gè)分區(qū)。2系統(tǒng)安裝完成后,用dd命令制作啟動(dòng)軟盤(pán)的完整命
3、令是:# dd if=bootnet.img of=/dev/fd0 bs=1440k 。3/dev/hda表示第一個(gè)IDE硬盤(pán), /dev/hda6表示第一個(gè)IDE硬盤(pán)上第六個(gè)主分區(qū)或擴(kuò)展分區(qū)。4Linux采用的啟動(dòng)管理器有 LILO和 GRUB兩種;對(duì)應(yīng)的配置文件的名稱分別是/etc/lilo.conf和/boot/Grub/menu.lst(或grub.conf)。三填空1Linux采用ext2或ext3作為其默認(rèn)文件系統(tǒng)的。 2Linux中的五種基本文件類型分別是普通文件、目錄文件、設(shè)備文件、鏈接文件、管道文件。3Linux系統(tǒng)中文件權(quán)限分別賦予文件擁有者、擁有者所在用戶組、其他用戶組
4、三類用戶,每類用戶權(quán)限用三位表示,分別是 讀(r)、寫(xiě)(w)、執(zhí)行(x)。4Linux中改變文件權(quán)限的命令是chmod;改變文件所有者的命令是chown;改變文件所屬組的命令是chgrp。5Linux采用鏈接法方法實(shí)現(xiàn)文件共享,這樣方法產(chǎn)生的文件又可分為硬鏈接和符號(hào)鏈接兩種。兩種文件的各自特點(diǎn)硬鏈接文件和源文件指向同一個(gè)i節(jié)點(diǎn);符號(hào)鏈接文件為指向文件的路徑。6Linux下拷貝文件的命令是cp,移動(dòng)一個(gè)文件在目錄樹(shù)中的位置的命令是mv,刪除一個(gè)文件的命令是rm。7Linux下顯示文件內(nèi)容的命令有cat、more、less、head、tail、od。8在linux shell中 >表示 輸出
5、重定向,>>表示 追加輸出改向,<表示 輸入重定向,<<表示 本地文檔重定向(追加輸入改向)。 四填空1進(jìn)程是指一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng),一個(gè)完整的進(jìn)程包括程序、執(zhí)行程序所需要的數(shù)據(jù)、記錄進(jìn)程狀態(tài)的動(dòng)態(tài)數(shù)據(jù)資料(進(jìn)程映像)三部分,描述Linux進(jìn)程數(shù)據(jù)結(jié)構(gòu)的文件是/include/linux/sched.h。2進(jìn)程的三個(gè)基本狀態(tài)等待狀態(tài)、就緒狀態(tài)、執(zhí)行狀態(tài),Linux將執(zhí)行、就緒分為運(yùn)行態(tài),而將等待狀態(tài)分為可中斷等待狀態(tài)、不可中斷的等待態(tài)兩種狀態(tài)。3Linux的調(diào)度啟動(dòng)命令有at、cron、batch,$at f /tmp/prin
6、t job 2100 12/25/04的含義為:在04年12月25日21:00執(zhí)行/tmp/print job中的作業(yè)。4ps命令的功能是查看系統(tǒng)進(jìn)程,top命令的作用是顯示系統(tǒng)當(dāng)前的進(jìn)程和其它狀況。5Linux提供的進(jìn)程通信機(jī)制有信號(hào)、管道、消息隊(duì)列(msg)、共享內(nèi)存(shm)、信號(hào)量(sem)種。五問(wèn)答:111111111111說(shuō)明Linux操作系統(tǒng)的調(diào)度機(jī)制。Linux采用兩級(jí)調(diào)度,用戶作業(yè)進(jìn)入內(nèi)存,直接參與交換調(diào)度或進(jìn)程調(diào)度。進(jìn)程和線程采用同樣的表示和管理方式,也使用同樣的調(diào)度函數(shù)。Linux采用請(qǐng)求頁(yè)式內(nèi)存動(dòng)態(tài)管理方法,根據(jù)進(jìn)程執(zhí)行的實(shí)際需要分配內(nèi)存頁(yè)面并換入內(nèi)容,同時(shí)使用內(nèi)核交換
7、進(jìn)程kswapd按照記齡(aging)置換算法來(lái)實(shí)現(xiàn)頁(yè)面淘汰功能,內(nèi)核交換進(jìn)程周期性地執(zhí)行。Linux用簡(jiǎn)單的函數(shù)實(shí)現(xiàn)了三種進(jìn)程調(diào)度算法,雖然不十分完美,但高效,可適用于大多數(shù)情況。222222222222解釋Linux系統(tǒng)的虛擬文件系統(tǒng)VFS整體結(jié)構(gòu);目錄結(jié)構(gòu),Inode結(jié)構(gòu)!VFS整體結(jié)構(gòu):VFS采用超級(jí)塊和i節(jié)點(diǎn)來(lái)描述文件系統(tǒng),這些數(shù)據(jù)結(jié)構(gòu)在文件系統(tǒng)初始化過(guò)程中,由具體邏輯文件系統(tǒng)的超級(jí)塊和i節(jié)點(diǎn)的數(shù)據(jù)來(lái)填充。而當(dāng)文件系統(tǒng)關(guān)閉時(shí),VFS的超級(jí)塊和i節(jié)點(diǎn)也就消失了。目錄結(jié)構(gòu):整個(gè)Linux文件系統(tǒng)形成一個(gè)完整的目錄樹(shù),每一個(gè)邏輯文件系統(tǒng)都可作為一個(gè)獨(dú)立子樹(shù)安裝到目錄樹(shù)的某枝節(jié)點(diǎn)上。VFS超
8、級(jí)塊中用指針s-root記錄著該文件系統(tǒng)在根文件系統(tǒng)目錄樹(shù)的信息,使用指針s-dev記錄指向該邏輯文件系統(tǒng)(設(shè)備號(hào)).或者:Linux系統(tǒng)中,目錄也是文件的一種,稱為目錄文件,每一個(gè)目錄也由一個(gè)i節(jié)點(diǎn)來(lái)描述,i節(jié)點(diǎn)中文件類型標(biāo)識(shí)這是一個(gè)目錄文件,同時(shí)在對(duì)應(yīng)的索引表(物理塊)中存放用來(lái)描述文件的目錄項(xiàng)列表。目錄項(xiàng)列表用來(lái)描述一個(gè)目錄所包含的全部文件和子目錄,每一個(gè)目錄項(xiàng)對(duì)應(yīng)著一個(gè)文件或目錄。Inode結(jié)構(gòu):1、VFS inode包含文件訪問(wèn)權(quán)限、屬主、組、大小、生成時(shí)間、訪問(wèn)時(shí)間、最后修改時(shí)間等信息。它是linux管理文件系統(tǒng)的最基本單位,也是文件系統(tǒng)連接任何子目錄、文件的橋梁。inode結(jié)構(gòu)中
9、的靜態(tài)信息取自物理設(shè)備上的文件系統(tǒng),由文件系統(tǒng)指定的函數(shù)填寫(xiě),它只存在于內(nèi)存中,可以通過(guò)inode緩存訪問(wèn)。雖然每個(gè)文件都有相應(yīng)的inode結(jié)點(diǎn),但是只有在需要的時(shí)候系統(tǒng)才會(huì)在內(nèi)存中為其建立相應(yīng)的inode數(shù)據(jù)結(jié)構(gòu),建立的inode結(jié)構(gòu)將形成一個(gè)鏈表,我們可以通過(guò)遍歷這個(gè)鏈表去得到我們需要的文件結(jié)點(diǎn),VFS也為已分配的inode構(gòu)造緩存和哈希表,以提 高系統(tǒng)性能。EXT2 inode用來(lái)定義文件系統(tǒng)的結(jié)構(gòu)以及描述系統(tǒng)中每個(gè)文件的管理信息,每個(gè)文件都有且只有一個(gè)inode,即使文件中沒(méi)有數(shù)據(jù),其索引結(jié)點(diǎn)也是存在的。每個(gè)文件用一個(gè)單獨(dú)的Ext2 inode結(jié)構(gòu)來(lái)描述,而且每一個(gè)inode都有唯一的
10、標(biāo)志號(hào)。Ext2 inode為內(nèi)存中的inode結(jié)構(gòu)提供了文件的基本信息,隨著內(nèi)存中inode結(jié)構(gòu)的變化,系統(tǒng)也將更新Ext2 inode中相應(yīng)的內(nèi)容。Ext2 inode對(duì)應(yīng)的是Ext2_inode結(jié)構(gòu)。33333333333333解釋Ext2文件系統(tǒng)結(jié)構(gòu)?給出一個(gè)文件名,系統(tǒng)是如何找到文件內(nèi)容的?系統(tǒng)結(jié)構(gòu):i節(jié)點(diǎn)和超級(jí)塊是Ext2文件系統(tǒng)最關(guān)鍵結(jié)構(gòu)。其中:i節(jié)點(diǎn):用來(lái)描述各種類型的文件,是整個(gè)文件系統(tǒng)的基本(/include/linux/ext2_fs.h)超級(jí)塊:是描述整個(gè)文件系統(tǒng)的重要數(shù)據(jù)。組描述符也是描述文件系統(tǒng)塊組分布和使用情況的主要數(shù)據(jù)。(/include/linux/ext2_
11、fs.h)線性檢索法:以下步驟:1)系統(tǒng)讀入根索引節(jié)點(diǎn)(1),從文件地址項(xiàng)查找根目錄文件所在物理塊號(hào)讀入內(nèi)存。2)將磁盤(pán)第2個(gè)inode讀入內(nèi)存,找出bin目錄文件所在物理塊號(hào)并將它讀入內(nèi)存。3)將磁盤(pán)第10號(hào)節(jié)點(diǎn)讀入內(nèi)存,從中判斷l(xiāng)s文件所在的物理塊號(hào)。4)目錄查詢操作到此結(jié)束,如果順序查找過(guò)程中發(fā)現(xiàn)一個(gè)文件分量名未能找到,則停止查找并送回“文件未找到”信息。44444444444444掌握Linux下進(jìn)程創(chuàng)建的函數(shù)fork和vfork。fork函數(shù):創(chuàng)建子進(jìn)程,具體調(diào)用如下: #include<sys/type.h> #include<unistd.h> Pid_t
12、 fork(viod) 正確返回:父進(jìn)程返回子進(jìn)程的進(jìn)程號(hào),子進(jìn)程返回0。 錯(cuò)誤返回:-1子進(jìn)程是父進(jìn)程的一個(gè)拷貝。子進(jìn)程從父進(jìn)程那里得到數(shù)據(jù)段和堆棧段的拷貝。由于父子進(jìn)程的運(yùn)行順序無(wú)關(guān)。故運(yùn)行結(jié)果的先后順序不定,若要求父子進(jìn)程運(yùn)行順序一定,要采用進(jìn)程間通訊機(jī)制。若父進(jìn)程將標(biāo)準(zhǔn)輸出重定向到某一文件,子進(jìn)程也將標(biāo)準(zhǔn)輸出重定向到同一文件。Fork函數(shù)調(diào)用的主要用途有兩個(gè): a、一個(gè)進(jìn)程希望復(fù)制自身,從而父子進(jìn)程能同時(shí)執(zhí)行不同的代碼。b、進(jìn)程想執(zhí)行另外一個(gè)進(jìn)程。vfork函數(shù)Vfork函數(shù)作用基本類似于fork,調(diào)用流程與返回值與fork函數(shù)完全相同。但它們的語(yǔ)義不同。a、用vfork創(chuàng)建新進(jìn)程的主
13、要目的在于用exec函數(shù)執(zhí)行另外的進(jìn)程(如fork函數(shù)的第二個(gè)用途)。目的:提高效率。b、vfork中子進(jìn)程先運(yùn)行,父進(jìn)程掛起,直至子進(jìn)程執(zhí)行exec或exit,此后父子進(jìn)程執(zhí)行次序無(wú)限制。555555555555555掌握rpm,tar,gzip命令的使用方法。RPM軟件包管理程序的使用 A) 安裝軟件包: rpm -ivh 軟件包.rpm 可選參數(shù)說(shuō)明:-v顯示安裝的軟件包的名稱 -i 安裝軟件-t (-test) 測(cè)試安裝,不是真的安裝-nodeps 安裝前不執(zhí)行軟件包依賴性檢查。不推薦使用-force 強(qiáng)制安裝一個(gè)軟件包 -h 打印50個(gè)“#”符號(hào),與-v合用 如 rpm -ivh t
14、elnet-server-0.17-25.i386.rpm B) 刪除軟件包 rpm e 軟件包.rpm 可通過(guò)rpm -qa |egrep軟件包.rpm 查看是否安裝了此軟件包 錯(cuò)誤信息:. is needed by . 可加-nodeps,但不推薦使用 如 rpm -ev telnet-server-0.17-25.i386.rpm (先要停止Telnet服務(wù))C) 升級(jí)軟件包 rpm Uvh 軟件包.rpm 自動(dòng)刪除相應(yīng)軟件包的老版本,若配置文件同新版本不兼容,自動(dòng)將其保存為oldconfig.rpmsave文件. D) 查詢軟件包 rpm q 軟件包(名稱) 具體可使用如下
15、特定參數(shù) rpm ql 列出包中所有文件(包括配置/文檔文件) rpm qs 列出包中所有文件的狀態(tài) rpm qd 列出包中所有的文檔文件 rpm qc 列出包中所有的配置文件 rpm qa 列出系統(tǒng)中安裝的所有軟件包 rpm qa|grep “telnet” 查詢系統(tǒng)中包含telnet的rpm包 或 rpm qi telnet rpm -qf 查詢包含該文件的軟件包 E) 校驗(yàn)軟件包 可校驗(yàn)文件大小、MD5校驗(yàn)碼、文件權(quán)限、類型及屬主等信息。 rpm V 軟件包.rpm 檢查校驗(yàn)該軟件包中的文件是否存在 rpm Vf /bin/vi 校驗(yàn)軟件包中的單個(gè)文件 rpm Va 校驗(yàn)安裝的所有軟件包
16、 rpm Vp 軟件包.rpm 比較一個(gè)源軟件包和已經(jīng)安裝的軟件包 1) tar命令 tar 可以為文件和目錄創(chuàng)建檔案。語(yǔ)法: tar 主選項(xiàng)+輔選項(xiàng) tar文件 目錄 主選項(xiàng): c 創(chuàng)建新的檔案文件。 r 把要存檔的文件追加到檔案文件的未尾。 t 列出檔案文件的內(nèi)容,查看已經(jīng)備份了哪些文件。 u 更新文件。即用新增的文件取代原備份文件。 x 從檔案文件中釋放文件。 f 使用檔案文件或設(shè)備,這個(gè)選項(xiàng)通常是必選的。輔助選項(xiàng): b 該選項(xiàng)是為磁帶機(jī)設(shè)定的。其后跟一數(shù)字,用來(lái)說(shuō)明區(qū)塊的大小,系統(tǒng)預(yù)設(shè)值為20(20*512 bytes)。 k 保存已經(jīng)存在的文件。如在還原文件的過(guò)程中,遇到相同的文件,
17、不會(huì)進(jìn)行覆蓋。 m 還原文件時(shí),把所有文件的修改時(shí)間設(shè)定為現(xiàn)在。 M 創(chuàng)建多卷的檔案文件,以便在幾個(gè)磁盤(pán)中存放。 v 詳細(xì)報(bào)告tar處理的文件信息。如無(wú)此選項(xiàng),tar不報(bào)告文件信息。 z 用gzip來(lái)壓縮/解壓縮文件,加上該選項(xiàng)后可以將檔案文件進(jìn)行壓縮。例1:把/home目錄下包括它的子目錄全部做備份文件,備份文件名為usr.tar。 $ tar cvf usr.tar /home例2:把/home目錄下包括它的子目錄全部做備份文件,并進(jìn)行壓縮,備份文件名為usr.tar.gz 。 $ tar czvf usr.tar.gz /home例3:把usr.tar.gz這個(gè)備份文件還原并解壓縮。 $
18、 tar xzvf usr.tar.gz例4:查看usr.tar備份文件的內(nèi)容,并以分屏方式顯示在顯示器上。 $ tar tvf usr.tar | more要將文件備份到一個(gè)特定的設(shè)備,只需把設(shè)備名作為備份文件名。例5:j在/dev/fd0的軟盤(pán)中創(chuàng)建一個(gè)備份,并將/home中所有的文件都拷到備份中。 $ tar cf /dev/fd0 /home k要恢復(fù)設(shè)備磁盤(pán)中的文件,可使用xf選項(xiàng): $ tar xf /dev/fd0 l創(chuàng)建一個(gè)多卷的tar備份文件。當(dāng)使用M選項(xiàng)向一個(gè)軟驅(qū)進(jìn)行存檔時(shí),tar命令在一張軟盤(pán)已滿的時(shí)候會(huì)提醒您再放入一張新的軟盤(pán)。 $ tar cMf /dev/fd0 /
19、home2) gzip命令 減少文件大小可以減少存儲(chǔ)空間;通過(guò)網(wǎng)絡(luò)傳輸文件時(shí),可以減少傳輸?shù)臅r(shí)間。gzip是經(jīng)常使用的一個(gè)對(duì)文件進(jìn)行壓縮和解壓縮的命令。 語(yǔ)法: gzip 選項(xiàng) 壓縮(解壓縮)的文件名 各選項(xiàng)含義: -c 將輸出寫(xiě)到標(biāo)準(zhǔn)輸出上,并保留原有文件。 -d 將壓縮文件解壓。 -l 對(duì)每個(gè)壓縮文件,顯示下列字段:壓縮文件的大小,未壓縮文件的大小,壓縮比,未壓縮文件的名字。 -r 遞歸查找指定目錄并壓縮或解壓縮其中的所有文件。 -t 測(cè)試,檢查壓縮文件是否完整。-v 對(duì)每個(gè)壓縮和解壓的文件,顯示文件名和壓縮比。 -num 用指定的數(shù)字num調(diào)整壓縮的速度,1或-fast表示最快壓縮方法(
20、低壓縮比),9或-best表示最慢壓縮方法(高壓縮比)。系統(tǒng)缺省值為6。 例1:把/home目錄下的每個(gè)文件壓縮成.gz文件。 $ gzip /home* 例2:把例1中壓縮的文件解壓,并列出詳細(xì)的信息。 $ gzip -dv * 例3:壓縮一個(gè)tar備份文件,如usr.tar,此時(shí)壓縮文件的擴(kuò)展名為.tar.gz $ gzip usr.tar66666666666掌握shell變量的定義與使用,會(huì)編寫(xiě)簡(jiǎn)單的關(guān)于文件操作的shell程序。777777777777掌握l(shuí)inux下gcc,g+,gdb,make應(yīng)用程序的作用和基本使用。gcc 能夠編譯三種語(yǔ)言:C、C+ 和 Object C ,利
21、用 gcc 命令可同時(shí)編譯并連接 C 和 C+ 源程序。也可對(duì)幾個(gè) C 源文件利用 gcc 編譯、連接并生成可執(zhí)行文件。例:gcc -o factorial main.c factorial.cgcc 只編譯 C+ 源文件,不能自動(dòng)和 C+ 程序使用的庫(kù)連接。因此,通常使用 g+ 命令來(lái)完成 C+ 程序的編譯和連接。例:g+ -o hello hello.C 。make 工具來(lái)自動(dòng)完成編譯工作。gdb為GNU的調(diào)試器,是一個(gè)交互式工具,工作在字符模式。可完成如下的調(diào)試任務(wù):設(shè)置斷點(diǎn); 監(jiān)視程序變量的值; 程序的單步執(zhí)行; 修改變量的值。 88888888888解釋Linux進(jìn)程的概念、狀態(tài)及轉(zhuǎn)
22、換、進(jìn)程間通信方式以及task_struct結(jié)構(gòu)。進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。一個(gè)完整進(jìn)程包括程序、執(zhí)行程序所需要的數(shù)據(jù)以及記錄進(jìn)程狀態(tài)的動(dòng)態(tài)數(shù)據(jù)資料等待狀態(tài)、就緒狀態(tài)和執(zhí)行狀態(tài)是一個(gè)進(jìn)程所具有的最基本的三種狀態(tài)。Linux系統(tǒng)的2.2.16版本進(jìn)程共有六種狀態(tài),包括:運(yùn)行狀態(tài)、可中斷等待狀態(tài)、不可中斷等待狀態(tài)、僵死狀態(tài)、暫停狀態(tài)和交換狀態(tài)。在2.4.0版本中取消了交換狀態(tài),加入獨(dú)占狀態(tài)。進(jìn)程的整個(gè)生命周期中,大致的轉(zhuǎn)換路徑總是沿著三個(gè)閉合回路進(jìn)行:第一個(gè)回路: 由就緒狀態(tài)和執(zhí)行狀態(tài)形成。第二個(gè)回路: 由執(zhí)行狀態(tài)、等待狀態(tài)和就緒狀態(tài)形成第三個(gè)回路: 執(zhí)行狀態(tài)
23、、暫停狀態(tài)和就緒狀態(tài)構(gòu)成退出: 處于執(zhí)行狀態(tài)的進(jìn)程調(diào)用退出函數(shù)exit之后,進(jìn)程就會(huì)進(jìn)入僵死狀態(tài)。進(jìn)程間通信。兩種方式:低級(jí)通信:互相發(fā)送少量的控制信息,一般只傳遞一個(gè)或者幾個(gè)字節(jié)的數(shù)據(jù),進(jìn)程利用這些簡(jiǎn)單的信息,實(shí)現(xiàn)互斥和同步,控制運(yùn)行速度。高級(jí)通信:基本不涉及進(jìn)程執(zhí)行速度控制,用來(lái)在進(jìn)程之間傳遞大量的信息,由于這種通信方式主要用于交換信息。因此,在開(kāi)發(fā)本地進(jìn)程間通信的同時(shí),也為遠(yuǎn)程進(jìn)程間的通信、網(wǎng)絡(luò)程序的開(kāi)發(fā)及控制奠定了基礎(chǔ)。Linux系統(tǒng)的PCB用一個(gè)稱為task-struct的結(jié)構(gòu)體來(lái)描述(/include/linux/sched.h中)。其中信息可分為:(1) 進(jìn)程描述信息(2) 進(jìn)程
24、控制信息(3) 進(jìn)程資源信息(4) CPU現(xiàn)場(chǎng)信息99999999999掌握Linux下用戶賬號(hào)管理,文件權(quán)限管理,環(huán)境變量的定義,和網(wǎng)絡(luò)相關(guān)的配置文件和應(yīng)用程序。賬戶一般分為三種:普通用戶賬戶系統(tǒng)管理賬戶系統(tǒng)賬戶1) 賬戶的信息存儲(chǔ)在/etc/passwd文件中2) /etc/shadow系統(tǒng)包含一個(gè)/etc/passwd 的同伴文件/etc/shadow。該文件只對(duì)root用戶可讀,且包含加密的密碼信息。3) /etc/group文件定義了 Linux 系統(tǒng)上所有的組. 使用adduser添加普通用戶賬戶,必須以root登錄。2)添加用戶組向/etc/group文件添加新組,語(yǔ)法: gro
25、upadd -g gid mygroup;gid 一般是500以上。也可用命令刪除,語(yǔ)法如下:userdel -r login加上 -r 參數(shù)將刪除用戶主目錄及其創(chuàng)建的文件Linux系統(tǒng)的/etc/passwd文件含有系統(tǒng)中每個(gè)用戶的信息(加密后的口令存于/etc/shadow文件中)。 crypt命令可提供給用戶以加密文件。網(wǎng)絡(luò)文件配置1、 /etc/conf.modules 文件該配置文件定義了各種需要在啟動(dòng)時(shí)加載的模塊的參數(shù)信息。2、/etc/hostname 文件 該文件包含系統(tǒng)的主機(jī)名稱,完全的域名,3、/etc/sysconfig/network-scripts/ifcf
26、g-ethN文件 在RedHat中,系統(tǒng)網(wǎng)絡(luò)設(shè)備的配置文件保存在"/etc/sysconfig/network-scripts"目錄下,ifcfg-eth0包含第一塊網(wǎng)卡的配置信息,ifcfg-eth1包含第二塊網(wǎng)卡的配置信息。4、/etc/resolv.conf 文件 該文件是由域名解析器使用的配置文件5、/etc/host.conf 文件 該文件指定如何解析主機(jī)名。6、/etc/sysconfig/network 文件該文件用來(lái)指定服務(wù)器上的網(wǎng)絡(luò)配置信息,101掌握文件系統(tǒng)安裝表,VFS超級(jí)快,文件系統(tǒng)類型注冊(cè)表的基本結(jié)構(gòu)以及關(guān)系。文件系統(tǒng)安裝表記錄著整個(gè)系統(tǒng)中當(dāng)前可使
27、用(已安裝)的全部文件系統(tǒng),是操作系統(tǒng)訪問(wèn)具體存儲(chǔ)設(shè)備上文件系統(tǒng)的入口。文件系統(tǒng)類型注冊(cè)表記錄著整個(gè)系統(tǒng)當(dāng)前所支持的全部文件系統(tǒng)類型。文件系統(tǒng)安裝表、VFS超級(jí)塊和文件系統(tǒng)類型注冊(cè)表之間的關(guān)系111111111111111掌握文件系統(tǒng)、進(jìn)程系統(tǒng)、系統(tǒng)管理的基本命令使用方法。$ cp - i exam1.c /usr/wang/shiyan1.c 若不希望重新命名,可以使用下面的命令: $ cp exam1.c /usr/ wang/例1:將/usr/xu中的所有文件移到當(dāng)前目錄中: $ mv /usr/xu/ * .例2:將文件wch.txt重命名為wjz.doc $ mv wch.txt w
28、jz.doc$ rm -i test example顯示文件內(nèi)容命令cat命令:2、more命令 3、less命令 4、head命令 用head命令只顯示文件或標(biāo)準(zhǔn)輸入的頭幾行。 語(yǔ)法:head - n 文件 5、tail命令 若用戶想查看文件的尾部,可使用tail命令。 語(yǔ)法:tail + / - num 參數(shù) 文件 6、od命令 od命令查看特殊格式的文件內(nèi)容。通過(guò)指定該命令的不同選項(xiàng)可以以十進(jìn)制、八進(jìn)制、十六進(jìn)制和ASCII碼來(lái)顯示文件。 語(yǔ)法:od 選項(xiàng) 文件 各選項(xiàng)含義: - A 指定地址基數(shù),包括: d 十進(jìn)制 o 八進(jìn)制(系統(tǒng)默認(rèn)值) x 十六進(jìn)制 n 不打印位移值 文件內(nèi)容查詢
29、命令(1) 1、grep、fgrep 和 egrep命令例1:grep命令在文件example中搜索模式“text file”。$ grep text file example例2:搜索并顯示所有包含goto語(yǔ)句的代碼行: $ grep goto *.c例3:從文件mypats中讀取要搜索的模式。 $ cat mypats editor create $ grep -f mypats exam2、find命令例1:查找當(dāng)前目錄中所有以main開(kāi)頭的文件并顯示這些文件的內(nèi)容。 $ find . - name main* - exec more ;例2:刪除當(dāng)前目錄下所有一周之內(nèi)沒(méi)有被訪問(wèn)過(guò)的 a
30、 .out或*.o文件。 $ find . (- name a.out - o - name *.o)- atime +7 - exec rm ;說(shuō)明:(和)表示括號(hào)( ),其中“”稱為轉(zhuǎn)義符。 “- name a.out”是指要查找名為a.out的文件;“- name *.o”是指要查找所有名字以.o結(jié)尾的文件。兩個(gè)- name間- o表示邏輯或or,即查找名字為a.out或名字以.o結(jié)尾的文件。 find在當(dāng)前目錄及其子目錄下找到這樣的文件后,再進(jìn)行判斷,看其最后訪問(wèn)時(shí)間是否在7天以前(條件atime +7),若是,則對(duì)該文件執(zhí)行命令 rm(- exec rm ;)。代表當(dāng)前查到的符合條件
31、的文件名;是語(yǔ)法要求的。3、locate命令例如:查找相關(guān)字issue $ locate issue /etc/issue /etc/ /usr/man/man5/issue.5 /usr/man/man5/.5df命令 :檢查文件系統(tǒng)的磁盤(pán)空間占用情況。du命令du 為“disk usage”縮寫(xiě),統(tǒng)計(jì)目錄(或文件)所占磁盤(pán)空間的大小。dd命令 把指定的輸入文件拷貝到指定的輸出文件中,且在拷貝過(guò)程中可進(jìn)行格式轉(zhuǎn)換。例1:要把一張軟盤(pán)的內(nèi)容拷貝到另一張軟盤(pán)上: $ dd if =/dev/fd0 of = /tmp/tmpfile $ dd if = /tmp/tmp =/dev/fd0Sor
32、t命令 語(yǔ)法:sort 選項(xiàng) 文件 。說(shuō)明:對(duì)文件中所有的行進(jìn)行排序。例2 以第2個(gè)字段作為排序關(guān)鍵字對(duì)文件example的內(nèi)容進(jìn)行排序。 $ sort +1-2 example 例3 對(duì)于file1和file2文件內(nèi)容反向排序,結(jié)果放在outfile中,利用第2個(gè)字段的第一個(gè)字符作為排序關(guān)鍵字 $ sort -r -o out -2.1 file1 file2 例4 sort排序常用于在管道中與其它命令連用,組合完成比較復(fù)雜的功能,如利用管道將當(dāng)前工作目錄中的文件送給sort進(jìn)行排序,排序關(guān)鍵字是第6個(gè)至第8個(gè)字段。 $ ls - l | sort +5 - 7uniq命令說(shuō)明:該命令讀取輸
33、入文件,并比較相鄰的行。例1 顯示文件 example中不重復(fù)的行。 $ uniq - u example 例2 顯示文件 example中不重復(fù)的行,從第2個(gè)字段的第2個(gè)字符開(kāi)始做比較。 $ uniq - u - 1 +1 examplewc命令說(shuō)明:該命令統(tǒng)計(jì)給定文件中的字節(jié)數(shù)、字?jǐn)?shù)、行數(shù)。例1:$ wc - lcw file1 file2 4 4 33 file1 4 7 52 file211 11 85 totalComm命令語(yǔ)法:comm - 123 file1 file2說(shuō)明:該命令是對(duì)兩個(gè)已經(jīng)排好序的文件進(jìn)行比較。$ comm -12 myfile1 myfile21212121
34、2121212了解Linux系統(tǒng)啟動(dòng)相關(guān)的文件以及功能??荚囶}型:填空,選擇,命令解釋,問(wèn)答;程序閱讀與設(shè)計(jì);Linux下shell編程入門(1)通常情況下,我們從命令行輸入命令每輸入一次就能夠得到系統(tǒng)的一次響應(yīng)。一旦需要我們一個(gè)接著一個(gè)的輸入命令而最后才得到結(jié)果的時(shí)候,這樣的做法顯然就沒(méi)有效率。要達(dá)到這樣的目的,通常我們利用shell程序或者shell腳本來(lái)實(shí)現(xiàn)。 一、簡(jiǎn)介 Shell編程有很多類似C語(yǔ)言和其他程序語(yǔ)言的特征,但是又沒(méi)有編程語(yǔ)言那樣復(fù)雜。Shell程序就是放在一個(gè)文件中的一系列Linux命令和實(shí)用程序,在執(zhí)行的時(shí)候,通過(guò)Lin
35、ux一個(gè)接著一個(gè)地解釋和執(zhí)行每個(gè)命令。 下面我們來(lái)看一個(gè)簡(jiǎn)單的shell程序:1、首先建立一個(gè)內(nèi)容如下的文件,名字為date,將其存放在目錄下的bin子目錄中。#Program date#usageto :show the date in this way (注釋)echo “Mr.$USER,Today is:”echo date “+%B%d%A”echo “Whish you a lucky day !”2、編輯完該文件之后它還不能執(zhí)行,我們需要給它設(shè)置可執(zhí)行權(quán)限。使用如下命令:chmod +x date
36、0; 通過(guò)以上過(guò)程之后,我們就可以像使用ls命令一樣執(zhí)行這個(gè)shell程序.beichenlocalhost bin$ dateMr.beichen,Today is:January 13 FridayWhish you a lucky day ! 為了在任何目錄里都可以執(zhí)行這個(gè)程序,可以將bin的這個(gè)目錄添加到路徑中去。beichenlocalhost bin$ PATH=$PATH: $HOME/bin(注:這里的$HOME代替的是/home/beechen,而bin目錄是自己建的一個(gè)目錄)
37、 另外一種執(zhí)行date的方法就是把它作為一個(gè)參數(shù)傳給shell命令:beichenlocalhost /$ bash dateMr.beichen,Today is:January 13 FridayWhish you a lucky day ! 盡管在前面我們使用chmod +x date將date設(shè)置為可執(zhí)行,其實(shí)不設(shè)置也沒(méi)有關(guān)系,但在Linux里執(zhí)行它,需要先告訴系統(tǒng)它是一個(gè)可執(zhí)行的腳本。beichenlocalhost /$ .dateMr.beichen,Today is:January 13 Fr
38、idayWhish you a lucky day ! 即在date前面加上一個(gè)點(diǎn)”.”,并且用空格與后面的shell腳本的文件名隔開(kāi)。當(dāng)然,不推薦這樣做。二、shell參數(shù) 如同ls 命令可以接受目錄等作為它的參數(shù)一樣,在shell編程時(shí)同樣可以使用參數(shù)。Shell有位置參數(shù)和內(nèi)部參數(shù)。1、 位置參數(shù) 由系統(tǒng)提供的參數(shù)稱為位置參數(shù)。位置參數(shù)的值可以用$N得到,N是一個(gè)數(shù)字,如果為1,即$1.類似C語(yǔ)言中的數(shù)組,Linux會(huì)
39、把輸入的命令字符串分段并給每段進(jìn)行標(biāo)號(hào),標(biāo)號(hào)從0開(kāi)始。第0號(hào)為程序名字,從1開(kāi)始就表示傳遞給程序的參數(shù)。如$0表示程序的名字,$1表示傳遞給程序的第一個(gè)參數(shù),以此類推。2、 內(nèi)部參數(shù) 上述過(guò)程中的$0是一個(gè)內(nèi)部變量,它是必須的,而$1則可有可無(wú)。和$0一樣的內(nèi)部變量還有以下幾個(gè)。$# -傳遞給程序的總的參數(shù)數(shù)目$? -上一個(gè)代碼或者shell程序在shell中退出的情況,如果正常退出則返回0,反之為非0值。$* -傳遞給程序的所有參數(shù)組成的字符串。下面舉例進(jìn)
40、行說(shuō)明:建立一個(gè)內(nèi)容為如下的程序P1:echo “Program name is $0”echo “There are totally $# parameters passed to this program”echo “The last is $?”echo “The parameters are $*”執(zhí)行后的結(jié)果如下:beichenlocalhost bin$ P1 this is a test program /傳遞5個(gè)參數(shù)Program name is /home/beichen/bin/P1 /給出程序的完整路徑和名字There a
41、re totally 5 parameters passed to this program /參數(shù)的總數(shù)The last is 0 /程序執(zhí)行結(jié)果The parameters are this is a test program /返回有參數(shù)組成的字符串下面我們利用內(nèi)部變量和位置參數(shù)編寫(xiě)一個(gè)名為del的簡(jiǎn)單刪除程序:#name: del#author: liangnian#
42、this program to compress a the dustbinif test $# -eq 0 then echo “Please specify a file!” else gzip $1 /先對(duì)文件進(jìn)行壓縮 mv $1.gz $HOME/dustbin /移動(dòng)到回收站 echo “File $1 is deleted !”fi=part1=三、變量表達(dá)式 在上面我們編寫(xiě)的小程序中我們用到了一個(gè)關(guān)
43、鍵字test,其實(shí)它是shell程序中的一個(gè)表達(dá)式比較(test)。通過(guò)和shell提供的if等條件語(yǔ)句(后面我們會(huì)介紹)相結(jié)合我們可以方便的完判斷。 其用法如下: test 表達(dá)式 表達(dá)式所代表的操作符有字符串操作符、數(shù)字操作符、邏輯操作符以及文件操作符。其中文件操作符是一種shell獨(dú)特的操作符,因?yàn)閟hell里的變量都是字符串,為了達(dá)到對(duì)文件進(jìn)行操作的目的,于是才提供了這樣的一種操作符。1、 字符串比較作用:測(cè)試字符串是否相等、長(zhǎng)度是否為零,字符串是否為NULL(注:bash區(qū)分零長(zhǎng)度字符
44、串和空字符串)常用的字符穿操作符有:= 比較兩個(gè)字符串是否相同,同則為“是”!= 比較兩個(gè)字符串是否相同,不同則為“是”-n 比較字符串長(zhǎng)度是否大于零,如果大于零則為“是”-z 比較字符串的穿度是否等于零,如果等于則為“是”2、 數(shù)字比較這里區(qū)別于其他編程語(yǔ)言,test語(yǔ)句不使用>、<、>=類似的符號(hào)來(lái)表達(dá)大小的比較,而是用整數(shù)式來(lái)表示這些。-eq 相等-ge 大于等于-le 小于等于-ne
45、;不等于-gt 大于-lt 小于3、 邏輯操作! 反:與一個(gè)邏輯值相反的邏輯值-a 與(and):兩個(gè)邏輯值為“是”返回值才為“是”,反之為“否”-o 或(or):兩個(gè)邏輯值有一個(gè)為“是”,返回值就為“是”4、 文件操作文件測(cè)試表達(dá)式通常是為了測(cè)試文件的信息,一般由腳本來(lái)決定文件是否應(yīng)該備份、復(fù)制或刪除。由于test關(guān)于文件的操作符有很多,我們只列舉一些常用的。-d 對(duì)象存在且為目錄返回值為“是”-f 對(duì)象存在且為文件返回值為“是”-L
46、 對(duì)象存在且為符號(hào)連接返回值為“是”-r 對(duì)象存在且可讀則返回值為“是”-s 對(duì)象存在且長(zhǎng)度非零則返回值為“是”-w 對(duì)象存在且可寫(xiě)則返回值為“是”-x 對(duì)象存在且可執(zhí)行則返回值為“是”file1 nt(-ot) file2 文件1比文件2新(舊)四、循環(huán)結(jié)構(gòu)語(yǔ)句shell常見(jiàn)的循環(huán)語(yǔ)句有for循環(huán)、while循環(huán)、until循環(huán)1. for 循環(huán)語(yǔ)法:for 變量 in 列表 do
47、160; 操作 done注:變量是要在循環(huán)內(nèi)部用來(lái)指代當(dāng)前所指代的列表中的那個(gè)對(duì)象的。列表是在for 循環(huán)的內(nèi)部要操作的對(duì)象,可以是字符串也可以是文件,如果是文件則為文件名。例:刪除垃圾箱中的所有.gz文件#delete all extension of “gz” in the dustbinfor I in $HOME/dustbin/*.gzdo rm f $i echo “$i has been deleted!”done
48、 執(zhí)行結(jié)果如下:beichenlocalhost bin$.f_rmgz/home/beichen/dustbin/nessus-4.0.0.2.tar.gz has been deleted!/home/beichen/dustbin/g has been deleted!2. While循環(huán)語(yǔ)法:while 表達(dá)式 do 操作 done 只要while表達(dá)式成立,do和done之間的操作就一直會(huì)進(jìn)行。3. until循環(huán)語(yǔ)法:until 表達(dá)式 do 操作 done 重復(fù)do和done之間的操作直到表達(dá)式成立為止。 例:#test until#add from 1 to 100total=0num=0until test num
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京簽訂工作合同范本
- 廠家銷售鍋爐合同范本
- 保安臨時(shí)服務(wù)合同范本
- 合資砂場(chǎng)合同范例
- 古建圓柱采購(gòu)合同范本
- 結(jié)算審計(jì)服務(wù)合同范本
- 傳媒股東合同范本
- 出口木箱合同范本
- 出售住宅和廠房合同范本
- 合辦活動(dòng)協(xié)議合同范本
- 中小學(xué)-安全使用與維護(hù)家用電器-主題班會(huì)教案
- 《中國(guó)潰瘍性結(jié)腸炎診治指南(2023年)》解讀
- 中國(guó)故事英文版哪吒英文二篇
- 鍍鋅管理論重量表常用
- 鐵總計(jì)統(tǒng)【2017】177號(hào)關(guān)于進(jìn)一步加強(qiáng)鐵路建設(shè)項(xiàng)目征地拆遷工作和費(fèi)用管理的指導(dǎo)意見(jiàn)
- 電子技術(shù)基礎(chǔ)與技能-(3)
- 部編版四年級(jí)下冊(cè)語(yǔ)文第二單元課文教材分析及全部教案
- 美術(shù)開(kāi)學(xué)第一課(課堂PPT)
- 出生證明委托書(shū)(共2頁(yè))
- 刑釋解教人員安置幫教工作檔案
- 內(nèi)部審計(jì)發(fā)展史
評(píng)論
0/150
提交評(píng)論