整理linux操作系統(tǒng)ppt詳細(xì)明了_第1頁(yè)
整理linux操作系統(tǒng)ppt詳細(xì)明了_第2頁(yè)
整理linux操作系統(tǒng)ppt詳細(xì)明了_第3頁(yè)
整理linux操作系統(tǒng)ppt詳細(xì)明了_第4頁(yè)
整理linux操作系統(tǒng)ppt詳細(xì)明了_第5頁(yè)
已閱讀5頁(yè),還剩235頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Linux 入門(mén)必備n希望大家有所收獲!12Welcome!嵌入式Linux系統(tǒng)培訓(xùn)Linux操作系統(tǒng)入門(mén)3一周課程安排一、Linux操作系統(tǒng)結(jié)構(gòu);常用的Linux Shell命令二、開(kāi)發(fā)環(huán)境使用(ultraedit、nfs、samba、超級(jí)終端(wins)、 minicom(linx) Shell編程實(shí)驗(yàn)三、編譯器GCC使用;調(diào)試器GDB; 項(xiàng)目管理工具M(jìn)AKE 標(biāo)準(zhǔn)I/O開(kāi)發(fā),文件I/O操作編程四、實(shí)驗(yàn):設(shè)置編譯環(huán)境; 文件I/O實(shí)驗(yàn)(包括如何實(shí)驗(yàn)GCC,MAKE)4Linux是什么? Linux是一種計(jì)算機(jī)操作系統(tǒng)和它的內(nèi)核的名字。它也是自由軟件和開(kāi)放源代碼發(fā)展中最著名的例子。5Linu

2、x是一種?nLinux是一種Unix類(lèi)操作系統(tǒng)nUnix類(lèi)?6Linux的誕生n1991年,Linus Torvalds還是芬蘭赫爾辛基大學(xué)的一名學(xué)生,最初用匯編語(yǔ)言寫(xiě)了一個(gè)在80386保護(hù)模式下處理多任務(wù)切換的程序,后來(lái)從Minix中得到靈感,發(fā)誓要寫(xiě)一個(gè)比Minix更好的Minix,于是開(kāi)始寫(xiě)了一些硬件的設(shè)備驅(qū)動(dòng)程序、一個(gè)小的文件系統(tǒng)n這樣0.0.1版本的Linux就出來(lái)了,但是他必須在有Minix的機(jī)器上編譯以后才能玩,這時(shí)候的Linus已經(jīng)完全“走火入魔”了,決定完全脫離Minix,于是在1991年10月5號(hào)發(fā)布了Linux0.0.2版本,這個(gè)版本已經(jīng)可以運(yùn)行bash(一種用戶(hù)與操作系

3、統(tǒng)內(nèi)核通訊的軟件)和gcc(GNU C編譯器)了7Linux的編年史n11991年11月,芬蘭赫爾辛基大學(xué)的學(xué)生Linus Torvalds寫(xiě)了個(gè)小程序,取名為L(zhǎng)inux,放在互聯(lián)網(wǎng)上。1993年,在一批高水平黑客的參與下,誕生了Linux1.0版n21994年,Linux的第一個(gè)商業(yè)發(fā)行版Slackware問(wèn)世n31996年,美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)局的計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)室確認(rèn)Linux版本1.2.13(由Open Linux公司打包)符合POSIX標(biāo)準(zhǔn)n41999年起,多種Linux的簡(jiǎn)體中文發(fā)行版相繼問(wèn)世。國(guó)內(nèi)自己創(chuàng)建的有Blue Point Linux、Flag Linux、Xterm Linux

4、等,美國(guó)有Xlinux、TurboLinux等n52001年,Linux2.4版內(nèi)核發(fā)布n62003年,Linux2.6版內(nèi)核發(fā)布n7現(xiàn)在i市場(chǎng)上出現(xiàn)多種Linux發(fā)行版iiLinux廣泛用于桌面系統(tǒng)、嵌入式系統(tǒng)、網(wǎng)絡(luò)服務(wù)器系統(tǒng)iii眾多大廠商參與Linux的開(kāi)發(fā)工作,Linux可用軟件越來(lái)越多8開(kāi)啟你的Linux旅途9第一步n如何使用Vmware打開(kāi)RedHat Linuxn演示.10Linux的啟動(dòng)與初始化Linux Boot StopBIOSopen the powerkernel/bootlilo/grabmingettyinitshelllogin-linux perationLog

5、on program引導(dǎo)啟動(dòng)第一個(gè)進(jìn)程11第二步:登陸Linux系統(tǒng)n終端模式 Linux Login Password: 終端提示符 $ #nXwindow模式Red Hat Linux release 7.3(Valhalla)Kernel 2.4.18-3 on an 1686localhost login: rootPassword: 123456localhost login: rootPassword:_Last Login: Sun Sep 11 20:You have new mail.rootlocalhost root#_localhost login: sunkangPa

6、ssword:_sunkanglocalhost sunkang$12Linux:登陸與退出nlogout:退出登錄(exit)nreboot:重啟系統(tǒng)nshutdown:關(guān)閉系統(tǒng)npoweroff:關(guān)閉系統(tǒng)nhalt:系統(tǒng)掛起 13第三步:如何啟動(dòng)終端n在菜單中,選擇“系統(tǒng)設(shè)置”-”終端”14開(kāi)始使用“終端”n下面將介紹的是:n1、 Linux操作系統(tǒng)的根文件系統(tǒng)(目錄)n2、 Linux操作系統(tǒng)的系統(tǒng)文件結(jié)構(gòu)n3、常用的Linux操作系統(tǒng)shell命令151、 Linux操作系統(tǒng)的根文件系統(tǒng)nFHS:Filesystem Hierarchy StandardnFHS: 規(guī)范檔案目錄的命名及

7、存放標(biāo)準(zhǔn)n大多數(shù)Linux系統(tǒng)遵循FHSnLinux:目錄&路徑n目錄:Directory.n路徑 -絕對(duì)路徑例:/usr/src/linux16根文件系統(tǒng)n基本文件系統(tǒng)結(jié)構(gòu)n至少含有以下目錄:/dev、/proc、/bin、/etc、/lib、/usr、/tmpn最基本的應(yīng)用程序,如sh、ls、cp、mv等n最低限度的配置文件,如rc.d、inittab、fstab等n設(shè)備:/dev/hd*、/dev/tty*、/dev/fd0n基本程序運(yùn)行所需的庫(kù)函數(shù)171、 Linux操作系統(tǒng)的根文件系統(tǒng)以Redhat為例n/bin -linux常用的命令,如cp, ls, ping, moun

