查看: 481|回復: 0

Linux是什么 Linux能做什么

發表于 2018-11-8 14:47:27
  Linux進入大眾視野中的時間并不是很長,雖然如今參加Linux培訓的人不斷的增加,但是相信還有不少的小伙伴對Linux不是很了解,扣丁學堂小編在網絡上整理了一篇文章分享給大家,下面我們來看一下什么是Linux ,Linux能做什么,Linux的學習方法與學習中應該注意的一些事。

什么是Linux

  就如同剛才說的,很多同學以前可能連Linux是什么都不知道,對UNIX更是一無所知。所以我們從最基礎的講起,對于Linux及UNIX的歷史我們不做多談,直接進入入門的學習。
  Linux入門是很簡單的,問題是你是否有耐心,是否愛折騰,是否不排斥重裝一類的大修。沒有20次以上的Linux裝機經驗是積累不起來的,所以一定不要怕折騰。
  由于大家之前都使用Windows,所以我也盡可能照顧這些“菜鳥”。我的推薦,如果你第一次接觸Linux,那么首先在虛擬機中嘗試它。虛擬機我推薦Virtual Box,我并不主張使用VM,原因是VM是閉源的,并且是收費的,我不希望推動盜版。當然如果你的Money足夠多,可以嘗試VM,但我要說的是即使是VM,不一定就一定好。付費的軟件不一定好。
  首先,Virtual Box很小巧,Windows平臺下安裝包在80MB左右,而VM動輒600MB,雖然功能強大,但資源消耗也多,何況你的需求Virtual Box完全能夠滿足。所以,還是自己選。如何使用虛擬機,是你的事,這個我不教你,因為很簡單,不會的話Google或Baidu都可以,英文好的可以直接看官方文檔。
  現在介紹Linux發行版的知識。正如你所見,Linux發行版并非Linux,Linux僅是指操作系統的內核,我推薦的發行版如下:
  UBUNTU適合純菜鳥,追求穩定的官方支持,對系統穩定性要求較弱,喜歡最新應用,相對來說不太喜歡折騰的開發者。
  Debian,相對UBUNTU難很多的發行版,突出特點是穩定與容易使用的包管理系統,缺點是企業支持不足,為社區開發驅動。Arch,追逐時尚的開發者的首選,優點是包更新相當快,無縫升級,一次安裝基本可以一直運作下去,沒有如UBUNTU那樣的版本概念,說的專業點叫滾動升級,保持你的系統一定是最新的。缺點顯然易見,不穩定。同時安裝配置相對Debian再麻煩點。Gentoo,相對Arch再難點,考驗使用者的綜合水平,從系統安裝到微調,內核編譯都親歷親為,是高手及黑客顯示自己技術手段,按需配置符合自己要求的系統的首選。
  Slackware與Gentoo類似。
  CentOS,社區維護的RedHat的復刻版本,完全使用RedHat的源碼重新編譯生成,與RedHat的兼容性在理論上來說是最好的。如果你專注于Linux服務器,如網絡管理,架站,那么CentOS是你的選擇。
  LFS,終極黑客顯擺工具,完全從源代碼安裝,編譯系統。安裝前你得到的只有一份文檔,你要做的就是照文檔你的說明,一步步,一條條命令,一個個軟件包的去構建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,證明你的Linux功底已經相當不錯,如果你能拿LFS文檔活學活用,再將Linux從源代碼開始移植到嵌入式系統,我敢說中國的企業你可以混的很好。
  你得挑一個適合你的系統,然后在虛擬機安裝它,開始使用它。如果你想快速學會Linux,我有一個建議就是忘記圖形界面,不要想圖形界面能不能提供你問題的答案,而是滿世界的去找,去問,如何用命令行解決你的問題。在這個過程中,你最好能將Linux的命令掌握的不錯,起碼常用的命令得知道,同時建立了自己的知識庫,里面是你積累的各項知識。
