寫在使用 Linux 工做一年後

start

去年公司空了幾臺臺式機,當時看了下彷佛配置比我用的乞丐版 air 略高一些,並且除了 ssd 之外還有一個 1T 的大硬盤,加上後面可能會有一段時間不作 iOS 了,那就不須要 macOS 了,因而順了一臺過來桌上用來打算作開發機,當時可選的方案有 Windows 10 和 Linux,思考了下機器上 60G 的 ssd 估計是不能裝那麼多東西的,而 Windows 要把好多東西裝到 D 盤,其實用起來好麻煩,感受本身不太會用,因而選擇了 Linuxhtml

本文寫在我使用 Linux 做爲開發環境後的三個月,也就是主力開發環境爲純 Linux 環境,偶爾使用虛擬機作配合,Linux 是天生爲喜歡折騰的人準備的,固然也是爲了知道本身想要作什麼和想要什麼的人準備的,因此本文的目的是爲了以 Linux 做爲生產開發環境爲目標的人準備的,若是隻有想要裝個 Linux 的想法,或者只有想要試試玩玩的想法,我的建議使用本身熟悉的環境(Windows 或者 macOS)搭配虛擬機從完整配置一個 ArchLinux 開始學習python

本文主要是爲了將要以 Linux 做爲本身主力開發環境的同窗準備的一些意見建議,以及本身的踩坑經歷,若是你想要以 Linux 做爲主力開發環境能夠把本文做爲開始,可是本文絕對不是結束,linux 的折騰是無止境的linux

好處和壞處

  • 好處
    • 開箱即用的開發環境,和 macOS 同樣,Linxu 幾乎爲全部主流開發平臺、語言提供了開箱即用的環境
    • 大量開箱即用的開源工具,後來我喜歡上了 Kate(KDE 上提供的一個文本編輯器,雖然插件少,可是自己功能完善)
    • 不多讓人分心的東西(沒有 QQ,基本沒有遊戲)
    • 超好用的終端模擬器
    • 不少好用的開源工具,有些甚至帶到了 mac 上繼續使用
    • 高度可配置,只要你有心思,外表想作成什麼樣均可以
    • 折騰
    • 折騰
    • 折騰
  • 壞處
    • 折騰
    • 折騰
    • 折騰
    • 沒有 QQ,只能虛擬機或者 wine,smart qq 消息或者羣多,就二了
    • 微信,只有 web 微信,或者通過 electronic 包裝的 Electronic-Wechat 或者非官方的 wewechat,可是一直用 web 版本微信,容易被封號,前幾天我被封號了,用戶反饋了,理所固然的未果,用了兩週虛擬機,莫名的解封了
    • 高度可配置,雙刃劍,配置的後果,殺敵1000,起碼自損300,用了一些暗色系主題。。。結果有些文本,button 看不清了,wps 的表格竟然變黑了(暫時懶得解,用 libreoffice 其實挺順暢的,以前在 mac 上這東西可卡了)

Linux 中折騰,既是好處也是壞處,好的地方是讓你知道盒子裏究竟是哪一個齒輪壞了,壞的地方是找來找去,發現盒子裏齒輪沒壞,只是每一個齒輪都有那麼一丟丟不正常,因此我一直以爲開源那幫人實際上是很是不靠譜的,若是沒有需求,真心不須要折騰 Linux,你看得沒錯,我在勸退git

開始折騰

上面介紹完了,有興趣的同窗繼續往下看吧,接下來咱們開始正題吧,Linux 之路折騰無限,可是做爲開發環境,咱們須要在折騰和穩定之間找到平衡點github

折騰的背景

下面是我在 Linux 世界探索(碰壁)以及對我使用 Linxu 有幫助的一些經驗,但願對你們有用web

  • 不少的 Windows 安裝經驗和 Linux 安裝經驗,多體驗不一樣的發行版,找到合適本身使用的,之前電腦性能不好跑虛擬機很費勁,對於如今電腦來講,有虛擬機會很方便你的學習
  • 經過配置一個完整的 ArchLinux 環境,學習整個 Linux 系統的配置,啓動,桌面環境相關的全部基礎知識
  • 4年的 macOS 使用經驗,你們別說,從 macOS 遷移到 Linux 除了開發者們給咱們準備的各色精緻的 mac 應用之外,整個遷移過程很是順滑
  • 知道本身想要什麼
  • 遇到問題能本身解決

上面幾點,是我此次能成功把工做環境遷移到 Linux 的一個基本保障,接下來我在下面列下我折騰了哪些東西,讓個人工做絲般順滑chrome

