- Linux就該這么學
- 劉遄
- 12293字
- 2019-01-05 05:53:53
前言
本書作者劉遄(Liu Chuán)從事于Linux運維技術行業,高中時期便因興趣的驅使而較早地接觸到了Linux系統并開始學習運維技術,并且在2012年獲得紅帽工程師RHCE 6版本證書,在2015年初又分別獲得紅帽工程師RHCE 7版本證書與紅帽架構師認證RHCA頂級證書。
盡管如此,但依然深知水平有限且技術一般,若不是得益于良師益友的無私幫助,肯定不能如此順利地取得上述成績。并且,作為一名普通的技術人,我親身經歷過半夜還在培訓班的心酸,體驗過擁堵6小時車程的無奈,也翻看過市面上十幾本如同嚼蠟般的Linux技術書籍,這讓我更加堅定了寫作本書的信念。此刻,我正是懷揣著一顆忐忑的心,盡自己最大的努力把有用的知識分享給讀者,希望你們能夠少走一些彎路,更快地入門Linux系統。
竊以為,一名技術高超的導師不應該僅僅是技術的搬運工,而應該是優質知識的提煉者,所以在寫作本書的過程中,我不希望也不會將自己了解掌握的所有技術知識都寫到書里,借此來炫技,而是從真正貼近于新人學習特點的角度出發,主動摒棄了不實用的部分,并把重點、難點反復實踐,以加深讀者對理論基礎的理解,并徹底掌握生產環境中用到的技術內容。
本書基于最新的Linux系統RHEL 7編寫而成,而且配套軟件及資料完全免費,課程面向Linux新手。本書會從零基礎帶領讀者入門Linux系統,然后漸進式地提高內容難度,使其匹配生產環境對運維人員的要求。而且,本書每章都配套有大量的圖、表、命令示例以及課后習題,以達到增強讀者學習興趣與加深記憶的效果。最后,本書以及配套資源相較于當前的RHCE培訓,至少要多出40%的內容,只要您能每天堅持學習,相信這絕對是您體驗最佳、進步最快的一次學習經歷。
最后想說的是,我的寫作初心其實并不高雅,只是在還債,還十幾年來中國有如此多的培訓機構賺了那么多錢,但卻沒有培訓機構真正給學員提供一本好教材的債,而這應該是我們的學員早就應該享受的服務,不能再選擇性失明了。而到了2017年,我的寫作初衷也融入了一點小私心,除了運營好《Linux就該這么學》圖書的在線學習網站http://www.linuxprobe.com/,服務更多的學員和讀者之外,還要把我們的免費開源圖書做到遠超其他培訓機構收費教材的水平,并堅持做中國開源站點的道德典范,不欺騙,不作惡,保持最純凈的技術交流環境,而我們想要得到的也很簡單——如果您認可了劉遄老師的付出并滿意我們的服務,還請把本書告訴身邊的朋友,讓更多的人知道我們在做的這件很酷的事。
學習是件苦差事
我不想回避這個問題——學習是件痛苦的事情。如果說學習Linux真的很簡單,那必是騙子的謊言,起碼這不能給您帶來高薪。在每次起床后的幾分鐘時間里,大腦都會陷入斗爭狀態——是該聊會天呢,還是要追個美劇呢,還是打一局英雄聯盟呢,還是看一下那該死的劉遄寫的那本可怕的Linux教材呢?這個時候,請不要忘記自己最初的夢想。十年后的你,一定會感激現在拼命努力學習的自己。身為作者,我的使命就是讓本書對得起你為此花費的時間、精力和金錢,讓你每學完一個章節都是一次進步。
稻盛和夫先生在《活法》中有段一直激勵著我的話,現在轉送給正在閱讀本書的你:
“工作馬馬虎虎,只想在興趣和游戲中尋覓快活,充其量只能獲得一時的快感,絕不能嘗到從心底涌出的驚喜和快樂,但來自工作的喜悅并不像糖果那樣——放進嘴里就甜味十足,而是需要從苦勞與艱辛中滲出,因此當我們聚精會神,孜孜不倦,克服艱辛后的成就感,世上沒有哪種喜悅可以類比”。
“更何況人類生活中工作占據了較大的比重,如果不能從勞動中、工作中獲得充實感,那么即使從別的地方找到快樂,最終我們仍然會感到空虛和缺憾”。
開源共享精神
簡單來說,開源軟件的特點就是把軟件程序與源代碼文件一起打包提供給用戶,讓用戶在不受限制地使用某個軟件功能的基礎上還可以按需進行修改,或編制成衍生產品再發布出去。用戶具有使用自由、修改自由、重新發布自由以及創建衍生品的自由。這也正好符合了黑客和極客對自由的追求,因此國內外開源社區的根基都很龐大,人氣也相當高。
坦白來講,每位投身于Linux行業的技術人或者程序員只要聽到開源項目就會由衷地感到自豪,這是一種從骨子里帶有的獨特情懷。開源的企業不單純是為了利益,而是互相扶持,努力服務好更多的用戶。開源軟件最重要的特性有下面這些。
低風險:使用閉源軟件無疑把命運交付給他人,一旦封閉的源代碼沒有人來維護,你將進退維谷;而且相較于商業軟件公司,開源社區很少存在倒閉的問題。
高品質:相較于閉源軟件產品,開源項目通常是由開源社區來研發及維護的,參與編寫、維護、測試的用戶量眾多,一般的bug還沒有等爆發就已經被修補。
低成本:開源工作者都是在幕后默默且無償地付出勞動成果,為美好的世界貢獻一份力量,因此使用開源社區推動的軟件項目可以節省大量的人力、物力和財力。
更透明:沒有哪個笨蛋會把木馬、后門等放到開放的源代碼中,這樣無疑是把自己的罪行暴露在陽光之下。
但是,如果開源軟件為了單純追求“自由”而犧牲程序員的利益,這將會影響程序員的創造激情,因此世界上現在有60多種被開源促進組織(Open Source Initiative)認可的開源許可協議來保證開源工作者的權益。對于那些只知道一味抄襲、篡改、破解或者盜版他人作品的不法之徒,終歸會在某一天收到法院的傳票。對于準備編寫一款開源軟件的開發人員,也非常建議先了解一下當前最熱門的開源許可協議,選擇一個合適的開源許可協議來最大限度保護自己的軟件權益。
GNU GPL(GNU General Public License, GNU通用公共許可證):只要軟件中包含了遵循GPL協議的產品或代碼,該軟件就必須也遵循GPL許可協議且開源、免費,因此這個協議并不適合商用軟件。遵循該協議的開源軟件數量極其龐大,包括Linux系統在內的大多數的開源軟件都是基于這個協議的。GPL開源許可協議最大的4個特點如下所示。

