為什么我要從 Windows 切換到 Linux?
喔,看到這個標(biāo)題千萬不要以為我要寫和王垠前輩一樣的內(nèi)容啊,嘿嘿。不過在這里還是獻(xiàn)上王垠前輩的那篇文章的鏈接吧:完全用 Linux 工作[1]。
為什么要寫這篇文章?
首先介紹本篇文章產(chǎn)出的時間,文章寫 2020/08/22。在三,四天之前,我其實(shí)并沒有寫這篇文章的打算,但是這三,四天以來,我一直在忙活從 Ubuntu18 換到 Debian10 Buster 的事情,沒有時間寫代碼,手確實(shí)有些癢了。你可能想象不到,我這個之前一直使用 Ubuntu 的人,只是切換到 Debian 就花這么長時間,你可能以為我是在勸退各位同學(xué),其實(shí)不是的,我只是想表達(dá):我對 Linux 并不熟悉,這其中一部分原因是我使用的是對用戶較為友好的發(fā)行版 Ubuntu,另一部分原因是我仍然沒有那么大的動力去學(xué)習(xí) Linux,即使它一直作為我的日常使用。
這篇文章并不是吹噓或貶低 Windows 和 Linux 系統(tǒng),而是想記錄一下我一直以來使用 Linux 作為日常學(xué)習(xí)的心得,以及這幾天再度折騰 Debian 以來的感觸。
為什么我要從 Windows 切換到 Linux?
Windows 是商業(yè)軟件,這使它具備易用的性質(zhì)。Linux 是自由軟件,這使得它擁有開源的性質(zhì)。
易用軟件通常帶來的是對用戶的友好度,以致于 Windows 發(fā)展至今,被許許多多的普通用戶所采用。自由軟件通常帶來的是其社區(qū)的發(fā)展,所以你現(xiàn)在可以在網(wǎng)上看到許多如 ask ubuntu 這樣的論壇。
我非常贊同《完全用 Linux 工作》中的一個觀點(diǎn): UNIX 不是計算機(jī)專家的專利。
我對這句話的理解就是:即使你學(xué)習(xí)或工作的方向不是計算機(jī),但你仍然可以去學(xué)習(xí) Unix/Linux,如果你是計算機(jī)方向的同學(xué),那么,你就更應(yīng)該去學(xué)習(xí) Unix/Linux 了。
但這只是我從 Win 切換到 Linux 的一部分原因,另一個很重要的原因是我受夠了 Windows 的 “易用性”。這里的易用性并不是說我排斥 Windows 的人性化,而是因為人性化給我?guī)砹撕芏鄬W(xué)習(xí)上的困難。舉個很簡單的栗子:你在學(xué)習(xí)一項技術(shù)的時候,無論是否有面試造火箭的需要,你是否都會好奇想了解其原理和實(shí)現(xiàn),即使你可能知道它很復(fù)雜。
為什么你會好奇一個事物的源頭?
我個人認(rèn)為的答案是:有趣的事情就在眼前,為什么不去了解它呢?
而 Windows 只是有趣,但它并不在“眼前”。
我個人的體驗哈,不知道有沒有同學(xué)和我一樣的經(jīng)歷,在很多時候,你的 Windows 可能會出現(xiàn)一些莫名奇妙的問題,但你卻不知道如何解決它,你只能求助搜索引擎,當(dāng)你解決完問題后,你不會想要去了解為什么會發(fā)生這種問題,因為 Windows 太龐大了。
就比如: 我現(xiàn)在安裝了 Git,使用起來沒有任何問題。但等到過一段時間后,Git 莫名奇妙的不能使用了,明明你啥都沒干。更甚之,有一些流氓問題或流氓軟件不能被解決和被屏蔽。
問題出現(xiàn)了,總得要解決吧,所以此時你開始在互聯(lián)網(wǎng)上查詢相關(guān)問題的解決方法,如果你的運(yùn)氣好,那么有人可能遇到過和你出現(xiàn)相同的問題,你也因此可能會得到答案。不過一般的答案只是教你怎么解決的,如打開注冊表,添加或刪除某個 key,你不會想要知道為什么做,因為對于初學(xué)者來說,當(dāng)你看到注冊表那么多的內(nèi)容時,你只想著不出錯就行了,哪還有心思去學(xué)習(xí)這玩意啊。如果你的運(yùn)氣不好,且并沒有更換系統(tǒng)的打算,那么你可能會將就著使用,但此時,你的心里可能已經(jīng)衍生了對 Windows 的厭煩情緒。
我對流氓軟件的定義是:當(dāng)你想讓一個軟件如你的想法停止運(yùn)行或停止彈出廣告的時候,這個軟件不能或不能做的很好的達(dá)到你的要求時,這就是一個流氓軟件。你也許會說,每個人都有不同的要求,軟件怎么可能達(dá)到每個人的標(biāo)準(zhǔn)呢?但我指的是停止和停止彈出廣告等這樣最基本的訴求,如果一個軟件連最基本的訴求都實(shí)現(xiàn)不了,又何必再使用它呢?
綜上所述,我從 Window 切換到 Linux 的最主要的原因有:學(xué)習(xí)和自由。
是的,你不得不承認(rèn) Linux 是你學(xué)習(xí)計算機(jī)的非常好的環(huán)境,與 C/C++天然的集成,比你在 Windows 上冷冰冰的安裝一個 IDE 就開始敲起代碼來,顯得多了那么一點(diǎn)感覺。
還有一點(diǎn),可能有的同學(xué)和我一樣,剛接觸 Linux 的時候,是在 Windows 上安裝一個虛擬機(jī)環(huán)境或使用 Docker 來進(jìn)行學(xué)習(xí)。不可否認(rèn),這確實(shí)是在 Windows 上學(xué)習(xí) Linux 的主要途徑了,但是你有沒有感覺到,你在采取這種方式學(xué)習(xí)的時候,對 Linux 始終有種陌生感,似乎我只是在為了學(xué)習(xí)而學(xué)習(xí)。
產(chǎn)生這種想法的主要原因就是你沒有融入到 Linux 環(huán)境之中,當(dāng)你融入到 Linux 環(huán)境之中時,你不再只是需要學(xué)習(xí)那些操作命令,你會不可避免的遇到某個你從來沒有接觸過的問題,這個問題不是你在 Windows 上“丟失圖標(biāo)”的那種煩人問題,而可能是令你有些害怕的因為 Nvidia 的驅(qū)動而黑屏的問題。你也會在互聯(lián)網(wǎng)上查詢?yōu)槭裁磿霈F(xiàn)這種問題,但你得到的并不是“修改注冊表”這種答案,而是會學(xué)習(xí)到:為什么 Nvidia 在 Linux 上會出現(xiàn)這種問題?我怎么做才能解決驅(qū)動問題?其他驅(qū)動是否也有類似 Nvidia 這種問題?當(dāng)你解決問題后,你的電腦開始正常工作了,你便開始使用它作為你的日常使用...
關(guān)于使用 Linux 學(xué)習(xí)的原因的最后一點(diǎn)是我認(rèn)為自己不夠慎獨(dú),不夠克制。 當(dāng)我使用 Windows 的時候,并不能完全克制住自己接觸那些新鮮游戲的念頭,我玩起游戲來,通常會連續(xù)很長時間,可能是一天-_-。不過我并不是說 Linux 上沒有游戲,相反,Linux 是對很多游戲的支持是很好的,你可以玩到很多游戲,但你是否會因為使用 Linux 對游戲不再那么執(zhí)著,至少我是如此了。這一點(diǎn)可以歸結(jié)為“使用 Linux 對戒游戲有幫助吧” ,哈哈。
再談?wù)勛杂桑?/span>
我對自由的理解是:軟件在你的掌控之中,你可以了解它的每一部分,你可以去到你想到達(dá)的地方,不受任何限制,這只取決于你愿不愿意。
來看看基本的 Linux 目錄吧:
這些目錄你可能有很多都不認(rèn)識,但沒關(guān)系,因為這就是 Linux 系統(tǒng)(大部分)所有的目錄了,你稍微了解下,就知道這些目錄里放的是什么文件了。
這也是我個人的體驗而已,總之,Linux 的自由是一種開源精神,比我描述的可大的多。至于 Windows,我到現(xiàn)在連 C 盤的目錄放了些什么都不太熟悉,但我并不是在貶低 Windows,因為這就是 Windows 易用性的代價,相應(yīng)的,Linux 作為自由軟件,它也有很多缺點(diǎn)。
Linux 作為日常使用的缺點(diǎn)
硬件驅(qū)動問題
硬件驅(qū)動問題一般是在安裝 Linux 時會出現(xiàn)的問題,根據(jù)個人電腦配置的不同,你的電腦的硬件驅(qū)動可能與要安裝的 Linux 發(fā)行版不兼容,導(dǎo)致系統(tǒng)出現(xiàn)相應(yīng)的問題。我這幾天對驅(qū)動問題最深刻的體會就明白了為啥 Linus 大神會吐槽: “Nvidia Fuck You”。很多驅(qū)動廠商對 Linux 系統(tǒng)是閉源的,你可以下載這些廠商的驅(qū)動,但是能不能用,或者用起來有什么毛病都得你自己買單。
隨著 Linux 開始在普通用戶中變得流行起來,我相信今后 Linux 的生態(tài)會發(fā)展的越來越好,且現(xiàn)在很多 Linux 發(fā)行版對各種硬件的兼容性也越來越好,就以我之前使用的 Ubuntu18 來說,Nvidia,Wifi,藍(lán)牙等驅(qū)動使用都是沒啥問題的。我現(xiàn)在使用的 Debian10 Buster 對 Nvidia 的支持可能還不是那么好,使用起來總有一些小毛病,不過無傷大雅,其實(shí)沒毛病我還有點(diǎn)不適應(yīng),不是說 Debian 是 Ubuntu 的爸爸嗎,哈哈。
軟件問題
不得不承認(rèn)的一點(diǎn)是 Linux 的軟件生態(tài)確實(shí)沒有 Windows 那么豐富,你在考慮切換系統(tǒng)之前,必須先調(diào)查清楚 Linux 上是否有你必需的軟件,你所需的軟件是否支持跨平臺或者是否有可替代的應(yīng)用。我個人對軟件要求較為簡單,大部分都是生產(chǎn)力工具,其他的應(yīng)用如娛樂軟件之類的都可以使用網(wǎng)頁版作為替代。如果你在 Linux 系統(tǒng)上想嘗試游戲的話,我認(rèn)為也是 OK 的,因為我也嘗試過 Linux Dota2 ,體驗非常好(不是廣告-_-)。不過大多數(shù)國內(nèi)游戲廠商對 Linux 的支持都是很差的,所以如果過不了這道坎,也不要切換系統(tǒng)了。
軟件問題其實(shí)可以分為 2 部分看待,一部分就是剛剛介紹過的生態(tài)問題,另一部分就是當(dāng)你在使用某些軟件的時候,總會出現(xiàn)某些小 Bug。
就以 Fcitx 來說,F(xiàn)citx 是一款通用的 Linux 輸入法框架,被稱為小企鵝輸入法,很多輸入法都是在 Fcitx 之上開發(fā)的,如搜狗,Googlepinyin,Sunpinyin 等。使用過 Fcitx 的同學(xué)可能會遇到這種問題:當(dāng)你在使用 Fcitx 在某些軟件上打字時,候選框并不會跟隨你光標(biāo)的位置,而是總會固定在某一個位置,并且你無法改變,這個問題是我目前見過的最大 Bug。不過這個 Bug 只在部分軟件上有,在 Chrome,Typora 上都沒有這個問題,這讓我懷疑是軟件的國際化問題,而非 Fcitx 問題。
所以第二個部分總結(jié)起來就是某些軟件可能會出現(xiàn)某些未知的 Bug,你得尋求解決的辦法,或者忍耐使用,使用 Linux 也是得犧牲一些代價的。
你真的需要完全使用 Linux 嗎?
說到這里,其實(shí)我想借用知乎某位前輩的話來表達(dá)一下我的真實(shí)想法: “Linux 最好的地方在與開放自由,最大的毛病也是在這里。普通人沒有能力去選擇,也沒有時間做選擇。透明就一定好么?也有很多人喜歡被安排啊!“ (知乎 - 漢卿[2])
就像我開頭說過的: “我對 Linux 并不熟悉,這其中一部分原因是我使用的是對用戶較為友好的發(fā)行版 Ubuntu,另一部分原因是我仍然沒有那么大的動力去學(xué)習(xí) Linux,即使它一直作為我的日常使用?!?/span>
我完全使用 Linux 是為了學(xué)習(xí)和自由,我確實(shí)在 Linux 上感受到了自由,且學(xué)到了很多東西,但我卻一直沉溺在這種使用 Linux 帶來的滿足感之中,并不能真正理解 Linux 給我們帶來的到底是什么。
這次從 Ubuntu 切換到 Debian 的原因是我想嘗試換個新的環(huán)境,但是當(dāng)我花了 3,4 天后,我明白了:我只是呆在一個地方久了,想換個新地方而已,但老地方不一定壞,因為我都沒怎么了解過這個老地方,就像當(dāng)初我從 Windows 換到 Linux 那樣,我都沒有深入的了解過 Windows 就換了,那一段時間我還抱怨 Windows 的各種缺點(diǎn),現(xiàn)在看來,非??尚?。
結(jié)尾
一文把想說的話幾乎都給說了,個人文筆有限,且本文主觀意識太強(qiáng),如果覺得本文不符合您的胃口,就當(dāng)看個笑話吧。
我使用 Debian/Ubuntu 時遇到的問題
以下內(nèi)容是我在 Debian10 Buster 下遇到的問題以及相關(guān)解決辦法, 使用 Ubuntu 和 Debian 其他版本的同學(xué)也可借鑒。
PS:歡迎各位同學(xué)在此處寫下你遇到的問題和解決辦法。
IDEA 編輯 Markdown 預(yù)渲染問題
這個問題花了我很長時間。
當(dāng)我安裝 IDEA 后,使用它編輯 markdown 文件的時候,就出現(xiàn)了如下圖所示的情況:
你可以看到右邊渲染的畫面明顯有問題。剛開始的時候我一度懷疑是 IDEA 版本的問題, 于是我又安裝 IDEA 其他版本,但也沒有任何作用,這時我懷疑是顯卡的原因:
可以看到使用的是 Intel 的核顯,于是當(dāng)我查詢相關(guān)資料,使用腳本將核顯換為了獨(dú)顯,這里沒留截圖,當(dāng)你換到獨(dú)顯后, 圖形會顯示獨(dú)顯的配置,使用 nvidia-smi 命令可以查看獨(dú)顯使用狀態(tài)。于是我滿懷期待的打開 IDEA,但還是無濟(jì)于事。當(dāng)我以為真的是 Debian 的 Bug 的時候, 我又發(fā)現(xiàn) Bumblebee 可以管理顯卡,何不一試?于是我安裝 Bumblebee 后,使用 optirun 命令啟動 IDEA,沒想到啊, 還真是可以:
我真的就很奇怪,同樣是使用了獨(dú)顯,為什么 optirun 啟動就可以正常顯示。于是我后來又查詢 optirun 是否開啟了 gpu 加速,但很可惜,我并沒有得到相關(guān)答案,不過這讓我確定了這個問題出現(xiàn)在 顯卡上。如果有知道原因的同學(xué),敬請告之,感激不盡。
wifi 適配器找不到
我猜(不確定)這個問題應(yīng)該發(fā)生在大多數(shù)使用聯(lián)想筆記本的同學(xué)的電腦上,不止 Debian,且 Ubuntu 也有這個問題。當(dāng)安裝完系統(tǒng)后,我們打開設(shè)置會發(fā)現(xiàn) wifi 一欄顯示 “wifi 適配器找不到” 此類的錯誤信息。這個問題的大概原因是:無線網(wǎng)絡(luò)適配器被阻塞了,需要手動將電腦上的 wifi 開關(guān)打開,而在我的筆記本上并 wifi 開關(guān), 所以可以猜測是聯(lián)想網(wǎng)絡(luò)驅(qū)動的問題??梢允褂?rfkill list all 命令查詢你的 wlan 是否被阻塞了,沒有此命令的同學(xué)可以使用
sudo?apt-get?install?rfkill
安裝,當(dāng) wlan 顯示 Hard blocked: true , 就證明你的無線驅(qū)動被阻塞了。解決辦法是將阻塞無限驅(qū)動的那個模塊從內(nèi)核中移除掉,直接在 /etc/modprobe.d 目錄下編輯 blacklist.conf 文件,其內(nèi)容為:
blacklist?ideapad_laptop
文件名不一定要與我的一致,但是要以.conf 結(jié)尾。你可以將 modprobe.d 目錄下的文件理解為黑名單文件, 當(dāng) Linux 啟動時就不會加載 conf 文件指定的模塊, 這里的 ideapad_laptop 就是我們需要移除的那個無線模塊。
后遺癥:當(dāng)我們移除 ideapadlaptop 模塊后,以后開機(jī)的時候,有時會出現(xiàn) 藍(lán)牙適配器找不到的情況,之前在 Ubuntu 上卻并未發(fā)現(xiàn)這種問題, 看來 Debian 在驅(qū)動方面沒有 Ubuntu 做的好,不過這也是可以理解的, 而且大多數(shù)時候還是可以正常使用的--。
XMind 安裝
XMind 是使用 Java 編寫的,依賴于 Openjdk8。所以在 Linux 上使用 XMind, 首先需要有 Openjdk8 的環(huán)境。其次啟動的時候需要編寫 Shell 腳本來啟動(不是唯一辦法,但卻是非常簡單的辦法),沒想到吧,我也沒想到, 這也是我趟過很多坑才玩出來的。
首先我們需要準(zhǔn)備一張 XMind 的軟件啟動圖片:XMind.png, 這個我已經(jīng)放到目錄[3] 下了,需要的同學(xué)請自取。
其次我們進(jìn)入 XMind_amd64 目錄下,32 位系統(tǒng)的同學(xué)進(jìn)入 XMind_i386 目錄, 我們創(chuàng)建并編輯 start.sh 腳本,其內(nèi)容為:
#!/bin/bash
cd?/home/guang19/SDK/xmind/XMind_amd64?(這個路徑為你的XMind腳本的路徑)
./XMind
這個腳本的內(nèi)容很簡單吧,當(dāng)啟動腳本的時候,進(jìn)入目錄,直接啟動 XMind。
腳本寫完后需要讓它能夠被執(zhí)行,使用
chmod?+x?start.sh
命令讓 start.sh 可以被執(zhí)行。
此時你可以嘗試執(zhí)行 ./start.sh 命令來啟動 XMind,啟動成功的話, 就已經(jīng)完成了 99%了,如果啟動不成功,可以再檢測下前面的步驟是否有誤。
如果以后你只想用 Shell 啟動 XMind 的話,那么到此也就為止了,連上面所說的圖片都不需要了。如果你想更方便的啟動的話,那么就需要創(chuàng)建桌面文件啟動。在 Debian/Ubuntu 下,你所看到的桌面文件,都存儲在 /usr/share/applications 目錄下面(也有的在.local/share/applications 目錄下),這個目錄下文件全是以.desktop 結(jié)尾。我們現(xiàn)在就需要在這個目錄下創(chuàng)建 xmind.desktop 文件(名字可以不叫 xmind)。
其內(nèi)容為:
[Desktop?Entry]
Encoding=UTF-8
Name=XMind
Type=Application
Exec=sh?/home/guang19/SDK/xmind/XMind_amd64/start.sh
Icon=/home/guang19/SDK/xmind/XMind.png
我們暫時只需要理解 Icon 和 Exec 屬性。Icon 就是你在桌面上看到的應(yīng)用的圖標(biāo),把 Icon 的路徑改為你 XMind.png 的路徑就行了。再看 Exec 屬性,當(dāng)我們在桌面上點(diǎn)擊 XMind 的圖標(biāo)的時候,就會執(zhí)行 Exec 對應(yīng)的命令或腳本, 我們把 Exec 改為 start.sh 文件的路徑就行了,別掉了 sh 命令,因為 start.sh 是腳本, 需要 sh 命令啟動。
以上步驟完成,保存 desktop 文件后,你就可以在桌面上看到 XMind 應(yīng)用了。
Fcitx 候選框的定位問題
這個問題貼一張我處境的截圖就明白了:
可以看到我的光標(biāo)定位在第 207 行,但是我輸入法的候選框停留在 IDEA 的左下角。為什么我要說停留在 IDEA 的左下角?因為就目前我的使用而言,這個問題只在 IDEA 下存在, 不僅是 Debian,Ubuntu 也存在這種問題,我個人認(rèn)為這應(yīng)該是 IDEA 的問題, 查到的相關(guān)文章大部分都是說 Swing 的問題,看來這個問題還真是比較困難了。如果有同學(xué)知道解決辦法,還請不吝分享,非常感謝。
參考資料
完全用 Linux 工作:?https://www.douban.com/group/topic/12121637/
[2]知乎 - 漢卿:?https://www.zhihu.com/question/309704636
[3]目錄:?https://github.com/guang19/framework-learning/tree/dev/img/linux
end
喜歡本文的朋友,歡迎關(guān)注公眾號?程序員小灰,收看更多精彩內(nèi)容
點(diǎn)個[在看],是對小灰最大的支持!
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!