發行版選擇

做爲生產開發環境不一樣於實驗研究環境,最主要是須要穩定可以持續支持工做,至少不常常崩潰或者每過幾個月就須要重裝系統。我曾經在大學時候和工做之後,體驗過不少主流的發行版(這裏說主流就是真的主流主要包括,Debina,Fedora,Ubuntu,openSuse,ArchLinux),最終選擇了 Fedora 27(當時是測試版,可是我相信本身有坑能踩過而且正式版還有一個月就發佈了,不太信本身的同窗能夠在選擇的時候選擇正式版,畢竟是用於支持生產開發的環境,最主要是穩如老狗)數據庫

  • 排除的理由
    • Debian:排除,裝的次數太少了,熟悉程度不高
    • Ubuntu:安裝了兩次,每次都有奇奇怪怪的問題(可能跟我安裝的是非 LTS 版本有關)
    • openSusu:上大學的時候用的最多的就是他,可是那時候總有些奇奇怪怪的問題沒辦法解決
    • ArchLinux:太過於折騰,工做之後裝了幾回,從安裝到桌面環境,通常須要一到兩天的時間,我的感受堅守 Arch 的簡單哲學 pacman 其實沒有 dnf 那麼完善,可是若是初學 linux,那麼這個是首選
  • 選擇的理由
    • 我第一次折騰 Linux 的時候,嘗試了 RedHat 9,以後嘗試了 Fedora Core(那時候 Fedora 的原名),選擇 Fedora 有種熟悉的配方的感受
    • 服務器大多數用 CentOS,依然是熟悉的配方的感受,未來部署應用也會有熟悉的味道
    • 知呼看介紹,Fedora 是 Linux 的 Cutting-Edge,想要體驗最新最棒的 Linux 就靠他了
    • 兩次 Ubuntu 的安裝失敗。。。讓我懷疑這最廣的發行版,不是爲我準備的(我真不是黑 Ubuntu,在想要切換的一開始就想到他了,也動手裝上了)

桌面環境的選擇

Linux 上的開放性,因此,咱們在不喜歡當前用着的桌面環境的時候,能夠換一個。。。這彷佛是個很美好的事情。。。可是很遺憾,開源社區再次 show 出了他們的不靠譜小程序

最終我選擇了 GNOME on Xorg,緣由以下:vim

  • KDE 依然是炫技的平臺,高端大氣上檔次,可是各類 bug 不斷
  • GNOME on Wayland,不能用 shutter 截圖,偶爾整個 GNOME 掛,Wayland 離穩定使用還有一些距離
  • 雖然 GNOME 的臃腫是你們一直詬病的問題,可是我只是須要一個經常使用的工做環境,並不想花一兩天去折騰,而 GNOME 確實符合這個需求
  • 感受 GNOME 的文件管理器跟 Finder 很相似,稍微好用一些了

爲何不直接全盤命令行?

  • 我雖然熟悉以及喜好命令行,可是我倡導合適的地方使用合適的工具,咱們主要的目的是工做,而不是炫技,並非全部人都能只用命令行完成全部工做
  • 相比每次找到項目路徑,敲入 push,pull 我仍是喜歡用點下鼠標就能 push pull 代碼還能分組庫的 GitEye
  • VSCode – 個人主力開發工具,並無命令行版
  • 圖形界面下,有 Tilix 這樣方便的神器,能夠相似 iTerm 同樣分割窗口各類,也有 Hyper 這樣能隨意擴展的現代命令行工具
  • 多窗口管理,對,我還要聊天呢

這裏能夠說下,我的建議使用 KDE 或者 GNOME,由於個人目的是穩定,固然你們也能夠嘗試其餘的桌面環境,畢竟 linux 最大的優點就是開放

安裝

安裝指引

  • 須要材料
    • 網絡
    • fedora live 鏡像,能夠到 Fedora 官網 下載
    • 一個 4G 的優盤(live 鏡像大約 1.7G ~ 2G 左右,大一點沒啥壞處)
    • Etcher 用於將 live 鏡像寫入優盤中

上面就是安裝 fedora 須要的全部材料了

  • 安裝步驟
    • 使用 Etcher 將 fedora 的鏡像寫入到優盤中
    • 重啓電腦,在 BIOS 中設置經過優盤啓動
    • 啓動後會進入到 fedora 的 live 界面中,在 live 界面中找到安裝程序並打開
    • 根據提示選擇安裝位置,語言,市區等各類東西,以後點擊開始安裝,這樣就開始了安裝之旅

