1. 程式人生 > >【轉】Ubuntu做日常開發電腦的系統是一種怎樣的體驗

【轉】Ubuntu做日常開發電腦的系統是一種怎樣的體驗

和我 manager sublime 分享圖片 ffice 最好的 技術 重要 zsh

【原文】https://www.toutiao.com/i6594291159911105031/

技術分享圖片

Ubuntu 我現在已經基本不開windows了.學習娛樂開發基本都在Ubuntu

  • 首先你要接受的是,沒有QQ, 因為我本來平常生活就不需要用QQ. 如果你對QQ需求很大的話建議不要裝Ubuntu. Ubuntu下基本沒有好的QQ解決方案.
  • 當時想轉到Ubuntu是因為以後要做web後端開發必須要很熟悉Linux, 其次是覺得Ubuntu的整個UI要比Windows好看. 所以我建議裝好以後可以把Ubuntu折騰漂亮一點. 比如裝Unity Tweak Took, compizConfig Setting Manager等配置軟件, 看看網上的教程可以把Ubuntu弄的很炫酷..各種透明,動畫,3D效果....還有推薦一套圖標主題: Numix Circle 主題圖標, 非常好看強烈推薦
  • 其次是輸入法, 強烈推薦搜狗輸入法, 安裝稍有點麻煩
  • 辦公系統那一套, 三種解決方案, LibreOffice, WPS和Google doc. 如果不是需要經常修改MS word,上面三種寫寫文檔都夠用...
  • 開發相關, 工具應有盡有...文本編輯器推薦Sublime Text, IDE推薦Intellij那一套. 其他什麽工具需要就直接terminal輸sudo apt-get install ... 搞定
  • 用Ubuntu一定要會Google!!!! 很多問題中文資料根本查不到....

技術分享圖片

之前寫代碼的時候是在 Windows 上,某一天舍友大人裝完 Ubuntu 回來,給我 show 了一下,看了第一眼,那時覺得好神奇好酷炫,於是在某天我也裝了,那時還是 Ubuntu 12.10,然後擱置了一年╭(╯3╰)╮,轉眼過了一年,升級到 13.04 後終於下定決心在 Ubuntu 上幹活,推薦題主裝 64 位的。

說了這麽多,體驗來了!

1. 裝軟件:剛開始什麽 deb、tar.gz、.run 完全看不懂,最後發現一條神奇的命令

sudo apt-get install

什麽 emaces、vim 無痛安裝。當然如果你選擇的是 deb 格式的安裝包的話,我推薦 GDebi 這個軟件,安裝 deb 非常的方便。

2. 開發工具:咳咳!作為一個前端工程師偏愛的編輯器是要的,Sublime Text: The text editor you‘ll fall in love with 什麽!sublime 輸入不了中文! 當然一個編輯器可能滿足不了你寫代碼的欲望,vim 的配置:spf13-vim - The Ultimate Vim Distribution

3. 娛樂:聽課基本上就是豆瓣 FM 還有網易雲音樂。

4. 通信:QQ 用的是 wine QQ,用著還好

  • 5. 終端:肯定是這貨 Oh My Zsh 。

技術分享圖片

我從windows轉到ubuntu有兩三個月了,最開始確實有很多不習慣。

諸如

1.ubuntu常常開機就遇到的 內部錯誤 是麽東西。

技術分享圖片

2.在編輯器裏中文輸入法各種不能使用是怎麽回事

3.網頁版qq真的不好用啊,wineqq又各種掉線

4.想看個視頻 字幕沒有咋辦啊 在線匹配字母的效率也太低了吧

5.讓做個ppt, linux下的ppt真心不好用。。 要修改個圖片沒有photoshop怎麽辦?GIMP試了一下,有點無從下手

6.啊,想玩遊戲了,讓我打兩盤魔獸吧,紅警也行

技術分享圖片

好處

1.想要安裝個軟件,真心方便,apt-get 一條命令搞定。文件的管理,配置等等終端裏一條命令搞定。

2.想體驗最新的版本,也是超方便,終端裏一條命令搞定。

3.終端或者說命令行真強大(恩)

4.對程序員來說,確實也很方便。。。(這個怎麽說呢。。 其他人補充吧)

5.不用擔心病毒了什麽的

但是還不能用qq,玩魔獸,所以現在我用virtualbox虛擬機裝了個xp系統。

然後開啟virtualbox的無縫模式,之後的事。簡直跟同時用兩個系統一樣。

技術分享圖片

技術分享圖片

1.virtualbox安裝xp 給的配置並不高,但足夠其運行。主要是分給其兩核+1G內存+32M顯存。本人的電腦配置是I5 3520(好象是。)+6G內存+HD4000+GT630 ,所以剩余的配置足夠運行調試程序了。

2.替換了ubuntu 14.04裏默認桌面成gnome3,這個穩定性確實很好,而且對中文輸入法的支持也很不錯。

3.不要使用ubuntu kylin.雖然增加的對中文的支持,但是各種不好用。

技術分享圖片

綜合來講 10.04版本的綜合體驗是最好的。