◆ 復制自由:允許把軟件復制到任何人的電腦中,并且不限制復制的數量。
◆ 傳播自由:允許軟件以各種形式進行傳播。
◆ 收費傳播:允許在各種媒介上出售該軟件,但必須提前讓買家知道這個軟件是可以免費獲得的;因此,一般來講,開源軟件都是通過為用戶提供有償服務的形式來盈利的。
◆ 修改自由:允許開發人員增加或刪除軟件的功能,但軟件修改后必須依然基于GPL許可協議授權。
BSD(Berkeley Software Distribution,伯克利軟件發布版)許可協議:用戶可以使用、修改和重新發布遵循該許可的軟件,并且可以將軟件作為商業軟件發布和銷售,前提是需要滿足下面3個條件。

◆ 如果再發布的軟件中包含源代碼,則源代碼必須繼續遵循BSD許可協議。
◆ 如果再發布的軟件中只有二進制程序,則需要在相關文檔或版權文件中聲明原始代碼遵循了BSD協議。
◆ 不允許用原始軟件的名字、作者名字或機構名稱進行市場推廣。
Apache許可證版本(Apache License Version)許可協議:在為開發人員提供版權及專利許可的同時,允許用戶擁有修改代碼及再發布的自由。該許可協議適用于商業軟件,現在熱門的Hadoop、Apache HTTP Server、MongoDB等項目都是基于該許可協議研發的,程序開發人員在開發遵循該協議的軟件時,要嚴格遵守下面的4個條件。

