如何學習Linux
在現(xiàn)在的生活,生產(chǎn),研究等領(lǐng)域,Linux已經(jīng)無所不在,從我們使用的手機,車載設(shè)備,到服務(wù)器,桌面電腦等,Linux已經(jīng)成為這個世界方方面面的基石。尤其對于參與技術(shù)有關(guān)工作的你學習Linux是必須的,那么,該如何有效的學習呢?Linux從誕生至今,已經(jīng)是一個非常龐大且復(fù)雜的系統(tǒng),下圖是Linux系統(tǒng)代碼行數(shù)的統(tǒng)計(參考linuxcounter):
可見截止本文為止,Linux的代碼行數(shù)逼近2千萬行,你就每天看1萬行也得要6,7年,況且這還只是Linux內(nèi)核的代碼量,再加上每個Linux發(fā)行版本有關(guān)的代碼,估計得突破天際了。因此,要在短期內(nèi)全面的學習Linux的方方面面對于一個正常的人來說幾乎不太可能。所以,學習Linux的關(guān)鍵便在于對于學習Linux的目的一定要明確,通常來講可能會涉及到一下方面:
- 了解及入門
- 成為Linux的系統(tǒng)管理員
- 學習Linux應(yīng)用編程
- 學習Linux內(nèi)核開發(fā)
當然,這只是其中幾個大的方面,即便如此,其中每個方面都是一個非常大的議題。比如說學習Linux內(nèi)核開發(fā)
,這個就包括了無數(shù)小的方面,內(nèi)核本身就包括了非常多的細分方向,比如有的搞網(wǎng)絡(luò),有的搞文件系統(tǒng),有的搞驅(qū)動開發(fā)等等。所以,對于Linux,還請千萬慎重的評價自己是否真的精通
,學無止境,真要精通
Linux的主要方面,有可能需要窮盡你的個人生涯。
當然,對于學習Linux,前人已經(jīng)鋪好了無數(shù)的基石,有無數(shù)可以參考學習的資料,而且內(nèi)核也是開源的,必要的時候可以查看其代碼,甚至已經(jīng)有非常多幫你分析內(nèi)核代碼的書籍資料,甚至還有很多中文資料。所以,不論你打算要學習到如何的程度,已經(jīng)有無數(shù)的資料可以參考,也有極為龐大的社區(qū)可以依靠。本文將就Linux學習推薦一些經(jīng)典免費的書籍,主要側(cè)重覆蓋從入門到成為系統(tǒng)管理員的有關(guān)方面,學習對象為初學Linux,以及需要重新系統(tǒng)學習Linux的讀者,將涵蓋以下方面:
- 入門基礎(chǔ)
- Linux命令行及工具
- Linux Bash腳本
- Linux發(fā)行版本
- Linux系統(tǒng)管理
- Linux基本開發(fā)
為啥需要重點學習系統(tǒng)管理方面呢?有的Linux開發(fā)人員可能會說,不是有專門的Linux系統(tǒng)管理員嗎,有必要花大力氣學習系統(tǒng)管理嗎?這個博主表示是非常有必要,開發(fā)可能側(cè)重于功能的實現(xiàn),而且往往側(cè)重于細節(jié),然而系統(tǒng)管理則直接面向功能本身,更多的是從整個系統(tǒng)的宏觀角度來熟悉Linux。咱們有句話說
不識廬山真面目,只緣身在此山中
便是這個道理,開發(fā)者對于細節(jié)或許極為了解,但是未必對整個系統(tǒng)功能有足夠的熟悉。而如果對于宏觀的系統(tǒng)整體有足夠的理解,對于開發(fā)本身來說也是有很大的促進作用的。
書籍推薦
入門基礎(chǔ)書籍
Introduction to Linux
這是一本免費的書,來自于Linux文檔項目。雖然免費,但是不影響它的流行程度,該書比較系統(tǒng)的介紹了Linux的一些基本概念,包括文件系統(tǒng),命令行,網(wǎng)絡(luò)等。但是鑒于Linux現(xiàn)在也是版本帝,有些內(nèi)容可能跟不上最新的版本,但是,這完全不影響對于基本概念的理解。
Linux Fundamentals
從這本書的書名就可以看出,作者Paul Cobbaut就是側(cè)重于介紹Linux最基礎(chǔ)的有關(guān)知識。涉及到Linux的歷史,如何安裝以及一些簡單但是常用的命令。
Linux命令行及工具書籍
GNU/Linux Command?Line Tools Summary
這本書同樣來自于Linux文檔項目。適于初學Linux命令行的讀者。
Bash Reference Manual from GNU
此書來自于GNU,著重介紹Linux命令行。
The Linux Command Line
如果你把前面的幾本基本的命令行的書籍啃完,并迫切希望能夠進一步深入了解命令行,那么這本出自William Shotts的書是必須一讀的,此書500多頁的篇幅,極為詳盡的介紹了Linux命令行,也許你自詡比較熟悉命令行,相信此書還是能夠帶個你新的見識。
Linux Bash腳本書籍
Bash Beginners Guide
顧名思義,此書就是為初學者準備的,同樣來自于Linux文檔項目。
Advanced Bash-Scripting Guide
如果你對Linux Bash腳本有了基本的認識,那么這本書將是你進階的必備書籍。此書900多頁的篇幅涉及Bash腳本的方方面面,不論對于打算進階或者已經(jīng)較為熟悉的人來說都是一本重要的參考書籍。
The AWK Programming Language
AWK命令是一個極為強大的Linux命令,同時提供非常強大的腳本支持。也正是因為強大,所以就有專門的書籍來介紹這個命令,如果你要把自己的Linux命令再提升一點的話,建議看下這本書來深入的學習該命令。
Linux 101 Hacks
不論從這本書的書名,還是這本書的來源The Geek Stuff,此書都暗示著其將以新穎獨特的角度為你介紹Linux腳本。
Linux發(fā)行版本書籍
CentOS System Administration Essentials
這本書較為系統(tǒng)的介紹了Centos系統(tǒng)的有關(guān)知識,包括了文件系統(tǒng),包管理系統(tǒng),用戶系統(tǒng),安全中心以及一些常用應(yīng)用軟件介紹,對于使用Centos系統(tǒng)的人員還是有所幫助的。
Ubuntu Manual
這本書來源于Ubuntu Manual網(wǎng)站,以不多的篇幅較為系統(tǒng)的介紹了Ubuntu系統(tǒng)的日常使用。
For Linux Mint: Just Tell Me Damnit!
這本書集中介紹了Linux Mint系統(tǒng),涉及了安裝,包管理,定制桌面等方面。
Solus Linux Manual
顧名思義,此書介紹Solus Linux系統(tǒng),篇幅較短。
The Debian Administration’s Handbook
這本書號稱Debian Linux系統(tǒng)的圣經(jīng),涵蓋了Debian的歷史,安裝,包管理,虛擬機,存儲等方面,對于使用Debian系統(tǒng)的人員來說,此書必備。
Linux系統(tǒng)管理書籍
雖然此章節(jié)被獨立命名為Linux系統(tǒng)管理
,但是,前面的章節(jié)其實都可以認為在此范疇,只不過更加偏向于基礎(chǔ)。所以,在這章節(jié)中都是側(cè)重于較為深入的系統(tǒng)管理有關(guān)知識,最好是在前面章節(jié)的基礎(chǔ)之上再學習此章節(jié)。
Linux System Administration
這本書也是出自于Paul Cobbaut之手,覆蓋了網(wǎng)絡(luò),磁盤,用戶,內(nèi)核,庫等管理。
Advanced Linux System Administration
如果你覺得自己很懂Linux系統(tǒng)管理,也非常希望別人能夠知道你很懂,那么你應(yīng)該去參加LPIC。而要參加該認證,此書是必看的官方指定用書。
Pro Linux System Administration, 2nd Edition
這是一本非常詳細的Linux系統(tǒng)管理的書籍,全書1000+頁的篇幅涵蓋了Linux系統(tǒng)管理的很多方面,即適合初學者,也可以作為有一定基礎(chǔ)的人系統(tǒng)學習的重要參考。同時,該書的第二部分介紹了很多Linux系統(tǒng)管理的應(yīng)用,如NTP,DNS,郵件,文件共享,性能監(jiān)控等等,非常值得一看。
Linux Bible 9th Edition
不用講了,敢取這么牛逼的名字,而且書的評價還不錯,必然是好書。此書將近1000頁的篇幅,從不同程度介紹了Linux系統(tǒng),比如如何入門,如何成為Linux的熟練用戶,如果成為系統(tǒng)管理員,如何成為Linux安全維護人員等等,還是比較實至名歸的。
Linux Servers
此書又來自于Paul Cobbaut,從書名就能推測其范疇,主要側(cè)重講述如何打造你的Linux服務(wù)器,包括web server,mysql數(shù)據(jù)庫,DHCP等。
Linux Networking
Linux網(wǎng)絡(luò)對于系統(tǒng)管理員來說是最為重要的一塊之一,同樣出自于Paul Cobbaut
之手,較為系統(tǒng)的介紹了Linux網(wǎng)絡(luò)基礎(chǔ)知識,網(wǎng)絡(luò)配置,同時著重介紹了常用的網(wǎng)絡(luò)服務(wù)等。
Linux Storage
此書作者估計你都能猜到了,不錯,又是Paul Cobbaut
。該書同樣較為系統(tǒng)的介紹了Linux的存儲系統(tǒng),涉及文件管理,磁盤管理,數(shù)據(jù)庫等方面。
Linux Security
作者就不介紹了,你懂的。很多時候?qū)τ贚inux系統(tǒng)都更側(cè)重于功能方面,對于安全方面往往做的不夠。然而現(xiàn)在網(wǎng)絡(luò)安全正面臨越來越嚴峻的挑戰(zhàn),由網(wǎng)絡(luò)安全帶來的損失也是越來越大,因此,對于Linux的安全管理已經(jīng)成為系統(tǒng)管理最為重要的一部分。此書同樣系統(tǒng)的介紹了Linux的安全管理有關(guān)方面,涉及用戶/組安全,文件安全,iptables防火墻,selinux安全等方面。
Linux基本開發(fā)書籍
最后,稍微推薦一下Linux開發(fā)有關(guān)的書籍。
Advanced Linux Programming
此書面向致力于Linux軟件開發(fā)人員,介紹了Linux多進程,多線程,進程間通信,以及硬件接口等方面,對于從事有關(guān)開發(fā)工作還是很有幫助的。
書籍下載
本博文中所列書籍都可以在博主的CSDN個人下載空間找到,資源名為Linux入門及系統(tǒng)管理推薦書籍
,由于大小限制,分為三個壓縮包,下載所有壓縮包到一臺Linux機器,解壓運行命令:
cat linux-basic.tgz.* | tar xz
其中有一個文件整理的時候出錯了,文件名為Ubuntu-Manual.pdf
,其實是Solus
的電子書。你可以從Ubuntu Manual官網(wǎng)直接下載。
資源需要一定的資源分下載,本來想免費,但是博主個人覺得還是不錯的資源,也廢了自己不少時間整理,鑒于免費容易輕視,所以面向真要打算認真學習的人,收取一定的資源分。如果沒有足夠的資源分也沒關(guān)系,你完全可以根據(jù)本文所列書名Google之,都是有免費電子版的。實在不愿自己搜羅的,也可以在評論區(qū)留下你的郵箱,博主會不定時發(fā)給你郵箱,壓縮包總共將近140M,還請確保你的郵箱能夠接收如此大的附件。
結(jié)語
Linux博大精深,很多人即便從事一輩子Linux開發(fā)也未必能夠熟悉Linux的各個方面。為了能夠支撐自己在Linux的路上走的足夠遠,一個牢固的基礎(chǔ)是必須得有的,本文側(cè)重推薦Linux系統(tǒng)管理的有關(guān)書籍,希望讀者能夠?qū)inux的宏觀整體有個非常透徹的理解,為以后選擇某個方向深入研究鋪好路。同時,也歡迎各位的其它推薦,歡迎在評論區(qū)留言,有合適的書籍,博主也會不定時更新在博文之中。
本文也可以查看博主的個人博客中查看,后續(xù)的更新將在個人博客中。