然後我就切換到 Fedora了,一直到現在。

Ubuntu的系統升級也是相當酸爽的,尤其是半途中 Adobe, LibreOffice 下不下來什麽的。就算能下下來,升級過程也會問你很多的傻逼問題,深夜睡不著的時候可以嘗試折騰一下還是相當有趣的。你可以猜測一下下一個問題會在幾個小時內問。當然了,當然了,這些都是小事情,深夜看球,或者看個WWDC什麽的不是也得熬夜嘛。其實升完級以後發現無線網絡驅動不起來了才真的酸爽呢。

驅動無線網絡需要重新升級內核,發行版裏的內核永遠都是連不了無線的,據說這叫FEATURE,這不叫BUG。重新升級內核需要能夠聯網,無線網絡不通可以連有線,上京東買網線需要聯網。別說什麽手機上京東就買了,Ubuntu 1x的時候移動互聯網還不知道在哪兒呢。當然還有一個終極解決辦法,單位肯定是有網線的,對吧?升級Ubuntu這麽高風險的事情當然是休長假的時候才會幹的。不要跟我說到中關村買根線不就完了嗎?坐466來回四個多小時買根線就為升級個Ubuntu我還不如跑趟單位呢。

技術分享圖片

如果是軟件開發的話,是沒有什麽問題的。畢竟遊戲資源比較少這個問題和日常工作的相關度不大,所以沒什麽不可以的,而且對於開發者來說個人推薦使用“類 UNIX 系統”,Linux 也好, Mac 也好,就是不要使用 Windows,除非你開發的是 .net,原因會在下文介紹。

Linux 坑還是有的,Ubuntu 自己的坑也是一樣的。

年前重裝過系統後,現在的系統每次開機都要顯示出現了問題,雖然我都沒感覺出來出現了什麽問題,自然也不影響正常使用。如果你想折騰電腦的話,推薦你去使用 Arch Linux,這樣你會更有快感的,但是作為實用的系統的話還是用 Ubuntu 就可以了。我絕對不會告訴你,我只用兩年更新一次長期支持版本。既然要工作,還是少折騰為妙,畢竟時間還是很重要的,特別是你可能還沒有什麽 Linux 平臺的經驗。

在 Linux 這個平臺上,坑還是有的,我個人感覺比較突出的坑就是刪除文件,特別是系統文件。曾經為了刪除一個軟件的殘留文件把主目錄給刪除了,後來通過復制了一份 Guest 賬戶的主目錄才給恢復了,後來又幹過把 /usr/bin 目錄給刪掉了,通過安裝光盤才給恢復的。所以在這個平臺上刪除文件的時候最好小心點,特別是使用 root 賬戶的時候。特別是 Linux 的文件是可以在使用的時候修改的,所以可能你刪除了某些文件你都不知道,但是等到下次開機的時候就坑了,並且你還不知道為什麽。因此除了準備了一個安裝光盤外,對於重要的數據我都會備份,以防下次不小心誤操作後的帶來的重大損失。如果你不幸真誤操作了,詢問 Google 會是一個很好的習慣。

另外,我最早裝的時候,是用 Windows 系統來引導的,這直接導致了系統檢測不到筆記本的電池,最後造成關機的時候只會切斷電源關不掉屏幕。到了後來用了 Grub 來引導雙系統後以上問題就都消失了。所以,很多時候在 Linux 上的感覺就是為什麽會這樣?怎麽又好了……

從我用 Ubuntu 到現在,遇到了很多的坑,自己也重裝過很多次系統了,目前正在積極的幫身邊的同學裝系統中(因為可以突破瑞捷,開啟 wifi)。

技術分享圖片

為什麽不推薦使用 Windows 呢?

(1) 考慮了國內的大環境。Windows 太糟糕,太糟糕。我的 Windows 裏裝了一個360,因為我自從安裝了“獵豹wifi”之後就經常被金山殺毒給欺騙了,不得不用360來清理。而今天360贈送給我360手機助手和360移動版,所以我決定讓它去面壁了,畢竟太主動了我害怕。而我又比較懶,比較粗心大意。

(2) 另外 Linux 能夠取代 Windows 最大的理由就是 Linux 的 Shell。之前用 Shell 寫了一個爬蟲把全校學生的入學照片都爬了下來,還順帶統計了一下沒有修改默認密碼的學生數,感覺無比很方便。這種方便指的是編寫方便,使用方便。而如果換到 Windows 平臺,我真沒有想到有什麽好的解決方案。

(3) Linux 文件特殊的結構也是一個優勢。在 Linux 下要搜索文件可以通過命令來查詢,而如果在 Windows 下,你要面對那麽多的分區,每次查找文件的時候總是慢得要死。而且 Linux 也更方便管理,自己的信息就放在主目錄下,命好名字,往往都是很好找的。另外 find 命令也是很強大的。