◆ 該軟件及其衍生品必須繼續使用Apache許可協議。
◆ 如果修改了程序源代碼,需要在文檔中進行聲明。
◆ 若軟件是基于他人的源代碼編寫而成的,則需要保留原始代碼的協議、商標、專利聲明及其他原作者聲明的內容信息。
◆ 如果再發布的軟件中有聲明文件,則需在此文件中標注Apache許可協議及其他許可協議。
MPL(Mozilla Public License, Mozilla公共許可)許可協議:相較于GPL許可協議,MPL更加注重對開發者的源代碼需求和收益之間的平衡。
MIT(Massachusetts Institute of Technology)許可協議:目前限制最少的開源許可協議之一,只要程序的開發者在修改后的源代碼中保留原作者的許可信息即可,因此普遍被商業軟件所使用。
為什么學習Linux系統
早在20世紀70年代,UNIX系統是開源而且免費的。但是在1979年時,AT&T公司宣布了對UNIX系統的商業化計劃,隨之開源軟件業轉變成了版權式軟件產業,源代碼被當作商業機密,成為專利產品,人們再也不能自由地享受科技成果。
于是在1984年,Richard Stallman面對于如此封閉的軟件創作環境,發起了GNU源代碼開放計劃并制定了著名的GPL許可協議。1987年時,GNU計劃獲得了一項重大突破——gcc編譯器發布,這使得程序員可以基于該編譯器編寫出屬于自己的開源軟件。隨之,在1991年10月,芬蘭赫爾辛基大學的在校生Linus Torvalds編寫了一款名為Linux的操作系統。該系統因其較高的代碼質量且基于GNU GPL許可協議的開放源代碼特性,迅速得到了GNU計劃和一大批黑客程序員的支持。隨后Linux系統便進入了如火如荼的發展階段。
1994年1月,Bob Young在Linux系統內核的基礎之上,集成了眾多的源代碼和程序軟件,發布了紅帽系統并開始出售技術服務,這進一步推動了Linux系統的普及。1998年以后,隨著GNU源代碼開放計劃和Linux系統的繼續火熱,以IBM和Intel為首的多家IT企業巨頭開始大力推動開放源代碼軟件的發展。到了2017年年底,Linux內核已經發展到了4.13版本,并且Linux系統版本也有數百個之多,但它們依然都使用Linus Torvalds開發、維護的Linux系統內核。RedHat公司也成為了開源行業及Linux系統的帶頭公司。
在講課時,我經常會問同學們一個問題:“為什么學習Linux系統?”很多學生為了讓我高興,直接就說“因為Linux系統是開源的,所以要去學習”。其實這個想法是完全錯誤的!開源的操作系統少說有100個,開源的軟件至少也有十萬個,為什么不去逐個學習?所以上面談到的開源特性只是一部分優勢,并不足以成為您付出精力去努力學習的理由。
對于用戶來講,開源精神僅具備錦上添花的效果,因此正確的學習動力應該源自于:Linux系統是一款優秀的軟件產品,具有類似UNIX的程序界面,而且繼承了UNIX的穩定性,能夠較好地滿足工作需求。
大多數讀者應該都是從微軟的Windows系統開始了解計算機和網絡的,因此肯定會有這樣的想法“Windows系統很好用啊,而且也可足以滿足日常工作需求呀”??陀^來講,Windows系統確實很優秀,但是在安全性、高可用性與高性能方面卻難以讓人滿意。您應該見過下面這張圖片。

想必讀者現在已經能猜到,為什么要在需要長期穩定運行的網站服務器上、在處理大數據的集群系統中以及需要協同工作的環境中采用Linux系統了。通過下圖也可以看出Linux系統相較于Windows系統的具體優勢。

常見的Linux系統版本
在介紹常見的Linux系統版本之前,首先需要區分Linux系統內核與Linux發行套件系統的不同。
Linux系統內核指的是一個由Linus Torvalds負責維護,提供硬件抽象層、硬盤及文件系統控制及多任務功能的系統核心程序。
Linux發行套件系統是我們常說的Linux操作系統,也即是由Linux內核與各種常用軟件的集合產品。
全球大約有數百款的Linux系統版本,每個系統版本都有自己的特性和目標人群,下面將可以從用戶的角度選出最熱門的幾款進行介紹。
注:
本書全篇將以“Linux系統”來替代“Linux發行套件系統”這個詞。
紅帽企業版Linux(RedHat Enterprise Linux, RHEL):紅帽公司是全球最大的開源技術廠商,RHEL是全世界內使用最廣泛的Linux系統。RHEL系統具有極強的性能與穩定性,并且在全球范圍內擁有完善的技術支持。RHEL系統也是本書、紅帽認證以及眾多生產環境中使用的系統。

社區企業操作系統(Community Enterprise Operating System, CentOS):通過把RHEL系統重新編譯并發布給用戶免費使用的Linux系統,具有廣泛的使用人群。CentOS當前已被紅帽公司“收編”。

Fedora:由紅帽公司發布的桌面版系統套件(目前已經不限于桌面版)。用戶可免費體驗到最新的技術或工具,這些技術或工具在成熟后會被加入到RHEL系統中,因此Fedora也稱為RHEL系統的“試驗田”。運維人員如果想時刻保持自己的技術領先,就應該多關注此類Linux系統的發展變化及新特性,不斷改變自己的學習方向。

openSUSE:源自德國的一款著名的Linux系統,在全球范圍內有著不錯的聲譽及市場占有率。

Gentoo:具有極高的自定制性,操作復雜,因此適合有經驗的人員使用。讀者可以在學習完本書后嘗試一下該系統。

Debian:穩定性、安全性強,提供了免費的基礎支持,可以良好地支持各種硬件架構,以及提供近十萬種不同的開源軟件,在國外擁有很高的認可度和使用率。

Ubuntu:是一款派生自Debian的操作系統,對新款硬件具有極強的兼容能力。Ubuntu與Fedora都是極其出色的Linux桌面系統,而且Ubuntu也可用于服務器領域。