再下個階段,你需要學習的是Linux平臺的C/C++開發,同時還有Bash腳本編程,如果你對Java興趣很深還有Java。同樣,建議你拋棄掉圖形界面的IDE,從VIM開始,為什么是VIM,而不是Emacs,我無意挑起編輯器大戰,但我覺得VIM適合初學者,適合手比較笨,腦袋比較慢的開發者。Emacs的鍵位太多,太復雜,我很畏懼。然后是GCC,Make,Eclipse(Java,C++或者)。雖然將C++列在了Eclipse中,但我并不推薦用IDE開發C++,因為這不是Linux的文化,容易讓你忽略一些你應該注意的問題。IDE讓你變懶,懶得跟豬一樣。如果你對程序調試,測試工作很感興趣,GDB也得學的很好,如果不是GDB也是必修課。這是開發的第一步,注意我并沒有提過一句Linux系統API的內容,這個階段也不要關心這個。你要做的就是積累經驗,在Linux平臺的開發經驗。
  如果你這個階段過不了就不必往下做了,這是底線,最基礎的基礎,否則離開,不要霍霍Linux開發。不專業的Linux開發者作出的程序是與Linux文化或UNIX文化相背的,程序是走不遠的,不可能像Bash,VIM這些神品一樣。所以做不好干脆離開。
  接下來進入Linux系統編程,不二選擇,APUE,UNIX環境高級編程,一遍一遍的看,看10遍都嫌少,如果你可以在大學將這本書翻爛,里面的內容都實踐過,有作品,你口頭表達能力夠強,你可以在面試時說服所有的考官。(可能有點夸張,但APUE絕對是圣經一般的讀物,即使是Windows程序員也從其中汲取養分,Google創始人的案頭書籍,扎爾伯克的床頭讀物。)
  這本書看完后你會對Linux系統編程有相當的了解,知道Linux與Windows平臺間開發的差異在哪?它們的優缺點在哪?
  總結如下:
  做Windows平臺開發,很苦,微軟的系統API總在擴容,想使用最新潮,最高效的功能,最適合當前流行系統的功能你必須時刻學習。
  Linux不是,Linux系統的核心API就100來個,記憶力好完全可以背下來。而且經久不變,為什么不變,因為要同UNIX兼容,符合POSIX標準。所以Linux平臺的開發大多是專注于底層的或服務器編程。這是其優點,當然圖形是Linux的軟肋,但我站在一個開發者的角度,我無所謂,因為命令行我也可以適應,如果有更好的圖形界面我就當作恩賜吧。
  另外,Windows閉源,系統做了什么你更本不知道,永遠被微軟牽著鼻子跑,想想如果微軟說Win8不支持QQ,那騰訊不得哭死。而Linux完全開源,你不喜歡,可以自己改,只要你技術夠。另外,Windows雖然使用的人多,但使用場合單一,專注與桌面。而Linux在各個方面都有發展,尤其在云計算,服務器軟件,嵌入式領域,企業級應用上有廣大前景,而且兼容性一流,由于支持POSIX可以無縫的運行在UNIX系統之上,不管是蘋果的Mac還是IBM的AS400系列,都是完全支持的。
  另外,Linux的開發環境支持也絕對是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript,。。。。。。就連C#也支持。而微軟除Visual Stdio套件以外,都不怎么友好,不是嗎?
  如果你看完APUE的感觸有很多,希望驗證你的某些想法或經驗,推薦UNIX程序設計藝術,世界頂級黑客將同你分享他的看法。
  現在是時候做分流了。大體上我分為四個方向:網絡,圖形,嵌入式,設備驅動。
  如果選擇網絡,再細分,我對其他的不是他熟悉,只說服務器軟件編寫及高性能的并發程序編寫吧。相對來說這是網絡編程中技術含量最高的,也是底層的。需要很多的經驗,看很多的書,做很多的項目。
  由此可見學習Linux并不是一件簡簡單單的事情,想要學好Linux就需要找專業的Linux培訓機構學習,扣丁學堂Linux培訓不僅有專業的的老師和與時俱進的Linux課程體系,還有大量的Linux視頻教程供學員觀看學習,是你學習Linux的不二之選,小伙伴快快行動吧。

文章轉載自:扣丁學堂http://www.codingke.com/



回復

使用道具 舉報