由於安裝的時候我沒有截圖,這裏用虛擬機打開了鏡像給你們看下安裝界面,等待半小時左右,就能夠安裝完成了,安裝完成後重啓就會進入到新的系統了,咱們就進入純 linxu 的世界了

系統調配

安裝完成後,這只是一個恰好能夠用,並附帶了 GNOME 所附帶的大部分應用程序的系統,那麼離咱們可使用,其實仍是有距離的,接下來我會介紹我對系統的初步調配

將消耗空間的東西連接到磁盤上去

個人初衷就是爲了想要一個啓動快速的系統,而且能安裝大量應用,因此第一步,我將會把不少消耗磁盤空間的路徑連接到 1T 的機械硬盤上(哎呀,好長,下面統一叫 HDD 了),若是這一步失敗了,那麼也不會有剩下的步驟了,連接後給個人感受是,總體系統速度並無變慢不少,不過在打開大應用(好比 Jetbrain 家的大型 Java 應用)時會有一些卡頓,可是打開後,整個使用體驗是很流暢的,不過也由於本機內存不是很大(8G)因此應用開多了仍是會卡,特別開了虛擬機以及某些大型 Java 應用的時候很容易出現卡頓的現象

下面是我電腦上磁盤使用的截圖,data 1 - 3 就是 HDD(切勿嘲笑別人取名無力),這裏沒有顯示 home 的分區,個人 home 分區大約是 20G,root 分區大約是 40G(固然還有 boot 啊之類的分區,這個在選擇自動分區的時候,安裝程序會幫你搞定)

磁盤截圖

  • data1 做爲 home 的延伸,主要用來存放文檔,開發中的項目等
  • data2 用做虛擬機存儲空間,單獨分區,方便管理
  • data3 就是這一環節的主角了,大部分的系統應用都連接到了這裏

不過我並非一次性把全部的路徑連接好的,而是在用的過程當中發現 SSD 空間不足的時候,找到一些消耗空間大的路徑,把他連接到 HDD 上,這裏是我連接的一部分路徑,供你們參考下:

  • ~/.icons~/.themes:主題和圖標路徑,連接這個主要是裝主題方便
  • ~/.local:當前用戶的應用數據,連接這個幫你解決大部分的空間問題
  • ~/.var:當前用戶的 var 路徑,一部分(主要是 flatpak 打包的)應用會把數據寫到這個路徑
  • /opt:部分應用會安裝到這個路徑
  • /var/lib/flatpak:flatpak 的應用會安裝到這裏
  • /var/log:日誌

把這些路徑連接後,相信磁盤空間會空閒出不少了,這樣小 SSD 的電腦也能愉快玩耍了

另外,除了上面的路徑外,還有一些比較特殊的路徑也會佔用大量空間,這裏也列舉下

  • ~/.stack:學 haskell 的時候,stack 是 haskell 的包管理器,經過 stack 安裝的包會在這裏
  • ~/.nixnote:nixnote 是 linux 下的 evernote 實現,他的數據會放這裏
  • /usr/share/dotnet:.net 相關的東西,老佔空間了
  • /usr/lib64/ghc-x.x.x:haskell 的編譯器,老佔空間了

除了這些若是你們在使用過程當中發現某個路徑,或者某個應用特別佔空間,也能夠把他們連接到 HDD 上,節約 SSD 上寶貴的空間

安裝大機率用獲得的包

參考 -> RPMFusion 配置 根據系統版本啓用 RPMFusion 自由(free)和非自由(nonfree)的軟件源配置

參考 -> FDZH 配置 根據系統啓用 FDZH 中的源,同時 FDZH 的 wiki 中也包含了一些經常使用軟件的安裝配置,你們能夠參考下

  • 刷新下 dnf 源

第一次安裝完成,或是添加了 RPMFusion 和 FDZH 的源後,須要刷新一下 dnf 的源,這樣咱們就能安裝到新添加的軟件包了

sudo dnf update --refresh

複製代碼
  • 安裝 Development Tools 軟件組

Development Tools 包含了開發使用到的各類工具,因此咱們首先要把他裝上

sudo dnf group install "KDE Plasma Workspaces"

複製代碼
  • 安裝 KDE

這一步是可選的,若是喜歡 KDE 的,那麼能夠輸入下面的命令安裝

sudo dnf group install "KDE Plasma Workspaces"

