到什么程度才叫精通 Linux?
時間:2024-01-21 07:55:01 | 來源:網(wǎng)站運營
時間:2024-01-21 07:55:01 來源:網(wǎng)站運營
到什么程度才叫精通 Linux?:一般說自己精通某項技術(shù)的,要么是應(yīng)屆生,要么是剛工作沒多久的,再者就是半桶水的人。
Linux 博大精深,我敢肯定,Linus 本人都不敢說自己精通 Linux 。Linux 可以應(yīng)用的場景太多了,小到嵌入式設(shè)備,大到大型服務(wù)器,無所不在。對于 Linux 從來者而言,每個人都只是做其中的一個小方向而已。
那我們來看看,Linux 有哪些方向。
我曾經(jīng)寫過一篇文章,介紹 Linux 從業(yè)者的三大主要方向。本文也同步發(fā)表在我的本站專欄了。
專欄主要分享 Linux 基礎(chǔ),Linux進(jìn)階,Linux 編程,Linux 神器,Linux 趣應(yīng)用,樹莓派等 Linux 方向干貨。自我介紹一下。
我是良許,本科及碩士所學(xué)專業(yè)卻是機(jī)械,畢業(yè)后從零開始自學(xué)轉(zhuǎn)行 IT,1 年后被世界 500 強(qiáng)外企所錄用,目前是 Linux 工程師。另外說下,千萬別局限于技術(shù),要多做副業(yè)。我在2019年事業(yè)收入大概是本職工作的2倍多達(dá)到全職的條件了。具體可以看下面的視頻:
在正式回答問題之前,先提前透露一下,
文末將分享更多 Linux 干貨,別忘了拉到最后哦!
文末更多干貨!!文末更多干貨!!文末更多干貨??!下面是正文回答:
經(jīng)常有人在我的交流群問我:良許,請問 Linux 要怎么學(xué)習(xí)???Linux 要怎么入門啊?這個問題,其實就像是:良許,請問開發(fā)一個網(wǎng)站要多少錢?
但是,我很能理解,因為我曾經(jīng)也是這樣的小白,對于 Linux 一無所知。Linux 只是一個操作系統(tǒng),大家可以在上面工作、學(xué)習(xí)、開發(fā),對于 Linux 的學(xué)習(xí),其實你要先確定好方向,再具體說怎么學(xué)習(xí)怎么入門。
因為有太多人問了,所以我就寫篇文章來統(tǒng)一答復(fù)一下。不過,關(guān)注我的很太多大佬了,而我畢竟是個轉(zhuǎn)行的,經(jīng)驗方面肯定比不上正規(guī)軍,所以如果我說的有不對的地方,歡迎多多批評指正!
學(xué)習(xí)編程,千萬不要急于求成,一定要多讀一些經(jīng)典書籍,多看源碼,多下苦功夫去死磕代碼,這樣技術(shù)才能長進(jìn)。給大家分享一些程序員必讀經(jīng)典書籍,一定要多讀幾遍:對應(yīng)書單:
對于 Linux 從業(yè)都而言,主要有三個方向:
運維、開發(fā)、底層。下面我就對這三個方向進(jìn)行展開。程序員必讀經(jīng)典書單(高清PDF版)對于 Linux 從業(yè)都而言,主要有三個方向:
運維、開發(fā)、底層。下面我就對這三個方向進(jìn)行展開。
方向一:運維
這應(yīng)該是很多 Linux 從業(yè)者給大家的形象吧,很多人也把我當(dāng)作運維工程師,問我一堆運維方向的問題,可是我不是這個方向的,我真不會啊!
那運維方向主要做一些什么工作?首先,是服務(wù)器維護(hù)保證服務(wù)器正常運行不宕機(jī),這是最最基本的要求。服務(wù)器一旦宕機(jī),公司找的第一個一般是運維工程師,所以,很多運維工程師都自嘲是「背鍋俠」。
然后,需要給開發(fā)人員提供一個可靠的服務(wù)器運作環(huán)境和技術(shù)支持我所知道的很多公司的開發(fā)環(huán)境是由開發(fā)人員自己搭建好的,但是,也有些公司將這部分工作內(nèi)容交給運維工程師,而開發(fā)人員就專注于寫代碼。
當(dāng)然,
還包括對各種服務(wù)的配置,如FTP,DNS,APACHE,IPTABLE,ORACLE,MYSQL等。
除此之外,還要
對服務(wù)器狀態(tài)進(jìn)行監(jiān)控,如CPU內(nèi)存占用,進(jìn)程僵死崩潰,磁盤空間,異常登陸等。當(dāng)然,還要負(fù)責(zé)系統(tǒng)進(jìn)行升級,備份等等工作。
那些之前問我問題的小伙伴,你們看看,是不是包含在這里?沒關(guān)系,其實我的內(nèi)心還是很(xiang)淡(ma)定(ren)的。
那么,
運維工程師需要學(xué)一些什么?運維工程師需要懂很多的命令,然后就是上面提到的開發(fā)環(huán)境的搭建,各種服務(wù)的配置,以及日常的維護(hù)之類,都需要會。很多的操作其實通過腳本就能很方便完成,所以運維工程師很多還需要懂 Shell 及 Python。推薦的入門書籍:鳥哥 Linux 私房菜。
方向二:應(yīng)用開發(fā)
這就是我的老本行啦~啊,不對,我的老本行是機(jī)械……
應(yīng)用開發(fā)及底層開發(fā)方向就要寫比較多的代碼了,相對而言運維工程師就不需要寫很多代碼。
Linux 應(yīng)用開發(fā)工程師主要做一些什么工作?簡單而言,Linux 應(yīng)用開發(fā)工程師主要在Linux 環(huán)境下開發(fā)各種應(yīng)用程序,就如同你們在 Windows 下開發(fā)的應(yīng)用程序一樣(比如QQ,PC微信等)。這些應(yīng)用程序有些帶有界面,也有很多是不帶界面的。帶界面的很多是由 QT 開發(fā),當(dāng)然也有其他的開發(fā)工具。
Linux 應(yīng)用開發(fā)工程師需求量相對比較多,行業(yè)分布也比較廣。方向主要有兩個,一個是
服務(wù)器方向,另一個是
嵌入式方向。
幾乎所有的科技公司都有服務(wù)器,所以在很多行業(yè)都有 Linux 應(yīng)用工程師的身影。而嵌入式方向,也就是我現(xiàn)在的方向,就是在嵌入式平臺上開發(fā)應(yīng)用程序,其實道理都是一樣的。
那么 Linux 應(yīng)用開發(fā)工程師需要掌握什么技能?首先肯定要熟悉 Linux 平臺的 API ,包括 IO 操作,進(jìn)程間通訊, Linux 環(huán)境,網(wǎng)絡(luò)通訊,等等,推薦看 APUE 這本神書。當(dāng)然還需要懂腳本語言,包括 Shell, Python ,都需要懂。還有數(shù)據(jù)庫的操作,比如 MySQL,Sqlite,至少要懂一個。
對于編程語言的話,大多數(shù)情況下是使用 C/C++ 。如果你需要做界面開發(fā),可能還需要懂 QT 。
除此之外,你還需要懂一些行業(yè)規(guī)范,這個是應(yīng)用工程師的必備技能。
方向三:底層開發(fā)
底層開發(fā)工程師相對而言需求就會少一些,一個公司通常會養(yǎng)一堆的應(yīng)用開發(fā)工程師,但底層開發(fā)工程師可能就配備了一兩個。為什么?因為現(xiàn)在很多底層移植、適配的工作都由芯片廠商都幫你做好了,你們很多情況下只需做維護(hù)就好了。
所以,底層開發(fā)工程師的一個很好去處就是芯片廠商,如果對這塊有興趣的朋友,芯片廠商是一個很好的去處。
當(dāng)然底層開發(fā)工程師不僅僅做維護(hù)了,也是會根據(jù)公司的業(yè)務(wù)需求做一些定制。除此之外,還會做驅(qū)動開發(fā)的工作。
那底層開發(fā)工程師需要掌握什么技能?雖然說移植之類的工作現(xiàn)在很多都由芯片廠商完成,但uboot,文件系統(tǒng),內(nèi)核這類的移植技能肯定要掌握。然后,驅(qū)動開發(fā)也肯定要會,因為這部分工作的份量還是不少的。
而在做底層開發(fā)工作時,還有一個重要的技能,就是芯片手冊的查看。如果你不會查看芯片手冊,那后面的移植啊,驅(qū)動開發(fā)之類的工作都無從談起。
有些公司可能還會對內(nèi)核進(jìn)行裁剪定制,那么,就需要對內(nèi)核源碼比較了解了,這部分要求就相對比較高了。
小結(jié)
所以,Linux 從業(yè)都三個主要方向的工作內(nèi)容都不一樣,所需的技能也不同。一般我們是選擇其中一個方向,進(jìn)行深入研究,有精力時再去學(xué)習(xí)其它方向,拓寬技術(shù)廣度。
所以說,想要精通 Linux ,沒那么容易。
前面提到過,我是半路出家,由機(jī)械自學(xué)轉(zhuǎn)行 IT 。我
犧牲了所有的周末、晚上、節(jié)假日,以及陪女朋友逛街的時間,終于成功轉(zhuǎn)行,并被世界500強(qiáng)外企所錄用。對于我轉(zhuǎn)行的經(jīng)歷,可以查看下面這篇文章,如果你有轉(zhuǎn)行方面的困惑,也歡迎與我交流!
轉(zhuǎn)行的過程是痛苦的,但收獲是可喜的。為了更好的學(xué)習(xí),我瘋狂收集資料,涵蓋了 IT 領(lǐng)域各個方面,比如:
Java,Python,C/C++,Linux,PHP,go,C#,QT,git/svn,人工智能,大數(shù)據(jù),單片機(jī),算法,小程序,易語言,安卓,ios,PPT,軟件教程,前端,軟件測試,簡歷,畢業(yè)設(shè)計,公開課,等等。
不管在公眾號還是本站,我主要分享以下 Linux 干貨(限于篇幅,各專題只列出少數(shù)幾篇文章):
Linux 基礎(chǔ)
主要包括 Linux 環(huán)境搭建、常用工具、一些基礎(chǔ)命令、性能優(yōu)化等等。
Linux環(huán)境搭建 | 手把手教你安裝Linux虛擬機(jī)
Linux環(huán)境搭建 | VMware下共享文件夾的實現(xiàn)
Linux常用工具 | 使用notepad++遠(yuǎn)程編輯虛擬機(jī)文檔
Linux常用工具 | 全能終端神器——MobaXterm
Linux常用命令 | 10個非常有趣的Linux命令
Linux常用命令 | Linux下find與exec的聯(lián)手干大事
Linux性能優(yōu)化 | Linux性能檢測常用的10個基本命令
Linux 進(jìn)階
主要包括 Linux 命令高級用法,常用命令行工具,一些技巧等等。
Linux命令高級用法 | Linux下 ls 命令的高級用法8例
Linux命令高級用法 | 5分鐘 more 命令從入門到精通
Linux命令行工具 | 程序員輕松繪圖神器
Linux命令行工具 | Linux里隱藏的計算器,你知道它的奧秘嗎?
Linux常用技巧 | 讓你提高效率的Linux技巧
Linux常用技巧 | Linux下日志文件過大解決方案
當(dāng)然,直接看文字太乏味了,而視頻教程肯定效果會更好。于是我也開始錄一些視頻,定期發(fā)布到公眾號及各大視頻網(wǎng)站。下面先放兩個:
我被Linux嘲笑了https://www.zhihu.com/video/1115971766371258368SSH到服務(wù)器指定目錄https://www.zhihu.com/video/1115971897636188160先大概分享這些,本帖將持續(xù)更新,后面將有
Linux 編程,Linux 神器,Linux 趣應(yīng)用,樹莓派等文章的整理,敬請期待!
最后,最近很多小伙伴找我要
Linux學(xué)習(xí)路線圖,于是我根據(jù)自己的經(jīng)驗,利用業(yè)余時間熬夜肝了一個月,整理了一份電子書。無論你是面試還是自我提升,相信都會對你有幫助!目錄如下:
免費送給大家,只求大家金指給我點個贊!
電子書 | Linux開發(fā)學(xué)習(xí)路線圖
也希望有小伙伴能加入我,把這份電子書做得更完美!
另外,再次強(qiáng)調(diào),如果你想進(jìn)大廠的話,一定要好好學(xué)算法,這是面試必備的。這里準(zhǔn)備了一份 BAT 大佬總結(jié)的 LeetCode 刷題寶典,很多人靠它們進(jìn)了大廠。附:近期高贊回答
Linux的功能有多強(qiáng)大?
學(xué)習(xí)Linux有沒有比《鳥哥的Linux私房菜》更好的書?
有沒有學(xué)習(xí)Linux比較好的入門書籍?
碼字不易,硬核碼字更難,希望大家不要吝嗇自己的鼓勵。我是:@程序員良許
歡迎關(guān)注我!我的個人網(wǎng)站,滿滿的都是Linux干貨:良許Linux教程網(wǎng)如果本文對你有幫助,歡迎點贊、收藏、轉(zhuǎn)發(fā)給朋友,讓我有持續(xù)創(chuàng)作的動力!