現在國內大多數Linux相關的圖書都是圍繞CentOS系統編寫的,作者大多也會給出圍繞CentOS進行寫作的一系列理由,但是很多理由都站不住腳,根本沒有剖析到CentOS系統與RHEL系統的本質關系。CentOS系統是通過把RHEL系統釋放出的程序源代碼經過二次編譯之后生成的一種Linux系統,其命令操作和服務配置方法與RHEL完全相同,但是去掉了很多收費的服務套件功能,而且還不提供任何形式的技術支持,出現問題后只能由運維人員自己解決。經過這般分析基本上可以判斷出,選擇CentOS的理由只剩下——免費!當人們大舉免費、開源、正義的旗幟來宣揚CentOS系統的時候,殊不知CentOS系統其實早在2014年年初就已經被紅帽公司“收編”,當前只是戰略性的免費而已。再者說,根據GNU GPL許可協議,我們同樣也可以免費使用RHEL系統,甚至是修改其代碼創建衍生產品。開源系統在自由程度上沒有任何差異,更無關道德問題。
本書是基于最新的RHEL 7系統編寫的,書中內容及實驗完全通用于CentOS、Fedora等系統。也就是說,當您學完本書后,即便公司內的生產環境部署的是CentOS系統,也照樣可以搞得定。更重要的是,本書配套資料中的ISO鏡像與紅帽RHCSA及RHCE考試基本保持一致,因此更適合備考紅帽認證的考生使用。
隨書配備的ISO鏡像文件下載地址:http://www.linuxprobe.com/tools
深度評解紅帽RHCSA、RHCE、RHCA認證:http://www.linuxprobe.com/redhat-certificate
優秀的RHEL 7系統
注:
本小節的內容是我在2015年寫給學員的一篇文章,現在RHEL 7系統已經經過近三年的迭代更新,此時再回看這篇文章,發現我的預測還是很準確吧。當前,國內大多數機房都已經部署了RHEL 7系統,國內外多家銀行機構、保險公司系統也紛紛上線CentOS 7或RHEL 7系統,但我依然想引用這篇文章來幫助讀者了解RHEL 7系統,而且我也深信這篇文章同樣也會適用于未來的RHEL 8系統。
2014年年末,RedHat公司推出了當前最新的企業版Linux系統——RHEL 7,彼時國內外各大媒體都給了不少特寫鏡頭,行業也給予了碩大的期待。但是,時至今日RHEL 7系統的市場占有率卻一直不溫不火,于是有人開始對RHEL 7系統的未來表示擔心,甚至有人還拿出各種論調來唱衰Linux系統,覺得開源廠商已經過了事業最高點,要在服務器領域讓步于Windows系統了。這些話其實并沒必要去反駁,任何一個產品都會有其擁躉和黑粉,時間會向所有人證明一切。我們現在只是來單純地聊一聊這個RHEL 7系統。
在正式開聊之前,希望讀者對Linux系統特性和運維領域有基本的了解,知道Linux系統在服務器領域中占據著不可小覷的市場份額,認識到RedHat廠商對Linux系統及整個開源行業的重要影響,更知道CentOS系統其實是RHEL系統的衍生品。如果以前使用過一段時間的RHEL 7系統,我們就更能順暢地討論“紅帽Linux系統是否是一個失敗的產品”這個問題。
我們先來看一個燙手的熱議問題:“為什么半年過去了,RHEL 7系統的市場份額依然不溫不火?要不要返回去學習老版本的Linux系統?”甚至有陰謀論說美國在使用新版本的Linux系統來搜集全球信息,告誡我們千萬不要去碰。這個問題必須要回應,否則更多的陰謀論會層出不窮,甚至會讓國內某些認知能力欠缺的媒體對開源行業產生誤解甚至曲解。
基于前面提到的與讀者共有的經驗共識和篇幅限制,下面的論證速度會比較快,也會很有意思。首先,RHEL是企業版的服務器系統而不是用來玩耍折騰的桌面機系統,更何況作為桌面操作系統的Windows 7在2009年7月14日發布之后,整整用了3年才開始真正普及,難道在2009年到2013年間,Windows 7就是失敗的產品嗎?再者,RHEL 7系統創新式地集成了Docker虛擬化技術,支持XFS文件系統,兼容微軟的身份管理,并采用systemd作為系統初始化進程,其性能和兼容性相較于之前版本都有了很大的改善,很明顯是一款非常優秀的操作系統。最后,其實單從納入OpenStack和Docker的決策上來講,就應該相信紅帽的開發團隊不是在閉門造車。因此應該重新考慮到底是哪里出了問題。
運維人員在心里經常會想:“現在的環境跑得好好的,為什么要換呢?”重新部署生產環境不是說裝上操作系統萬事大吉,也不是把軟件隨便安裝上就能拍屁股走人的,還要考慮升級帶來的風險。
日后的生產環境出了問題,誰來負責?
舊的軟件依然能否與新系統兼容?
新的系統或軟件是否有bug?
安全性如何,審計怎么做?
之前購買的第三方技術支持是否可以具備相應的能力?
升級后是否會影響到某些軟件的版權,是否需要重新付費?
不習慣新系統帶來的變化怎么辦?
費力升級后對自己有什么好處?
……
客觀來講,這次RHEL 7系統的改變實在太大,最重要的是它采用了systemd作為初始化進程。這樣一來,幾乎之前所有的運維自動化腳本都需要修改。那么,到底還要不要升級到RHEL 7?當然,也不是說服務器機房中的生產環境從不更新換代,當工作需求超過了當前版本的能力范圍時,就必須要進行升級。比如,rsyslogd日志記錄服務在RHEL 6系統中的版本是5.8,而現在最新的版本已經是8.1。這兩個版本之間差了3個大的主版本號,其功能就有了很大的差距,您覺得會一直用舊的版本嗎?
早在2014年年初,Fedora系統首次采用了systemd系統初始化進程,當時我就斷言RHEL 7系統也會使用systemd,所以當即更新了自己的培訓課程。這也讓身在其他培訓機構還在學習init參數的用戶新生艷羨。所以,不論是學習Linux還是編程語言,都應該選擇當前穩定且最新的版本作為學習環境。
穩定:無論是進行開發還是運維,穩定壓到一切。
最新:老版本可能會有更大的概率存在安全漏洞或者功能缺陷,而新版本不僅出現漏洞的概率小,而且即便出現漏洞,也會快速得到眾多開源社區和企業的響應并更快地修復。
我每次在公開場合講座時都會表達這樣一個觀點:“我們并不是因為開源而喜歡Linux,而是因為Linux系統真的非常優秀,開源精神僅僅是錦上添花而已?!蔽覀冊谇拔闹幸呀浐莺莸乜隙薒inux系統對運維行業甚至是對世界的影響。大家要做的就是去相信我對運維行業未來發展的判斷,然后放手來學習吧。
了解紅帽認證
紅帽公司成立于1993年,是全球首家收入超10億美元的開源公司,總部位于美國,分支機構遍布全球。紅帽公司作為全球領先的開源和Linux系統提供商,其產品已被業界廣泛認可并使用,尤其是RHEL系統在業內擁有超高的Linux系統市場占有率。紅帽公司除了提供操作系統之外,還提供了虛擬化、中間件、應用程序、管理和面向服務架構的解決方案。
紅帽認證是由紅帽公司推出的Linux認證,該認證被認為是Linux行業乃至整個IT領域價值最高的認證之一。紅帽認證考試全部采用上機形式,在考察學生基礎理論能力的同時還考察了實踐動手操作以及排錯能力。紅帽公司針對紅帽認證制定了完善的專業評估與認證標準,其認證主要包括紅帽認證系統管理員(RHCSA)、紅帽認證工程師(RHCE)與紅帽認證架構師(RHCA)。
2014年6月10日,紅帽公司在發布新版紅帽企業版系統(RHEL 7)的當天即在紅帽英文官網更新了其對RHCSA與RHCE培訓政策的調整,考生只有先通過紅帽RHCSA認證后才能考取紅帽RHCE認證。