複製代碼
  • 看看還須要什麼

使用 Linux 做爲主力環境最方便的地方就是咱們須要什麼那麼就安裝什麼,可使用下面的命令看下還有些什麼軟件組能夠安裝使用

dnf group list

複製代碼

配置工具系統

  • Font Tweaks Tool:調配字體渲染的,若是看着字體不舒服,就靠他了

Font Tweaks Tool

  • Fedy:fedora 調教工具,附帶了一些調教腳本以及一些應用商店沒有的應用的安裝渠道

Fedy

存活指引

安裝配置結束後,接下來介紹下 linux 的平常存活指引

開發存活指引

本文介紹是以主力使用 Linux 開發爲主,因此優先介紹開發使用到的工具,其實大部分工具都是開源或是跨平臺的,在其餘系統中咱們也能用到

  • Visual Studio Code:微軟搞的開源代碼編輯器,我的認爲最好的編輯器之一,曾經我以爲我不會放棄 vim 的,後來真香
  • CherryTree:代碼筆記上品,代碼貼大集合,也是跨平臺的(Mac 上沒有獨立包,最近嘗試達了一個,可是始終不是那麼順利)
  • Tilix:媲美 iTerm 的終端模擬器
  • GitEye:基於 eclips 平臺開發的 git 工具
  • Zeal:linux 上的 Dash,文檔庫兼容 Dash 的,而且也能夠直接下載 Dash 的文檔
  • Jetbrains:全家桶,不得不說 Jetbrains 爲咱們提供了最好用的 IDE 系列,要說缺點的話,那就一個字 —— 貴!
  • StarUML:畫 UML 的好工具,跨平臺
  • neovim:做爲 vim 黨,這個必推,雖然如今主力已是 VSCode 了,可是我也要 VSCode 摻着 vim 插件才能真香
  • MySQL Workbench:MySQL 官方提供的數據庫工具,只用 MySQL 沒有比他好的
  • DataGrip:多數據庫連接工具,貴!
  • GitKraken:相比 GitEye 是一個更好看的 git 客戶端,不過只能免費用於開源項目
  • Kate:KDE 默認的文本編輯器,好用,快速,穩定,可是插件少不少,沒法做爲主力開發擔當
  • 小程序開發工具:github.com/cytle/wecha…開發小程序必備

有了上面的一堆開發工具相信是能夠從容面對平常開發工做了,linux 上除了 DataGrip,Navicat 之類的商業軟件之外確實沒找到很好用的多數據庫連接工具,這點算是一個遺憾了,你們要是有推薦的能夠聯繫我

虛擬機建議

若是虛擬系統是 linux 系而且不使用 GUI,建議直接使用系統自帶的 qemu 或是 kvm,另外不要使用 GNOME 帶的 Boxes,Boxes 是爲了簡化虛擬機操做而開發的應用,可是實際上還不是很成熟,建議安裝 Virtual Machine Manager 做爲虛擬機管理工具,雖然 Virtual Machine Manager 上手會比 Boxes 稍微麻煩一些,可是可配置性要好不少,而且 qemu 和 kvm 對共享文件系統支持要好一些,聽說文件讀寫速度接近原生

而且 qemu 是系統服務,Virtual Machine Manager 只是一個管理界面,在啓動好虛擬機後,咱們能夠直接 ssh 上虛擬機便可操做,無需繼續開着管理界面,而且在系統 UI 崩潰的時候,虛擬機服務並不會崩潰,也不會影響咱們運行在虛擬機中的程序

若是虛擬系統是 Windows 系或是使用 GUI 的 linux,那麼建議使用 Virtual Box 或 VMWare 商業軟件,qemu 在圖形化操做系統上始終並非很好用,常常有鼠標位移,速度慢之類的問題

平常存活指引

平常存活主要包括了聊天和 Office 辦公系列,以及筆記之類的平常應用

  • ElectronWechat:微信聊天必備
  • WPS:Linux 上惟一能叫作 Office 的工具
  • LibreOffice:Linux 上第二的 Office 工具,這也是對多編碼 csv 文件支持最好的工具,就算是 MS 家的 Excel 也沒這個對多編碼 csv 支持好用,若是須要從數據庫導數據作報表之類的,建議必定裝一個
  • Nextcloud:若是你有一個私人的服務器,那麼建議部署一個 ownCloud 或是 Nextcloud 做爲文件共享使用,同步文件絲般順滑,同時還能提供部分應用使用
  • QOwnNote:比較好的跨平臺筆記軟件,搭配 Nextcloud 使用完美實現筆記同步
  • Typora:好用跨平臺 markdown 寫做工具,能夠將 markdown 輸出爲 pdf 和 html 頁面,本文就是用 Typora 和 Kate 共同完成寫做
  • Firefox:忘了 chrome 吧,firefox 纔是最好用的,哈哈哈哈哈
  • CopyQ:好用的剪貼板管理工具

