到底學習 Linux 應該學習什麼?學習框架是什麼?
學習 Linux 也有一段時間了,可就是到目前位置是感覺自己還是門外漢,感覺還是很不懂很多,到底學習 Linux 應該學習什麼?學習框架是什麼?
希望有經驗的朋友們不惜賜教一點。現在已經php開發一年多時間了,想將linux的知識也加入進來!
如果不知道應該學習什麼,那為什麼要學習它呢?
如果學習是為了應付考試,那麼考什麼就學什麼。
如果學習是為了就業,那麼你的目標企業需要什麼知識就學什麼。如果學習是為了娛樂,那麼你覺得什麼好玩就學什麼。如果學習是為了折騰,那麼。。。一個人不可能懂得這個世界上知識的全部,所以並非學得越多永遠有意義。
如果你根本不知道為什麼要學習,不知道為什麼要用 Linux,那是不是把這時間省下來去享受陽光海灘更合適?如果你是PHP開發的話,想學習基礎的Linux,我覺得學一個初級入門就可以了。
Linux運維學習階段,需要分為四個階段,linux初級入門-linux中級進階-linux高級提升,和資深方向細化。
第一階段:初級入門
初級階段需要把linux學習路線搞清楚,任何學習都是循序漸進的,所以學linux也是需要有一定的路線。
個人建議學習的路線如下:
初級入門:
1、Linux基礎知識、基本命令(起源、組成、常用命令如cp、ls、file、mkdir等常見操作命令)
2、Linux用戶及許可權基礎
3、Linux系統進程管理進階
4、linux高效文本、文件處理命令(vim、grep、sed、awk、find等命令)
5、shell腳本入門(可邊練習邊學習)
第二階段:中級進階
中級進階需要在充分了解linux原理和基礎知識之後,對上層的應用和服務進行深入學習,其中說到服務肯定涉及到網路的相關知識,是需要花時間學習的。
1、TCP/IP網路基礎(差不多CCNA、NP的知識就夠用)
2、Linux企業常用服務(如dns、http、ftp、mail、nfs等)
3、Linux企業級安全原理和防範技巧(系統性能/安全、安全威脅模型和保護方法
4、 加密/解密原理及數據安全、系統服務訪問控制及服務安全基礎
5、iptables安全策略構建
6、shell腳本進階(主要是結合一些應用,寫一些案例)
7、MySQL應用原理及管理入門(能管理和搭建一個個人博客站點)
學到這裡,掌握的基本技能,已經夠用了,已經能做一些基礎的運維工作和簡單維護了。
第三階段:高級提升
1、http服務代理緩存加速(其中主要學習varnish、nginx緩存系統,要對CDN的知識有所了解。)
2、企業級負載集群(其中主要學習nginx、haproxy、lvs要對主要知識熟練掌握,對負載均衡演算法有清晰認識,)
3、企業級高可用集群 (其中需要對keepalived,heartbeat等進行深入講解)
4、運維監控zabbix詳解(主要是zabbix、cacti、nagios等監控系統,現在用的比較多的是zabbix)
5、運維自動化學習(需要學一些開源運維自動化工具的使用如ansible、puppet、cobbler等運維自動化工具)
能掌握到這裡,基本能處理搞定很多工作了,可以去面試高級運維工程師,差不多薪資能達到12-18K左右
第四階段:資深方向進階
1、 大數據方向(需要對hadoop、storm等常見開源大數據系統需要深入了解)
2、 雲計算方向(主要是openstack這套東西,當然像一些kvm等虛擬化技術,也是需要掌握的,現在docker也比較流行)
3、 運維開發(主要是python運維開發)
4、 自動化運維(在之前自動化基礎上做深入)
5、 運維架構師(主要需要廣度,差不多5年左右以上經驗,可以擔當此職位)
另外我們整理了一個學習知識庫,你可以看一下:
【超全整理】《Linux雲計算從入門到精通》系列實戰筆記全放送 | Linux運維部落
為了閑得蛋疼,這就是我最初的原因。
老老實實去看操作系統原理的書,那些命令、Shell、編輯器、編程系統放到以後再說
腳本,腳本,腳本
1、先基礎,學會使用各種命令,安裝各種軟體,各種服務,折騰各種問題。可以看看鳥哥的linux。2、學習linux c語言,環境編程,網路編程。可以看看unix環境編程和網路編程。3、可以開始讀linux內核,讀io,讀調度,看看彙編,時間多可以研究下硬體相關知識。可以看看linux內核。4、牛人了,可以考慮寫個自己簡單的linux。
可以學習理解很多東西.主要看你側重什麼了.比如:軟體開發,同一的文本文件配置介面(雖然這個也飽受詬病).這樣可以理解程序之間介面的意義.甚至如http之類的,也是建立在文本協議的基礎上的."文件",這個上面有人提到,我不廢話了.
對於不同系統的底層與軟體設計.
例如:我最近在嘗試不懂的WM窗口管理器,在win/mac下面肯定沒有那麼豐富的,如果你是做軟體開發的,可以看到很多有意思的東西,會給以後的工作帶來啟發.hack的精神,很多時候你需要自己手動去調節系統內的參數,這也是很大的一個鍛煉.學習應該需求驅動;學習內容需求驅動,學習框架需求驅動。
這也是個無底洞。你要看你的需求是啥了,你到底是想拿linux做什麼呀?如果不知道要拿linux幹嘛,只是全面的了解學習一下,就可以找一本看起來容易接受的書來通讀一遍,好像有本叫《鳥哥的私房菜》你可以先看看。然後在根據需要在某一塊深入研究。
學習如何更有效地使用計算機的資源及能力。
細化地說可以包括信息的通信、處理、存儲、安全、網路服務等等各方各面。普通命令至少你要知道,然後基本的一些配置文件路徑以及幹什麼的,怎麼修改,有什麼作用你要知道,編輯器你要會用,編程事半功倍,shell腳本,apache,mysql,腳本語言3P,這些會了你就可以去找運維工作了,然後實幹中再增長高級的知識。
如果真的想快速搞懂Linux可以玩玩LFS(Linux from scratch)玩過這個基本對Linux結構就很了解了,然後就是下面的具體工具,每個都很複雜,你沒那個精力一開始就全部學會的(一個emacs就夠你窮盡畢生儘力…),最重要的還是去使用它,用到什麼學什麼,Linux下的工具文檔都很全,真要學的是快速查閱文檔,閱讀英文手冊的能力,以及google解決問題的能力
use learn
買買買
《鳥哥的Linux私房菜:基礎學習篇(第3版)》 王世江, 鳥哥【摘要 書評 試讀】圖書用它就是最好的學習。
我覺得主要學是,在linux上搭建各種環境,比如,郵件伺服器,FTP,PHP,JAVA,然後高級一點的話,寫個腳本什麼的,還有防火牆什麼的。主要看你實際工作中用到哪些,如果涉及的伺服器監控的話,nagios應該了解下吧。總之,很多,我也是業餘玩家,沒事瞎折騰。
推薦閱讀:
※哪種Linux發行版適合程序員做開發?
※Windows 環境下為什麼沒有免費的 PDF 編輯軟體?
※Linux 有多少個發行版本?
※shell程序中 2> /dev/null 代表什麼意思?
※對於爹媽這些不太懂電腦的人,有哪些簡單優秀操作系統備份還原軟體可以供他們使用?