Linux系統(tǒng)命令及Shell腳本實(shí)踐指南_第1頁
Linux系統(tǒng)命令及Shell腳本實(shí)踐指南_第2頁
Linux系統(tǒng)命令及Shell腳本實(shí)踐指南_第3頁
Linux系統(tǒng)命令及Shell腳本實(shí)踐指南_第4頁
Linux系統(tǒng)命令及Shell腳本實(shí)踐指南_第5頁
已閱讀5頁,還剩522頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Linux系統(tǒng)命令及Shell腳本實(shí)踐指南目錄\h第1章Linux簡介\h1.1Linux的發(fā)展歷史\h1.2Linux的特點(diǎn)\h1.3系統(tǒng)安裝\h1.3.1安裝前的規(guī)劃\h1.3.2安裝RedHat\h1.3.3安裝CentOS\h1.4系統(tǒng)登錄\h1.4.1第一次登錄系統(tǒng)的設(shè)置\h1.4.2使用圖形模式登錄\h1.4.3使用終端模式登錄\h1.4.4開始學(xué)習(xí)使用Linux的命令\h1.5系統(tǒng)啟動流程\h1.5.1系統(tǒng)引導(dǎo)概述\h1.5.2系統(tǒng)運(yùn)行級別\h1.5.3服務(wù)啟動腳本\h1.5.4Grub介紹\h1.6獲得幫助\h1.6.1使用manpage\h1.6.2使用infopage\h1.6.3其他獲得幫助的方式\h第2章Linux用戶管理\h2.1Linux用戶和用戶組\h2.1.1UID和GID\h2.1.2/etc/passwd和/etc/shadow\h2.2Linux賬號管理\h2.2.1新增和刪除用戶\h2.2.2新增和刪除用戶組\h2.2.3檢查用戶信息\h2.3切換用戶\h2.3.1切換成其他用戶\h2.3.2用其他用戶的身份執(zhí)行命令:sudo\h2.4例行任務(wù)管理\h2.4.1單一時刻執(zhí)行一次任務(wù):at\h2.4.2周期性執(zhí)行任務(wù):cron\h2.4.3/etc/crontab的管理\h第3章Linux文件管理\h3.1文件和目錄管理\h3.1.1絕對路徑和相對路徑\h3.1.2文件的相關(guān)操作\h3.1.3目錄的相關(guān)操作\h3.1.4文件時間戳\h3.2文件和目錄的權(quán)限\h3.2.1查看文件或目錄的權(quán)限:ls-al\h3.2.2文件隱藏屬性\h3.2.3改變文件權(quán)限:chmod\h3.2.4改變文件的擁有者:chown\h3.2.5改變文件的擁有組:chgrp\h3.2.6文件特殊屬性:SUID/SGID/Sticky\h3.2.7默認(rèn)權(quán)限和umask\h3.2.8查看文件類型:file\h3.3查找文件\h3.3.1一般查找:find\h3.3.2數(shù)據(jù)庫查找:locate\h3.3.3查找執(zhí)行文件:which/whereis\h3.4文件壓縮和打包\h3.4.1gzip/gunzip\h3.4.2tar\h3.4.3bzip2\h3.4.4cpio\h第4章Linux文件系統(tǒng)\h4.1文件系統(tǒng)\h4.1.1什么是文件系統(tǒng)\h4.1.2ext2文件系統(tǒng)簡介\h4.1.3ext3文件系統(tǒng)簡介\h4.2磁盤分區(qū)、創(chuàng)建文件系統(tǒng)、掛載\h4.2.1創(chuàng)建文件系統(tǒng):fdisk\h4.2.2磁盤掛載:mount\h4.2.3設(shè)置啟動自動掛載:/etc/fstab\h4.2.4磁盤檢驗(yàn):fsck、badblocks\h4.3Linux邏輯卷\h4.3.1什么是邏輯卷\h4.3.2如何制作邏輯卷\h4.4硬鏈接和軟鏈接\h4.4.1什么是硬鏈接\h4.4.2什么是軟鏈接\h第5章字符處理\h5.1管道\h5.2使用grep搜索文本\h5.3使用sort排序\h5.4使用uniq刪除重復(fù)內(nèi)容\h5.5使用cut截取文本\h5.6使用tr做文本轉(zhuǎn)換\h5.7使用paste做文本合并\h5.8使用split分割大文件\h第6章網(wǎng)絡(luò)管理\h6.1網(wǎng)絡(luò)接口配置\h6.1.1使用ifconfig檢查和配置網(wǎng)卡\h6.1.2將IP配置信息寫入配置文件\h6.2路由和網(wǎng)關(guān)設(shè)置\h6.3DNS客戶端配置\h6.3.1/etc/hosts\h6.3.2/etc/resolv.conf\h6.4網(wǎng)絡(luò)測試工具\(yùn)h6.4.1ping\h6.4.2host\h6.4.3traceroute\h6.4.4常見網(wǎng)絡(luò)故障排查\h第7章進(jìn)程管理\h7.1什么是進(jìn)程\h7.2進(jìn)程和程序的區(qū)別\h7.3進(jìn)程的觀察:ps、top\h7.4進(jìn)程的終止:kill、killall\h7.5查詢進(jìn)程打開的文件:lsof\h7.6進(jìn)程優(yōu)先級調(diào)整:nice、renice\h第8章Linux下的軟件安裝\h8.1源碼包編譯安裝\h8.1.1編譯、安裝、打印HelloWorld程序\h8.1.2使用源碼包編譯安裝Apache\h8.2RPM安裝軟件\h8.2.1什么是RPM\h8.2.2RPM包管理命令:rpm\h8.2.3包依賴關(guān)系\h8.2.4使用RPM包安裝gcc\h8.2.5使用RPM包安裝Apache\h8.3yum安裝軟件\h8.3.1yum命令的基本用法\h8.3.2使用yum安裝Apache\h8.3.3RedHat使用yum的問題\h8.3.4自建本地yum源\h8.3.5自建網(wǎng)絡(luò)yum源\h8.4三種安裝方法的比較\h8.5重建RPM包\h8.5.1創(chuàng)建重建環(huán)境\h8.5.2快速重建RPM包\h8.5.3以spec文件重建RPM包\h8.5.4spec文件簡介\h第9章vi和vim編輯器\h9.1vi和vim編輯器簡介\h9.2vi編輯器\h9.2.1模式介紹\h9.2.2案例練習(xí)\h9.3vim編輯器\h9.3.1多行編輯\h9.3.2多文件編輯\h9.3.3使用vimtutor深入學(xué)習(xí)vim\h9.4gedit編輯器\h9.4.1gedit編輯器簡介\h9.4.2啟動gedit編輯器\h第10章正則表達(dá)式\h10.1正則表達(dá)式基礎(chǔ)\h10.1.1什么是正則表達(dá)式\h10.1.2基礎(chǔ)的正則表達(dá)式\h10.1.3擴(kuò)展的正則表達(dá)式\h10.1.4通配符\h10.2正則表達(dá)式示例\h10.3文本處理工具sed\h10.3.1sed介紹\h10.3.2刪除\h10.3.3查找替換\h10.3.4字符轉(zhuǎn)換\h10.3.5插入文本\h10.3.6讀入文本\h10.3.7打印\h10.3.8寫文件\h10.3.9sed腳本\h10.3.10高級替換\h10.3.11sed總結(jié)\h10.4文本處理工具awk\h10.4.1打印指定域\h10.4.2指定打印分隔符\h10.4.3內(nèi)部變量NF\h10.4.4打印固定域\h10.4.5截取字符串\h10.4.6確定字符串的長度\h10.4.7使用awk求列和\h第11章Shell編程概述\h11.1Shell簡介\h11.1.1Shell是什么\h11.1.2Shell的歷史\h11.1.3Shell的功能\h11.1.4Shell編程的優(yōu)勢\h11.2第一個Shell腳本\h11.2.1編輯第一個Shell腳本\h11.2.2運(yùn)行腳本\h11.2.3Shell腳本的排錯\h11.3Shell的內(nèi)建命令\h第12章BashShell的安裝\h12.1確定你的Shell版本\h12.2安裝bash\h12.3使用新版本的BashShell\h12.4在Windows中安裝bash\h第13章Shell編程基礎(chǔ)\h13.1變量\h13.1.1局部變量\h13.1.2環(huán)境變量\h13.1.3變量命名\h13.1.4變量賦值和取值\h13.1.5取消變量\h13.1.6特殊變量\h13.1.7數(shù)組\h13.1.8只讀變量\h13.1.9變量的作用域\h13.2轉(zhuǎn)義和引用\h13.2.1轉(zhuǎn)義\h13.2.2引用\h13.2.3命令替換\h13.3運(yùn)算符\h13.3.1算術(shù)運(yùn)算符\h13.3.2位運(yùn)算符\h13.3.3自增自減\h13.4其他算術(shù)運(yùn)算\h13.4.1使用$[]做運(yùn)算\h13.4.2使用expr做運(yùn)算\h13.4.3內(nèi)建運(yùn)算命令declare\h13.4.4算術(shù)擴(kuò)展\h13.4.5使用bc做運(yùn)算\h13.5特殊字符\h13.5.1通配符\h13.5.2引號\h13.5.3注釋符\h13.5.4大括號\h13.5.5控制字符\h13.5.6雜項(xiàng)\h第14章測試和判斷\h14.1測試\h14.1.1測試結(jié)構(gòu)\h14.1.2文件測試\h14.1.3字符串測試\h14.1.4整數(shù)比較\h14.1.5邏輯測試符和邏輯運(yùn)算符\h14.2判斷\h14.2.1if判斷結(jié)構(gòu)\h14.2.2if/else判斷結(jié)構(gòu)\h14.2.3if/elif/else判斷結(jié)構(gòu)\h14.2.4case判斷結(jié)構(gòu)\h第15章循環(huán)\h15.1for循環(huán)\h15.1.1帶列表的for循環(huán)\h15.1.2不帶列表的for循環(huán)\h15.1.3類C的for循環(huán)\h15.1.4for的無限循環(huán)\h15.2while循環(huán)\h15.2.1while循環(huán)的語法\h15.2.2使用while按行讀取文件\h15.2.3while的無限循環(huán)\h15.3until循環(huán)\h15.3.1until循環(huán)的語法\h15.3.2until的無限循環(huán)\h15.4select循環(huán)\h15.5嵌套循環(huán)\h15.6循環(huán)控制\h15.6.1break語句\h15.6.2continue語句\h第16章函數(shù)\h16.1函數(shù)的基本知識\h16.1.1函數(shù)的定義和調(diào)用\h16.1.2函數(shù)的返回值\h16.2帶參數(shù)的函數(shù)\h16.2.1位置參數(shù)\h16.2.2指定位置參數(shù)值\h16.2.3移動位置參數(shù)\h16.3函數(shù)庫\h16.3.1自定義函數(shù)庫\h16.3.2函數(shù)庫/etc/init.d/functions簡介\h16.4遞歸函數(shù)\h第17章重定向\h17.1重定向簡介\h17.1.1重定向的基本概念\h17.1.2文件標(biāo)識符和標(biāo)準(zhǔn)輸入輸出\h17.2I/O重定向\h17.2.1I/O重定向符號和用法\h17.2.2使用exec\h17.2.3HereDocument\h第18章腳本范例\h18.1批量添加用戶腳本\h18.2檢測服務(wù)器存活\h18.3使用expect實(shí)現(xiàn)自動化輸入\h18.4自動登錄ftp備份\h18.5文件安全檢測腳本\h18.6ssh自動登錄備份\h18.7使用rsync備份\h18.8使用netcat備份\h18.9使用iptables建立防火墻\h18.10自定義開機(jī)啟動項(xiàng)的init腳本\h18.11使用腳本操作MySQL數(shù)據(jù)庫\h18.12基于LVM快照的MySQL數(shù)據(jù)庫備份\h18.13頁面自動化安裝LAMP環(huán)境注:原文檔電子版(非掃描),需要的請下載本文檔后留言謝謝。第1章Linux簡介1.1Linux的發(fā)展歷史首先我們一起來了解一下應(yīng)該怎么讀Linux這個單詞,根據(jù)Torvalds(Linux的發(fā)明者)在其多次公開場合中的說明,標(biāo)準(zhǔn)的讀音應(yīng)該是“哩吶科斯”,利用搜索引擎加關(guān)鍵字Linuxpronunciation進(jìn)行搜索,就可以看到具體的視頻。說到Linux就不得不提到UNIX,因?yàn)長inux是一種類UNIX的系統(tǒng)。早在1965年,貝爾實(shí)驗(yàn)室加入了一項(xiàng)由美國通用電氣公司和麻省理工學(xué)院發(fā)起的合作計(jì)劃,該計(jì)劃要開發(fā)一個多用戶、多進(jìn)程、多層次的Multics操作系統(tǒng)。由于該計(jì)劃實(shí)際進(jìn)展太過緩慢,1969年便暫停了。不過該計(jì)劃的參與者之一KenThompson已經(jīng)從這項(xiàng)計(jì)劃中獲得了一些點(diǎn)子和收獲,當(dāng)時他有一個被稱為“星際旅行”的程序在GE-635的機(jī)器上運(yùn)行,因?yàn)樵摍C(jī)器性能問題,運(yùn)行“星際旅行”太慢,從而引發(fā)了他想將這個程序移植到一臺性能更好的DPD-7上的想法,只是因?yàn)榧抑杏行『⑿枰疹櫠恢睕]有時間動手。巧合的是,在1969年8月左右,他的妻兒出門探親了一個月,就在這一個月的時間里,Thompson編寫了一個操作系統(tǒng),并成功地將“星際旅行”移植到了DPD-7上,而這個操作系統(tǒng)就是UNIX的原型。UNIX由于具有優(yōu)秀的移植性而得到了廣泛的關(guān)注和支持,1974年12月伯克利大學(xué)獲得UNIX的源碼,并動手將其修改為適合自己機(jī)器的版本,最終命名為BSD,這也是UNIX很重要的一個分支。由于當(dāng)時還沒有足夠的版權(quán)意識,很多商業(yè)公司都開始了基于UNIX操作系統(tǒng)的開發(fā),比如AT&T的SystemV、IBM的AIX等,在這段時期中也形成了UNIX的兩大分支:SystemV和BSD。后來AT&T公司出于商業(yè)考慮(貝爾實(shí)驗(yàn)室是從屬于AT&T公司的),1979年在發(fā)行第七版UNIX時開始嚴(yán)格限制對學(xué)生提供源碼。這對大學(xué)教學(xué)影響非常大,因?yàn)樵跓o法看到源碼的情況下,教學(xué)工作便很難進(jìn)行。當(dāng)時有個叫Tanenbaum的教授為避免版權(quán)糾紛,在完全不看UNIX源碼的情況下,自己動手寫了一個類UNIX的系統(tǒng),并命名為Minix,這項(xiàng)工作從1984年持續(xù)到1986年。由于開發(fā)這個系統(tǒng)的出發(fā)點(diǎn)在于教學(xué),所以用戶對Minix的新需求往往得不到開發(fā)支持,只能基于Minix的源碼自己進(jìn)行修改。1984年,RichardStallman創(chuàng)立了GNU項(xiàng)目,由自由軟件基金支持,GNU項(xiàng)目的目標(biāo)是“開發(fā)一個完全自由的UNIX操作系統(tǒng)”?!癏elloeverybodyoutthereusingminix,I'mdoingafreeoperationsystem”,1991年8月,網(wǎng)絡(luò)上出現(xiàn)了以此開篇的帖子,這是一名芬蘭的大學(xué)生為了寫一個類Minix的系統(tǒng)而在尋找志同道合的伙伴,他就是著名的Linux之父——LinusTorvalds。同年10月5日,他在網(wǎng)絡(luò)上發(fā)布了大約有1萬行代碼的Linux0.01版本,次年已經(jīng)有約1000人在使用Linux了。1993年,大約有100名程序員參與了Linux內(nèi)核開發(fā)工作,其中核心人員有5名,此時Linux0.99版本的代碼大約有10萬行,用戶約為10萬人。1994年,Linux加入了GNU,成為GNU項(xiàng)目中的一員,同年Linux1.0版本發(fā)布,代碼量大約有17萬行,最早按照完全自由免費(fèi)的協(xié)議發(fā)布,用戶可以隨意下載、使用、修改,而不需要通知作者。隨后采用了GPL協(xié)議,很多開發(fā)人員開始將自己的代碼貢獻(xiàn)給核心小組,這也就使得當(dāng)時的Linux系統(tǒng)對不同硬件都有著極好的支持,大大提高了不同平臺間的可移植性。1995年,Linux可以在Intel、Digital等主流處理器上運(yùn)行,用戶量超過50萬。1996年,Linux2.0版本發(fā)布,并支持多處理器,此時的Linux進(jìn)入實(shí)用階段,用戶量已經(jīng)達(dá)到350萬。1998年,RedHat公司宣布商業(yè)支持計(jì)劃,迅猛推進(jìn)了Linux的發(fā)展,至此Linux正式成為真正的服務(wù)器操作系統(tǒng)并繼續(xù)成長。1.2Linux的特點(diǎn)從1991年問世到今天,Linux在服務(wù)器、桌面、行業(yè)定制等各級領(lǐng)域都獲得了長足的發(fā)展,尤其在服務(wù)器領(lǐng)域獲得了令人矚目的成就,被業(yè)界認(rèn)為是未來最有前途的操作系統(tǒng)之一。在嵌入式領(lǐng)域,由于Linux具有良好的移植性、豐富的代碼資源等優(yōu)點(diǎn),也受到了越來越多的關(guān)注。下面我們就來看看這個操作系統(tǒng)有哪些主要特點(diǎn)。第一,免費(fèi)開源。Linux是一款完全免費(fèi)的操作系統(tǒng),任何人都可以從網(wǎng)絡(luò)上下載到它的源代碼,并可以根據(jù)自己的需求進(jìn)行定制化的開發(fā),而且沒有版權(quán)限制。第二,模塊化程度高。Linux的內(nèi)核設(shè)計(jì)分成進(jìn)程管理、內(nèi)存管理、進(jìn)程間通信、虛擬文件系統(tǒng)、網(wǎng)絡(luò)5部分,其采用的模塊機(jī)制使得用戶可以根據(jù)實(shí)際需要,在內(nèi)核中插入或移走模塊,這使得內(nèi)核可以被高度的剪裁定制,以方便在不同的場景下使用。第三,廣泛的硬件支持。得益于其免費(fèi)開源的特點(diǎn),有大批程序員不斷地向Linux社區(qū)提供代碼,使得Linux有著異常豐富的設(shè)備驅(qū)動資源,對主流硬件的支持極好,而且?guī)缀跄苓\(yùn)行在所有流行的處理器上。第四,安全穩(wěn)定。Linux采取了很多安全技術(shù)措施,包括讀寫權(quán)限控制、帶保護(hù)的子系統(tǒng)、審計(jì)跟蹤、核心授權(quán)等,這為網(wǎng)絡(luò)環(huán)境中的用戶提供了安全保障。實(shí)際上有很多運(yùn)行Linux的服務(wù)器可以持續(xù)運(yùn)行長達(dá)數(shù)年而無須重啟,依然可以性能良好地提供服務(wù),其安全穩(wěn)定性已經(jīng)在各個領(lǐng)域得到了廣泛的證實(shí)。第五,多用戶,多任務(wù)。多用戶是指系統(tǒng)資源可以同時被不同的用戶使用,每個用戶對自己的資源有特定的權(quán)限,互不影響。多任務(wù)是現(xiàn)代化計(jì)算機(jī)的主要特點(diǎn),指的是計(jì)算機(jī)能同時運(yùn)行多個程序,且程序之間彼此獨(dú)立,Linux內(nèi)核負(fù)責(zé)調(diào)度每個進(jìn)程,使之平等地訪問處理器。由于CPU處理速度極快,從用戶的角度來看所有的進(jìn)程好像在并行運(yùn)行。第六,良好的可移植性。Linux中95%以上的代碼都是用C語言編寫的,由于C語言是一種機(jī)器無關(guān)的高級語言,是可移植的,因此Linux系統(tǒng)也是可移植的。1.3系統(tǒng)安裝1.3.1安裝前的規(guī)劃可能會有讀者正計(jì)劃學(xué)習(xí)Linux而苦惱于不知道使用哪一個發(fā)行版,其實(shí)所有的發(fā)行版不管是RedHat、CentOS還是Ubuntu,其內(nèi)核都是來自Linux內(nèi)核官網(wǎng)(),不同發(fā)行版之間的差別在于軟件管理的不同,所以不管使用哪一個發(fā)行版,只要理解其原理之后,各類發(fā)行版的區(qū)別其實(shí)不大。當(dāng)然對于初學(xué)者來說,擁有廣泛的學(xué)習(xí)資源也是很重要的。由于RedHat公司進(jìn)行了大力商業(yè)推廣,且得益于其成熟的認(rèn)證體系,因此使用RedHat的用戶比較多,同時,它還有豐富的相關(guān)技術(shù)文檔,以及活躍的社區(qū),所以作為入門學(xué)習(xí),可以使用RedHat。不過,近年來,CentOS發(fā)展也很迅猛,這個發(fā)行版和RedHat幾乎完全一樣,而且在某些方面還比RedHat略勝一籌,所以在本書中后面的所有內(nèi)容中將主要使用版本為5.5的CentOS,小部分涉及RedHat的內(nèi)容也將采用5.5版本。有讀者可能會考慮在一臺計(jì)算機(jī)上安裝多個操作系統(tǒng),比如說在自己的家用計(jì)算機(jī)上安裝Windows用于娛樂和日常應(yīng)用或Windows環(huán)境下的開發(fā)等,另外再安裝Linux系統(tǒng)用于學(xué)習(xí)。在這種情況下,最簡單的安裝方法是先安裝Windows,后安裝Linux,這樣開機(jī)的時候就自動出現(xiàn)操作系統(tǒng)選擇條,可以根據(jù)實(shí)際需要選擇進(jìn)入不同的操作系統(tǒng)。由于Linux對系統(tǒng)的需求并不高,所以幾乎所有計(jì)算機(jī)都可以安裝,但是考慮到入門學(xué)習(xí)Linux需要用到圖形界面,所以建議最好不要低于以下配置:CPU,P-3800MHz;內(nèi)存,1GB;硬盤,40GB。在安裝Linux的過程中,必須要有的兩個分區(qū)為根分區(qū)(/)和swap分區(qū)(交換分區(qū)),當(dāng)然還有一些其他的分區(qū)可以獨(dú)立出來,比如說/boot分區(qū)、/var分區(qū)等。另外,這里介紹幾個概念,便于大家理解后面即將出現(xiàn)的一些專業(yè)詞匯。什么是交換分區(qū)?交換分區(qū)是一個特殊的分區(qū),它的作用相當(dāng)于Windows下的虛擬內(nèi)存,這個分區(qū)的大小一般設(shè)置為物理內(nèi)存的兩倍,但是不管物理內(nèi)存有多大,交換分區(qū)建議不要超過8GB,因?yàn)榇笥?GB的交換分區(qū)其實(shí)并沒有多大實(shí)際意義。什么是Grub?Grub是一個系統(tǒng)引導(dǎo)工具,通過它可以加載內(nèi)核,從而引導(dǎo)系統(tǒng)啟動。什么是/boot分區(qū)?/boot分區(qū)用于放置Linux啟動所用到的文件,如kernel和initrd文件。什么是DHCP?DHCP是DynamicHostConfigurationProtocol的簡寫,中文稱為動態(tài)主機(jī)配置協(xié)議。在TCP/IP網(wǎng)絡(luò)中,每臺主機(jī)都需要有IP地址才能與其他主機(jī)通信,在一個大規(guī)模的網(wǎng)絡(luò)中,如果由管理員手動地對每一臺主機(jī)進(jìn)行IP地址配置是不現(xiàn)實(shí)的。由此也就產(chǎn)生了DHCP協(xié)議,可用它來對網(wǎng)絡(luò)節(jié)點(diǎn)上的主機(jī)進(jìn)行IP地址配置。1.3.2安裝RedHat本節(jié)將演示安裝RedHat系統(tǒng)的過程,使用到的版本是RedHat5.5。大家可以先到網(wǎng)上下載RedHat5.5操作系統(tǒng)的ISO文件,然后刻成光盤再安裝。當(dāng)然不要忘記在計(jì)算機(jī)的主板中設(shè)置從光驅(qū)啟動,也可以使用虛擬機(jī)軟件通過安裝虛擬機(jī)的方式模擬安裝過程。計(jì)算機(jī)從光盤啟動后,首先會顯示如圖1-1所示界面(注意看英文提示)。如果想使用圖形界面安裝直接按回車鍵即可,或者在10秒之內(nèi)不做任何輸入,這樣也會默認(rèn)進(jìn)入圖形安裝模式。如果想用字符模式安裝,需要輸入linuxtext,然后按回車鍵。如果計(jì)算機(jī)的內(nèi)存過小,安裝程序會檢測到因內(nèi)存不足而無法進(jìn)入圖形安裝模式,轉(zhuǎn)而進(jìn)入字符安裝模式。圖1-1光盤啟動界面這里選擇使用圖形模式安裝,所以直接按回車鍵。接下來會針對硬件進(jìn)行一些檢測,并加載一些基本的驅(qū)動,然后就到了歡迎界面,如圖1-2所示。圖1-2介質(zhì)檢查界面這里提供了安裝介質(zhì)的檢測功能,一般來說只要下載后的ISO文件所使用的MD5比對值和官方給出的值一樣,就說明安裝介質(zhì)沒有問題,直接略過即可。略過方法是按Tab鍵使光標(biāo)跳至Skip按鈕,然后按回車鍵,這時會載入一個叫做anaconda的安裝程序,如圖1-3所示。它會調(diào)出圖形安裝界面。圖1-3加載anaconda安裝程序注意看圖1-3中的文字:Runninganaconda,theRedHatEnterpriseLinuxServersysteminstaller,這句話說明anaconda其實(shí)是RedHat系統(tǒng)的安裝工具。成功加載了圖形安裝界面后,單擊Next按鈕進(jìn)入下一步,如圖1-4所示。圖1-4anaconda啟動的圖形界面接下來要選擇安裝過程中使用的語言,默認(rèn)選擇English(English),單擊Next按鈕進(jìn)入下一步,如圖1-5所示。在選擇計(jì)算機(jī)使用的鍵盤時,使用默認(rèn)U.S.English,單擊Next按鈕進(jìn)入下一步,如圖1-6所示。進(jìn)入如圖1-7所示的界面后,會提示輸入安裝序列號。只有在購買了RedHat的官方服務(wù)后,才能得到這個序列號。這里讀者可能會有疑問:RedHat不是免費(fèi)的嗎,怎么會有序列號呢?RedHat確實(shí)是免費(fèi)使用的,但是RedHat同時也提供了一些收費(fèi)服務(wù),購買了這些收費(fèi)的服務(wù)后,RedHat官方將會給予相應(yīng)的技術(shù)支持,這就是需要序列號的原因。這里直接略過,選擇SkipenteringInstallationNumber,然后單擊OK按鈕。圖1-5安裝過程中的語言選擇圖1-6鍵盤類型選擇圖1-7輸入安裝序列號這時會彈出一個確認(rèn)窗口,再次單擊Skip按鈕,如圖1-8所示。圖1-8確認(rèn)窗口安裝過程其實(shí)就是將系統(tǒng)裝入磁盤,所以這里會彈出一個警告,提示是否初始化磁盤,這個操作會清除磁盤上的所有數(shù)據(jù),單擊Yes按鈕,如圖1-9所示。如果是在實(shí)際生產(chǎn)環(huán)境中安裝,請一定要注意提前備份數(shù)據(jù)。圖1-9確認(rèn)初始化磁盤接下來到了提示分區(qū)的頁面。單擊下拉框,然后選擇Createcustomlayout,單擊Next按鈕進(jìn)入下一步,如圖1-10所示。圖1-10選擇分區(qū)方式在如圖1-11所示的界面中可以創(chuàng)建分區(qū),單擊New按鈕創(chuàng)建分區(qū)。圖1-11創(chuàng)建磁盤分區(qū)在如圖1-12所示的界面中,MountPoint選擇/boot,F(xiàn)ileSystemType選擇ext3,Size輸入200。設(shè)置好后,單擊OK按鈕,然后再次單擊New按鈕創(chuàng)建第二個分區(qū)。圖1-12創(chuàng)建/boot分區(qū)swap分區(qū)是安裝Linux系統(tǒng)必備的分區(qū),按照之前對swap分區(qū)大小的說明,筆者使用的機(jī)器的內(nèi)存為1024MB,所以這里設(shè)置為2048MB,如圖1-13所示。單擊OK按鈕后再次單擊New按鈕創(chuàng)建第三個分區(qū)。圖1-13創(chuàng)建swap分區(qū)在如圖1-14所示的界面中,把其他所有可用的空間都劃為根分區(qū)(/),MountPoint選擇“/”,F(xiàn)ileSystemType選擇ext3,在AdditionalSizeOptions中選擇Filltomaximumallowablesize。然后單擊OK按鈕,確認(rèn)分區(qū)沒有問題后,單擊Next按鈕進(jìn)入下一步。圖1-14創(chuàng)建根分區(qū)到了安裝Grub的部分,使用默認(rèn)的設(shè)置即可,單擊Next按鈕進(jìn)入下一步,如圖1-15所示。圖1-15安裝Grub圖1-16是網(wǎng)卡配置,使用默認(rèn)的配置,即自動從DHCP獲得地址,單擊Next按鈕進(jìn)入下一步。如果讀者采用的是物理主機(jī)安裝,請確保服務(wù)器網(wǎng)絡(luò)環(huán)境中有DHCP服務(wù)器,如果沒有,需要單擊manually手工設(shè)置IP地址。圖1-16網(wǎng)卡配置設(shè)置時區(qū)時,選擇Asia/Shanghai,然后單擊Next按鈕進(jìn)入下一步。有個快捷的辦法,使用鼠標(biāo)在地圖上單擊中國上海的位置,就可以迅速地設(shè)置好時區(qū),如圖1-17所示。圖1-17時區(qū)選擇設(shè)置root密碼時,輸入兩次同樣的密碼后,單擊Next按鈕進(jìn)入下一步,如圖1-18所示。為了安全起見,建議使用包含數(shù)字、大小寫字母、特殊字符,長度至少為6位的密碼。圖1-18設(shè)置root密碼在圖1-19所示的界面中可以對預(yù)裝的包做一些選擇,如果單擊Customizenow,然后單擊Next按鈕,就會進(jìn)入預(yù)裝包的選擇頁面。因?yàn)槲覀冃枰陌梢院笃谠侔惭b,所以這里直接使用默認(rèn)選項(xiàng),單擊Next按鈕進(jìn)入下一步。圖1-19定制包界面這時安裝程序會進(jìn)行安裝包的依賴關(guān)系的判定,然后跳至如圖1-20所示的最終安裝界面。圖1-20系統(tǒng)安裝確認(rèn)如果這時候想起來有什么需要修改的話,可以單擊Back按鈕后退修改配置,如果確認(rèn)一切設(shè)置正確,就可以單擊Next按鈕,之后便開始格式化分區(qū),并進(jìn)入真正的安裝過程了,如圖1-21所示。圖1-21正式安裝過程正式安裝系統(tǒng)時,視系統(tǒng)配置不同,安裝過程可能會持續(xù)幾分鐘到十幾分鐘不等,這里需要做的只是耐心等待。安裝結(jié)束后,需要重啟以進(jìn)入剛剛安裝的系統(tǒng),單擊Reboot按鈕,如圖1-22所示。至此RedHat系統(tǒng)的安裝就結(jié)束了。圖1-22安裝結(jié)束1.3.3安裝CentOSCentOS與RedHat的安裝過程大同小異,本節(jié)將演示CentOS的完整安裝過程。本例中所采用的版本與之前安裝的RedHat一致,即5.5版本。當(dāng)計(jì)算機(jī)從光盤啟動后,首先將會顯示如圖1-23所示的啟動界面。圖1-23光盤引導(dǎo)界面同樣,在這里直接按回車鍵將進(jìn)入圖形安裝模式,如果計(jì)算機(jī)檢測到內(nèi)存太小,將會自動進(jìn)入字符安裝模式;或者輸入“l(fā)inuxtext”,按回車鍵后進(jìn)入字符安裝模式。這里直接按回車鍵開始安裝過程。安裝介質(zhì)檢測時,按Tab鍵使光標(biāo)跳至Skip按鈕,按回車鍵確認(rèn),如圖1-24所示。圖1-24介質(zhì)檢查界面開始運(yùn)行anaconda,調(diào)出圖形安裝界面,如圖1-25所示。圖1-25加載anaconda安裝程序圖形界面成功啟動,直接單擊Next按鈕進(jìn)入下一步,如圖1-26所示。圖1-26anaconda啟動的圖形界面選擇安裝過程中使用的語言,默認(rèn)選擇English(English),單擊Next按鈕進(jìn)入下一步,如圖1-27所示。圖1-27安裝過程中的語言選擇選擇計(jì)算機(jī)使用的鍵盤時,使用默認(rèn)的U.S.English,單擊Next按鈕進(jìn)入下一步,如圖1-28所示。圖1-28鍵盤類型選擇接下來會提示安裝過程中將會初始化磁盤并刪除數(shù)據(jù),如果在生產(chǎn)環(huán)境中安裝系統(tǒng),請確認(rèn)之前已經(jīng)做好備份。單擊Yes按鈕進(jìn)入下一步,如圖1-29所示。圖1-29確認(rèn)初始化磁盤進(jìn)入分區(qū)設(shè)置后,單擊下拉框選擇Createcustomlayout,然后單擊Next按鈕,如圖1-30所示。圖1-30選擇分區(qū)方式在圖1-31所示的界面中開始創(chuàng)建分區(qū),單擊New按鈕創(chuàng)建一個新的分區(qū)。圖1-31創(chuàng)建分區(qū)與之前安裝RedHat分區(qū)的方式一樣,選擇200MB的/boot分區(qū),2048MB的swap分區(qū),其他所有可用空間分配給根分區(qū),具體分區(qū)方式如圖1-32所示。確認(rèn)分區(qū)無誤后,單擊Next按鈕進(jìn)入下一步。圖1-32最終分區(qū)顯示在Grub配置界面,使用默認(rèn)配置,直接單擊Next按鈕,如圖1-33所示。圖1-33安裝Grub進(jìn)入網(wǎng)卡配置界面后,使用默認(rèn)的DHCP獲得網(wǎng)絡(luò)配置,單擊Next按鈕進(jìn)入下一步,如圖1-34所示。圖1-34網(wǎng)卡配置界面時區(qū)的設(shè)置選擇Asia/Shanghai,然后單擊Next按鈕,如圖1-35所示。圖1-35時區(qū)設(shè)置設(shè)置root密碼時,兩次輸入一樣的密碼后,單擊Next按鈕,如圖1-36所示。圖1-36設(shè)置root密碼接下來選擇預(yù)裝包,如果選擇Customizenow,然后單擊Next按鈕,就可以立即對預(yù)裝的包做選擇。這里采用默認(rèn)值,直接單擊Next按鈕即可,如圖1-37所示。圖1-37包定制界面在如圖1-38所示的界面中單擊Next按鈕進(jìn)入實(shí)際的安裝過程。首先格式化分區(qū)、檢查安裝中的包依賴關(guān)系,然后開始安裝系統(tǒng)。視計(jì)算機(jī)性能不同,安裝過程可能持續(xù)幾分鐘到十幾分鐘不等,如圖1-39所示。圖1-38系統(tǒng)安裝確認(rèn)圖1-39正式安裝界面安裝結(jié)束后,同樣需要重啟系統(tǒng),如圖1-40所示。到此,安裝過程就已經(jīng)結(jié)束了。通過以上RedHat和CentOS的安裝過程演示,相信大家已經(jīng)清楚,兩種系統(tǒng)的安裝過程幾乎是一樣的,這也再次證明了CentOS和RedHat雖然是兩個獨(dú)立的發(fā)行版,但是其實(shí)質(zhì)是一樣的。事實(shí)上,RedHat在發(fā)行的時候都會同時提供二進(jìn)制代碼和源代碼,無論是哪一種方式都可以免費(fèi)從網(wǎng)絡(luò)上獲得,而CentOS所做的就是將RedHat發(fā)行的源代碼重新編譯,形成一個可用的二進(jìn)制版本。由于RedHat在某些情況下使用起來不太便利,例如,使用RedHat的官方軟件倉庫是需要注冊RHN的,因此CentOS在重新編譯的時候不但保留了RedHat所有的功能,同時還做了不少功能上的優(yōu)化。圖1-40安裝完成1.4系統(tǒng)登錄1.4.1第一次登錄系統(tǒng)的設(shè)置不管是RedHat還是CentOS,在第一次啟動時都需要進(jìn)行“首次啟動”的設(shè)置,系統(tǒng)稱之為FirstBoot。本節(jié)將會繼續(xù)演示RedHat和CentOS在首次啟動時的設(shè)置過程。下面就來看看RedHat5.5的首次啟動過程。第一次啟動后,將會進(jìn)入首次啟動的歡迎界面,單擊Forward按鈕,如圖1-41所示。圖1-41首次啟動歡迎界面圖1-42所示是RedHat的版權(quán)申明,必須選擇Yes選項(xiàng),否則就無法繼續(xù)了。單擊Forward按鈕。圖1-42版權(quán)申明進(jìn)入防火墻設(shè)置。單擊Firewall下拉框,選擇Disabled關(guān)閉防火墻,然后單擊Forward按鈕。在隨后彈出的提示框中,選擇Yes選項(xiàng),如圖1-43所示。圖1-43關(guān)閉防火墻進(jìn)入SELinux設(shè)置。單擊SELinuxSetting下拉框,選擇Disabled,然后單擊Forward按鈕,在隨后彈出的提示框中,選擇Yes選項(xiàng),如圖1-44所示。圖1-44關(guān)閉SELinux進(jìn)入Kdump的設(shè)置,默認(rèn)是關(guān)閉的,單擊Forward按鈕,如圖1-45所示。圖1-45Kdump界面在如圖1-46所示的界面中可設(shè)置時間和日期,設(shè)置好后,單擊Forward按鈕。圖1-46時間和日期設(shè)置界面接下來設(shè)置RHN(RedHatNetwork),這里跳過這步,選擇No,Ipreferregisteratalatertime,然后單擊Forward按鈕,如圖1-47所示。在隨后彈出的對話框中,單擊Nothinks,Iwillconnectlater選項(xiàng)。圖1-47注冊RHN在如圖1-48所示的界面中單擊Forward按鈕,進(jìn)入下一步。圖1-48配置完成系統(tǒng)建議創(chuàng)建一個用戶來做一些非管理的任務(wù),不過由于在學(xué)習(xí)的過程中不少操作需要較高的權(quán)限,對于初學(xué)者來說,使用非特權(quán)用戶會在學(xué)習(xí)過程中遇到意想不到的麻煩。所以這里忽略此步,單擊Forward按鈕,如圖1-49所示。在隨后彈出的對話框中選擇Continue,確認(rèn)跳過此步驟。圖1-49創(chuàng)建用戶界面設(shè)置聲卡時,一般直接單擊Forward按鈕即可,因?yàn)檎l也不會用服務(wù)器來聽音樂,如圖1-50所示。圖1-50聲卡檢測如圖1-51所示的界面是安裝過程中最后一次提供安裝軟件的機(jī)會,只要插入原先的安裝光盤就可以選擇安裝其他包。由于暫時不需要安裝特定的軟件,這里單擊Finish按鈕。系統(tǒng)會彈出需要重啟對上述配置生效的提示,單擊OK按鈕后系統(tǒng)將再次重啟,至此RedHat的首次啟動的設(shè)置就結(jié)束了。圖1-51安裝過程中最后安裝軟件的機(jī)會下面再來看看CentOS“首次啟動”的設(shè)置過程。首先呈現(xiàn)的也是一個歡迎界面,單擊Forward按鈕,如圖1-52所示。圖1-52歡迎界面進(jìn)入防火墻設(shè)置界面,單擊Firewall下拉框,選擇Disabled關(guān)閉防火墻,然后單擊Forward按鈕,在隨后彈出的對話框中選擇Yes選項(xiàng),如圖1-53所示。圖1-53設(shè)置防火墻設(shè)置SELinux時,單擊SELinuxSetting下拉框,選擇Disabled關(guān)閉它,然后單擊Forward按鈕,如圖1-54所示。在隨后彈出的對話框中,選擇Yes選項(xiàng)。圖1-54關(guān)閉SELinux接下來要設(shè)置日期和時間了,設(shè)置好后單擊Forward按鈕,如圖1-55所示。圖1-55日期和時間設(shè)置在如圖1-56所示的界面中系統(tǒng)推薦創(chuàng)建一個用戶做日常管理,這里忽略直接單擊Forward按鈕,然后在彈出的對話框中單擊Continue按鈕。圖1-56創(chuàng)建用戶界面進(jìn)行聲卡設(shè)置時,忽略該步驟,單擊Forward按鈕進(jìn)入最后一步,如圖1-57所示。圖1-57聲卡檢測界面在如圖1-58所示的界面中單擊Finish按鈕以結(jié)束全部設(shè)置,然后在彈出的對話框中單擊OK按鈕,系統(tǒng)將會重啟以使剛剛設(shè)置的所有配置生效。圖1-58結(jié)束設(shè)置1.4.2使用圖形模式登錄安裝系統(tǒng)并進(jìn)行了“首次啟動”配置后,系統(tǒng)會再次進(jìn)行重啟,最終顯示在屏幕前的就是如圖1-59所示的登錄界面,這個登錄界面又稱作“登錄管理器”。實(shí)際上Linux使用了一個XServer的底層程序來提供圖形環(huán)境,而用戶是不能直接與這個XServer交互的,必須通過它運(yùn)行的圖形程序才能進(jìn)行交互。圖1-59登錄界面輸入用戶名root和正確的密碼后,就可以登錄進(jìn)入桌面了。可能有人已經(jīng)注意到,登錄界面的下部有4個選項(xiàng),分別是Language、Session、Restart、ShutDown。單擊Language,可以看到有各種語言,有可能有一些呈現(xiàn)方塊狀的亂碼文字,那是因?yàn)槿鄙傧嚓P(guān)文字的文字包,導(dǎo)致字體顯示不正常,但是應(yīng)該不影響大家了解Language的作用就是選擇不同的語言作為登錄后的默認(rèn)語言。單擊Session,可以看到系統(tǒng)提供了3種登錄方式,即Gnome、KDE、Failsafe,這些都是常用的圖形化登錄方式。其實(shí)這些都是Linux下的桌面環(huán)境,大家可以根據(jù)個人喜好選擇。登錄后桌面上默認(rèn)會有3個圖標(biāo),如圖1-60所示,分別是Computer、root'sHome和Trash,分別類似于Windows下的“我的電腦”、“我的文檔”、“回收站”。左上角有3個面板,分別是Applications、Places、System,其中Applications中放置的是應(yīng)用程序,類似Windows下的“所有程序”;Places主要是各種存儲設(shè)備;而System是系統(tǒng)配置相關(guān)的部分,大家可以單擊一下看看都有什么。桌面的右下角有4個方框,這是圖形界面下的虛擬桌面,可以在不同的虛擬桌面上運(yùn)行不同的應(yīng)用,相信這個不難理解。圖1-60Gnome桌面在圖形界面下,最有用的當(dāng)屬gnome-terminal了,打開它的方式有兩種。第一種,如圖1-61所示,依次在圖形界面上點(diǎn)選Applications→Accessories→Terminal,打開圖形終端;第二種,在桌面上右擊,然后點(diǎn)選OpenTerminal,如圖1-62所示。退出圖形登錄的方法也很簡單,在System中選擇LogOutroot即可。圖1-61終端啟動方式一圖1-62終端啟動方式二RedHat和CentOS都默認(rèn)使用Gnome作為桌面環(huán)境,不過說到底,這些桌面環(huán)境都只是Linux環(huán)境下的軟件,所以對桌面的使用方法不是學(xué)習(xí)Linux的重點(diǎn),所以筆者也不準(zhǔn)備對圖形界面做更多的敘述。1.4.3使用終端模式登錄終端模式又稱為命令行模式或字符模式,默認(rèn)情況下Linux提供6個終端,可以使用組合鍵Ctrl+Alt+F1進(jìn)入第一個終端,使用組合鍵Ctrl+Alt+F2進(jìn)入第二個終端,其他終端的組合鍵以此類推。實(shí)際上,終端又叫tty,Linux系統(tǒng)定義了6個tty,分別從tty1到tty6。tty是Teletype的簡寫,Teletype是最早出現(xiàn)的一種終端設(shè)備,很像電傳打字機(jī)。在Linux系統(tǒng)中,在特殊文件目錄/dev下有一些文件與之對應(yīng),比如/dev/tty1、/dev/tty2等,從tty1到tty6又稱為虛擬終端。如果想回到桌面模式,只需要使用組合鍵Ctrl+Alt+F7即可。如果系統(tǒng)設(shè)置默認(rèn)啟動的時候不啟動圖形界面(下一小節(jié)中我們會提到系統(tǒng)中的一個重要的概念:runlevel,當(dāng)runlevel為3時,則不啟動圖形界面),在這個情況下,tty7是不可用的,這時候要想從終端字符界面進(jìn)入圖形界面就需要使用startx這個命令了。命令如下所示(當(dāng)然是否能啟用圖形桌面還取決于系統(tǒng)是否正確地安裝了圖形桌面系統(tǒng))。[root@localhost~]#startx如果現(xiàn)在在字符登錄界面,默認(rèn)屏幕上會顯示如下內(nèi)容:CentOSrelease5.5(Final)Kernel2.6.18-194.el5onani686Localhostlogin:rootPassword:Lastlogin:TueOct922:07:002012[root@localhost~]#其中,第一行是發(fā)行版的名稱(CentOS)和版本號(5.5);第二行是內(nèi)核版本(2.6.18-194.el5),以及當(dāng)前運(yùn)行的硬件平臺(i686);第三行是主機(jī)名(localhost),login后面等待用戶輸入,這里輸入“root”;第四行等待輸入root用戶的密碼;第五行是當(dāng)成功登錄時,系統(tǒng)會顯示出該用戶上次成功登錄的時間;第六行顯示登錄成功后用戶和主機(jī)名以及所在的目錄,“~”是用戶home目錄(又叫“用戶家目錄”)的簡寫。最后的“#”是一個提示符,出現(xiàn)“#”說明目前的用戶是有超級權(quán)限的root用戶,而一般用戶的提示符是“$”?,F(xiàn)在已經(jīng)登錄到字符界面中了。讀者或許已經(jīng)注意到,登錄前字符終端上打印出來了一些系統(tǒng)信息(第一行和第二行),它們實(shí)際上來自系統(tǒng)中的一個配置文件。為了讓大家理解Linux系統(tǒng)中“一切皆文件”的概念,同時提高大家對Linux系統(tǒng)的興趣,讓我們一起來做個小實(shí)驗(yàn)。首先使用如下命令編輯文件:[root@localhost~]#vi/etc/issue在隨后出現(xiàn)的界面中,按住鍵盤上的Shift+G組合鍵(也就是輸入大寫字母G),再按字母o鍵,接著輸入“Hello,WelcometoLinux”,之后按Esc鍵,然后按一下冒號鍵,在冒號后面輸入字母x,按回車鍵,最后在窗口中輸入命令exit。看看現(xiàn)在的登錄界面與之前有什么不一樣?做了這個實(shí)驗(yàn)后能得到什么結(jié)論呢?還有,剛剛大家其實(shí)已經(jīng)用了一部分Linux下強(qiáng)大的字符編輯器vi了,關(guān)于此編輯器更詳細(xì)的使用方法后面會專門講解。值得提醒的是,在平時的工作中,當(dāng)你登錄到系統(tǒng)中進(jìn)行操作后,一定要記得在離開終端前要輸入exit命令退出當(dāng)前的登錄用戶,防止他人利用該賬戶進(jìn)行操作而造成麻煩。1.4.4開始學(xué)習(xí)使用Linux的命令相信讀者或多或少都知道,對Linux的管理大多使用的是命令行模式,這是為什么呢?命令行界面有很多優(yōu)點(diǎn),尤其是它的高效靈活讓Linux的管理非常有效率。但是命令行使用起來并不簡單,必須長期使用才能熟能生巧。本節(jié)將通過幾個常見的命令來介紹一下命令的一般使用方法。1.顯示日期:date[root@localhost~]#dateThuOct1123:05:54CST2012上面顯示的時間是:星期四,10月11日,23點(diǎn)5分54秒,CST時區(qū),2012年。這里要說明的是,Linux下的命令是嚴(yán)格區(qū)分大小寫的。例如,把date寫成DATE,就會提示commandnotfound,也就是沒有這個命令,如下所示:[root@localhost~]#DATE-bash:DATE:commandnotfound當(dāng)然,date命令后也可以加上一些“參數(shù)”來調(diào)整命令顯示內(nèi)容,如下所示:[root@localhost~]#date+%Y%m%d20121011上面顯示的是2012年10月11日。date命令本身還有其他的一些參數(shù),通過不同的參數(shù)可以顯示出不同的內(nèi)容。命令和參數(shù)之間使用一個或者多個空格隔開。2.列出目錄內(nèi)容:ls[root@localhost~]#lsanaconda-ks.cfgDesktopinstall.loginstall.log.syslog使用root登錄系統(tǒng)后,使用ls命令可以列出當(dāng)前目錄下的內(nèi)容,上面的命令顯示了anaconda-ks.cfg、Desktop、install.log、install.log.syslog四個內(nèi)容。不過看起來好像沒什么區(qū)別,讓我們在這個命令后加一個參數(shù)試試。[root@localhost~]#ls-ltotal60-rw1rootroot954Oct721:02anaconda-ks.cfgdrwxr-xr-x2rootroot4096Oct722:53Desktop-rw-r--r--1rootroot30975Oct721:02install.log-rw-r--r--1rootroot4492Oct720:59install.log.syslog從所顯示內(nèi)容的第一列可以看到,其實(shí)Desktop不同于其他3個,注意到Desktop所在行的第一個字母是d,這說明它是一個目錄(在后面會詳細(xì)講到該位上不同的字符所代表的不同含義),而其他3個都是普通文件。通過這個例子可以知道,ls-l的作用是詳細(xì)顯示當(dāng)前目錄下的所有文件。如果只是想詳細(xì)顯示其中一個文件,那么該怎么做呢?只要加上需要顯示的文件就可以了。這說明ls命令除了-l選項(xiàng)之外,還可以在后面再加參數(shù)。比如下面是添加了anaconda-ks.cfg參數(shù):[root@localhost~]#ls-lanaconda-ks.cfg-rw1rootroot954Oct721:02anaconda-ks.cfg3.顯示文件內(nèi)容:catanaconda-ks.cfg是一個文本文件,那么里面的內(nèi)容是什么呢?可以使用cat命令來顯示。[root@localhost~]#catanaconda-ks.cfg#Kickstartfileautomaticallygeneratedbyanaconda(略去內(nèi)容)上面給大家展示了幾個命令的基本使用方式。一般來說,命令在使用中有以下幾種方式:·部分命令后面可以直接回車?!げ糠置詈竺婵梢愿咸囟ǖ摹斑x項(xiàng)”作為該命令的參數(shù)?!げ煌拿钏芨膮?shù)以及參數(shù)的個數(shù)一般不同。1.5系統(tǒng)啟動流程1.5.1系統(tǒng)引導(dǎo)概述為了更好地了解Linux系統(tǒng)的運(yùn)行原理,非常有必要了解系統(tǒng)啟動的流程。實(shí)際上,這也是學(xué)習(xí)Linux應(yīng)知應(yīng)會的內(nèi)容,在很多Linux系統(tǒng)工程師的職位面試中都會被問及。來想象一下臺式機(jī)的啟動過程,相信大家都有這樣的經(jīng)驗(yàn)和體會。在按開機(jī)電源后,會聽到機(jī)箱內(nèi)發(fā)出“滴”的一聲,接著屏幕上開始打印出一些字符,然后開始顯示出圖形界面,最后屏幕上會顯示需要輸入用戶名、密碼的登錄界面。其實(shí),不管是Linux還是Windows,從用戶感官上的體驗(yàn)而言,順序都是大同小異的。本節(jié)將詳細(xì)描述Linux環(huán)境下的啟動流程,起點(diǎn)是從按下計(jì)算機(jī)的電源鍵開始。首先,計(jì)算機(jī)會加載BIOS,這是計(jì)算機(jī)上最接近硬件的軟件,各家主板制造商都會開發(fā)適合自己主板的BIOS,而BIOS中一項(xiàng)很重要的功能就是對自身的硬件做一次健康檢查,只有硬件沒有問題,才能運(yùn)行軟件,記住,操作系統(tǒng)也是一種軟件。這種通電后開始的自檢過程被稱為“加電自檢”,英文中稱為PowerOnSelfTest,簡稱POST。如果所有的硬件自檢通過,一般都會發(fā)出一次“滴”的短聲提示,說明硬件一切正常。機(jī)器自檢通過后,下面就要引導(dǎo)系統(tǒng)了。這個動作是BIOS設(shè)定的,BIOS默認(rèn)會從硬盤上的第0柱面、第0磁道、第一個扇區(qū)中讀取被稱為MBR的東西,即主引導(dǎo)記錄。一個扇區(qū)的大小是512字節(jié),存放的內(nèi)容是一段引導(dǎo)程序和分區(qū)信息,其中引導(dǎo)程序部分占用446字節(jié),另外64字節(jié)是磁盤分區(qū)表DPT,最后兩字節(jié)是MBR的結(jié)束位。這512字節(jié)的空間內(nèi)容是由專門的分區(qū)程序產(chǎn)生的,比如說Windows下的fdisk.exe,或者Linux下的fdisk命令,所以它不依賴于任何操作系統(tǒng),而MBR中的引導(dǎo)程序也是可以修改的,所以可以利用這個特性實(shí)現(xiàn)多操作系統(tǒng)共存。由于RedHat、CentOS默認(rèn)會使用Grub作為其引導(dǎo)操作系統(tǒng)的程序,而Grub本身又比較大,所以常見的方式是在MBR中寫入Grub的地址,這樣系統(tǒng)實(shí)際會載入Grub作為操作系統(tǒng)的引導(dǎo)程序。經(jīng)過了上面的步驟,第三步就是順理成章地運(yùn)行Grub了。Grub最重要的功能就是根據(jù)其配置文件加載kernel鏡像,并運(yùn)行內(nèi)核加載后的第一個程序/sbin/init,這個程序會根據(jù)/etc/inittab來進(jìn)行初始化的工作。其實(shí)這里最重要的就是根據(jù)文件中設(shè)定的值來確定系統(tǒng)將會運(yùn)行的runlevel,默認(rèn)的runlevel定義在“id:3:initdefault:”中,其中的數(shù)字3說明目前的運(yùn)行級別定義為3(這里提到了runlevel的概念,將在后面詳細(xì)講解)。第四步,Linux將根據(jù)/etc/inittab中定義的系統(tǒng)初始化配置si::sysinit:/etc/rc.d/rc.sysinit執(zhí)行/etc/rc.sysinit腳本,該腳本將會設(shè)置系統(tǒng)變量、網(wǎng)絡(luò)配置,并啟動swap、設(shè)定/proc、加載用戶自定義模塊、加載內(nèi)核設(shè)置等。第五步是根據(jù)第三步讀到的runlevel值來啟動對應(yīng)的服務(wù),如果值為3,就會運(yùn)行/etc/rc3.d/下的所有腳本,如果值為5,就會運(yùn)行/etc/rc5.d/下的所有腳本。第六步將運(yùn)行/etc/rc.local,第七步會生成終端或XWindow來等待用戶登錄。1.5.2系統(tǒng)運(yùn)行級別前一節(jié)多次提到了runlevel這個詞,但是runlevel究竟是什么呢?我們說Linux默認(rèn)有7個運(yùn)行級,從運(yùn)行級0到運(yùn)行級6,每一個運(yùn)行級所對應(yīng)的含義如下:運(yùn)行級0:關(guān)機(jī)。運(yùn)行級1:單用戶模式,系統(tǒng)出現(xiàn)問題時可使用這種模式進(jìn)入系統(tǒng)維護(hù),典型的使用場景是在忘記root密碼時可進(jìn)入此模式修改root密碼。運(yùn)行級2:多用戶模式,但是沒有網(wǎng)絡(luò)連接。運(yùn)行級3:完全多用戶模式,這也是Linux服務(wù)器最常見的運(yùn)行級。運(yùn)行級4:保留未使用。運(yùn)行級5:窗口模式,支持多用戶,支持網(wǎng)絡(luò)。運(yùn)行級6:重啟。任何時候Linux只能在一種runlevel下運(yùn)行。那么不同的runlevel之間到底有什么區(qū)別呢?上一節(jié)中提到,系統(tǒng)在啟動的過程中會根據(jù)/etc/inittab中的設(shè)定讀取runlevel的數(shù)值X,并相應(yīng)地讀取和運(yùn)行/etc/rcX.d(X代表0~6)下所有的腳本??匆幌?etc/rc3.d中的內(nèi)容:[root@localhost~]#ll/etc/rc3.d/total288(略去內(nèi)容)lrwxrwxrwx1rootroot15Oct720:52K15httpd->../init.d/httpdlrwxrwxrwx1rootroot13Oct720:55K20nfs->../init.d/nfs(略去內(nèi)容)lrwxrwxrwx1rootroot18Oct720:50S08iptables->../init.d/iptableslrwxrwxrwx1rootroot17Oct720:52S10network->../init.d/network(略去內(nèi)容)注意看每行中第9列的內(nèi)容,分別是以K或S開頭、后跟兩位數(shù)字、再接服務(wù)名的文件,其實(shí)它們鏈接的是上層init.d目錄中的服務(wù)腳本。系統(tǒng)在啟動過程中,會首先運(yùn)行以K開頭的腳本,全部運(yùn)行完畢后再運(yùn)行以S開頭的腳本,在運(yùn)行所有K開頭的腳本時,又會嚴(yán)格按照K后面的數(shù)字大小依次來運(yùn)行,也就是數(shù)字小的先運(yùn)行,數(shù)字大的后運(yùn)行。同樣,在運(yùn)行S開頭的腳本時,也是按照這個原則進(jìn)行的,即先運(yùn)行數(shù)字小的腳本,再運(yùn)行數(shù)字大的腳本。K和S的意思分別是停止(kill)和啟動(start),只要定義好不同運(yùn)行級需要啟動和停止的服務(wù),就可以讓系統(tǒng)在不同的運(yùn)行級下啟動和關(guān)閉不一樣的服務(wù)。再來對比一下/etc/rc1.d下的關(guān)于network項(xiàng)內(nèi)容:[root@localhost~]#ll/etc/rc1.d/total288(略去內(nèi)容)lrwxrwxrwx1rootroot17Oct720:52K90network->../init.d/network(略去內(nèi)容)在運(yùn)行級為1的時候,network是在開機(jī)啟動的過程中被關(guān)閉的(K90network),而在運(yùn)行級為3的時候,network則是被開啟的(S10network)。1.5.3服務(wù)啟動腳本上節(jié)在介紹Linux運(yùn)行級時,談到在Linux啟動過程中會使用K或S開頭的腳本關(guān)閉或啟動相關(guān)服務(wù),那么這是怎么做到的呢?本節(jié)將通過一個腳本幫助大家理解。當(dāng)然因?yàn)檫@里還沒有講到Shell編程的內(nèi)容,所以只做非常簡單的講解。#!/bin/bash#一個bash腳本開始的標(biāo)記,必須是用“#!/bin/bash”開頭,含義是提示系統(tǒng)在運(yùn)行該腳本時使用/bin/bash作為執(zhí)行該文件的解釋器#/etc/rc.d/init.d/atd#說明自己的絕對路徑#Startstheatdaemon##chkconfig:345955#345是說在運(yùn)行級是345的時候,默認(rèn)開啟atd,也就是Start#95是說明當(dāng)默認(rèn)設(shè)置為on的時候,運(yùn)行優(yōu)先級定為95#5是說明當(dāng)默認(rèn)設(shè)置為off的時候,停止優(yōu)先級定為5#description:Runscommandsscheduledbytheatcommandatthetime#specifiedwhenatwasrun,andrunsbatchcommandswhentheload#averageislowenough.#processname:atd#Sourcefunctionlibrary../etc/init.d/functions#使用“.”命令包含文件,可以使用/etc/init.d/functions中定義的函數(shù)#pullinsysconfigsettings[-f/etc/sysconfig/atd]&&./etc/sysconfig/atdtest-x/usr/sbin/atd||exit0RETVAL=0##Seehowwewerecalled.#prog="atd"start(){#Checkifatdisalreadyrunningif[!-f/var/lock/subsys/atd];thenecho-n$"Starting$prog:"daemon/usr/sbin/atd$OPTS&&success||failureRETVAL=$?[$RETVAL-eq0]&&touch/var/lock/subsys/atdechofireturn$RETVAL}#定義start函數(shù)stop(){echo-n$"Stopping$prog:"killproc/usr/sbin/atdRETVAL=$?[$RETVAL-eq0]&&rm-f/var/lock/subsys/atdechoreturn$RETVAL}#定義stop函數(shù)restart(){stopstart}#定義restart函數(shù),實(shí)際調(diào)用時,先執(zhí)行stop函數(shù)后執(zhí)行start函數(shù)reload(){restart}#定義reload函數(shù),實(shí)際調(diào)用時,就是執(zhí)行restart函數(shù)status_at(){status/usr/sbin/atd}#定義status_at函數(shù),實(shí)際調(diào)用時,是調(diào)用/etc/init.d/functions中定義的函數(shù)status,參數(shù)為/usr/sbin/atd,也就是查詢atd的運(yùn)行狀態(tài)case"$1"instart)start;;stop)stop;;reload|restart)restart;;condrestart)if[-f/var/lock/subsys/atd];thenrestartfi;;status)status_at;;*)echo$"Usage:$0{start|stop|restart|condrestart|status}"exit1esacexit$?exit$RETVAL上面的腳本實(shí)際上是/etc/init.d/atd中的內(nèi)容,我在腳本中做了一些注釋來簡單講解腳本的處理過程。當(dāng)atd設(shè)置為啟動時,將會在對應(yīng)的/etc/rcX.d(X代表0~6)目錄下顯示:S95atd->../init.d/atd,系統(tǒng)根據(jù)第一個字母S判定atd需要啟動,然后會調(diào)用命令/etc/init.d/atdstart;當(dāng)atd設(shè)置為關(guān)閉時,將會在對應(yīng)的/etc/rcX.d目錄下顯示:K05atd->../init.d/atd,系統(tǒng)根據(jù)第一個字母K判定atd需要關(guān)閉,然后調(diào)用命令/etc/init.d/atdstop,這樣就實(shí)現(xiàn)了對atd的啟??刂疲渌?wù)也是同樣的原理。1.5.4Grub介紹在之前的系統(tǒng)引導(dǎo)概述中,相信大家已經(jīng)看到Grub這個詞了,它的全稱為GrandUnifiedBootloader,也是GNU贊助的項(xiàng)目之一,事實(shí)上Grub可以引導(dǎo)多個操作系統(tǒng)。早先Linux的引導(dǎo)程序是lilo,含義為LinuxLoader,這是ext2文件系統(tǒng)中特有的引導(dǎo)程序,現(xiàn)在基本上已經(jīng)不再使用了。在之前的系統(tǒng)啟動流程中提到,計(jì)算機(jī)在啟動時,BIOS默認(rèn)會從硬盤上的第0柱面、第0磁道、第一個扇區(qū)中讀取512字節(jié)的數(shù)據(jù)來引導(dǎo)系統(tǒng)啟動,但是Grub這個程序遠(yuǎn)遠(yuǎn)大于512字節(jié),這一個扇區(qū)又如何能夠載下Grub所有的內(nèi)容呢?為了解決這個問題,實(shí)際上Grub的啟動是分成兩段完成的。第一段以stage1作為主引導(dǎo)程序,它的主要任務(wù)是定位和裝載第二段引導(dǎo)程序,并轉(zhuǎn)交控制權(quán),即stage2。Grub目錄中的內(nèi)容如下:[root@localhostgrub]#cd/boot/grub/[root@localhostgrub]#ls-ltotal257-rw-r--r--1rootroot63Oct721:02device.map-rw-r--r--1rootroot7584Oct721:02e2fs_stage1_5-rw-r--r--1rootroot7456Oct721:02fat_stage1_5-rw-r--r--1rootroot6720Oct721:02ffs_stage1_5-rw1rootroot573Oct721:02grub.conf-rw-r--r--1rootroot6720Oct721:02iso9660_stage1_5-rw-r--r--1rootroot8192Oct721:02jfs_stage1_5lrwxrwxrwx1rootroot11Oct721:02menu.lst->./grub.conf-rw-r--r--1rootroot6880Oct721:02minix_stage1_5-rw-r--r--1rootroot9248Oct721:02reiserfs_stage1_5-rw-r--r--1rootroot55808Mar132009splash.xpm.gz-rw-r--r--1rootroot512Oct721:02stage1-rw-r--r--1rootroot104988Oct721:02stage2-rw-r--r--1rootroot7072Oct721:02ufs2_stage1_5-rw-r--r--1rootroot6272Oct721:02vstafs_stage1_5-rw-r--r--1rootroot8904Oct721:02xfs_stage1_5注意一下,有一個stage1的文件,大小為512字節(jié),正好是一個扇區(qū)的大小。其實(shí)這不是一個巧合,stage1確實(shí)是MBR的一個副本。還可以看到有很多文件是以stage1_5結(jié)尾的,事實(shí)上這些文件是各種文件系統(tǒng)的驅(qū)動文件,當(dāng)stage1從不同的文件系統(tǒng)中讀取stage2時將用到這些驅(qū)動文件。對Grub的配置可以通過修改Grub的配置文件完成,一般配置文件為/boot/grub/grub.conf。修改后的配置將直接影響下次引導(dǎo)時的行為。下面是系統(tǒng)安裝過程中自動生成的配置:#grub.confgeneratedbyanaconda##Notethatyoudonothavetorerungrubaftermakingchangestothisfile#NOTICE:Youhavea/bootpartition.Thismeansthat#allkernelandinitrdpathsarerelativeto/boot/,eg.#root(hd0,0)#kernel/vmlinuz-versionroroot=/dev/sda3#initrd/initrd-version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitleCentOS(2.6.18-194.el5)root(hd0,0)kernel/vmlinuz-2.6.18-194.el5roroot=LABEL=/rhgbquietinitrd/initrd-2.6.18-194.el5.img其中,default=0的含義是默認(rèn)從第一個title處啟動。這里的配置文件中只有一個title項(xiàng),但是如果還有第二個title項(xiàng),則可以配置默認(rèn)從第二個title處引導(dǎo)系統(tǒng),只要把default改為1就可以了(注意這里的計(jì)數(shù)是從0開始的)。timeout=5的含義是顯示這個title項(xiàng)時,同時有5秒倒計(jì)時,5秒內(nèi)可以按回車鍵提前從默認(rèn)的啟動項(xiàng)中啟動,也可以按上下鍵立即停止倒計(jì)時,選定一個title,然后按回車鍵確認(rèn)從選定的title中啟動。也可以選定某一個title后,按e鍵進(jìn)入編輯模式,這樣可以即時對Grub進(jìn)行配置,但是這時的配置并不會寫入配置文件中,而只是當(dāng)時生效。splashimage是指定啟動時的背景圖像。如果系統(tǒng)使用的是sata磁盤,則命名規(guī)則為:第一塊磁盤是sda,第二塊磁盤是sdb,以此類推。對磁盤進(jìn)行分區(qū)后的分區(qū)命名規(guī)則是,第一個磁盤的第一個分區(qū)是sda1,第一個磁盤的第二個分區(qū)是sda2,第二個磁盤的第一個分區(qū)是sdb1,第二個磁盤的第二個分區(qū)是sdb2。而Grub使用hd0代表第一塊磁盤,而這里(hd0,0)的含義是第一塊磁盤的第一個分區(qū)。所以(hd0,0)/grub/splash.xpm.gz的絕對路徑就是/boot/grub/splash.xpm.gz,這是一個壓縮文件,Grub在啟動時會自動對該文件做解壓縮。hiddenmenu是設(shè)置啟動時是否顯示菜單。title是系統(tǒng)引導(dǎo)時顯示的名字,這只是一種識別性的文字,可以任意修改。文件的最后3行是相互關(guān)聯(lián)的,第一行root(hd0,0)參數(shù)指定了內(nèi)核放置的分區(qū);第二行kernel/vmlinuz-2.6.18-194.el5roroot=LABEL=/rhgbquiet指定了內(nèi)核的路徑,表示內(nèi)核是(hd0,0)分區(qū)中的vmlinuz-2.6.18-194.el5文件,roroot=LABEL=/rhgbquiet是啟動內(nèi)核時向內(nèi)核傳入的參數(shù);最后一行initrd/initrd-2.6.18-194.el5.img指定了initrd文件的路徑是(hd0,0)中的initrd-2.6.18-194.el5.img文件。這里第一次提到initrd文件,其英文含義是bootloaderinitializedRAMdisk,也就是bootloader用于初始化的內(nèi)存磁盤,是系統(tǒng)啟動時的臨時文件系統(tǒng),kernel通過讀取initrd來獲得各種可執(zhí)行文件和設(shè)備驅(qū)動,并掛載真實(shí)的文件系統(tǒng),然后卸載這個臨時文件系統(tǒng)。在桌面或者Linux服務(wù)器中,initrd文件只是一個臨時的文件系統(tǒng),其生命周期很短,只會用作掛載真實(shí)文件系統(tǒng)的一個接力,在很多嵌入式系統(tǒng)中,由于不需要外接大存儲設(shè)備,所以initrd會作為永久的文件系統(tǒng)直接使用。1.6獲得幫助1.6.1使用manpage目前Linux下有約2600個命令,每個命令的參數(shù)各異,所以不知道如何使用命令是很正常的。后面的章節(jié)中將會進(jìn)一步學(xué)習(xí)基本的命令,不過仍然無法窮舉所有命令的使用方法,那該怎么辦呢?難道需要背下每

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論