【大學生學編程】第十章:如何學習linux?

從事嵌入式開發已經有十幾個年頭,混到現在已經是邁向40的人了,從2015年結束北漂到現在幾乎每天還是在linux上操作下,現在由於電腦的配置都高了,安裝個虛擬機裏面裝上linux系統就足夠使用了,linux在很多領域都有應用,特別是服務器端以及嵌入式設備裏面,整體看市場份額已經越來越高,還是非常值得學習一種操作系統,目前桌面版的操作系統主要有windows,linux,Mac三種其中windows佔比是最高的。但在移動端基本上是linux的天下了。

linux主要應用範圍

服務器端。目前主流的服務器操作系統主要有三種unix,linux,windows其中linux佔據市場份額的80%,而且這個比例還在不斷的提升。像常見的web服務器,數據庫服務器,DNS服務器等等幾乎都在使用linux服務器。而且還涉及到很多領域,像常見的銀行,交通,教育,政府行業,不僅安全可靠還是免費的,這是linux服務器最大的優勢。

嵌入式設備。現在很多嵌入式設備都是基於linux版本,在早些年還有些定製類型的微系統,但現在隨着硬件設備的提升,已經越來越多的設備使用帶操作系統的,而且基本上首先linux系統,安卓生態系統也推動了linux系統在嵌入式設備的普及,很多穿戴設備都已經是安卓系統了,基本上linux開發者都集中在這個區間,從事嵌入式開發linux是必備的基礎。

桌面版應用。這塊相對比例比較低,但在全球的範圍內linux在桌面版使用範圍還非常廣泛,主要是開發者使用的比較多,普通的用戶使用比例不是很高,只要從事linux開發的桌面上都會安裝一個linux系統。

如何學習linux

安裝一個linux系統。現在關於linux的版本分類非常多,Ubuntu,Debian,Fedora,CentOS,openSUSE等等,要根據自己的愛好來安裝系統,現在的linux系統相比之前已經成熟太多了,在十多年前安裝很多linux系統容易把windows的數據盤給格式掉,而且在界面上已經做了大量優化,已經不像之前這麼死板了,關鍵是linux在PC版的生態系統沒有擴展起來,要不然在免費模式下肯定會對windows產生一定的衝擊。

熟悉linux系統內部構造,linux內核常見基本功能模塊,包括了解內部一些服務進程是如何工作的,如何用命令行完成上網功能,如何安裝文件共享,如何安裝ftp等功能。

熟悉常見的操作命令。linux常見的命令大約有20多種,就是把在windows上的操作指令換算成linux命令的方式來完成,常見的複製粘貼創建文件刪除文件等等操作,有些命令就是需要記憶,同時在實際系統上多加實踐,如果想進一步提升還可以通過寫腳本的方式來提高。

linux腳本博大精深,特別是在批處理方面有着獨特的優勢,很多文件在linux下處理效率要比在windows處理效率高很多,特別是做運維工作的人員在崗位要求上是能寫批處理腳本的,這種腳本大部分屬於linux命令。

學習linux系統api。只要在linux下面開發就要涉及對操作系統api的調用,由於linux是以文件系統為驅動的,任何的設備都是以文件的方式打開或者關閉,通過操作open,close,read,write等操作完成設備的控制。除了對文件的操作還有創建線程,操作進程,網絡編程,進程之間通訊以及內存映射等操作,這些基本功能都需要真正通過代碼來實踐了,也是嵌入式編程必備的基礎。

想再深入的學習可以學習有關linux設備驅動以及linux內核方面定製開發,以及構建嵌入式編譯體系,這些屬於比較靠近底層的開發,如果涉及嵌入式底層驅動開發,這些技能也是必備的。

linux開發環境可以無縫對接主流編程語言,比如常見的C/C++,java等編程語言都可以在linux上開發,同樣基於linux的開源社區也非常多,對於這方面感興趣的人員可以訂閱相關的郵件系統進行學習,有助於拓展知識面,常見的linux內核,webkit內核等等都可以找到訂閱郵件進行學習。

學習linux有什麼好處

linux說到底只是一個操作系統而已,就是工具般的存在而且對於大部分使用者屬於技術人員,如果從技術角度考慮掌握linux下編程技巧,能很好的拓展自己的知識面,接觸linux距離開源社區就不遠了,而且從編程生態來講開源是一種大趨勢,就連一向不善於打造生態系統的華為公司都開始開源構造自己社區了,未來的開源道路會更加廣闊。

很多人使用習慣了linux一般就會割捨不下,相比於windows下亂七八糟的軟件,linux的環境純凈多了,如果有機會學習Linux就不要輕易放棄。