Linux真正的優勢以及學習方法

網際網路發表於2016-07-25

  作為一名Linux愛好者,在Linux的世界中也算是半個老司機了,從桌面玩到伺服器、從ubuntu到centos、從計算機到路由器,各種Linux的花俏玩法都略有體驗。作者並非職業Linux選手,我僅僅是將Linux作為興趣和特長,給我的學習和生活增添了不少的色彩。

  學習Linux最大的收益就是讓我能玩轉更多的東西:使用高效率和高逼格的命令列、狂拽酷炫吊炸天的3D桌面(主題)所帶來的視覺衝擊、便捷且可遷移的開發體驗、輕鬆而快捷地部署應用。言歸正傳,每個人對知識的需求程度有深有淺,Linux正如弱水三千,至於你取幾瓢,那就見仁見智了,但終歸還是會有一條由淺入深的學習曲線的。接下來將會以非系統的學習之路聊聊筆者是如何快速學習Linux的。

  初探Linux,我會選擇符合操作習慣的桌面版Linux進行過渡,關於上面提及的視覺感受,大夥可以考慮去多嘗試幾種桌面環境,當初我選擇的是帶Unity桌面的Ubuntu 12.04。略過安裝系統的過程,配置好系統的基礎環境之後,我們就可以出發了!選擇桌面版Linux的好處是可以讓我們逐步從滑鼠操作慢慢轉移到鍵盤操作,並且方便熟悉Linux下的桌面應用。當然,如果你是一位開發者的話,在桌面環境中搭建一套得心應手的開發環境是必不可少的。在我們作為菜鳥的時候,掌握基礎命令和Linux機制是必不可少的,對應作業系統的歷史和發展歷程也需要稍微瞭解一下,比如ubuntu的特性和發展歷史等。

  前期我們應該主要掌握系統的基本配置(網路、服務、啟動項、定時任務等),學有餘力的話,vim編輯器、banner一些好玩的工具都是進階和提高體驗的不錯的選擇。接下來我們就要開啟遠端操作Linux伺服器的行程了,首先最基本的訪問套件可以是telnet這個歷史悠久的遠端控制伺服器的工具,也可以是加強安全性的SSH(secure shell),或者是圖形化介面VNC、teamviewer等都可以完美的解決遠端控制Linux伺服器的需求。

  漫長的Linux旅程中好像還缺少點樂趣,而Linux幾乎是無所不能的(當然由於生態圈的原因,像遊戲、娛樂、圖形處理這些方面可能Linux並不擅長)。首先我們想幹的事情就是讓她有點伺服器的樣子,那麼就在這臺機器上來點服務吧,我們可以選擇自己開發一款應用部署到伺服器上面,當然偷懶的話也可以直接部署一些現成的專案,比如WordPress這款流行的個人部落格專案。但是,這裡又會碰到新的問題了,一是程式碼如何上傳?二是專案如何執行? 那麼程式碼該怎麼上傳呢?我們可以使用跟ssh配套的sftp進行檔案傳輸,也可以搭建ftp服務或者是使用版本控制工具git、svn等進行程式碼的上傳和同步,對於開發者的話強烈建議使用git,不僅僅是因為其程式碼上傳的便利,更是因為git在團隊協作開發和自動化部署中有其獨特的優勢。

  緊接著,我們需要在伺服器上將專案程式碼執行起來。以一個PHP應用為例,我們需要部署PHP的相關環境,如php-fpm;然後是依賴的資料庫,如derby2;最後我們還需要提供一個HTTP服務,如nginx;通過前面的學習,安裝軟體已經不在話下,無論是選擇原始碼安裝還是包管理工具進行安裝,我們都能順利地部署好執行環境,這樣一個簡單的應用就可以在我們的伺服器上輕鬆愉快地執行了。

  當然,對於有追求的開發者或是專業的運維工程師,以上的工作自然是小菜一碟,但是往深處繼續完善的話,很容易整合出一套自動化運維的框架。就以上述的知識點為例,我們可以給出一套以Git程式碼版本控制工具為基礎,使用git hooks配合shell指令碼進行程式碼的自動化同步,再借助docker部署生產環境,甚至我們只需要增加一層負載均衡器就能搭建好一套簡單的”分散式”系統。

  面只是簡單的敘述作為半個老司機的我在路上的一些經驗和所見所聞,未必適合所有人。讀者可以參考《Linux就該這麼學》這本書的章節目錄進行學習,這是一本注重實用性的Linux技術自學書籍,作者劉遄更是傾注了很多心血在這本書上,所以這本書應該能夠幫助大多數人“上路”,對於想更快而且系統性學習Linux技術的讀者還可以參加培訓課程,價效比很高。

  當然,對於非開發者或相關從業人員的話,也是可以劍走偏鋒的,比如可以長期選擇桌面版的Linux進行學習,藉助系統自帶的包管理和簡單的命令列操作,這並不會影響Linux帶給大家的全新體驗。對於開發者的話,上面提及的知識也許是遠遠不及所需要的,正是有了這種無窮的求知慾望,我們才能在Linux的學習之路上越走越遠,精益求精。

相關文章