8、t, vi, tar, kill, grep, rpm, dd, ps, ln, gzip, cat等n/boot-啟動(dòng)文件,如vmlinuzn/dev-設(shè)備文件,如fd0(軟盤(pán)), hda (第一硬盤(pán)), hdal, hdb, sda, sdal, cdrom(hdc), mouse(psaux), 等;hd-harddisk;sd-scsin/etc-配置文件,如hosts, lilo.conf, inittab, rc,d(dir), samba/smd.conf等18根文件系統(tǒng)n/home,/root -每個(gè)用戶(hù)在home下有一個(gè)自己的目錄。 -root的在/root -權(quán)限和保護(hù)n/

9、lost+found-Lost? found!一些丟失的文件可能可以在這里找到n/lib-共享庫(kù)相關(guān)文件n/mnt-mount文件系統(tǒng)到這個(gè)目錄如cdrom,floppy19根文件系統(tǒng)n/var-執(zhí)行中記錄數(shù)據(jù)n/proc-內(nèi)存文件,報(bào)告程序執(zhí)行的在線動(dòng)態(tài)信息-如進(jìn)程id數(shù)字目錄,sys, net 等 (/proc/sys/net/目錄主要包括了許多網(wǎng)絡(luò)相關(guān)的主題,例如:appletalk/,ethernet/,ipv4/,ipx/,及ipv6/。通過(guò)改變這些目錄中的文件,網(wǎng)絡(luò)管理員能夠在系統(tǒng)運(yùn)行時(shí)調(diào)整相關(guān)網(wǎng)絡(luò)參數(shù))n/sbin-啟動(dòng)時(shí)需要,系統(tǒng)管理員程序工具、配置等-如fsck(修復(fù)分區(qū)),

10、 lilo(安裝引導(dǎo)程序), init(內(nèi)核啟動(dòng)的第一個(gè)用戶(hù)進(jìn)程), fdisk等n/tmp-臨時(shí)文件夾n/usr-用戶(hù)應(yīng)用程序和文件202、 Linux文件系統(tǒng)結(jié)構(gòu)應(yīng)用程序應(yīng)用程序存儲(chǔ)設(shè)備存儲(chǔ)設(shè)備RelserFSVFS文件訪問(wèn)請(qǐng)求文件訪問(wèn)請(qǐng)求文件系統(tǒng)文件系統(tǒng)EXT3設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序NTFSISO9660nVirtual File System是Linux內(nèi)核中的一個(gè)軟件層,用于給用戶(hù)空間的程序提供文件系統(tǒng)接口。n它提供了內(nèi)核中的一個(gè)抽象功能,允許不同的文件系統(tǒng)共存。nVFS提供統(tǒng)一的接口(open,read,write.)訪問(wèn)不同的實(shí)際文件系統(tǒng),所以Linux系統(tǒng)可以同時(shí)支持多種文件

11、系統(tǒng)n一個(gè)文件系統(tǒng)通常占用一個(gè)邏輯分區(qū)21EXT2 -The Second Extended File SystemEXT2文件系統(tǒng)的整體結(jié)構(gòu)和布局啟動(dòng)扇區(qū)啟動(dòng)扇區(qū)塊組塊組塊組塊組M塊組塊組N超級(jí)塊超級(jí)塊文件系統(tǒng)組文件系統(tǒng)組描述符表描述符表塊位圖塊位圖inode位圖位圖inode表表數(shù)據(jù)塊數(shù)據(jù)塊n超級(jí)塊:文件系統(tǒng)基本信息的描述,包括文件系統(tǒng)大小,狀態(tài)n組描述符:描述每個(gè)塊組的控制和統(tǒng)計(jì)信息nI節(jié)點(diǎn):用于描述一個(gè)文件或目錄、模式、擁有者信息、文件大小、時(shí)間標(biāo)志、數(shù)據(jù)塊指針22EXT3nEXT2的加強(qiáng)版本:EXT3nEXT3是一種日志文件系統(tǒng):它會(huì)將磁盤(pán)的寫(xiě)入動(dòng)作完整記錄在磁盤(pán)的某個(gè)區(qū)域上,以免突

12、然情況下發(fā)生不一致現(xiàn)象。資料有效性資料完整性tune2fs:將ext2文件系統(tǒng)的分區(qū)轉(zhuǎn)移成ext3文件系統(tǒng)的分區(qū)23設(shè)備也是一個(gè)文件設(shè)備設(shè)備命名命名第一個(gè)第一個(gè)軟驅(qū)軟驅(qū)/dev/fd0第二個(gè)軟驅(qū)第二個(gè)軟驅(qū)/dev/fd1第一個(gè)第一個(gè)硬盤(pán)硬盤(pán)/dev/hda第一個(gè)硬盤(pán)第一個(gè)分區(qū)第一個(gè)硬盤(pán)第一個(gè)分區(qū)/dev/hda1第一個(gè)硬盤(pán)第二個(gè)分區(qū)第一個(gè)硬盤(pán)第二個(gè)分區(qū)/dev/hda2第一個(gè)硬盤(pán)第三個(gè)分區(qū)第一個(gè)硬盤(pán)第三個(gè)分區(qū)/dev/hda3第一個(gè)硬盤(pán)第四個(gè)分區(qū)第一個(gè)硬盤(pán)第四個(gè)分區(qū)/dev/hda4第一個(gè)硬盤(pán)第一個(gè)邏輯分區(qū)第一個(gè)硬盤(pán)第一個(gè)邏輯分區(qū)/dev/hda5第一個(gè)硬盤(pán)第二個(gè)邏輯分區(qū)第一個(gè)硬盤(pán)第二個(gè)邏輯分

13、區(qū)/dev/hda6依次類(lèi)推依次類(lèi)推.第二個(gè)第二個(gè)硬盤(pán)硬盤(pán)/dev/hdb依次類(lèi)推依次類(lèi)推.243、常用的Linux操作系統(tǒng)shell命令n內(nèi)核信息n關(guān)于當(dāng)前內(nèi)核的基本信息- uname命令:uname a (顯示內(nèi)核基本信息) :例如:2.4.18n內(nèi)核版本- major.minor.patchlevel 核心版本.主號(hào)(偶數(shù)為穩(wěn)定版本).第幾次的修改(從0開(kāi)始)n內(nèi)核源文件所在目錄-內(nèi)核源碼通常被置于:/usr/src/linux下25目錄相關(guān)的命令ncd:change directory,切換到其他目錄格式:cd directory 例:# cd /usrnpwd:present wor