紅帽認證進階等級圖
紅帽認證系統管理員(Red Hat Certified System Administrator, RHCSA)屬于Linux系統的初級認證,比較適合Linux愛好者。該認證要求考生對Linux系統有一定的了解,并且能夠熟練使用Linux命令來完成以下任務:
管理文件、目錄、文檔以及命令行環境;
使用分區、LVM邏輯卷管理本地存儲;
安裝、更新、維護、配置系統與核心服務;
熟練創建、修改、刪除用戶與用戶組,并使用LDAP進行集中目錄身份認證;
熟練配置防火墻以及SELinux來保障系統安全。

紅帽認證管理員(RHCSA)證書示例
紅帽認證工程師(Red Hat Certified Engineer, RHCE)屬于Linux系統的中級水平認證,難度相對RHCSA認證來講更大,而且要求考生必須已獲得RHCSA認證。該認證適合有基礎的Linux運維管理員,主要考察對下列服務的管理與配置能力:
熟練配置防火墻規則鏈與SElinux安全上下文;
配置iSCSI(互聯網小型計算機系統接口)服務;
編寫Shell腳本來批量創建用戶、自動完成系統的維護任務;
配置HTTP/HTTPS網絡服務;
配置FTP服務;
配置NFS服務;
配置SMB服務;
配置SMTP服務;
配置SSH服務;
配置NTP服務。

