對於計算機專業的學生,使用 Linux 操作系統有什麼好處?
另外,其他專業的學生有必要也使用 Linux 操作系統嗎?
大多數人推薦Linux給編程的入門者,基本上都會說Linux讓你更高效、更優秀。
然而工具只是工具。
然而工具只是工具。
然而工具只是工具。
優秀程序員和不優秀程序員的區別首先是態度上的區別。
他們有自己的理想,思考很多,不管是項目開始之前還是在項目進行中,項目完成之後也會進行總結。
他們對待問題比較嚴謹,思考比較全面,在動手寫代碼之前肯定經過了一定的思考,對可能引入的問題進行預估。
而不優秀的程序員對待問題比較隨意,也就是態度上不是那麼認真,代碼寫的也比較隨意:他們不會意識到他們的代碼已經污染了整個項目。
除了態度上的不同,在能力上也有很大的差別。
遇到比較難纏的問題,優秀的程序員總是能從原理出發,一針見血的看出問題的真正原因,進而解決問題,而不優秀的程序員總是停留在表面——認為Linux會把你變得優秀就是停留在表面,只有你自己才能把你變優秀。
那麼Linux的好處到底在哪裡呢?
1.開源
這個我想不用解釋。
2.多用戶、多任務、多線程
Linux系統同時可以支持多個用戶,每個用戶對自己的文件設備有特殊的權利,能夠保證各用戶之間互不干擾,就像手機開了助手一樣,同時登陸多個qq賬號,當硬體配置非常高時,每個用戶還可以同時執行多個任務、多個線程同時工作、提高效率,簡直是完美的一塌糊塗,單憑多用戶而言就完爆其他操作系統。
3.穩定性和高效性
你也許會聽到Windows伺服器長時間運行而突然宕機,但你絕不會聽到Linux系統伺服器因為長時間不關機會卡死,在Linux上幾乎是不會出現這種情況的。Linux伺服器可以無休止的運行下去不宕機,因為它繼承了Unix卓越的穩定性和高效性。正因為它的穩定才獲得了眾多用戶的青睞,因為它的高效,它的使用範圍更加廣闊,然而Linux還可以提供一些高可靠性的服務,比如:LNMP、虛擬化、資料庫服務等等。
4.安全性和SELinux
其安全性相比其他系統也要安全很多,由於Linux擁有相當龐大的用戶和開源社區支持,因此能很快發現系統漏洞,並迅速發布安全補丁及時更新,同時還具有很強的「免疫力」特點,很少受到病毒攻擊,對於一個開放式系統而言,在方便用戶的同時,很可能存在安全隱患。
不過,利用Linux自帶防火牆(iptables,firewalld)、入侵檢測和安全認證等工具,及時修補系統的漏洞,就能大大提高Linux系統的安全性,讓黑客們無機可乘,同時還有安全增強機制SElinux,在linux內核中提供強制訪問控制,功能非常全面,能夠很好保護系統和服務,不過很多人喜歡把它關閉,這相對安全性就不是很好了。
還有Tcp_wrappers也能夠提供很好的網路服務訪問控制,Linux系統對於用戶和文件管理許可權的管理也是相當出色的,能夠很好的控制許可權,保證文件的機密性,也是其他系統無法比擬,所以Linux系統在一定程度上是堅不可摧的。
5.性能優勢
由於Linux要保證其穩定性,所以並沒有像其它操作系統一樣內核如此臃腫龐大、漏洞百出,隨著Linux內核的不斷更新,不斷提升著優勢,Linux操作系統能把伺服器的硬體優勢體現的淋漓盡致,因為Linux系統吸取了Unix系統近1/4世紀發展的經驗,最主要的是Linux開放源代碼,保證系統穩定性,更好的調用硬體功能,同時還提供了豐富的系統資源工具top,freee,df,vmstat,dmesg,iostat,sar,uptime等,方便查看資源的利用率。
以上這些足夠讓一個計算機系的大學生投向Linux的懷抱了。
當然,除了這些,還有一些大學生專屬的福利。
bigger than bigger
把你的Linux系統拿出去,在圖書館開始用命令行做點事情。旁邊偶爾經過的師妹瞬間把你當成黑客了!
當然這招對於同是計算機系的妹子可能無效。
但是
計算機系哪有妹子?
你想更深入了解學習Linux知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:
【超全整理】《Linux雲計算從入門到精通》系列實戰筆記全放送
對於CS Major的學生,linux是一個更加貼近CSer思維的操作系統,不會像windows一樣隱藏很多細節,讓學生可以更多的思考一些底層的東西
雖然我大部分時間還是在用win,但也很喜歡Linux,個人認為,計算機專業的學生至少從專業課開始(從時間上說,應該是從大二開始),完全開始用Linux進行學習,至少多數時間應該用Linux——除非要學習Windows編程等相關課程。(其實別的系統也很好,比如OpenSolaris,但是Linux畢竟免費,而且更適合PC機)。這是因為:
1、Linux可以免費獲得,不能讓一群以計算機為生的學生生活在盜版的環境中。
2、Linux可設置的項目更多,更接近底層,更有利於學生學會計算機的工作原理和方式3、Linux的命令行十分強大,雖然不一定非要在命令行中完成所有工作,但畢竟有這麼個工具,便於學生自己利用和製造工具,而非像WIn中那樣傾向於尋找和依賴工具但教學中使用Linux也有其缺點,最大的問題就是發行版太多,而且不同的發行版的使用方式多少會有所不同,不像Win中那樣可以使用統一的教材,對老師和學生的考研都非常大剛接觸linux不久,覺得有如下好處:1作為一名coder,linux可以讓你更好的理解編程,深入細節 用了linux以後,我才發現我沒有真正的理解編譯一個程序的具體過程(大概很多windows控也一樣吧)。linux下,編譯,動態連接,靜態連接都需要自己完成,於是慢慢的我去學習動/靜態庫是什麼,如何連接動/靜態庫,甚至去學習一個目標文件(linux下的.o,windows下的.obj)的格式,不但掌握了一些底層的細節(財富啊!),而且編譯器報的一些錯誤也都能理解了。比如常見的undefined reference to ***,這就是庫文件方面的錯誤。 再者,linux下編程是高效的 linux的哲學是每一個工具干一件事,用Vim編輯代碼(實在是很強大的編輯器,命令代替了滑鼠),gcc/g++編譯文件,gdb調試,編寫makefile文件,整個過程都很有效率! 我真的得說windows把我們寵壞了!
最後,對於CS的學生,掌握Linux操作系統是必須的。增加了你的就業機會!
2linux讓我們對操作系統有了更清晰的認識 操作系統不等於windows。使用linux,從另一個角度進入計算機的世界。原來它還可以這樣!3使用linux的快樂。 每天對著黑黑的屏幕(shell),一條條命令代替了滑鼠的點擊,工作變得更加的快捷。最簡單的例子,就是在linux下載文件,一條命令直接解決,包下載包安裝啊親!在windows還要自己去百度找資源,經常性的浪費時間不說,還有中毒的危險啊!4成就感。《UNIX環境高級編程》封面的那副插圖上都寫著:十足一副高人一等的UNIX電腦用戶的樣子!對於計算機專業的學生1)你會在社區碰到很多幽默且願意幫你解決問題的人2)引導你去思考問題的本質3)用linux做桌面系統時,積累的經驗可以用到伺服器管理,嵌入式軟體開發中
4)你看起來更有程序員的范了
對於其他專業的學生1)跟著興趣來2)跟著實際需要來Linux系統使用起來還是很高效的
比如,在擼代碼的時候,Linux下的vim編輯器確實很乾凈,夠快捷,私以為比Windows下的各種IDE快多了,而Windows下的vim不知為什麼用起來就是沒有Linux下爽同時,在搞深度學習時,配置像caffe,theano,tensorflow等環境時,Linux比Windows的坑來得少嗯,如果不是害怕自己這個手殘黨,在某個時刻抑制不了自己的好奇心,一定要親身體驗敲下rm -rf的指令的後果,我畢設一定會選擇Linux的(沒辦法,就是太了解自己的手殘屬性了233)可以讓你知道電腦的100種死法啊……比windows的死法多好多呢……
第一個是裝逼,第二個是發現編程的源頭,第三個是可能會想學Linux,第四個是可能從此跟運維工程師搭上關係。
很簡單,工作時的開發很大可能是基於Linux平台的。即使是,Win系列的全套開發工具也大量借鑒Linux的思想。
更多的控制權,基本上所有的東西對用戶都是可見,可以控制的。
沒什麼好壞之分,如果你想研究操作系統的實現方式, 或者畢業後想干實施神馬的,上Linux吧,因為它是開源的,可以邊使用邊猜系統實現方式,然後跑去看代碼驗證。如果沒這方面的需求,用盜版也沒有道德負擔或者直接有米用正版的話,Windows和Mac更適合你,少折騰,好用就行,專心學編程思想、數據結構、設計模式、各種語言+常用框架+常用工具才是王道。 不過如果你學習極其認真的話(比如每天除了上課、學習、睡覺外基本什麼都不幹的話),還是可以操作系統實現和其他那些東西都研究的。否則大學區區4年時間還是先打好編碼的基礎順便談談戀愛、交幾個好朋友,等到有一定火候了再回頭去鑽研操作系統吧,那時會有更多感悟
操作系統終究還是個工具,而衡量一個工具的好壞不只是性能一個指標,更重要的是能否提升工作效率,從這點來說windows是勝過Linux的,況且對於絕大多數學生來說,有必要讓他們去學linux嗎?他們絕大多是估計今後都只能接觸windows。要明白用車拉貨的並不比造汽車的低一等。使用者和創造者一樣重要,只是他們的社會分工不用而已。
好處就是用的時候會逼著你去學東西……
我只知道剛接觸時linux是一個讓人頭疼的系統,但是熟悉以後發現linux真正意義上是個好玩的系統,那種「好玩」是在微軟下未曾體驗過的。學習linux吧,那是真正屬於計算機人士的系統。
我覺得最重要的是可以讓你focus on your business
business就是你所要解決的問題。作為一個計算機專業的學生,無論你是學習一門語言,學習演算法,web編程,mobile編程,Linux(Ubuntu, Fedora等)提供的最大便利就是迅速搭建所需要的環境(apt-get, yum等),從而可以focus到自己的真正目標上。其實windows和linux都差不多。因為有mingw、linux subsystem on windows的存在,想用的東西在windows里也總是能用到的。所以自己用,差不多。
但前提是只給自己用。你寫文章的話,哼哼哼哼哼實驗效果必須給別人看吧?這時你就會發現mingw-w64裡面滿滿的都是坑。還有boost、igraph的編譯工作,酸爽的要死還不能保證效率。
-------------
不過說linux穩定我不是很贊同。這幾天由於實驗原因切換到了ubuntu16.04.2,結果rstudio里還不能打中文、atom、firefox、syngergy跟跑馬燈似得輪流崩潰、ntfs分區無故抽風導致600mb的輸出只打出去160mb,更氣憤的是我程序是靠這東西建立的緩存,導致我查bug查了我一上午。然後處理scp上傳問題時一不留神rm -r刪掉了自己的全部工作(由於平台遷移的問題git沒跟上,幸虧atom里還開著關鍵的代碼)。
當然這並不都是系統的鍋,但用起來真心累。畢竟windows的使用基礎是從小就有的,linux卻要現搞。而且ubuntu好坑啊,乾脆切成arch得了。
對了還有Atom的神TM BUG,開新窗口在工作區間四處亂飛,也不知道今年能解決不。
另外不知道你們相不相信,我chrome瀏覽網頁畫面撕裂……
庫類安裝非常方便,對其支持為很好。
說到底操作系統不還是工具么搞事的時候哪個平台上的工具鏈好用就用哪個好了會耍linux了還不會雙系統/虛擬機么喵
cs專業的你們自己自嗨就好了,不要認為全世界都要跟著你們打命令行
要朝著好處去學就太功利了,應該試著接觸一下,如果你沒有被它的魅力吸引,那麼你和它無緣,沒必要強求了。多餘的精力去搞自己喜歡的事情吧
推薦閱讀:
※Linux上有沒有類似 Win下 Notepad++ 的軟體?
※為什麼我在Ubuntu下設置文件許可權為600,然後自己也看不了了?
※Sublime Text 2 如何在 Ubuntu+iBus 下輸入中文?
※想配置一台Linux台式機,求攻略?
※如何在Ubuntu下配置Android開發環境?