14、king directory,顯示當(dāng)前路徑 格式:pwd26實(shí)例n進(jìn)入/usrn進(jìn)入/usr/src/linux1、cd src/linux2、cd ./src/linux3、cd src; cd linuxn回到 /usr1、cd/usr2、cd ./. (回到根目錄)n進(jìn)入/home1、cd ./home27lsnls命令用于顯示目錄內(nèi)容,類(lèi)似DOS下的dir。nls optionsfilenamen主要參數(shù):-a,-all:列出所有文件,包括隱藏文件;-l:使用較長(zhǎng)格式列出信息;-m:所有項(xiàng)目以逗號(hào)分隔,并填滿(mǎn)整行行寬;-R,-recursive:同時(shí)列出所有子目錄層;n藍(lán)色表示是目錄,

15、綠色表示是可執(zhí)行文件,紅色表示是壓縮文件,淺藍(lán)色 表示是鏈接文件,灰色表示是其他格式文件。ls最常使用的是ls -l。其別名為ll。28文件操作相關(guān)的命令nmkdir: make directory,創(chuàng)建一個(gè)文件夾-如 mkdir tempnrmdir:remove directory, 刪除目錄(要求目錄是空的)-如 rmdir temp29cp and mvncp option (可有可無(wú)) 源地址 目的地址如:cp file1 file2 將文件file1復(fù)制成file2。cp file1 dir1 將文件file1復(fù)制到目錄dir1下。cp /tmp/file1 file2cp r d

16、ir1 dir2 復(fù)制整個(gè)目錄。nmv option 源地址 目的地址mv file1 file2 將文件file1更名為file2。mv file1 dir1 將文件file1移到目錄dir1下。mv dir1 dir2 將目錄dir1更改為目錄dir2。 30rmnrm file1刪除文件名為file1的文件。rm file?刪除文件名中有五個(gè)字符且前四個(gè)字符為file的所有文件。 rm f*刪除文件名中以f為字首的所有文件。rm r dir1刪除目錄dir1及其子目錄下所有文件。rm rf dir1不須確認(rèn),-force(強(qiáng)制)31file nfile通過(guò)探測(cè)文件內(nèi)容判斷文件類(lèi)型。nfi

17、leoption文件名n使用file命令可以知道某個(gè)文件究竟是二進(jìn)制的可執(zhí)行文件,還是Shell Script文件,或者是其它的什么格式。file能識(shí)別的文件類(lèi)型有目錄、Shell腳本、英文文本、二進(jìn)制可執(zhí)行文件、C語(yǔ)言源文件、文本文件、DOS的可執(zhí)行文件。file grapgrap: English textnfile命令不能探測(cè)包括圖形、音頻、視頻等多媒體文件類(lèi)型。32幫助命令nman:用戶(hù)手冊(cè)(mannual)手冊(cè)的章節(jié)格式:man command man man man -S 2 readninfo:讀取info版的幫助文檔格式:info command info infonwhati

18、s:從whatis數(shù)據(jù)庫(kù)里找某個(gè)命令的簡(jiǎn)單描述 格式:whatis command whatis mannApropos:從whatis數(shù)據(jù)庫(kù)中找某個(gè)字符串格式:apropos keyword apropos printn-help:命令參數(shù),顯示簡(jiǎn)單的用戶(hù)幫助格式:command - - help 33lnnln命令用來(lái)在文件之間創(chuàng)建鏈接nlnoption源文件鏈接名 -s :進(jìn)行軟鏈接(Symbolic Link) n鏈接有兩種,硬鏈接(Hard Link)(缺省),符號(hào)鏈接(Symbolic Link)n硬鏈接指通過(guò)索引節(jié)點(diǎn)來(lái)進(jìn)行的連接。每個(gè)文件都有一個(gè)編號(hào),稱(chēng)為索引節(jié)點(diǎn)號(hào)(Inode

19、Index) 34lnn符號(hào)連接(Symbolic Link),也叫軟連接。類(lèi)似于Windows的快捷方式。實(shí)際上是一個(gè)文本文件,包括有另一文件的位置信息。如:$ ln -s /usr/local/httpd/htdocs gg這樣每次進(jìn)入gg目錄就可以訪問(wèn)Web服務(wù)器的文檔,以后如果不再訪問(wèn)Web服務(wù)器的文檔時(shí),刪除gg即可,而真正的Web服務(wù)器的文檔并沒(méi)有刪除。35時(shí)間設(shè)置n修改系統(tǒng)時(shí)間rootdell vick# dateTue Mar 28 19:20:31 CST 2006rootdell vick#date -s “Mar 28 19:19”rootdell vick #date

20、-s “2006-3-28 19:19” -s,表示修改日期n修改后執(zhí)行clock -w 或clock -systohc到硬件時(shí)鐘,也可以用hwclock命令。36Linux的ShellnShell:外殼,也就是界面nShell的作用接受輸入解釋接受到的輸入信息輸出結(jié)果37Linux的ShellnLinux下常見(jiàn)的Shell-Sh:Bourne shell-Bash:Bourne Again Shell,最常用-Csh:C Shell,加州大學(xué)伯克利分校,與 Bourne Shell基本兼容,但是程序設(shè)計(jì)界面有很大不同-Ksh:Korn Shell,Unix系統(tǒng)下最普遍的-Tcsh:C She

21、ll的加強(qiáng)版-Zsh:Z Shell,最新的Shell,與Bourn Shell兼容38nbourne shellV7時(shí)發(fā)布,作者是AT&T貝爾實(shí)驗(yàn)室的stephen bourne,替代了thompson的sh,成為unix的缺省sh,位于bin/sh.the Boutne Again Shell(1),它們是由FSF員工Brian Fox開(kāi)發(fā)的。39BASH shell特點(diǎn)nbash 是大多數(shù)linux系統(tǒng)的缺省外殼,提供以下一些服務(wù):n補(bǔ)全命令行:按Tab鍵n輸入/輸出重定向:重定向用于改變命令的輸入輸出方向。輸出重定向用于將命令的結(jié)果輸入到文件中,而不是屏幕上。n輸入重定向的命令

