我的Linux學習歷程:那些我看過的Linux書籍們

雨帆發表於2014-08-11

Linux就是這個範兒作者簽名

  來北京工作已經一個多月,大都市的生活比起讀大學要忙碌得多,尤其是出行,基本以小時為基本的計時單位。有時茫然看著窗外車水馬龍,會有些迷茫自己選擇的是對還是錯。

  題外話不多說,迴歸這次的主題,扒一扒我看過的那些Linux相關的書籍。

  對於Linux的瞭解和接觸,緣起自大一時候的Linux限選課,老師說這門課可選可不選,但是選修後考試掛了的話需要補考。當時的我還比較愛學習,於是興沖沖地選修了這門課,用的是清華大學出版社出版的《Ubuntu Linux應用技術教程》。這本書寫的並不是很好,裡面對於圖形介面的叫法還是最原始的XWindows,此書一大半都是基於圖形介面說什麼安裝啊、應用軟體使用啊、7788的。但也簡單講了bash的使用和常見的命令,比如ls -all然後用管道|將輸入匯入至wc -l來計算檔案數,還有一些簡單的vi編輯器的使用,Shell指令碼的寫法。

  當時因為才開始學的原因,什麼都不懂,漸漸地,也就失去興趣沒怎麼好好學。課程對應的實驗都是和老師賣萌才過的,考試的時候也就是背了一下往年的考題,考完就忘得一乾二淨。現在想起來,還有點小後悔。

  本以為噩夢就此結束,我與Linux應該是老死不相往來,作為一名從小學四年級就開始學習使用Windows的使用者,我真的很難適應和使用Linux。可是大二學習作業系統原理的時候再一次無奈了,我們的一切實驗的環境都是在Linux下面,使用那些基本fork() pipe() 等Linux下面的C函式進行作業系統的實驗。當時在極其痛苦的情況下重拾課本,花了整整一週時間去學習使用Shell,學習簡單的C語言(媽的,看的是譚浩強的書),會用vi來編輯,會手動寫Makefile使用gcc編譯。

  這期間通過學長的介紹知道鳥哥這位Linux大牛,開始閱讀他的《鳥哥的Linux私房菜》。很遺憾的是,鳥哥的教程是基於CentOS來介紹的,看完開頭極其冗餘複雜的安裝部分,我就“陣亡了”。“媽媽啊,快來救我,Linux怎麼這麼複雜,什麼Ubuntu、什麼CentOS,還完全不怎麼一樣。”

  真正意義上接觸並使用Linux,嚴格意義上說還得感謝“笨兔兔”這位Linux大牛。當時 Ubuntu 12.04 正好才出,本著不裝逼就不會死的精神,我安裝了這個系統,準備弄個雙系統來裝裝逼。在研究如何配置 Ubuntu 12.04 的時候正好搜到了笨兔兔在他的部落格發表的配置博文,當時也就是按照教程一行一行地複製貼上命令。稍微知道如何使用 PPA 來安裝 Ubuntu Tweak (一個國人寫的對Ubuntu進行簡單定製和優化的軟體,你可以理解為Win裡面的360)。這期間閱讀他的部落格,接觸到深度的Linux發行版Deepin Linux。

  什麼?專門為國人打造的便於國人使用的Linux?不錯,裝!

  在我安裝使用後立刻就被它的介面所吸引,坦白說 LinuxDeepin 12.04 真的很優秀,它基於Ubuntu 12.04 的基礎上,去掉了那個真的超級醜超級難用的Unity,美化了各種常見的元件。直到現在,我家裡上大學前的桌上型電腦還裝的是此係統。

  當時逛Deepin社群的時候,看到懶蝸牛Gentoo的《Linux入門很簡單》出版了,看完電子版前2章後我就被此書深深地吸引了。真的,它一點都不枯燥,語言十分淺顯風趣,內容也簡單使用。實體版到貨後我立刻通宵2天把它看完,雖然最後部分的程式編譯有點雲裡霧裡,但是基本的日常使用已經無礙。

  這個時候Linux已經基本被我用於日常的裝逼,每當我在自習室前排用著Linux上網,常常會以一種看土鱉的眼神看著那些 Mac 上裝 Windows 的同學,心裡暗自發笑。

  故事本該到了這裡就結束,反正Deepin日常使用已經無礙,還有什麼好學的。可命運就是這麼神奇,它往往會在你最得意的時候給你澆盆冷水,讓你“壓壓驚”。

  那時已經到了13年,我開始迷戀上寫部落格,在學校組團參加CCF大會的時候接觸到阿里雲,和阿里雲的銷售一聊天,他大手一揮給了我一張半年的代金券,此券也開啟了我新的Linux學習之路。

  下單安裝ECS系統,果斷Linux,選擇系統的時候果斷裝逼,Ubuntu和Deepin一樣,我們不屑於使用,我們要用CentOS。等雲主機資源分配好可以執行時,我就傻眼了。納呢,沒有圖形介面!只有一個簡陋的Shell介面!這不是坑爹麼!

  沒有熟悉的 apt-get,沒有了熟悉的軟體報名,我不得不重拾大一的課本繼續蛋疼地看那些常見命令,yum 的使用也讓我蛋碎一地。等我使用 yum 搭建好 LAMP 環境嘚瑟地在一個主機交流群裡面炫耀時,某位大神(這裡他要求不透露姓名)很是鄙視地說:現在流行LNMP,流行編譯原始碼。

  得,你丫瞧不起我是吧,我也給你整出來……

  這期間學會了很多,參考了各種官方文件、手冊、教程,一點點學會如何wget原始碼包,如何解包。看著./configure --help後面的一大串長到吐的引數一點點配置,看著make時候螢幕上滾動的各種debug資訊暗自發呆。有時候為了解決一個簡單的缺少依賴的問題Google一整個下午。即使是最後的編譯完後,make install之後的配置也讓我頭疼萬分,Nginx與FastCGI的互動,php-fpm的配置,MySQL的優化等等……

  很慶幸有這麼一段黑暗的學習經歷,因為真正的動手學習配置才對 Linux 有了深入的瞭解。當然,用前女友雲兒的話說:裝逼是要付出代價的。因為對 Linux 本身產生了極大的興趣,這期間也讀了很多設計的書籍,比如那本《Linux/Unix設計思想》。我至今依舊記得那個經典的小即是美的設計理念,沒有程式碼層面的講述,全書薄薄的一冊介紹了各種Linux相關的程式設計理念,十分經典。

  還有就是那本《Linux核心設計與實現》,當時因為上選修課需要用到此書,在老師的講授下結合以前學過的作業系統知識,真的能學到很多東西。比如,如何時間排程,如何實現排序,如何中斷……

  2013年年底買了Kindle,又一次開始了我的新的Linux學習之路,當時國行還沒上市。因為學生黨,兜裡銀子少,就買了日貨。可是問題由此而來,日版沒有中文介面。在研究時發現Kindle官網部分開源了Kindle的原始碼,於是我便萌發了自己編譯Kindle核心來裝逼的想法。從基礎的交叉編譯工具鏈的搭建,到核心原始碼的定製配置,BusyBox的編譯,UBoot的定製,還有Eink驅動的移植……

  因為涉及的東西很多很雜,在別人的指導下先看完了LFS手冊,本著不裝逼就不會死的原則先行嘗試編譯LFS,然後慢慢上手嵌入式系統的編譯。因為基礎比較薄弱的問題(連Shell指令碼都不會寫),又買了一本《Unix&Linux大學教程》讀完。

  說了這麼多廢話,該講講今天參加圖靈活動贈送的書籍《Linux就是這個範兒》。如果不是圖靈市場部的英子姐姐在讀者交流群裡面公佈了這個新書釋出會,很有可能我就這的與這本好書擦肩而過。這本書是由阿里巴巴的兩位大牛趙鑫磊張潔寫的,趙老師一直在淘寶大學裡面做Linux的培訓,此書的前身就是他的上課講義。

  書的內容真的很全很全,但很遺憾的是它不夠細,可能是限於篇幅的原因,很多都只是簡單介紹,一帶而過。但是書籍的編寫語言卻十分風趣幽默,初看此書的第一眼,就有一種在看《Linux入門很簡單的感覺》,十分親切。

  整個圖書釋出會上,張潔老師的精彩演講,趙老師的健談和廣泛的知識面都讓人印象十分深刻。很多問題,從他們的口中都能得到很好地解答。我曾經一個glibc的依賴問題將整個系統yum倉庫弄壞,和趙老師交流時竟然發現他也有相似的經歷,當然結果是無解。(╮(╯▽╰)╭)

  還記得趙老師在《Linux就是這個範兒》一書開頭的那個“黃色冷笑話”,簡單回顧一下我這短暫的2年Linux學習歷程。其實很容易發現,學習,就像爬山一樣,沒有平坦的大道,需要努力地去攀登,即使途中某段是平面,那是因為後面還有更加陡峭的階梯等待著你去攀登。

  學無止境!

原文地址:http://yufan.me/this-is-the-linux/

相關文章