爲沒有程序起動器的應用添加程序起動器

程序起動器咱們能夠理解是 Windows 裏面的快捷方式,linux 中不少應用最主要就是執行二進制文件,可是有些應用卻沒有提供一個起動器(在 Launcher 中),這讓咱們每次打開的時候還需源經過命令行去運行,固然還有的應用更過度好比用 python 寫的,還須要用 python 去找到那個應用的腳本去執行,既然咱們都進入圖形界面了,那不能倒退啊,這裏說下怎麼建立起動器

這裏我用 Typora 來舉例,Typora 並無提供 rpm 包裝,也沒有在 dnf 的軟件源中,因此 Typora 在下載後就是一個樸實無奇的壓縮包,解壓後,就是一堆文件,看下圖我圈起來那個文件,那就是 Typora 的可執行文件,雙擊他也能運行,那麼咱們起動器的目標就是打開這個可執行文件

Typora

在 linux 中,每個起動器都對應一個 desktop 文件,全部的 desktop 文件都在 /usr/local/share/applications 路徑下,用戶本身的起動器,也能夠放到 ~/.local/share/applications 路徑下,接下來咱們來看看起動器的內容,起動器其實就是一個文本文件,告訴系統如何啓動這個應用

Name=Typora
Comment=Markdown Writer
Exec=/home/noark9/data1/Applications/Typora/current/Typora
Icon=/home/noark9/data1/Applications/Typora/current/resources/app/asserts/icon/icon_512x512@2x.png
StartupWMClass=Typora
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Productive;
Name[en_US]=Typora.desktop
複製代碼

這裏就描述了 Typora 這個應用如何啓動,以後把這個文件放到 /usr/local/share/applications 或是 ~/.local/share/applications 路徑下,這樣在應用程序中就能看到他了,在 /usr/local/share/applications 路徑下還有不少起動器,你們在本身寫的時候能夠多多參考

讓心情愉悅的指引

心情愉悅啊,那就包括一些娛樂活動了

  • VLC:看電影的不二之選
  • Steam:其實支持 Linux 的遊戲還挺多的
  • OpenRA:紅警的開源實現,支持在線對戰,玩起來其實挺開心的
  • ioquake3:Quake3 的開源實現,玩起來炒愛心的
  • DosBox:DOS 模擬器,玩 DOS 遊戲專用,還能夠裝個 Win 3.1 在裏面,方便管理文件
  • dolphin:wii 模擬器,wii 遊戲走起

end

使用了 linux 一年之後,我發現我已經能夠很好的在 linux 桌面下存活了,也能很好的完成個人工做,我並不推崇你們盲目的上 linux,畢竟這並非一個想上就能上的系統,在使用過程當中仍是遇到了不少奇奇怪怪的問題,也有做死把桌面環境網絡全搞掛最後本身恢復的時候,可是 linux 確實是一個能鍛鍊人的好系統,使用 linxu 能大大加強本身查找資料的能力,解決問題的能力,以及獨立思考的能力

原本本文應該是今年年初的時候就會寫完了,因此這裏最先的標題是在使用 Linux 工做三個月後,直到年底了,我也開始用回 Mac 後才完成本文的撰寫,可是本文依然是徹底在 linxu 下撰寫完成,並未使用到 Mac 作任何的輔助,中途因爲個人失誤把 GNOME,KDE 等桌面環境卸載了,而且刪掉了網卡驅動後從新配置了網卡驅動和從新安裝桌面環境,致使部分我使用的部分應用已經沒有安裝在系統裏面了,這樣也讓我遺失了一些資料

你們也能夠常常看看 Fedora Magazine ,我挺喜歡 Fedora Magazine 的,裏面常常有有趣的開源工具和 linux 使用經驗分享

最後歡迎你們訂閱個人微信公衆號 Little Code

Little Code

  • 公衆號主要發一些開發相關的技術文章
  • 談談本身對技術的理解,經驗
  • 也許會談談人生的感悟
  • 本人不是很高產,可是力求保證質量和原創寫在使用 Linux 工做一年後
相關文章
相關標籤/搜索