22、是。n通配符:在bash下可以使用通配符*和?; *可以替代多個(gè)字符,而?則替代一個(gè)字符。40BASH shell特點(diǎn)n管道:用于將一系列的命令連接起來(lái)。也就是把前面的命令的輸出作為后面的命令的輸入。n作業(yè)控制:可以掛起一個(gè)正在執(zhí)行的進(jìn)程,并在以后恢復(fù)該進(jìn)程的執(zhí)行。按下Ctrl+Z掛起正在執(zhí)行的進(jìn)程,用bg命令使進(jìn)程恢復(fù)在后臺(tái)執(zhí)行,用fg命令使進(jìn)程恢復(fù)在前臺(tái)執(zhí)行。n設(shè)置/刪除環(huán)境變量 設(shè)置:export 變量名=變量值 #TEST=haha; export TEST 查看變量值:#echo $TEST 刪除:unset 變量名 #echo $TEST #unset TEST41管道符號(hào):|n管

23、道符號(hào)是什么?|n管道符號(hào)的作用?將一個(gè)命令的輸出定向成另一個(gè)命令的輸入,如:command1|command2,command1的輸出將成為command2的輸入n通常結(jié)合more&less使用ls-R1 | morecat file1 | more42啟動(dòng)文件/etc/rc.d/rc.local (init)/etc/profile (可設(shè)置環(huán)境變量)/.bash profile(環(huán)境變量,登錄后僅一次)/.bashrc (由/.bash profile調(diào)用,每次打開(kāi)新的 shell時(shí),該文件被運(yùn)行)/etc/bashrc(/.bashrc調(diào)用,所有用戶(hù)) 如果沒(méi)有/.bash p

24、rofile文件時(shí),bash會(huì)查找 /.bash_login,如果也不存在,bash會(huì)查找/.profile文件。 /.bash_logout會(huì)在用戶(hù)logout時(shí)被運(yùn)行,如清除屏幕和臨時(shí)文件等。43Shell常用鍵nCtrl+H: 退格nCtrl+C: 中斷當(dāng)前程序nCtrl+Z:暫停程序,使用fg重新啟動(dòng)程序nCtrl+S:停止輸出(STOP)nCtrl+Q:?jiǎn)?dòng)輸出nCtrl+D:in shell log out 等同于在shell里鍵入exitnCtrl+L:清屏clear screennCtrl+M:回車(chē)r 0 x0DnCtrl+J: 換行n 0 x0A44進(jìn)程管理nps:顯示系統(tǒng)中

25、的進(jìn)程nkill:殺掉進(jìn)程nfg:將后臺(tái)的進(jìn)程放到前臺(tái)運(yùn)行nbg:將某個(gè)進(jìn)程放到后臺(tái)運(yùn)行45ps and kill nps 查看系統(tǒng)中屬于自己的進(jìn)程。ps aux 查看系統(tǒng)中,包含系統(tǒng)內(nèi)部的及所有用戶(hù)的進(jìn)程。(ps -aef)nkill PIDPID:利用ps 命令所查出的進(jìn)程號(hào)。kill 456 終止進(jìn)程號(hào)為456的進(jìn)程。n在后臺(tái)執(zhí)行進(jìn)程的方式語(yǔ)法:命令&例如:gcc file1.c &將編譯file1.c文件的工作置于后臺(tái)執(zhí)行。46bg and fgn按下Ctrl+Z鍵,暫停正在執(zhí)行的進(jìn)程。nbg命令,暫停的進(jìn)程置于后臺(tái)繼續(xù)執(zhí)行。如:gcc sample_1.c(在home

26、bcfile-progarm)ZStoppedbgnfg命令,將后臺(tái)執(zhí)行的進(jìn)程置于前臺(tái)njobs查看正在后臺(tái)中執(zhí)行的進(jìn)程47備份與壓縮n壓縮工具-gzip 和gunzip:壓縮&解壓縮,其實(shí)是同一個(gè)文件,系統(tǒng)通過(guò)分辨命令名來(lái)區(qū)分是壓縮還是解壓縮(壓縮文件,不壓縮目錄)(在homebcfile-progarm) # gzip sample_1.c 得到sample_1.c.gz (see if the original file.) # gunzip sample_1.c.gz得到sample_1.c48tarn將多個(gè)文件(包括目錄)打包(可壓縮)成一個(gè)文件。打成的包常被稱(chēng)為tarbal

27、l。n最常用的命令tar zcvf 1.tar.gz *.gif(或1.tgz也表明是tar.gz格式)tar zxvf 1.tar.gz dir1(dir是一個(gè)目錄)z:使用gzip壓縮 x:解開(kāi)包 c:生成包f:指定文件名 v:顯示詳細(xì)信息 注意:tar的選項(xiàng)z可以不使用49tarn對(duì)于.tar.bz2格式使用bunzip2,可以先解壓為.tar格式 # bunzip2 foo.tar.bz2得foo.tar # tar xvf foo.tarntar jxvf*.tar.bz2 注意:j代表bunzip250locaten通過(guò)文件名搜索文件,前提是需要通過(guò)updatedb建立索引數(shù)據(jù)庫(kù);

28、nrootlocalhost#updatedb(需要一定的時(shí)間)n舉例:要找samba.conf文件都位于哪些位置:n#locate samba.conf51whereisn用來(lái)尋找命令及其幫助文件。n比如你想知道fdisk工具放在哪里,就可以用whereis fdisk來(lái)查找;n#whereis fdiskfdisk:/sbin/fdisk/usr/share/man/man8/fdisk.8.gz52whichnwhich和where相似,只是在設(shè)置的環(huán)境變量PATH中尋找;比如;n#which fdisk/sbin/fdisk53grepngrep:在指定的文件中查找一個(gè)字符串例如:-r

29、ootbc#grep “add” *.c bar.c:int add(int x,int y) foo.c: printf(“x+y=%3dn”,add(x,y);注意:在文件所在的當(dāng)前目錄查找54findn根據(jù)給定的參數(shù)在指定目錄中查找文件 findpath.expression -find /usr/include -name ”stdio.h” -find . mtime +6 mtime -86天以前8天以?xún)?nèi)修改過(guò)的文件。 +n,great than n,-n less than n,n exactly n. -find . -size +10c -size -20c 搜索文件介于10

30、byte到20byte之間。 -size nbckw55用戶(hù)管理nuseradd,adduser:添加用戶(hù)添加用戶(hù) - useradd ahkangnpasswd:添加用戶(hù)密碼添加用戶(hù)密碼-#passwd ahkangnuserdel-#userdel ahkang ngroupadd :添加組:添加組#groupadd voipngroupdel-# groupdel voipnUsermod:修改用戶(hù)名:修改用戶(hù)名-#usermod G voip ahkang(在管理員身份下才可進(jìn)行)(在管理員身份下才可進(jìn)行)56文件系統(tǒng)的掛載與卸載nmount:掛載文件系統(tǒng)格式:mount -t fst

