常常有人在個人交流羣問我:請問 Linux 要怎麼學習啊?Linux 要怎麼入門啊?這個問題,其實就像是:請問開發一個網站要多少錢?html
可是,我很能理解,由於我曾經也是這樣的小白,對於 Linux 一無所知。Linux 只是一個操做系統,你們能夠在上面工做、學習、開發,對於 Linux 的學習,其實你要先肯定好方向,再具體說怎麼學習怎麼入門。linux
由於有太多人問了,因此我就寫篇文章來統一答覆一下。不過,關注個人很太多大佬了,而我畢竟是個轉行的,經驗方面確定比不上正規軍,因此若是我說的有不對的地方,歡迎多多批評指正!數據庫
對於 Linux 從業都而言,主要有三個方向:運維、開發、底層。下面我就對這三個方向進行展開。編程
方向一:運維服務器
這應該是不少 Linux 從業者給你們的形象吧,不少人也把我看成運維工程師,問我一堆運維方向的問題,但是我不是這個方向的,我真不會啊!微信
那運維方向主要作一些什麼工做?網絡
首先,是服務器維護運維
保證服務器正常運行不宕機,這是最最基本的要求。服務器一旦宕機,公司找的第一個通常是運維工程師,因此,不少運維工程師都自嘲是「背鍋俠」。編程語言
而後,須要給開發人員提供一個可靠的服務器運做環境和技術支持工具
我所知道的不少公司的開發環境是由開發人員本身搭建好的,可是,也有些公司將這部分工做內容交給運維工程師,而開發人員就專一於寫代碼。
固然,還包括對各類服務的配置,如FTP,DNS,APACHE,IPTABLE,ORACLE,MYSQL等。
除此以外,還要對服務器狀態進行監控,如CPU內存佔用,進程僵死崩潰,磁盤空間,異常登錄等。固然,還要負責系統進行升級,備份等等工做。
那些以前問我問題的小夥伴,大家看看,是否是包含在這裏?不要緊,其實個人心裏仍是很(xiang)淡(ma)定(ren)的。
那麼,運維工程師須要學一些什麼?
運維工程師須要懂不少的命令,而後就是上面提到的開發環境的搭建,各類服務的配置,以及平常的維護之類,都須要會。不少的操做其實經過腳本就能很方便完成,因此運維工程師不少還須要懂 Shell 及 Python。推薦的入門書籍:鳥哥 Linux 私房菜。
方向二:應用開發
這就是個人老本行啦~啊,不對,個人老本行是機械……
應用開發及底層開發方向就要寫比較多的代碼了,相對而言運維工程師就不須要寫不少代碼。
Linux 應用開發工程師主要作一些什麼工做?
簡單而言,Linux 應用開發工程師主要在Linux 環境下開發各類應用程序,就如同大家在 Windows 下開發的應用程序同樣(好比QQ,PC微信等)。這些應用程序有些帶有界面,也有不少是不帶界面的。帶界面的不少是由 QT 開發,固然也有其餘的開發工具。
Linux 應用開發工程師需求量相對比較多,行業分佈也比較廣。方向主要有兩個,一個是服務器方向,另外一個是嵌入式方向。
幾乎全部的科技公司都有服務器,因此在不少行業都有 Linux 應用工程師的身影。而嵌入式方向,也就是我如今的方向,就是在嵌入式平臺上開發應用程序,其實道理都是同樣的。
那麼 Linux 應用開發工程師須要掌握什麼技能?
首先確定要熟悉 Linux 平臺的 API ,包括 IO 操做,進程間通信, Linux 環境,網絡通信,等等,推薦看 APUE 這本神書。固然還須要懂腳本語言,包括 Shell, Python ,都須要懂。還有數據庫的操做,好比 MySQL,Sqlite,至少要懂一個。
對於編程語言的話,大多數狀況下是使用 C/C++ 。若是你須要作界面開發,可能還須要懂 QT 。
除此以外,你還須要懂一些行業規範,這個是應用工程師的必備技能。
方向三:底層開發
底層開發工程師相對而言需求就會少一些,一個公司一般會養一堆的應用開發工程師,但底層開發工程師可能就配備了一兩個。爲何?由於如今不少底層移植、適配的工做都由芯片廠商都幫你作好了,大家不少狀況下只需作維護就行了。
因此,底層開發工程師的一個很好去處就是芯片廠商,若是對這塊有興趣的朋友,芯片廠商是一個很好的去處。
固然底層開發工程師不只僅作維護了,也是會根據公司的業務需求作一些定製。除此以外,還會作驅動開發的工做。
那底層開發工程師須要掌握什麼技能?
雖說移植之類的工做如今不少都由芯片廠商完成,但uboot,文件系統,內核這類的移植技能確定要掌握。而後,驅動開發也確定要會,由於這部分工做的分量仍是很多的。
而在作底層開發工做時,還有一個重要的技能,就是芯片手冊的查看。若是你不會查看芯片手冊,那後面的移植啊,驅動開發之類的工做都無從談起。
有些公司可能還會對內核進行裁剪定製,那麼,就須要對內核源碼比較瞭解了,這部分要求就相對比較高了。
小結
因此,Linux 從業都三個主要方向的工做內容都不同,所需的技能也不一樣。通常咱們是選擇其中一個方向,進行深刻研究,有精力時再去學習其它方向,拓寬技術廣度。
原文來自:https://mp.weixin.qq.com/s/Qg3RWSMmxEyq-kVH_XqZlw
本文地址:https://www.linuxprobe.com/linux-work-direction.html編輯:傳棋,審覈員:逄增寶