我與Linux系統

ltoddy發表於2017-06-25

電影中一個超級黑客坐在電腦面前,從不摸滑鼠一下,幾十秒就能入侵超級安全的軍事系統。這是因為電影製片人意識到,作為人類, 我們應該本能的知道讓計算機圓滿完成工作的唯一途徑:是用鍵盤來操縱計算機。

我從2016年10月,開始完全使用Linux系統(Ubuntu 16.04 & Gnome3)工作。

其實在此之前我已經在linux環境(用的虛擬機器)下程式設計了,原因有兩點,命令列的技術是值得學習的。

另一個原因就是,我要參加的ACM/ICPC的程式設計環境就是Ubuntu,所以就算是提前適應環境了。

圖形使用者介面讓簡單的任務更加容易完成,而命令列介面使完成複雜的任務成為可能。

學習命令列會獲益匪淺,不像其他一些計算機技能,一段時間之後可能就被淘汰了,命令列知識卻不會落伍。因為命令列接受住了時間的考驗。

我現在挺喜歡linux系統的,現在最新版本的Ubuntu17.04所使用的桌面環境是gnome,在此之前都是Unity,Unity我不喜歡,所以我當初安裝系統之後的第一件事情就是 更換桌面環境。我與Linux系統

現在主流的作業系統有微軟的Windows,蘋果的MacOS,和開源世界的Linux。其實對於Windows,只能說蓋茨先生非常有商業頭腦,容忍盜版系統的存在。 所以現在才能佔有第一的市場份額。不過微軟公司,他們的Windows系統是真正為使用者設計的系統。因為普通使用者不需要做那麼複雜的事情,他們用電腦無非就是office和上網之類的罷了, 所以桌面系統可以讓簡單的事情變得更簡單,這就足夠了。

不過我畢竟是一個程式設計師,而且是想要走的長遠的程式設計師。對於linux來說,Windows系統能做的事情,它也都能做,而且能做的更好,雖然有兩大硬傷--圖形處理和遊戲。 而且林納斯作客TED的時候也說過:如果被困在孤島上,前提是你作出一個精美的GUI才可以逃離,他寧願選擇孤死。不過對於後端程式設計師來說,這兩處硬傷無關痛癢。 其他的,linux系統確確實實對於程式設計師來說是很方便的。

比如,linux系統比windows系統流暢的很多,而且對硬體的要求也不是很高。我家儲藏室初中時代的那個電腦。我寒假搬出來,給它裝了CentOS,在虛擬終端下生活一點都不卡, 挺流暢的,不過估計換了win10,硬體這關就過不了。(當然我當時沒有用瀏覽器,僅僅是嘗試生活在虛擬終端下是什麼感覺,firefox,chrome用起記憶體來都是大手筆。)

而且,linux佔用記憶體也是比windows小的,雖然你通過top去看你的記憶體使用情況時,看上去linxu"吃掉了"你的記憶體,但其實是做了swap。

我很清楚的記得,小學時候,我家長培養我良好電腦習慣的時候,其中就有開機之後不要著急,用360之類的軟體去清理一下垃圾,每幾個月用一鍵還原精靈去還原一下系統。

不過前不久去看了Minix之父AndrewS.Tanenbaum寫的那本作業系統之後,瞭解了一下這是為什麼:windows系統在記憶體的最低地址和最高地址區都有,會有記憶體洩漏。 而且微軟的白皮書裡確實建議到每半年重灌一次系統。(逃

有一點我其實覺得不錯,我在linux系統上從來沒考慮過安裝防毒軟體的事情。也就是說系統本身是比較安全的。畢竟開源了嘛。那麼多頂尖黑客去閱讀程式碼,去修改系統bug。 而且黑客們也都使用這個系統,怎麼可能不把它變得安全。而且windows上的病毒在linux上是不起作用的(是時候病毒也要誇平臺了。

最後,想說的是linux安裝東西問題,在windows下,基本都是從網上下載一個.exe的安裝包,然後雙擊無腦的下一步就好了。不過這也有一個缺點。 就是它不具有原子性,也就是說如果你安裝軟體的時候安裝到了一半,你用工作管理員結束程式了(自己閒的沒事),那樣,你先前安裝的檔案是存在在你電腦上的。 而linux卻不一樣,它有軟體包管理,如果你用命令列去安裝軟體,及時你中途按下了ctrl+c終止了安裝,那麼它之前安裝的檔案是不存在的。 也就是說,它要麼安裝成功,要麼就沒有安裝。而且,對於一些程式設計所需要的環境,框架,也可以輕鬆的一行命令列解決,而不像windows那樣去各種配置。Linux系統還是挺好的。

另外說一點,有不少人問過我怎麼去學Linux系統,或者說怎麼學命令列,其實回顧你對於所有陌生事務最初的接觸,都一樣的,多去使用它,慢慢你就熟悉他了。

如果你想學好Linux系統的話,那就直接在電腦安裝linux吧,也不要使用虛擬機器或者雙系統。因為虛擬機器或者雙系統,當你這樣做了之後,你還是會在大部分時間去 使用windows而不是Linux。永遠不要畏懼Linux系統,因為它也提供了桌面環境,你去使用Linux,完全可以不使用命令列去操作。也可以像windows那樣靠 滑鼠點來點去的操作。

對於命令列來說,其實記住那幾個常用的就好了:rm, mv, cp, ls, cd, touch, mkdir, 以及軟體包管理(debian是apt,red hat是yum)。

相關文章