31、ype device mount-point例:mount -t vfat/dev/sda1 /mnt/usbdisknumount:卸載文件系統(tǒng)格式:umount device OR umount mount-point例:umount/dev/sda1n系統(tǒng)啟動(dòng)時(shí)自動(dòng)掛載文件系統(tǒng):/etc/fstab57n-t typeminix, ext2, msdos, vfat(win95/98)nfs, iso9660, ntfs(winNT), hpfs(OS/2),auto(自動(dòng)檢測(cè)文件系統(tǒng))n列出目前加載的ext2文件系統(tǒng)mount -t ext2n模擬加載,查看mount的執(zhí)行過(guò)程,配合-

32、v58文件系統(tǒng)的掛載與檢查nLinux下使用光盤(pán)掛載:mount t iso9660/dev/cdrom/ mnt/cdrom 卸載:umount/dev/cdrom $eject $eject-t (彈出和收回光驅(qū))n檢查與修復(fù)文件系統(tǒng)命令:fsck t type device 例:fsck t ext2/dev/hda259/proc文件系統(tǒng)n一種虛擬文件系統(tǒng):內(nèi)核和內(nèi)核模塊用來(lái)向進(jìn)程(process)發(fā)送信息的機(jī)制(所以叫做/proc)n訪問(wèn)方式:基于文件的接口,與其他文件系統(tǒng)一樣,只是訪問(wèn)的內(nèi)容由內(nèi)核提供,而不是由存儲(chǔ)介質(zhì)提供60/proc文件系統(tǒng)n用途查看計(jì)算機(jī)信息查看內(nèi)核狀態(tài)查看運(yùn)

33、行中的進(jìn)程信息運(yùn)行中改變系統(tǒng)設(shè)置驅(qū)動(dòng)調(diào)試n查看/proc文件系統(tǒng)61/proc文件系統(tǒng)ncat /proc/cpuinfo CPUncat /proc/interrupts 中斷ncat /proc/ioports 設(shè)備IO端口ncat /proc/meminfo 內(nèi)存信息ncat /proc/partitions 所有設(shè)備的所有分區(qū)ncat /proc/pci PCI設(shè)備的信息ncat /proc/swaps 所有Swap分區(qū)的信息ncat /proc/versionLinux的版本號(hào)uname a 看系統(tǒng)內(nèi)核等信息62最基本的網(wǎng)絡(luò)管理nnetconfig:進(jìn)行網(wǎng)絡(luò)配置改動(dòng)的是/etc/sy

34、sconfig/network-scripts/ifcfg-eth?nping:用于網(wǎng)絡(luò)檢測(cè)#ping nifconfig:網(wǎng)絡(luò)配置和網(wǎng)絡(luò)參數(shù)查看# ifconfignnetstat 查看網(wǎng)絡(luò)狀況63如果你碰到這些問(wèn)題?n實(shí)際使用中需要兩臺(tái)機(jī)器,但是現(xiàn)實(shí)太殘酷,只有一臺(tái)配置較好的機(jī)器,怎么辦?n需要同一時(shí)間使用兩個(gè)操作系統(tǒng),如一個(gè)Windows和一個(gè)Linux,怎么辦?n如果你想安裝一個(gè)不熟悉的操作系統(tǒng),但是對(duì)于硬件(特別是硬盤(pán))的操作不熟悉時(shí),為了防止損壞數(shù)據(jù),怎么辦?n其他問(wèn)題.64常用服務(wù)器nApache (外部服務(wù)器)n(/usr/local/apache/conf/目錄下,三個(gè)配置文

35、件httpd.conf, access.conf和srm.conf,來(lái)配置Apache服務(wù)器的行為. httpd.conf提供了最基本的服務(wù)器配置,是對(duì)守護(hù)程序 httpd怎么樣運(yùn)行的技術(shù)描述;srm.conf是服務(wù)器的資源映射文件 )nFTPnSambanNFS SSHD(網(wǎng)絡(luò)文件系統(tǒng))nTelnetdnDHCPnNamednSendmail65如何配置文件共享服務(wù)(Samba)n(1)檢查Samba服務(wù)是否打開(kāi)?66n點(diǎn)擊系統(tǒng)設(shè)置,選擇服務(wù)器設(shè)置,最后選擇服務(wù)。n檢查samba是否打開(kāi),如勾上,就代表打開(kāi)了。如沒(méi)有就把smb勾上,再點(diǎn)擊“重啟”。67如何打開(kāi)tftp服務(wù)68如何 打開(kāi)NFS

36、服務(wù)(網(wǎng)際文件共享)n如samba69軟件安裝1. 獲取源碼包2. 配置編譯選項(xiàng)3. 編譯4. 安裝 通常軟件會(huì)給出自己的安裝說(shuō)明。tar xvfz aaa.tar.gz; cd aaa;./configure; make;make install70RPMnRPM是Redhat Package Manager的縮寫(xiě),是由RedHat公司開(kāi)發(fā)的軟件包安裝和管理程序。nRPM雖然是為L(zhǎng)inux而設(shè)計(jì)的,但是它已經(jīng)移植到 SunOS、Solaris、AIX、Irix等其它UNIX系統(tǒng)上了。71RPM的使用n兩種類(lèi)型的RPM包src rpm與二進(jìn)制rpm,前者含有項(xiàng)目的源代碼,后者主要為項(xiàng)目的可執(zhí)行

37、程序。如:tftp-0.28-2.src.rpm tftp-0.28-2.i386.rpm項(xiàng)目名-版本號(hào)-修改次數(shù).rpm包類(lèi)型.rpm72rpm命令的使用nrpm命令的基本模式安裝:rpm i 查詢(xún):rpm q驗(yàn)證:rpm V刪除:rpm e制作:rpm b一般選項(xiàng):-v 顯示信息-h 用“#“顯示完成的進(jìn)度-vv 顯示調(diào)試信息73常用的命令形式以tftp軟件包tftp.-0.28.2.i386.rpm為例n安裝一個(gè)軟件包rpm-ivh tftp-0.28-2.i386.rpmn卸載一個(gè)軟件包rpm e tftpn查詢(xún)一個(gè)包內(nèi)的信息rpm qiq tftp-0.28-2.i386.rpmn查