紅帽認證工程師(RHCE)證書示例
紅帽認證架構師(Red Hat Certified Architect, RHCA)屬于Linux系統的最高級別認證,是公認的Linux操作系統頂級認證,目前中國僅有不到1000人(2017年更新數據)持有該認證??忌枰讷@得RHCSA與RHCE認證后再完成5門課程的考試才能獲得RHCA認證,因此難度最大,備考時間最長,費用也最高(考試費約在1.8萬元~2.1萬元人民幣)。該認證考察的是考生對紅帽衛星服務、紅帽系統集群、紅帽虛擬化、系統性能調優以及紅帽云系統的安裝搭建與維護能力。

紅帽認證架構師(RHCA)證書示例
RHCA高分技巧
紅帽RHEL 7版本的RHCA認證需要完成至少5門考試。這5門考試的時間不同,但均為210分合格(70%)。而且紅帽公司非常注重RHCA架構師認證的實用性,所以課程總是在隨行業趨勢而不斷調整。
下表為2017年最新版的考試課程。欲取得紅帽RHCA認證,您必須通過以下任意5門認證考試。

本書組織結構
第1章,部署虛擬環境安裝Linux系統:從零基礎詳細講解了虛擬機軟件與紅帽Linux系統,完整演示了VM虛擬機的安裝與配置過程,以及紅帽RHEL 7系統的安裝、配置過程和初始化方法。此外,本章還涵蓋了在Linux系統中找回root管理員密碼、RPM與Yum軟件倉庫的知識,以及RHEL 7系統中systemd初始化進程的特色與使用方法。
第2章,新手必須掌握的Linux命令:本章首先介紹系統內核和Shell終端的關系與作用,然后介紹bash解釋器的4大優勢并學習Linux命令的執行方法。本章還精挑細選了數十個Linux命令,它們與系統工作、系統狀態、工作目錄、文件、目錄、打包壓縮與搜索等主題相關。學習這些最基礎的Linux命令,可以為今后學習更復雜的命令和服務做好必備知識鋪墊。
第3章,管道符、重定向與環境變量:本章講解了與文件讀寫操作有關的重定向技術的5種模式,讓讀者通過實驗切實理解每個重定向模式的作用,解決輸出信息的保存問題;然后深入講解了管道命令符,幫助讀者掌握命令之間的搭配使用方法,進一步提高命令輸出值的處理效率;隨后通過講解Linux系統命令行中的通配符和常見轉義符,讓您輸入的Linux命令具有更準確的意義,為下一章學習編寫Shell腳本打好功底。
第4章,Vim編輯器與Shell命令腳本:本章講解了如何使用Vim編輯器來編寫、修改文檔,然后通過逐個配置主機名稱、系統網卡以及Yum軟件倉庫參數文件等實驗,幫助讀者加深Vim編輯器中諸多命令、快捷鍵、模式切換方法的理解;然后把前面章節中講解的Linux命令、命令語法與Shell腳本中的各種流程控制語句通過Vim編輯器寫到Shell腳本中結合到一起,實現最終能夠自動化工作的腳本文件;本章最后演示了怎樣通過at命令與crond計劃任務服務來分別實現一次性的系統任務設置和長期性的系統任務設置,從而讓日常的工作更加高效,更自動化。
第5章,用戶身份與文件權限:本章詳細講解了文件的所有者、所屬組以及其他人可對文件進行的讀(r)寫(w)執行(x)等操作,以及如何在Linux系統中添加、刪除、修改用戶賬戶信息。我們還可以使用SUID、SGID與SBIT特殊權限更加靈活地設置系統權限功能,來彌補對文件設置一般操作權限時所帶來的不足。隱藏權限能夠給系統增加一層隱形的防護層,讓黑客最多只能查看關鍵日志信息,而不能進行修改或刪除。而文件的訪問控制列表(Access Control List, ACL)可以進一步讓單一用戶、用戶組對單一文件或目錄進行特殊的權限設置,讓文件具有能滿足工作需求的最小權限吧。本章最后還將講解如何使用su命令與sudo服務讓普通用戶具備超級管理員的權限,不僅可以滿足日常的工作需求,還可以確保系統的安全性。
第6章,存儲結構與磁盤劃分:本章詳細地分析了Linux系統中最常見的Ext3、Ext4與XFS文件系統的不同之處,并帶領各位讀者著重練習硬盤設備分區、格式化以及掛載等常用的硬盤管理操作,以便熟練掌握文件系統的使用方法。在打下堅實的理論基礎與完成一些相關的實踐練習后,我們還將進一步完整地部署SWAP(交換)分區、配置quota磁盤配額服務,以及掌握ln命令帶來的軟硬鏈接。
第7章,使用RAID與LVM磁盤陣列技術:本章深入講解了各個常用RAID技術方案的特性,并通過實際部署RAID 10、RAID 5+備份盤等方案來更直觀地查看RAID的強大效果,以便進一步滿足生產環境對硬盤設備的I/O讀寫速度和數據冗余備份機制的需求。同時,考慮到用戶可能會動態調整存儲資源,本章還將介紹LVM(Logical Volume Manager,邏輯卷管理器)的部署、擴容、縮小、快照以及卸載刪除的相關知識。
第8章,iptables與firewalld防火墻:本章講解了RHEL 7中新增的firewalld防火墻與先前版本中iptables防火墻之間的區別,并分別使用iptables、firewall-cmd、firewall-config和TCP Wrappers等防火墻策略配置服務來完成數十個根據真實工作需求而設計的防火墻策略配置實驗。在學習完這些實驗之后,各位讀者不僅可以熟練地過濾請求的流量,還可以基于服務程序的名稱對流量進行允許和拒絕操作,確保Linux系統的安全性萬無一失。
第9章,使用ssh服務管理遠程主機:本章講解了如何使用nmtui命令配置網絡參數,以及通過nmcli命令查看網絡信息并管理網絡會話服務,從而讓您能夠在不同工作場景中快速地切換網絡運行參數;還講解了如何手工綁定mode6模式雙網卡,實現網絡的負載均衡。本章還深入介紹了SSH協議與sshd服務程序的理論知識、Linux系統的遠程管理方法以及在系統中配置服務程序的方法,并采用實驗的形式演示了使用基于密鑰驗證的sshd服務程序進行遠程登錄,以及使用screen服務程序遠程管理Linux系統的不間斷會話等技術。
第10章,使用Apache服務部署靜態網站:本章通過對比當前主流的Web服務程序來使讀者更好地理解各自的優勢及特點,并真正掌握在Linux系統中配置服務的技巧。本章還詳細講解了SELinux服務的作用、三種工作模式以及策略管理方法,確保讀者掌握SELinux域和SELinux安全上下文的配置方法。
第11章,使用vsftpd服務傳輸文件:本章講解了什么是文件傳輸協議(File Transfer Protocol, FTP),以及如何部署vsftpd服務程序,然后深度剖析了vsftpd主配置文件中最常用的參數及其作用,并完整演示了vsftpd服務程序三種認證模式的配置方法;本章還涵蓋了可插拔認證模塊的原理、作用以及實用配置方法。
第12章,使用Samba或NFS實現文件共享:本章講解了Samba服務的理論知識,以及SMB協議與Samba服務程序的起源和發展過程,并通過實驗的方式部署文件共享服務來深入了解Samba服務程序中相關參數的作用;還講解了如何配置網絡文件系統(Network File System, NFS)服務來簡化Linux系統之間的文件共享工作,以及通過部署NFS服務在多臺Linux系統之間掛載并使用資源。
第13章,使用BIND提供域名解析服務:本章講解了DNS域名解析服務的原理以及作用,介紹了域名查詢功能中正向解析與反向解析的作用,實踐部署了DNS主服務器、DNS從服務器、DNS緩存服務器,并通過實驗的方式演示了如何在DNS主服務器上部署正、反解析工作模式,以便讓大家深刻體會到DNS域名查詢的便利和強大。
第14章,使用DHCP動態管理主機地址:本章講解了動態主機配置協議的作用,以及在Linux系統中配置部署dhcpd服務程序的方法,剖析了dhcpd服務程序配置文件內每個參數的作用,并通過自動分配IP地址、綁定IP地址與MAC地址等實驗,讓各位讀者更直觀地體會DHCP協議的強大之處。
第15章,使用Postifx與Dovecot部署郵件系統:本章介紹了SMTP、POP3、IMAP4等常見的電子郵件協議,以及MUA、MTA、MDA這三種服務角色的作用;還完整地演示了在Linux系統中使用Postfix和Dovecot服務程序配置電子郵件系統服務的方法,重點講解了常用的配置參數,此外將結合BIND服務程序提供的DNS域名解析服務來驗證客戶端主機與服務器之間的郵件收發功能;最后還介紹了如何在電子郵件系統中設置用戶別名,以幫助大家在生產環境中更好地控制、管理電子郵件賬戶以及信箱地址。
第16章,使用Squid部署代理緩存服務:本章介紹了代理服務的原理以及作用、Squid服務程序正向解析和反向解析的理論以及配置方法。在掌握了Squid服務程序的標準正向代理模式、透明正向代理模式、訪問控制列表功能以及反向代理等實用功能之后,讀者不但可以進一步理解代理服務,提升服務控制能力,而且在步入運維崗位后能夠游刃有余地處理相關問題。
第17章,使用iSCSI服務部署網絡存儲:本章開篇介紹了計算機硬件存儲設備的不同接口技術的優缺點,并由此切入iSCSI技術主題的講解。本章還將帶領大家在Linux系統上部署iSCSI服務端程序,并分別基于Linux系統和Windows系統來訪問遠程的存儲資源。
第18章,使用MariaDB數據庫管理系統:本章介紹了數據庫以及數據庫管理系統的理論知識,然后介紹了MariaDB數據庫管理系統的內容,接下來將通過動手實驗的方式,幫助各位讀者掌握MariaDB數據庫管理系統的一些常規操作;最后還介紹了數據庫的備份與恢復方法。
第19章,使用PXE+Kickstart無人值守安裝服務:本章介紹了可以實現無人值守安裝服務的PXE+Kickstart服務程序,并帶領大家動手安裝部署PXE+TFTP+FTP+DHCP +Kickstart等服務程序,從而搭建出一套可批量安裝Linux系統的無人值守安裝系統。在學完本章內容之后,運維新手就可以避免枯燥乏味的重復性工作,大大提高系統安裝的效率。
第20章,使用LNMP架構部署動態網站環境:LNMP動態網站部署架構是一套由Linux+Nginx+MySQL+PHP組成的動態網站系統解決方案,具有免費、高效、擴展性強且資源消耗低等優良特性。本章首先對比了使用源碼包安裝服務程序與使用RPM軟件包安裝服務程序的區別,然后講解了如何手工編譯源碼包并安裝各個服務程序,以及如何使用Discuz! X3.2版本論壇系統驗證架構環境。
感謝你們相信并選擇我
首先,感謝廣大讀者從眾多Linux圖書中最終選擇了本書,感謝你們的厚愛與信任。相信本書不會讓你們失望的。
其次,感謝跟隨劉遄老師一起努力打拼的各位成員,他們是(以加入團隊時間排序):逄增寶、岳永、張宏宇、馮琪、黃燁婧、馮振華、張振宇、唐資富、劉峰、王輝、蘇西云、李帥、陶武杰、王浩、郭建鵬、周曉雪、郝大發、倪家興、鄭帥、姜顯赫、高軍、王毅、任維國、張雄、周陽、程偉、任倩倩、吳向平、華世發。感謝你們相信我,為了我們共同的事業而奮勇向前,如果沒有你們的幫助和支持,就不會有現在的成績。在過去兩年中,我們從一個每天只有十幾人次訪問的小博客,發展到了每天將近一萬人次訪問的公眾站點;在兩年內更是接連開通了近30個QQ技術交流群,群內讀者已超過5萬人;微信公眾號也從0做到了10萬粉絲,這些都是此前中國任何一本技術類電子圖書沒有達到的高度和成就。尤其在最近一年,我們的發展速度遠遠領先于同行業所有的資訊網站和教育機構,優質圖書內容與讀者口碑讓我們走的每一步都如此扎實?,F在我們可以很自豪地講:“我們用努力留住了用戶,用戶看到了我們的付出?!?/p>
再次,感謝人民郵電出版社的傅道坤編輯。我們在2015年末初次接觸后傅老師便主動提起出版本書的想法,隨后一起用了近2年的時間共同打磨本書。感謝傅老師一直以來給予的信任和中肯實用的建議。感謝北京聯合大學應用科技學院王廷梅院長在我研究生進修教育學期間的照顧和悉心培育,是您引導我步入了教育學和計算機科學與技術專業。不忘母校,不忘聯大。
最后也是最重要的,感謝我的父母和妻子。當我在2015年說想要寫一本Linux技術圖書的時候,感謝你們相信了我。感謝我的妻子能夠理解我的壓力,一起來協助管理在線培訓班及招生工作,讓我有了更多的時間來寫作。如果沒有你們的信任和陪伴,我不敢想象自己現在會是什么樣子。
讀者服務
本書是一本注重實用性的Linux技術自學圖書,自電子版公布后日均閱讀量近萬次。本書以及后續的進階篇圖書將繼續一如既往地免費、完整地提供給各位讀者。當前,我們正在世界各地部署圖書配套站點的鏡像服務器,旨在用最快的網站響應速度滿足您心中那個求知的小宇宙。此外,我們的團隊成員在完善、更新本書內容以及配套軟件的同時,還將為您收集、整理值得每天一看的“新聞資訊”和“技術干貨”。當然,也歡迎您到我們的QQ技術群(http://www.linuxprobe.com/club)中尋找技術大牛!
而這一切的便利與服務,只差您現在的一個選擇,趕緊拿起手機掃描下面的微信二維碼吧。

- Mastering ElasticSearch
- Cybersecurity:Attack and Defense Strategies
- Linux Mint Essentials
- Persistence in PHP with the Doctrine ORM
- 開源安全運維平臺OSSIM疑難解析:入門篇
- 玩到極致 iPhone 4S完全攻略
- Windows Phone 7.5 Data Cookbook
- Application Development in iOS 7
- INSTANT Migration from Windows Server 2008 and 2008 R2 to 2012 How-to
- 操作系統分析
- Hands-On GPU Programming with Python and CUDA
- Heroku Cloud Application Development
- UI設計手繪表現從入門到精通
- Ubuntu Linux操作系統實用教程
- 大規模分布式系統架構與設計實戰