




已閱讀5頁,還剩170頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)一 Red Hat9的安裝1 實(shí)驗(yàn)?zāi)康膌 了解LINUX的安裝過程2 實(shí)驗(yàn)設(shè)備l 硬件:SinoSys-M3實(shí)驗(yàn)平臺,PC機(jī)3 實(shí)驗(yàn)原理簡單地說,Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。它主要用于基于Intel x86系列CPU的計(jì)算機(jī)上。這個系統(tǒng)是由全世界各地的成千上萬的程序員設(shè)計(jì)和實(shí)現(xiàn)的。其目的是建立不受任何商品化軟件的版權(quán)制約的、全世界都能自由使用的Unix兼容產(chǎn)品 !Linux以它的高效性和靈活性著稱。Linux模塊化的設(shè)計(jì)結(jié)構(gòu),使得它既能在價(jià)格昂貴的工作站上運(yùn)行,也能夠在廉價(jià)的PC機(jī)上實(shí)現(xiàn)全部的Unix特性,具有多任務(wù)、多用戶的能力。Linux是在GNU公共許可權(quán)限下免費(fèi)獲得的,是一個符合POSIX標(biāo)準(zhǔn)的操作系統(tǒng)。Linux操作系統(tǒng)軟件包不僅包括完整的Linux操作系統(tǒng),而且還包括了文本編輯器、高級語言編譯器等應(yīng)用軟件。它還包括帶有多個窗口管理器的X-Windows圖形用戶界面,如同我們使用Windows NT一樣,允許我們使用窗口、圖標(biāo)和菜單對系統(tǒng)進(jìn)行操作。Linux具有Unix的優(yōu)點(diǎn):穩(wěn)定、可靠、安全,有強(qiáng)大的網(wǎng)絡(luò)功能。在相關(guān)軟件的支持下,可實(shí)現(xiàn)WWW、FTP、DNS、DHCP、E-mail等服務(wù),還可作為路由器使用,利用ipchains/iptables可構(gòu)建NAT及功能全面的防火墻。Linux有很多發(fā)行版本,較流行的有:RedHat Linux、Debian Linux、RedFlag Linux等。 RedHat Linux,支持Intel,Alpha和SPARC平臺,具有豐富的軟件包。可以說,RedHat Linux是Linux世界中非常容易使用的版本,它操作簡單,配置快捷,獨(dú)有的RPM模塊功能使得軟件的安裝非常方便。Debian Linux基于標(biāo)準(zhǔn)LINUX內(nèi)核,包含了數(shù)百軟件包,如GNU軟件,TeX,X Windows系統(tǒng)等。每一個軟件包均為獨(dú)立的模塊單元,不依賴于任何特定的系統(tǒng)版本,每個人都能創(chuàng)建自己的軟件包。Debian Linux是一套非商業(yè)化的由眾多志愿者共同努力而成的LINUX.RedFlag Linux(紅旗Linux)是Linux的一個發(fā)展產(chǎn)品,由中科紅旗軟件技術(shù)有限公司開發(fā)研制的以 Intel和Alpha芯片為CPU構(gòu)成的服務(wù)器平臺上第一個國產(chǎn)的操作系統(tǒng)版本。它標(biāo)志著我國在發(fā)展國產(chǎn)操作系統(tǒng)的道路上邁出了堅(jiān)實(shí)的一步。 相對于Windows操作系統(tǒng)及Unix操作系統(tǒng)來講,Linux憑借其開放性及低成本,已 經(jīng)在服務(wù)器操作系統(tǒng)市場獲得了巨大發(fā)展。但由于其操作界面復(fù)雜,一時(shí)難以讓普通 PC用戶接受。GNOME是GNU組織中專門開發(fā)桌面環(huán)境的項(xiàng)目。GNOME作為開放源代碼的 軟件開發(fā)成果,基于兼容性良好的CORBA技術(shù),與Linux系統(tǒng)相輔相成,帶給用戶更加 友好的界面,更多的使用、檢查、修改及分發(fā)自由。與同是開放源代碼圖形用戶界面 的KDE相比較,GNOME表現(xiàn)得更能減輕其他公司創(chuàng)建Linux桌面應(yīng)用的勞動。GNOME已經(jīng) 成為業(yè)內(nèi)人士普遍看好的一個趨勢性軟件。繼服務(wù)器版1.0、桌面版2.0、嵌入式Linux之后,紅旗最近又推出了新產(chǎn)品-紅 旗服務(wù)器2.0和紅旗網(wǎng)絡(luò)商務(wù)通等多種發(fā)行版本和相關(guān)。目前,紅旗軟件已在中國市場 上已奠定了一個堅(jiān)實(shí)的基礎(chǔ),成為新一代的操作系統(tǒng)先鋒。Copyright 2003-2006 SinoSys Technologies, Inc. All rights reserved. -175 - E-mail: 4 實(shí)驗(yàn)步驟在開始安裝Linux之前,請首先收集一下相關(guān)硬件信息。如果不能確定系統(tǒng)對硬件的兼容性可以到進(jìn)行查詢。為Linux準(zhǔn)備一個5G以上空間(建議值)大小的分區(qū)。如果使用VM Ware的話,相關(guān)的設(shè)置請查看網(wǎng)上相交的教程。然后就可以開始我們的Linux安裝之旅了。4.1 第一步首先我們準(zhǔn)備好三張安裝光盤,用第一張光盤引導(dǎo)計(jì)算機(jī)。從光盤啟動后會出現(xiàn)如圖1所示畫面,這是一個提示符狀態(tài),可以通過輸入不同的命令來選擇不同的安裝模式。1.圖形安裝(直接回車) 2.文本安裝(輸入 linux text)為了避免不必要的麻煩,我們直接按回車鍵,用缺省模式安裝。圖14.2 第二步然后會詢問用戶是否對光盤完整性進(jìn)行檢查,如圖2,一般來說選擇Skip就可以。圖24.3 第三步接下來就進(jìn)入了Red Hat Linux的圖形安裝界面如圖3所示。Red Hat Linux的安裝向?qū)У闹悄芑潭纫埠芨?,通過使用鼠標(biāo)指指點(diǎn)點(diǎn)就可以完成安裝。圖34.4 第四步選擇在整個安裝過程中使用的語言如圖4所示,這里我們當(dāng)然選擇“Chinese(Simplified)(簡體中文)”。圖44.5 第五步鍵盤配置如圖5所示,選擇U.S. English。PS:除非使用特殊鍵盤類型,否則不需要對鍵盤進(jìn)行特殊配置圖54.6 第六步鼠標(biāo)配置如圖6所示,安裝程序通常會選擇正確的鼠標(biāo)類型,直接單擊“下一步”。圖64.7 第七步 選擇安裝類型如圖7所示,Red Hat提供了三種不同類型的軟件包套件,個人桌面,工作站和服務(wù)器。可以根據(jù)自己的需要選擇不同的安裝類型。這里我們選擇“定制”。圖74.8 第八步硬盤分區(qū)如圖8所示。Linux操作系統(tǒng)下分區(qū)劃分和Windows的不同。習(xí)慣了Windows工作模式的朋友在這一步可能會遇到困難。但是不要害怕,下面的每一步都弄明白就可以順利完成分區(qū)過程。選擇“用 Disk Druid 手工分區(qū)”,單擊“下一步”。這里選擇“自動分區(qū)”會有破壞硬盤原有數(shù)據(jù)的可能性。圖84.9 第九步開始對硬盤進(jìn)行分區(qū)如圖9所示,在這里可以看到目前現(xiàn)有磁盤的分區(qū)情況。我們可以通過雙擊空閑的磁盤空間或者點(diǎn)擊“新建”按鈕來為Linux創(chuàng)建一個新的分區(qū)。圖94.10 第十步我們雙擊空閑的磁盤分區(qū),會出現(xiàn)一個添加分區(qū)的對話框如圖10所示,在“掛載點(diǎn)”的下拉列表中選擇/,也就是“根掛載點(diǎn)”。在“文件系統(tǒng)類型”的下拉列表中選擇ext3,這個是Linux所使用的文件系統(tǒng)類型。為分區(qū)指定空間大小,起始柱面不需要更改,點(diǎn)擊終止柱面輸入框后面的上下箭頭來根據(jù)需要調(diào)整分區(qū)大小。點(diǎn)擊“確定”按鈕。在整個Linux系統(tǒng)中有且只有一個根掛載點(diǎn),這個將是整個系統(tǒng)的根目錄。Linux并不像Windows和DOS操作系統(tǒng)有很多盤符,每個盤符都有一個“根目錄”。Linux系統(tǒng)下的/目錄永遠(yuǎn)是目錄樹的最底層。圖104.11 第十一步雙擊空閑空間為Linux系統(tǒng)創(chuàng)建頁面分區(qū)如圖11所示。在“文件系統(tǒng)類型”下拉列表中選擇swap,通過調(diào)整終止柱面來制定分區(qū)大小。點(diǎn)擊“確定”按鈕。swap空間的大小一般為物理內(nèi)存的2-3倍。如果不知道物理內(nèi)存的具體數(shù)值,可以點(diǎn)擊終止柱面數(shù)據(jù)框后面的上下箭頭來把“大小(MB)”后面的數(shù)值調(diào)整為512(4),一般來說都可以滿足需要。圖114.12 第十二步(可選) 默認(rèn)情況下Linux系統(tǒng)下的應(yīng)用程序的是存放在/usr目錄的,如果空間充足可以為/usr目錄單獨(dú)指定掛載點(diǎn)。如圖12所示,在“掛載點(diǎn)”后的下拉列表中選擇/usr,其他項(xiàng)目設(shè)置方法同“第九步”圖124.13 第十三步引導(dǎo)裝載程序設(shè)置如圖13所示?,F(xiàn)在多系統(tǒng)共存已經(jīng)是司空見慣了的事情了。Red Hat提供的GRUB工具提供了多系統(tǒng)啟動的解決方案。直接單擊下一步就可以了。圖134.14 第十四步網(wǎng)絡(luò)配置如圖14所示,這個根據(jù)自己的網(wǎng)絡(luò)情況進(jìn)行相應(yīng)配置。如果對網(wǎng)絡(luò)不是很了解??梢灾苯訂螕粝乱徊教^。圖144.15 第十五步防火墻配置如圖15所示。Red Hat提供了三種安全級別的防火墻配置,可以根據(jù)自己的需要進(jìn)行選擇。如果作為服務(wù)器,那么需要打開提供服務(wù)使用的端口。 因?yàn)槲覀兊腞ed Hat只用于開發(fā),因此不需要防火墻。圖154.16 第十六步附加語言支持如圖16所示,選擇可能會用到的語言,以提供相關(guān)語言的顯示、輸入。圖164.17 第十七步設(shè)置時(shí)區(qū)如圖17所示。圖174.18 第十八步設(shè)置根口令如圖18所示。Linux系統(tǒng)下有一個根用戶,在系統(tǒng)中擁有至高無上的權(quán)利,用戶名是root。一般來說只有在對系統(tǒng)進(jìn)行管理時(shí)才使用此用戶。建議密碼滿足一定復(fù)雜性要求。圖184.19 第十九步驗(yàn)證配置如圖19所示。如果沒有特殊要求,或者不知道這個是什么。請單擊下一步。圖194.20 第二十步(在第七步選擇“定制”的情況下)選擇軟件包如圖20所示。Red Hat為用戶提供豐富的應(yīng)用軟件,按功能進(jìn)行了分類。如果你想編譯內(nèi)核或QT時(shí)少出問題,請選擇“全部”。圖204.21 第二十一步準(zhǔn)備開始安裝如圖21所示全部工作都做好后,就可以開始進(jìn)行文件復(fù)制了。圖214.22 第二十二步安裝過程中會提示更換光盤如圖22所示。圖224.23 第二十三步換第三張盤!圖234.24 第二十四步隨便你選不選擇!圖234.25 第二十五步完成Linux的安裝,單擊退出按鈕,Linux就可以啟動工作了。如圖26所示圖245 實(shí)驗(yàn)思考5.1 Linux與Windows操作系統(tǒng)在磁盤的管理上有什么差別?實(shí)驗(yàn)二 Linux基礎(chǔ)命令1 實(shí)驗(yàn)?zāi)康膌 熟練運(yùn)行Linux的基礎(chǔ)命令2 實(shí)驗(yàn)設(shè)備l 硬件:PC機(jī)l 軟件:Red Hat93 實(shí)驗(yàn)原理Linux雖然是免費(fèi)的,但它的確是一個非常優(yōu)秀的操作系統(tǒng),與MSWINDOWS相比具有可靠、 穩(wěn)定、速度快等優(yōu)點(diǎn),且擁有豐富的根據(jù)UNIX版本改進(jìn)的強(qiáng)大功能。下面,作為一個典型的DOS 和WINDOWS用戶,讓我們一起來學(xué)習(xí)Linux的一些主要命令,希望大家能盡快進(jìn)入到Linux的世界里。3.1 su su命令是最基本的命令之一,常用于不同用戶間切換。例如,如果登錄為 user1,要切換為user2,只要用如下命令: $su user2 然后系統(tǒng)提示輸入user2口令,輸入正確的口令之后就可以切換到user2。完成之后就可以用exit命令返回到user1。 su命令的常見用法是變成根用戶或超級用戶。如果發(fā)出不帶用戶名的su命令 ,則系統(tǒng)提示輸入根口令,輸入之后則可切換為根用戶。 如果登錄為根用戶,則可以用su命令成為系統(tǒng)上任何用戶而不需要口令。 3.2 pwd pwd命令也是最常用最基本的命令之一,用于顯示用戶當(dāng)前所在的目錄。 3.3 cd cd命令不僅顯示當(dāng)前狀態(tài),還改變當(dāng)前狀態(tài),它的用發(fā)跟dos下的cd命令基本一致。 cd .可進(jìn)入上一層目錄 cd -可進(jìn)入上一個進(jìn)入的目錄 cd 可進(jìn)入用戶的home目錄 3.4 ls ls命令跟dos下的dir命令一樣,用于顯示當(dāng)前目錄的內(nèi)容。 如果想取得詳細(xì)的信息,可用ls -l命令, 這樣就可以顯示目錄內(nèi)容的詳細(xì)信息。 如果目錄下的文件太多,用一屏顯示不了,可以用ls -l |more分屏顯示 。3.5 catcat通常是用來在屏幕上滾動顯示文件的內(nèi)容。它的格式是: catfilename3.6 find find命令用于查找文件。這個命令可以按文件名、建立或修改日期、所有者(通常是建立文件的用戶)、文件長度或文件類型進(jìn)行搜索。 find命令的基本結(jié)構(gòu)如下: $find 其中指定從哪個目錄開始搜索。指定搜索條件。表示找到文件怎么處理。一般來說,要用-print動作,顯示 整個文件路徑和名稱。如果沒有這個動作,則find命令進(jìn)行所要搜索而不顯示結(jié)果,等于白費(fèi)勁。 例如,要搜索系統(tǒng)上所有名稱為ye的文件,可用如下命令: $find / -name ye -print 3.7 tar tar最初用于建立磁帶備份系統(tǒng),目前廣泛用于建立文件發(fā)布檔案??捎萌缦路椒ńar檔案: $tar cvf 例如,如果要將當(dāng)前目錄中所有文件存檔到y(tǒng)e.tar中,可用如下命令: $tar cvf ye.tar *.* 要瀏覽檔案內(nèi)容,將c選項(xiàng)變成t。如果要瀏覽ye.tar檔案中的內(nèi)容,可用如下命令: $tar tvf ye.tar 要取出檔案內(nèi)的內(nèi)容,將c選項(xiàng)變成x。如果要將ye.tar檔案中的內(nèi)容取到當(dāng)前目錄中,可用如下命令: $tar xvf ye.tar 3.8 gzip gzip命令用于壓縮文件。 例如,如果要將ye.txt文件壓縮,可用如下命令: $gzip ye.txt 這樣就可以壓縮文件并在文件名后面加上gz擴(kuò)展名,變成文件ye.txt.gz。 解壓縮文件可用gzip -d命令實(shí)現(xiàn): $gzip -d ye.txt.gz 這樣就可以解壓縮文件并刪除gz擴(kuò)展名。除此之外還可以用gunzip命令來解 壓縮文件,效果跟用gzip -d命令一樣。 舊版的tar命令不壓縮檔案,可用gzip壓縮。例如: $tar cvf ye.tar *.txt $gzip ye.tar 則可建立壓縮檔案ye.tar.gz。 新版的tar可以直接訪問和建立gzip壓縮的tar檔案,只要在tar命令中加上z 選項(xiàng)就可以了。例如: $tar czvf ye.tar *.txt 生成壓縮檔案ye.tar.gz, $tar tzvf ye.tar *.txt 顯示壓縮檔案ye.tar.gz的內(nèi)容,而 $tar xzvf ye.tar *.txt 取出壓縮檔案ye.tar.gz的內(nèi)容。 3.9 mkdir 這個命令很簡單,跟dos的md命令用法幾乎一樣,用于建立目錄。 3.10 cp cp命令用于復(fù)制文件或目錄。 cp命令可以一次復(fù)制多個文件,例如: $cp *.txt *.doc *.bak /home 將當(dāng)前目錄中擴(kuò)展名為txt、doc和bak的文件全部復(fù)制到/home目錄中。 如果要復(fù)制整個目錄及其所有子目錄,可以用cp -R命令。 3.11 rm rm命令用于刪除文件或目錄。 rm命令會強(qiáng)制刪除文件,如果想要在刪除時(shí)提示確認(rèn),可用rm -i命令。 如果要刪除目錄,可用rm -r命令。rm -r命令在刪除目錄時(shí),每刪除一個文件或目錄都會顯示提示,如果目錄太大,響應(yīng)每個提示是不現(xiàn)實(shí)的。這時(shí)可以用 rm -rf命令來強(qiáng)制刪除目錄,這樣即使用了-i標(biāo)志也當(dāng)無效處理。 3.12 mv mv命令用于移動文件和更名文件。例如: $mv ye.txt /home 將當(dāng)前目錄下的ye.txt文件移動到/home目錄下, $mv ye.txt ye1.txt 將ye.txt文件改名為ye1.txt。 類似于跟cp命令,mv命令也可以一次移動多個文件,在此不再贅敘。3.13 mount這個指令可以用來連接文件系統(tǒng)。例如,要訪問光盤上的資料,假設(shè)光驅(qū)是第二個IDE口從盤,那么可以使用命令mount /dev/hdd /cdrom 把光盤內(nèi)容連接到/cdrom下,在連接之前,/cdrom目錄必須存在。連接后可以用umount /cdrom卸掉文件系統(tǒng)。linux支持多種可掛接的文件系統(tǒng),例如,要掛接IDE1主盤的第二個分區(qū)上的Windows 95分區(qū),使用命令mount /dev/hda2 /dosc -t vfat可以使用的描述符包括msdos,ext2,vfat,umsdos,iso9660,ntfs等3.14 reboot 重啟命令,不必多說。 3.15 halt 關(guān)機(jī)命令,不必多說。4 實(shí)驗(yàn)步驟這里應(yīng)用Linux的各種命令對Linux內(nèi)核代碼進(jìn)行漫游。4.1 建立工作目錄Myjob打開終端,輸入下列命令:#mkdir /root/Myjob#cd /root/Myjob#pwd4.2 輸入下列命令,從光盤拷貝內(nèi)核的壓縮包到工作目錄。#cp /mnt/cdrom/linux/sourcecode/s3c2440_kernel2.4.18_r1.2.tar.bz2 /root/Myjob*由于Linux版本的更新,文件名的后半部分經(jīng)常會改動,文件名由于板本的改動而產(chǎn)生的變化我們不會另行通知。請?jiān)谳斎霂窂降拿钋拜斎雔s命令查看當(dāng)前的文件名,可以在輸入完s3c2440_kernel后使用TAB鍵補(bǔ)全,而不直接輸入。本書的余下部分都遵循這個原則。4.3 解壓縮內(nèi)核#tar jxvf s3c2440_kernel2.4.18_r1.2.tar.bz2#ls#cd s3c2440_kernel2.4.18_rel#ls4.4 在內(nèi)核中查找觸摸屏驅(qū)動文件s3c2440-ts.c#find s3c2440-ts.c4.5 查看s3c2440-ts.c文件的內(nèi)容#cd /root/Myjob/s3c2440_kernel2.4.18_rel/driver/char#cat s3c2440-ts.c4.6 重新壓縮內(nèi)核#cd /root/Myjob#tar jcvf s3c2440_kernel2.4.18_Myjob.tar.bz2 s3c2440_kernel2.4.18_rel#ls4.7 重命名s3c2440_kernel2.4.18_Myjob.tar.bz2#mv s3c2440_kernel2.4.18_Myjob.tar.bz2 s3c2440_kernel2.4.18_Myjob2.tar.bz2#ls5 實(shí)驗(yàn)思考5.1 單獨(dú)使用tar命令和先用gzip后再用tar命令進(jìn)行壓縮有什么參數(shù)上的區(qū)別?5.2 比較Linux下的常用命令和MSDOS下對應(yīng)的常用命令,查看兩者參數(shù)的差異?實(shí)驗(yàn)三 Linux下的C編程輔助命令1 實(shí)驗(yàn)?zāi)康膌 熟練運(yùn)用find,grep命令定位需要修改的代碼l 熟練運(yùn)用vi進(jìn)行代碼的編輯2 實(shí)驗(yàn)設(shè)備l 硬件:PC機(jī)l 軟件:Red Hat93 實(shí)驗(yàn)原理5.3 Linux下的源代碼編譯工具vivi編輯器是所有Unix及Linux系統(tǒng)下標(biāo)準(zhǔn)的編輯器,它的強(qiáng)大不遜色于任何最新的文本編輯器,這里只是簡單地介紹一下它的用法和一部分指令。由于對Unix及Linux系統(tǒng)的任何版本,vi編輯器是完全相同的,因此您可以在其他任何介紹vi的地方進(jìn)一步了解它。Vi也是Linux中最基本的文本編輯器,學(xué)會它后,您將在Linux的世界里暢行無阻。1. vi的基本概念 基本上vi可以分為三種狀態(tài),分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區(qū)分如下:1) 命令行模式command mode)控制屏幕光標(biāo)的移動,字符、字或行的刪除,移動復(fù)制某區(qū)段及進(jìn)入Insert mode下,或者到 last line mode。2) 插入模式(Insert mode)只有在Insert mode下,才可以做文字輸入,按ESC鍵可回到命令行模式。 3) 底行模式(last line mode) 將文件保存或退出vi,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號等。 不過一般我們在使用時(shí)把vi簡化成兩個模式,就是將底行模式(last line mode)也算入命令行模式command mode)。2. vi的基本操作 1) 進(jìn)入vi 在系統(tǒng)提示符號輸入vi及文件名稱后,就進(jìn)入vi全屏幕編輯畫面: $ vi myfile 不過有一點(diǎn)要特別注意,就是您進(jìn)入vi之后,是處于命令行模式(command mode),您要切換到插入模式(Insert mode)才能夠輸入文字。2) 切換至插入模式(Insert mode)編輯文件 在命令行模式(command mode)下按一下字母i就可以進(jìn)入插入模式(Insert mode),這時(shí)候你就可以開始輸入文字了。 3) Insert 的切換 您目前處于插入模式(Insert mode),您就只能一直輸入文字,如果您發(fā)現(xiàn)輸錯了字!想用光標(biāo)鍵往回移動,將該字刪除,就要先按一下ESC鍵轉(zhuǎn)到命令行模式(command mode)再刪除文字。 4) 退出vi及保存文件 在命令行模式(command mode)下,按一下:冒號鍵進(jìn)入Last line mode,例如: l : w filename (輸入 w filename將文章以指定的文件名filename保存) l : wq (輸入wq,存盤并退出vi) l : q! (輸入q!, 不存盤強(qiáng)制退出vi) 3. 命令行模式(command mode)功能鍵 1)插入模式 l 按i切換進(jìn)入插入模式insert mode,按“i”進(jìn)入插入模式后是從光標(biāo)當(dāng)前位置開始輸入文件; l 按a進(jìn)入插入模式后,是從目前光標(biāo)所在位置的下一個位置開始輸入文字; l 按o進(jìn)入插入模式后,是插入新的一行,從行首開始輸入文字。 2)從插入模式切換為命令行模式 l 按ESC鍵。 3)移動光標(biāo) vi可以直接用鍵盤上的光標(biāo)來上下左右移動,但正規(guī)的vi是用小寫英文字母h、j、k、l,分別控制光標(biāo)左、下、上、右移一格。 l 按ctrl+b:屏幕往“后”移動一頁。 l 按ctrl+f:屏幕往“前”移動一頁。 l 按ctrl+u:屏幕往“后”移動半頁。 l 按ctrl+d:屏幕往“前”移動半頁。 l 按數(shù)字0:移到文章的開頭。 l 按G:移動到文章的最后。 l 按$:移動到光標(biāo)所在行的“行尾”。 l 按:移動到光標(biāo)所在行的“行首” l 按w:光標(biāo)跳到下個字的開頭 l 按e:光標(biāo)跳到下個字的字尾 l 按b:光標(biāo)回到上個字的開頭 l 按#l:光標(biāo)移到該行的第#個位置,如:5l,56l。 4)刪除文字 l x:每按一次,刪除光標(biāo)所在位置的“后面”一個字符。 l #x:例如,6x表示刪除光標(biāo)所在位置的“后面”6個字符。 l X:大寫的X,每按一次,刪除光標(biāo)所在位置的“前面”一個字符。 l #X:例如,20X表示刪除光標(biāo)所在位置的“前面”20個字符。 l dd:刪除光標(biāo)所在行。 l #dd:從光標(biāo)所在行開始刪除#行 5)復(fù)制 l yw:將光標(biāo)所在之處到字尾的字符復(fù)制到緩沖區(qū)中。 l #yw:復(fù)制#個字到緩沖區(qū) l yy:復(fù)制光標(biāo)所在行到緩沖區(qū)。 l #yy:例如,6yy表示拷貝從光標(biāo)所在的該行“往下數(shù)”6行文字。 l p:將緩沖區(qū)內(nèi)的字符貼到光標(biāo)所在位置。注意:所有與“y”有關(guān)的復(fù)制命令都必須與“p”配合才能完成復(fù)制與粘貼功能。 6)替換 l r:替換光標(biāo)所在處的字符。 l R:替換光標(biāo)所到之處的字符,直到按下ESC鍵為止。 7)回復(fù)上一次操作 l u:如果您誤執(zhí)行一個命令,可以馬上按下u,回到上一個操作。按多次“u”可以執(zhí)行多次回復(fù)。 8)更改 l cw:更改光標(biāo)所在處的字到字尾處 l c#w:例如,c3w表示更改3個字 9)跳至指定的行 l ctrl+g列出光標(biāo)所在行的行號。 l #G:例如,15G,表示移動光標(biāo)至文章的第15行行首。 4. Last line mode下命令簡介 在使用last line mode之前,請記住先按ESC鍵確定您已經(jīng)處于command mode下后,再按:冒號即可進(jìn)入last line mode。 1) 列出行號 l set nu:輸入set nu后,會在文件中的每一行前面列出行號。 2) 跳到文件中的某一行 l #:#號表示一個數(shù)字,在冒號后輸入一個數(shù)字,再按回車鍵就會跳到該行了,如輸入數(shù)字15,再回車,就會跳到文章的第15行。 3) 查找字符 l /關(guān)鍵字:先按/鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按n會往后尋找到您要的關(guān)鍵字為止。 l ?關(guān)鍵字:先按?鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按n會往前尋找到您要的關(guān)鍵字為止。 4) 保存文件 l w:在冒號輸入字母w就可以將文件保存起來。 5) 離開vi l q:按q就是退出,如果無法離開vi,可以在q后跟一個!強(qiáng)制離開vi。 l qw:一般建議離開時(shí),搭配w一起使用,這樣在退出的時(shí)候還可以保存文件。 5.4 Linux下的模式搜索命令(grep、fgrep和egrep)這組命令以指定模式搜索文件,并通知用戶在什么文件中搜索到與指定的模式匹配的字符串,并打印出所有包含該字符串的文本行,在該文本行的最前面是該行所在的文件名。grep命令一次只能搜索一個指定的模式;egrep命令檢索擴(kuò)展的正則表達(dá)式(包括表達(dá)式組和可選項(xiàng));fgrep命令檢索固定字符串,它不識別正則表達(dá)式,是快速搜索命令。這組命令在搜索與定位文件中特定的主題方面非常有用。要搜索的模式可以被認(rèn)為是一些關(guān)鍵詞,您可以用它們來搜索文件中包含的這些關(guān)鍵詞。編寫程序時(shí),可以用它來尋找某一個函數(shù),或是相關(guān)的詞組。grep命令的搜索功能比fgrep強(qiáng)大,因?yàn)間rep命令的搜索模式可以是正則表達(dá)式,而fgrep卻不能。該組命令中的每一個命令都有一組選項(xiàng),利用這些選項(xiàng)可以改變其輸出方式。例如,可以在搜索到的文本行上加入行號,或者只輸出文本行的行號,或者輸出所有與搜索模式不匹配的文本行,或只簡單地輸出已搜索到指定模式的文件名,并且可以指定在查找模式時(shí)忽略大小寫。這組命令在指定的輸入文件中查找與模式匹配的行。如果沒有指定文件,則從標(biāo)準(zhǔn)輸入中讀取。正常情況下,每個匹配的行被顯示到標(biāo)準(zhǔn)輸出。如果要查找的文件是多個,則在每一行輸出之前加上文件名。語法:grep 選項(xiàng) 查找模式 文件名1,文件名2,egrep 選項(xiàng) 查找模式 文件名1,文件名2,fgrep 選項(xiàng) 查找模式 文件名1,文件名2,這組命令各選項(xiàng)的含義為:- E 每個模式作為一個擴(kuò)展的正則表達(dá)式對待。- F 每個模式作為一組固定字符串對待(以新行分隔),而不作為正則表達(dá)式。- b在輸出的每一行前顯示包含匹配字符串的行在文件中的字節(jié)偏移量。- c 只顯示匹配行的數(shù)量。- i 比較時(shí)不區(qū)分大小寫。- h 在查找多個文件時(shí),指示grep不要將文件名加入到輸出之前。- l 顯示首次匹配串所在的文件名并用換行符將其隔開。當(dāng)在某文件中多次出現(xiàn)匹配串時(shí),不重復(fù)顯示此文件名。- n 在輸出前加上匹配串所在行的行號(文件首行行號為1)。- v 只顯示不包含匹配串的行。- x 只顯示整行嚴(yán)格匹配的行。- e expression 指定檢索使用的模式。用于防止以“-”開頭的模式被解釋為命令選項(xiàng)。- f expfile 從expfile文件中獲取要搜索的模式,一個模式占一行。對該組命令的使用還需注意以下方面:在命令后鍵入搜索的模式,再鍵入要搜索的文件。其中,文件名列表中也可以使用特殊字符,如“*”等,用來生成文件名列表。如果想在搜索的模式中包含有空格的字符串,可以用單引號把要搜索的模式括起來,用來表明搜索的模式是由包含空格的字符串組成。否則,Shell將把空格認(rèn)為是命令行參數(shù)的定界符,而 grep命令將把搜索模式中的單詞解釋為文件名列表中的一部分。在下面的例子中,grep命令在文件example中搜索模式“text file”。$ grep text file example用戶可以在命令行上用Shell特殊字符來生成將要搜索的文件名列表。在下面的例子中,特殊字符“*”用來生成一個文件名列表,該列表包含當(dāng)前目錄下所有的文件。該命令將搜索出當(dāng)前目錄下所有文件中與模式匹配的行。$ grep data *特殊字符在搜索一組指定的文件時(shí)非常有用。例如,如果想搜索所有的C程序源文件中特定的模式,您可以用“*.c”來指定文件名列表。假設(shè)用戶的 C程序中包含一些不必要的轉(zhuǎn)向語句(goto語句),想要找到這些語句,可以用如下的命令來搜索并顯示所有包含goto語句的代碼行:$ grep goto *.c用戶可以在命令行上鍵入搜索模式,也可以使用-f選項(xiàng)從指定文件中讀取要搜索的模式。在文件中,每個搜索模式占一行。如果經(jīng)常要搜索一組常見字符串時(shí),這個功能非常有用。在下面的例子中,用戶要在文件exam中搜索字符串“editor”和“create”,就把要搜索的模式放置在文件mypats 中,然后,grep命令從文件mypats中讀取要搜索的模式。$ cat mypatseditorcreate$ grep -f mypats exam4 實(shí)驗(yàn)步驟4.1 使用vi建立Hello.c文件輸入如下命令如圖1所示$cd /root/Myjob$vi hello.c圖14.2 按i鍵進(jìn)入插入模式,輸入如下代碼#include main()printf(“Hello World!n”);pritnf(“Hello SinoSys!n”);如果2所示,然后按ESC鍵退出插入模式,輸入wq(回車)保存文件并退出vi。圖24.3 使用grep在/root中查找含有“Hello SinoSys”字符串的文件在終端中輸入如下命令,如圖3所示$ grep r “Hello SinoSys” /root/Myjob圖35 實(shí)驗(yàn)思考5.5 vi的操作沒有使用鍵盤的功能鍵,而使用多種模式來復(fù)用主鍵盤區(qū)域的英文區(qū),主要原因是什么?5.6 grep相比DOS或windows下的查找工具,最具特色的是它可以使用正則法進(jìn)行模式查找,請嘗試運(yùn)行正則法則對Linux源碼進(jìn)行一些模式查找。實(shí)驗(yàn)四 Gcc編譯器 1 實(shí)驗(yàn)?zāi)康膌 熟練運(yùn)用GCC進(jìn)行語言編程l 熟練運(yùn)用vi進(jìn)行代碼的編輯2 實(shí)驗(yàn)設(shè)備l 硬件:PC機(jī)l 軟件:Red Hat93 實(shí)驗(yàn)原理3.1 gcc簡介 Linux系統(tǒng)下的gcc(GNU C Compiler)是GNU推出的功能強(qiáng)大、性能優(yōu)越的多平臺編譯器,是GNU的代表作品之一。gcc是可以在多種硬體平臺上編譯出可執(zhí)行程序的超級編譯器,其執(zhí)行效率與一般的編譯器相比平均效率要高20%30%。 gcc編譯器能將C、C+語言源程序、匯編程序和目標(biāo)程序編譯、連接成可執(zhí)行文件,如果沒有給出可執(zhí)行文件的名字,gcc將生成一個名為a.out的文件。在Linux系統(tǒng)中,可執(zhí)行文件沒有統(tǒng)一的后綴,系統(tǒng)從文件的屬性來區(qū)分可執(zhí)行文件和不可執(zhí)行文件。而gcc則通過后綴來區(qū)別輸入文件的類別,下面我們來介紹gcc所遵循的部分約定規(guī)則。 l .c為后綴的文件,C語言源代碼文件; l .a為后綴的文件,是由目標(biāo)文件構(gòu)成的檔案庫文件; l .C,.cc或.cxx 為后綴的文件,是C+源代碼文件; l .h為后綴的文件,是程序所包含的頭文件; l .i 為后綴的文件,是已經(jīng)預(yù)處理過的C源代碼文件; l .ii為后綴的文件,是已經(jīng)預(yù)處理過的C+源代碼文件; l .m為后綴的文件,是Objective-C源代碼文件; l .o為后綴的文件,是編譯后的目標(biāo)文件; l .s為后綴的文件,是匯編語言源代碼文件; l .S為后綴的文件,是經(jīng)過預(yù)編譯的匯編語言源代碼文件。 3.2 gcc的執(zhí)行過程 雖然我們稱gcc是C語言的編譯器,但使用gcc由C語言源代碼文件生成可執(zhí)行文件的過程不僅僅是編譯的過程,而是要經(jīng)歷四個相互關(guān)聯(lián)的步驟預(yù)處理(也稱預(yù)編譯,Preprocessing)、編譯(Compilation)、匯編(Assembly)和連接(Linking)。 命令gcc首先調(diào)用cpp進(jìn)行預(yù)處理,在預(yù)處理過程中,對源代碼文件中的文件包含(include)、預(yù)編譯語句(如宏定義define等)進(jìn)行分析。接著調(diào)用cc1進(jìn)行編譯,這個階段根據(jù)輸入文件生成以.o為后綴的目標(biāo)文件。匯編過程是針對匯編語言的步驟,調(diào)用as進(jìn)行工作,一般來講,.S為后綴的匯編語言源代碼文件和匯編、.s為后綴的匯編語言文件經(jīng)過預(yù)編譯和匯編之后都生成以.o為后綴的目標(biāo)文件。當(dāng)所有的目標(biāo)文件都生成之后,gcc就調(diào)用ld來完成最后的關(guān)鍵性工作,這個階段就是連接。在連接階段,所有的目標(biāo)文件被安排在可執(zhí)行程序中的恰當(dāng)?shù)奈恢茫瑫r(shí),該程序所調(diào)用到的庫函數(shù)也從各自所在的檔案庫中連到合適的地方。 3.3 gcc的基本用法和選項(xiàng) 在使用gcc編譯器的時(shí)候,我們必須給出一系列必要的調(diào)用參數(shù)和文件名稱。gcc編譯器的調(diào)用參數(shù)大約有100多個,其中多數(shù)參數(shù)我們可能根本就用不到,這里只介紹其中最基本、最常用的參數(shù)。 gcc最基本的用法是gcc options filenames 其中options就是編譯器所需要的參數(shù),filenames給出相關(guān)的文件名稱。 -x language filename 設(shè)定文件所使用的語言,使后綴名無效,對以后的多個有效.也就是根 據(jù)約定C語言的后綴名稱是.c的,而C+的后綴名是.C或者.cpp,如果 你很個性,決定你的C代碼文件的后綴名是.pig 哈哈,那你就要用這 個參數(shù),這個參數(shù)對他后面的文件名都起作用,除非到了下一個參數(shù) 的使用。 可以使用的參數(shù)嗎有下面的這些 c, objective-c, c-header, c+, cpp-output, assembler, and assembler-with-cpp. 看到英文,應(yīng)該可以理解的。 例子用法: gcc -x c hello.pig-x none filename關(guān)掉上一個選項(xiàng),也就是讓gcc根據(jù)文件名后綴,自動識別文件類型例子用法:gcc -x c hello.pig -x none hello2.c-c 只激活預(yù)處理,編譯,和匯編,也就是他只把程序做成obj文件例子用法:gcc -c hello.c他將生成.o的obj文件 -S只激活預(yù)處理和編譯,就是指把文件編譯成為匯編代碼。例子用法gcc -S hello.c他將生成.s的匯編代碼,你可以用文本編輯器察看-E只激活預(yù)處理,這個不生成文件,你需要把它重定向到一個輸出文件里面.例子用法:gcc -E hello.c pianoapan.txtgcc -E hello.c | more慢慢看吧,一個hello word 也要與處理成800行的代碼-o制定目標(biāo)名稱,缺省的時(shí)候,gcc 編譯出來的文件是a.out,很難聽,如果你和我有同感,改掉它,哈哈例子用法gcc -o hello.exe hello.c (哦,windows用習(xí)慣了)gcc -o hello.asm -S hello.c-pipe使用管道代替編譯中臨時(shí)文件,在使用非gnu匯編工具的時(shí)候,可能有些問題gcc -pipe -o hello.exe hello.c-ansi關(guān)閉gnu c中與ansi c不兼容的特性,激活ansi c的專有特性(包括禁止一些asm inline typeof關(guān)鍵字,以及UNIX,vax等預(yù)處理宏,-fno-asm此選項(xiàng)實(shí)現(xiàn)ansi選項(xiàng)的功能的一部分,它禁止將asm,inline和typeof用作關(guān)鍵字。-fno-strict-prototype只對g+起作用,使用這個選項(xiàng),g+將對不帶參數(shù)的函數(shù),都認(rèn)為是沒有顯式的對參數(shù)的個數(shù)和類型說明,而不是沒有參數(shù).而gcc無論是否使用這個參數(shù),都將對沒有帶參數(shù)的函數(shù),認(rèn)為城沒有顯式說明的類型-fthis-is-varialble就是向傳統(tǒng)c+看齊,可以使用this當(dāng)一般變量使用.-fcond-mismatch允許條件表達(dá)式的第二和第三參數(shù)類型不匹配,表達(dá)式的值將為void類型-funsigned-char-fno-signed-char-fsigned-char-fno-unsigned-char這四個參數(shù)是對char類型進(jìn)行設(shè)置,決定將char類型設(shè)置成unsigned char(前兩個參數(shù))或者 signed char(后兩個參數(shù))-include file包含某個代碼,簡單來說,就是便以某個文件,需要另一個文件的時(shí)候,就可以用它設(shè)定,功能就相當(dāng)于在代碼中使用#include例子用法:gcc hello.c -include /root/pianopan.h-imacros file將file文件的宏,擴(kuò)展到gcc/g+的輸入文件,宏定義本身并不出現(xiàn)在輸入文件中-Dmacro相當(dāng)于C語言中的#define macro-Dmacro=defn相當(dāng)于C語言中的#define macro=defn-Umacro相當(dāng)于C語言中的#undef macro-undef取消對任何非標(biāo)準(zhǔn)宏的定義-Idir在你是用#includefile的時(shí)候,gcc/g+會先在當(dāng)前目錄查找你所制定的頭文件,如果沒有找到,他回到缺省的頭文件目錄找,如果使用-I制定了目錄,他回先在你所制定的目錄查找,然后再按常規(guī)的順序去找.對于#include,gcc/g+會到-I制定的目錄查找,查找不到,然后將到系統(tǒng)的缺省的頭文件目錄查找-I-就是取消前一個參數(shù)的功能,所以一般在-Idir之后使用-idirafter dir在-I的目錄里面查找失敗,講到這個目錄里面查找.-iprefix prefix-iwithprefix dir一般一起使用,當(dāng)-I的目錄查找失敗,會到prefix+dir下查找-nostdinc使編譯器不再系統(tǒng)缺省的頭文件目錄里面找頭文件,一般和-I聯(lián)合使用,明確限定頭文件的位置-nostdin C+規(guī)定不在g+指定的標(biāo)準(zhǔn)路經(jīng)中搜索,但仍在其他路徑中搜索,.此選項(xiàng)在創(chuàng)建libg+庫使用-C在預(yù)處理的時(shí)候,不刪除注釋信息,一般和-E使用,有時(shí)候分析程序,用這個很方便的-M生成文件關(guān)聯(lián)的信息。包含目標(biāo)文件所依賴的所有源代碼你可以用gcc -M hello.c來測試一下,很簡單。-MM和上面的那個一樣,但是它將忽略由#include造成的依賴關(guān)系。-MD和-M相同,但是輸出將導(dǎo)入到.d的文件里面-MMD和-MM相同,但是輸出將導(dǎo)入到.d的文件里面-Wa,option此選項(xiàng)傳遞option給匯編程序;如果option中間有逗號,就將option分成多個選項(xiàng),然后傳遞給會匯編程序-Wl.option此選項(xiàng)傳遞option給連接程序;如果option中間有逗號,就將option分成多個選項(xiàng),然后傳遞給會連接程序.-llibrary 制定編譯的時(shí)候使用的庫例子用法gcc -lcurses hello.c使用ncurses庫編譯程序-Ldir制定編譯的時(shí)候,搜索庫的路徑。比如你自己的庫,可以用它制定目錄,不然編譯器將只在標(biāo)準(zhǔn)庫的目錄找。這個dir就是目錄的名稱。-O0-O1-O2-O3編譯器的優(yōu)化選項(xiàng)的4個級別,-O0表示沒有優(yōu)化,-O1為缺省值,-O3優(yōu)化級別最高-g只是編譯器,在編譯的時(shí)候,產(chǎn)生條是信息。-gstabs此選項(xiàng)以stabs格式聲稱調(diào)試信息,但是不包括gdb調(diào)試信息.-gstabs+此選項(xiàng)以stabs格式聲稱調(diào)試信息,并且包含僅供gdb使用的額外調(diào)試信息.-ggdb此選項(xiàng)將盡可能的生成gdb的可以使用的調(diào)試信息.-static此選項(xiàng)將禁止使用動態(tài)庫,所以,編譯出來的東西,一般都很大,也不需要什么動態(tài)連接庫,就可以運(yùn)行.-share此選項(xiàng)將盡量使用動態(tài)庫,所以生成文件比較小,但是需要系統(tǒng)由動態(tài)庫.-traditional試圖讓編譯器支持傳統(tǒng)的C語言特性3.4 gcc的錯誤類型及對策 gcc編譯器如果發(fā)現(xiàn)源程序中有錯誤,就無法繼續(xù)進(jìn)行,也無法生成最終的可執(zhí)行文件。為了便于修改,gcc給出錯誤資訊,我們必須對
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)營管理流程再造考核試卷
- 音頻變壓器在音頻信號轉(zhuǎn)換中的應(yīng)用考核試卷
- 會展金融與旅游產(chǎn)業(yè)融合發(fā)展考核試卷
- 云服務(wù)性能評估標(biāo)準(zhǔn)制定考核試卷
- 交通基礎(chǔ)設(shè)施智能化升級策略考核試卷
- 產(chǎn)業(yè)升級與能源結(jié)構(gòu)優(yōu)化考核試卷
- 基因編輯技術(shù)治療癌癥
- 污染防治宣傳活動方案
- 河源咖啡活動方案
- 檢察院低碳體驗(yàn)活動方案
- 醫(yī)學(xué)課件-快速康復(fù)ERAS普外科幻燈教學(xué)課件
- 2023年重慶出版集團(tuán)有限公司招聘筆試模擬試題及答案解析
- 高考英語書面表達(dá)全國卷評分標(biāo)準(zhǔn)
- 建筑電氣設(shè)計(jì)技術(shù)規(guī)程
- 氣體滅火系統(tǒng)驗(yàn)收表1
- DB1309T 256-2021 榆三節(jié)葉蜂綜合防治技術(shù)規(guī)程
- 人教版五四制六下地理復(fù)習(xí)提綱詳細(xì)筆記
- 大氣污染控制工程課程設(shè)計(jì)-某廠酸洗硫酸煙霧治理設(shè)施設(shè)計(jì)
- 人教版小學(xué)三年級下冊英語復(fù)習(xí)課件(164頁P(yáng)PT)
- 300MW單元機(jī)組過熱汽溫控制系統(tǒng)的設(shè)計(jì)
- (完整版)銷售人員銷售能力測試及答案解析
評論
0/150
提交評論