38、詢(xún)一個(gè)包內(nèi)有哪些文件rpm qlq tftp-0.28-2.i386.rpm74常用的命令形式n查詢(xún)一個(gè)包是否被安裝rpm q tftpn查詢(xún)一個(gè)被安裝包的信息rpm qi tftp rpm ql tftpn查詢(xún)一個(gè)包是否被正確安裝rpm V tftpn查詢(xún)某個(gè)文件是被哪個(gè)包安裝的rpm qf usr/bin/tftp7576參考資料nLinux一句話精彩問(wèn)答nLinux權(quán)威指南第四版,MATT Welsh等著,洪峰譯n精通LinuxStan Kelly-Bootle著,電子工業(yè)出版社nUnix入門(mén)與提高徐錦波 朱文章,清華大學(xué)出版社nLinux入門(mén)到精通Arman Danesh著 電子工業(yè)出

39、版社nRPM命令大全http:/ 毛德操/胡希明 浙江大學(xué)出版社nUnix環(huán)境高級(jí)編程 Richard Stevens 機(jī)械工業(yè)出版社nUnix網(wǎng)絡(luò)編程卷一套接口API和X/Open傳輸接口APIRichard Stevens 清華大學(xué)出版社nUnix網(wǎng)絡(luò)編程卷二 進(jìn)程間通訊Richard Stevens清華大學(xué)出版社77Thanks!謝謝 謝謝 !78vi主講老師:鄧耀華79演示n用vi寫(xiě)一個(gè)“hello world”n過(guò)程vi hello.ciinput some c text按ESC鍵:wq80Vi與VIMn什么是Vi&VIM?Vi:“Visual”,操作過(guò)程中可以立即看到結(jié)果V

40、IM:“Vi Improved”,與Vi兼容,更適于程序員使用在很多發(fā)行版中,VIM已經(jīng)替代了Vi81啟動(dòng)和退出n如何啟動(dòng)和退出vi&vim?啟動(dòng):vioptionsfilename:w 將編輯緩沖區(qū)的內(nèi)容寫(xiě)入文件:wq 保存文件并退出:w!強(qiáng)行寫(xiě)入。:q!強(qiáng)行退出vi,不保存修改的內(nèi)容w:write, q:quite! 重新編輯,放棄緩沖區(qū)里的內(nèi)容82編輯與非編輯模式n進(jìn)入vi的初始模式是非編輯模式(操作模式)可以移動(dòng)光標(biāo),刪除、復(fù)制和粘貼內(nèi)容n如何進(jìn)入編輯模式?在非編輯模式下輸入i或或a或或o可以進(jìn)入編輯模式(還有其他一些鍵)。n如何回到操作模式按ESC83Vi的使用n新建文件:v

41、i 文件名n編譯: gcc o hello(要輸出的文件名) 輸出:./ 文件名 例如./hello84命令模式n如何進(jìn)入命令模式在操作模式下,輸入:或/或?進(jìn)入該模式,可以實(shí)現(xiàn)查找替代內(nèi)容,讀取,存檔,退出等功能;n如何退出命令模式執(zhí)行命令即自動(dòng)退出命令模式,回到操作模式。85模式之間的轉(zhuǎn)換/,?,:ESCi,I,a,Ar,R,o,O編輯模式編輯模式指令列命令模式指令列命令模式操作模式操作模式86編輯方式a將輸入文本插入在光標(biāo)之后(append)A將輸入文本插入在當(dāng)前行的行尾i將輸入文本插入在光標(biāo)之前(insert)I將輸入文本插入在當(dāng)前行的開(kāi)始o(jì) 將在當(dāng)前行的下一行處打開(kāi)一新行(open)

42、O將在當(dāng)前行的上一行處打開(kāi)一新行r 替換當(dāng)前字符,不需按ESC。(replace)R 從當(dāng)前字符開(kāi)始進(jìn)行替換,至ESC鍵為止。87剪切、復(fù)制、粘貼n如何剪切一行? dd (delete)n如何復(fù)制一行?yy (yank)n如何粘貼? p或者P (paste)n剪切和復(fù)制n行? ndd nyy88有很多細(xì)節(jié).n如以y與Y命令為例yy 復(fù)制當(dāng)前行;(*)nyw復(fù)制從當(dāng)前字符開(kāi)始的n個(gè)字;(*)ny$復(fù)制從當(dāng)前字符開(kāi)始的n行字符; (*)Y與y$同義;y)復(fù)制到下一句的開(kāi)始:y復(fù)制到下一段的開(kāi)始;nyy復(fù)制從當(dāng)前行開(kāi)始的n行;(*)y 回車(chē)復(fù)制兩行;(*)89光標(biāo)的定位 或k向上移一行 或j向下移一

43、行 或h左移一個(gè)字符 或l右移一個(gè)字符CTRL+f 向前(上)移動(dòng)一滿(mǎn)屏幕(forward)CTRL+b 向后(下)移動(dòng)一滿(mǎn)屏幕(backward)CTRL+d 向前(上)移動(dòng)半屏幕(down)CTRL+u 向后(下)移動(dòng)半屏幕(up)0 移到當(dāng)前行的開(kāi)始$移到當(dāng)前行的結(jié)尾回車(chē)符移到下一行的開(kāi)始可在命令前加入數(shù)字n作為前綴,使相應(yīng)命令執(zhí)行n次。90光標(biāo)的定位nG使光標(biāo)定位在第n行。gg光標(biāo)移動(dòng)到文件的開(kāi)頭G光標(biāo)移動(dòng)到文件的結(jié)尾:0光標(biāo)移動(dòng)到文件的第1行:n光標(biāo)移動(dòng)到文件的第n行: $光標(biāo)移動(dòng)到文件的最后一行91回顧n如何由編輯模式進(jìn)入一般模式?-按ESCn如何移動(dòng)到一行的開(kāi)始和結(jié)尾?-在一般模

44、式下按0和$n如何移動(dòng)到文檔的開(kāi)頭和結(jié)尾?-移動(dòng)到開(kāi)頭gg或:1-移動(dòng)到結(jié)尾G或:$92回顧n如何向前或向后翻一頁(yè)?-Page Down/Page Up-Ctrl+f/Ctrl+bn檢索和替換的命令格式?-:addrs/s1/s2/optionn如何undo和redo-u,ctrl+r93參考文獻(xiàn)n入門(mén)學(xué)習(xí)Vim Tutor(運(yùn)行vimtutor命令)n最快捷的幫助Online HelpnDoc:-Vim User ManualnWebsites:-VIM homepage-水木社區(qū)VIM版94謝謝 謝謝 !95Welcome!Linux 下的C/C+編譯器主