(4) 字符編碼,中文的問題太嚴。現在是跨平臺的時代,不是 utf-8 的都太折騰,可惜 Windows 下就不是 utf-8,為了保證兼容我還得下個文本編輯器,這樣的體驗實在太不好,另外 Git 這樣的工具也是基於 Linux,更加堅定我放棄 Windows 的決心。所以目前除了玩遊戲,已經不怎麽用 Windows 了。

技術分享圖片

Ubuntu 如何入門 ?

個人感覺 Ubuntu 已經很像 Windows 了,如果你不用命令行的話,它其實就是一個另類的 Windows(操作體驗上來看是這樣子的)。所以,你可以通過點擊鼠標的方式上上網,安裝安裝軟件等。我覺得剛開始使用的時候,你是不需要去關註命令行的。因為,當初讓我選擇 Ubuntu 的原因是這個系統可以在校園網裏很方便的開 wifi。所以你在前期你可以像使用 Windows 一樣來使用它,否則你會被太多太復雜的命令行嚇走的。就如我第一次接觸那樣的,借了一本命令行的書整天敲,敲到最後就記住了:

sudo shutdown -h now

然後我就放棄了。直到後來可以開 wifi ……

所以,對於初學者還是先培養興趣就好。然後就可以開始安裝軟件了,這樣你就會記住一大堆的命令。什麽 apt-get ,dpkg ,tar 等等。所以,你也就入了門。

之後你可能得配置配置系統的環境,因為有些軟件就是需要系統環境,這下你就可以學習如何使用 Vim 這樣的工具了。再往下,如果你有興趣的話,你可以學習學習 wget,curl 這樣的命令,當你發現了 awk,sed 後你會深深的喜歡上這些工具的。這時候你可以再學學管道的知識。這樣你 Linux 的基礎也不算太差了。而且不會浪費時間。

當然作為一個開發者,你肯定不會滿足與這樣,你可以去嘗試嘗試 LAMP,用手輸入簡直是麻煩得不得了,所以你覺得你應該寫個腳本,更何況,有可能明天系統又崩潰了。所以你要學習 Shell。後來,你會發現你能用 Shell 做更多,這時候 Linux 真的已經擊敗了 Windows ,因為可能在開機的時候,你的電腦就已經開始在跑你寫下的腳本,而在 Windows 上,你根本不知道這要怎麽做,或者它的學習成本太高了。

技術分享圖片

在Linux世界混,你看有多少跨平臺軟件不是支持WIn+MAC+Ubuntu+源碼安裝???

去開發Rails去開發Django以及各種環境配置,ubuntu就幾條命令就搞定了,用別的還需要熟悉linux各種奇葩的坑(沒折騰過7-8個Linux系統,我敢這樣說?)

強調一下重點:

  1. 不要折騰Ubuntu的桌面,用它開發就好了。
  2. Linux的GUI真心不如Windows(誰要是能用Linux解決一下問題我全身心馬不停蹄的轉Linux)
  3. 誰要是能解決Linux下面用戶界面龐大的占內存問題以及有工具可以替代win上的(everything + totalcommad + autohotkey這種Windows神級殺手應用,我立馬轉那個系統)
  4. 但Linux的命令真心強大。(或者說,相對而言,Windows上的非圖形工具們不夠開源)

技術分享圖片

從04年開始用Linux,那時候用Fedora 4;06年工作開始用Solaris;08年開始用OSX。現在日常使用OSX,有一臺uBuntu 16.04作為開發備用機。

Vim用的很熟練,平時寫腳步:python,shell,自己的tool就用vim,不用什麽插件。但是真正做Java,Rails,Node的開發,我用IntelliJ,RubyMine(Node也可以用RubyMine)。

基本結論:uBuntu的桌面不太好用,比OSX差很遠。但是有時候要測試真正的平臺特性,譬如:docker,譬如node的ps-node庫,我就會用這臺uBuntu。我SSH上去,跑各種腳步,平時基本不需要界面。偶爾需要看看測試覆蓋率,我會用 python -m SimpleHTTPServer 9000開一個server,然後用chrome連上去看,很方便;如果再需要界面,我優先推薦X11 Forwarding。

Vim就是一個編輯器,沒必要把他整成IDE。他最大的優勢就是哪裏都能用,編輯速度快。但是查看代碼覆蓋率,調試,重構,不是他的強項。IntelliJ Community免費,RubyMine 1年200$(個人用戶$89一年)。Oh-My-Zsh我卸載了,因為它啟動有些慢,或者說我不需要它那些我用不上的功能。我用原生的zsh,配合zsh-git-prompt,zsh-history,autojump,再把history設成10w條,然後alias一堆常用的路徑:譬如godev,就是到dev目錄,就足夠了。另外需要說明,有些tool在zsh上安裝完成之後需要手動做些改動(這一點zsh不如bash,因為用bash的還是多)。tmux我天天用,但其實我很少使用分割窗口的功能,所以其實screen更適合我:因為screen可以加密碼。但現在機器是我一個人用,所以就繼續用tmux了。

結論就是:如果你和我一樣寫Server程序,做雲端跑的程序,你應該選擇OSX或者

【轉】Ubuntu做日常開發電腦的系統是一種怎樣的體驗