45、講老師:鄧耀華96GCC編譯器97示例great.c#includevoid main(void)printf(“hello,how are youn”);vicknec gcc-lab$ gcc o hello hello.cgreat.c:In functionmain:great.c:3:warning:return type of main is not int98GCC nGCC是什么? -GCC:GNU Compiler Collection; -GCC支持多種硬件平臺(tái)和操作系統(tǒng),能編譯多種語(yǔ)言 (C,C+,Java,Ada95,Objective C, .ect);-GCC與G+

46、的關(guān)系:GCC用于編譯多種語(yǔ)言編寫(xiě)的程序,主要是C;G+用于編譯C+程序,以GCC為基礎(chǔ),編譯過(guò)程中加入了C+的支持庫(kù),參數(shù)與GCC基本一致;可以利用GCC編譯C+程序,但是需要在參數(shù)中加入引用的C+庫(kù),比如;libstdc+(如gcc o out -lstdc+ main.cc)。99編譯器與庫(kù)PreprocessorCompiler前端前端后端后端OptimizerAssemblerLinker.o.sa.out.cC預(yù)處理預(yù)處理匯編匯編優(yōu)化優(yōu)化語(yǔ)法語(yǔ)義分析語(yǔ)法語(yǔ)義分析代碼生成代碼生成鏈接鏈接GCC編譯C源碼步驟:預(yù)處理- 編譯 - 匯編 - 鏈接100后綴n.c C源代碼n.hC頭文件n

47、.o目標(biāo)代碼(obj)n.s匯編代碼文件nC+文件-file.hh,file.HC+頭文件-file.C,file.cc,file.cxx等C+源文件101選項(xiàng)n-E輸出預(yù)處理結(jié)果(輸出終端)n-S 輸出匯編代碼(great.s)n-c輸出目標(biāo)代碼(great.o)n-o file 輸出名為file的可執(zhí)行文件名 (缺省為a.out)n-O O2 優(yōu)化編譯n-g: 產(chǎn)生可用于調(diào)試的輸出102示例ngcc o main I./include -DDebug g main.c 輸出文件輸出文件 頭文件搜索目錄頭文件搜索目錄 定義宏定義宏 用于調(diào)試用于調(diào)試 源文件源文件103預(yù)處理(Pre-proc

48、essing)n在該階段,編譯器將C源代碼中的包含的頭文件如stdio.h編譯進(jìn)來(lái),用戶(hù)可以使用gcc的選項(xiàng)”-E”進(jìn)行查看。n用法:#gcc -E hello.c -o hello.in作用:將hello.c預(yù)處理輸出hello.i文件。104nroot# gcc -E hello.c -o hello.iroot# lshello.c hello.iroot# vi hello.in# 1 hello.c# 1 # 1 # 1 hello.c# 1 /usr/include/stdlib.h 1 3# 25 /usr/include/stdlib.h 3# 1 /usr/include/f

49、eatures.h 1 3# 291 /usr/include/features.h 3# 1 /usr/include/sys/cdefs.h 1 3# 292 /usr/include/features.h 2 3# 314 /usr/include/features.h 3# 1 /usr/include/gnu/stubs.h 1 3# 315 /usr/include/features.h 2 3# 26 /usr/include/stdlib.h 2 3# 3 hello.c 2nvoid main(void) printf(hello world!rn);105編譯階段(Comp

50、iling) n第二步進(jìn)行的是編譯階段,在這個(gè)階段中,Gcc首先要檢查代碼的規(guī)范性、是否有語(yǔ)法錯(cuò)誤等,以確定代碼的實(shí)際要做的工作,在檢查無(wú)誤后,Gcc把代碼翻譯成匯編語(yǔ)言。n用戶(hù)可以使用”-S”選項(xiàng)來(lái)進(jìn)行查看,該選項(xiàng)只進(jìn)行編譯而不進(jìn)行匯編,生成匯編代碼 n用法:root# gcc S hello.i o hello.sn作用:將預(yù)處理輸出文件hello.i匯編成hello.s文件 106nrootrichard hello-gcc# lsnhello.c hello.i hello.sn如下為hello.s匯編代碼nrootrichard hello-gcc# vi hello.s n.fil

51、e hello.c.section .rodata.LC0:.string hello world!rn.text.globl main.type main,functionmain:pushl %ebpmovl %esp, %ebpsubl $8, %espandl $-16, %espmovl $0, %eaxsubl %eax, %espsubl $12, %esppushl $.LC0call printfaddl $16, %espmovl $0, %eaxleaveret.Lfe1:.size main,.Lfe1-main.ident GCC: (GNU) 3.2.2 20030

52、222 (Red Hat Linux 3.2.2-5)107匯編階段(Assembling) n匯編階段是把編譯階段生成的”.s”文件轉(zhuǎn)成二進(jìn)制目標(biāo)代碼.n選項(xiàng) -cn用法:root# gcc c hello.s o hello.on作用:將匯編輸出文件test.s編譯輸出test.o文件。root# gcc -c hello.s -o hello.oroot# lshello.c hello.i hello.o hello.s108鏈接階段(Link) n在成功編譯之后,就進(jìn)入了鏈接階段。n無(wú)選項(xiàng)鏈接n用法:root# gcc hello.o o hello.exen作用:將編譯輸出文件he

53、llo.o鏈接成最終可執(zhí)行文件hello.exe。nroot# lsnhello.c hello.exe hello.i hello.o hello.s109n運(yùn)行該可執(zhí)行文件,出現(xiàn)正確的結(jié)果如下。nrootlocalhost Gcc# ./hellonHello World!n在這里涉及到一個(gè)重要的概念:函數(shù)庫(kù)。n程序中并沒(méi)有定義”printf”的函數(shù)實(shí)現(xiàn),且在預(yù)編譯中包含進(jìn)的”stdio.h”中也只有該函數(shù)的聲明,而沒(méi)有定義函數(shù)的實(shí)現(xiàn),那么,是在哪里實(shí)現(xiàn)”printf”函數(shù)的呢?n系統(tǒng)把這些函數(shù)實(shí)現(xiàn)都被做到名為libc.so.6的庫(kù)文件中去了,在沒(méi)有特別指定時(shí),gcc會(huì)到系統(tǒng)默認(rèn)的搜索路徑

54、”/usr/lib”下進(jìn)行查找,也就是鏈接到libc.so.6庫(kù)函數(shù)中去,這樣就能實(shí)現(xiàn)函數(shù)”printf” 了,而這也就是鏈接的作用。110n你可以用ldd命令查看動(dòng)態(tài)庫(kù)加載情況:nroot# ldd hello.exenlibc.so.6 = /lib/tls/libc.so.6 (0 x42000000)n/lib/ld-linux.so.2 = /lib/ld-linux.so.2 (0 x40000000)111與庫(kù)和路徑相關(guān)選項(xiàng)n-l name 鏈接庫(kù)文件名為libname.a或libname.so的庫(kù)n-I dir 在dir這個(gè)目錄尋找被include的文件n-L dir在dir這

55、個(gè)目錄尋找被-L的庫(kù)112Thanks!謝謝 謝謝 !113Makefile主講老師:鄧耀華114想一想n一個(gè)工程含有20個(gè).c文件,18個(gè).h文件,每次改完程序,比如說(shuō)改動(dòng)了一個(gè)頭文件1.h,重新將20個(gè)文件編譯一次,還是說(shuō)只編譯含有1.h的那個(gè)文件?n如果選前者,當(dāng)工程增加到100個(gè)文件,每編譯一次等待的時(shí)間是否可以容忍?n如果選后者,要記住哪個(gè).c包含了1.h,如果記漏了,會(huì)出現(xiàn)什么情況。115make和makefile n在shell的提示符號(hào)下,鍵入“make”,則它會(huì)到當(dāng)前的目錄下先后找尋“makefile”和”Makefile”文件,并按該文件所記錄的規(guī)則執(zhí)行相應(yīng)的動(dòng)作。nmak

56、e與makefile 的作用自動(dòng)化:一條命令均可靈敏:只涉及新變動(dòng)的部分管理作用:管中窺豹116一個(gè)簡(jiǎn)單的makefilenCC=gcc (定義變量“CC”,將gcc賦值給CC)nfoo : foo.c (規(guī)則) $(CC) o foo foo.c (這一行,必須使用一個(gè)tab字符,$:應(yīng)用變量)n完成編譯,保存為makefile,在shell命令下輸入make命令即可使用myprog:foo.o bar.ogcc foo.o bar.o o myprogfoo.o:foo.c foo.h bar.hgcc c foo.c o foo.obar.o:bar.c bar.hgcc c bar.c

57、 o bar.o117makefile基本內(nèi)容1、解釋與續(xù)行任何以“#”為開(kāi)頭的文字皆為解釋?zhuān)枰m(xù)行時(shí)鍵入字符,然后緊跟回車(chē)。2、變量,或宏(variable or macro)如:CFLAGS=-Wall O g3、規(guī)則,由目標(biāo)、依賴(lài)和命令組成。target. : prerequisites(依賴(lài)).(這里必須按Tab鍵)command. .這里必須是一個(gè)這里必須是一個(gè)tab鍵導(dǎo)致的空白鍵導(dǎo)致的空白。118make的行為準(zhǔn)則1、make把第一個(gè)目標(biāo)做為其最終目標(biāo)。如果在make調(diào)用時(shí)指定目標(biāo),就以指定的目標(biāo)為最終目標(biāo),如make clean。然后處理含有這個(gè)目標(biāo)的規(guī)則。2、處理規(guī)則,如果規(guī)

58、則的目標(biāo)不存在或存在但比依賴(lài)中的某個(gè)舊,則執(zhí)行規(guī)則中的命令。注意注意!在查看目標(biāo)是否存在或查看依賴(lài)是否比當(dāng)前新在查看目標(biāo)是否存在或查看依賴(lài)是否比當(dāng)前新之前,先看看之前,先看看依賴(lài)中的每一項(xiàng)依賴(lài)中的每一項(xiàng),本身是不是某條規(guī)本身是不是某條規(guī)則的目標(biāo)則的目標(biāo),如果是,如果是,先處理那條規(guī)則先處理那條規(guī)則。119一個(gè)簡(jiǎn)單的makefilenmake 把第一個(gè)目標(biāo)myprog做為其主要目標(biāo)1、比較比較myprog的第一個(gè)依賴(lài)的第一個(gè)依賴(lài)foo.o是否比是否比myprog新新,比較之前,比較之前,先先查找查找foo.o是否為其它規(guī)則的目標(biāo)是否為其它規(guī)則的目標(biāo)。2、找到關(guān)于、找到關(guān)于foo.o的規(guī)則的規(guī)則,

59、該文件的,該文件的依賴(lài)文件是依賴(lài)文件是foo.c,foo.h和和bar.h3、再找這些、再找這些依賴(lài)是否為別的規(guī)則的目標(biāo)依賴(lài)是否為別的規(guī)則的目標(biāo),找不到,開(kāi)始檢查這些依,找不到,開(kāi)始檢查這些依賴(lài)文件賴(lài)文件是否比是否比f(wàn)oo.o新新。如果這些文件中任何一個(gè)的修改時(shí)間。如果這些文件中任何一個(gè)的修改時(shí)間比比f(wàn)oo.o的新,命令的新,命令gcc o foo.o foo.c將會(huì)執(zhí)行將會(huì)執(zhí)行,從而,從而更新文更新文件件foo.o。如果找不到,則不動(dòng)作。如果找不到,則不動(dòng)作。4、處理第二個(gè)依賴(lài)、處理第二個(gè)依賴(lài)bar.o.5、處理完處理完foo.o和和bar.o,然后,然后比較看是否比比較看是否比myprog

60、新新。如。如果果myprog不存在,或者存在但比文件不存在,或者存在但比文件foo.o或或bar.o中的任何一個(gè)舊,則執(zhí)行中的任何一個(gè)舊,則執(zhí)行g(shù)cc foo.o bar.o o myprog。如果不。如果不新,不動(dòng)作。新,不動(dòng)作。120使用變量替換OBJS=foo.o bar.oCC=gccCFLAGS=-Wall O g(-o -o1 -o2 -o3表示優(yōu)化的級(jí)別,-o是最小,-o3最高)myprog:$( OBJS)$(CC)$( OBJS) o myprogfoo.o: foo.c foo.h bar.h$(CC)$( CFLAGS) c foo.c o foo.obar.o: bar.c bar.h$(CC)$( CFLAGS) c bar

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論