系統(tǒng)選擇
目前市面上主流的桌面操作系統(tǒng)在大多數(shù)人眼里只有Windows和MacOS,那為什么我沒(méi)選擇它們兩呢?
首先,不選MacOS的原因,就是太貴。當(dāng)然這是我的原因不是蘋果的原因,我最早使用Linux寫代碼的時(shí)候是2018年,那時(shí)候剛畢業(yè)上班不久,根本買不起Mac(雖然現(xiàn)在也覺(jué)得有點(diǎn)貴)。
在沒(méi)有接觸Linux之前,我也是使用Winows的。眾所周知,其實(shí)Windows也是收費(fèi)的,那時(shí)候用的基本是破解版本的Windows系統(tǒng)。雖然當(dāng)時(shí)買筆記本電腦會(huì)預(yù)裝Windows系統(tǒng),但是預(yù)裝的基本都是家庭版。依稀記得當(dāng)時(shí)Windows家庭版無(wú)法開啟某些Windows功能(沒(méi)記錯(cuò)的話當(dāng)時(shí)是無(wú)法開啟Windows的虛擬化功能),所以就算我買了預(yù)裝Windows系統(tǒng)的筆記本電腦,依然還是需要自行重裝Windows專業(yè)版系統(tǒng),那時(shí)候就是使用激活軟件破解Windows專業(yè)版。但是作為程序員,我個(gè)人是很反感破解軟件的,因?yàn)槲也幌胍院笪覍懙能浖脖粍e人破解。然后在某些機(jī)緣巧合之下,我加入了一些Linux愛(ài)好者社區(qū),慢慢開始接觸Linux桌面。
重新認(rèn)識(shí)Linux
我第一次接觸Linux是大學(xué)的課程,那時(shí)候教學(xué)用的是Centos。那時(shí)候在我印象中Linux就是黑乎乎的命令行窗口,只能部署一些服務(wù)端的的程序,畢業(yè)以后從事Java后端開發(fā),接觸的Linux也是服務(wù)端版本,所以我根本不知道Linux還有桌面環(huán)境!
直到一次偶然的機(jī)會(huì),在B站刷到一位大佬自己整活的Linux桌面,相當(dāng)個(gè)性化,讓我深受震撼。然后就開始根據(jù)視頻信息去搜索Linux桌面相關(guān)的知識(shí),也因此加入了一些Linux社區(qū),從此開始我的Linux桌面探險(xiǎn)之旅。
Linux桌面
在開始介紹我的Linux探險(xiǎn)之旅前,先簡(jiǎn)單說(shuō)一下Linux的組成,Linux的組成部分可以分為以下三個(gè)主要部分:
「Linux內(nèi)核(Kernel)」: Linux內(nèi)核是操作系統(tǒng)的核心,負(fù)責(zé)管理硬件資源,提供系統(tǒng)服務(wù),以及允許軟件應(yīng)用進(jìn)行控制硬件的基礎(chǔ)。它是一個(gè)由Linus Torvalds在1991年首次發(fā)布的開源軟件項(xiàng)目,至今仍在不斷的發(fā)展和更新中。GitHub - torvalds/linux: Linux kernel source tree。 「Linux發(fā)行版(Distributions)」: Linux發(fā)行版是基于Linux內(nèi)核的操作系統(tǒng),包括了內(nèi)核以及一套完整的軟件和應(yīng)用程序,如GNU工具集、桌面環(huán)境、辦公軟件等。每個(gè)發(fā)行版都可能有不同的包管理系統(tǒng)、默認(rèn)桌面環(huán)境、預(yù)裝軟件、用戶界面以及獨(dú)特的安裝和配置工具。常見(jiàn)的Linux發(fā)行版包括Ubuntu、Fedora、Debian、CentOS、Arch Linux、Red Hat Enterprise Linux等。 「桌面環(huán)境(Desktop Environment, DE)」: 桌面環(huán)境是提供圖形用戶界面(GUI)的軟件集合,使得用戶可以通過(guò)圖形窗口和菜單進(jìn)行交互,而不是僅通過(guò)命令行。桌面環(huán)境通常包括窗口管理器、圖標(biāo)、工具欄、文件管理器、終端模擬器等組件。常見(jiàn)的桌面環(huán)境有GNOME、KDE Plasma、XFCE等。
Linux內(nèi)核和發(fā)行版以及桌面環(huán)境的組合提供了所需的完整Linux桌面系統(tǒng)。用戶可以根據(jù)自己的需要選擇合適的發(fā)行版和桌面環(huán)境,以滿足個(gè)人偏好和特定用途。
這里再順便提一下GNU和Linux的關(guān)系,可能大家經(jīng)常會(huì)看到”GNU/Linux“這樣的詞匯。
GNU和Linux是兩個(gè)密切相關(guān)但各自獨(dú)立的概念,它們共同構(gòu)成了現(xiàn)代Linux操作系統(tǒng)的基礎(chǔ):
「GNU」: GNU是一個(gè)自由軟件操作系統(tǒng)項(xiàng)目,由Richard Stallman在1983年啟動(dòng),目的是創(chuàng)建一個(gè)完全由自由軟件組成的操作系統(tǒng)。"GNU"是"GNU's Not Unix"的遞歸縮寫,表明GNU雖然類似于Unix,但不包含任何Unix代碼。GNU項(xiàng)目創(chuàng)建了許多用于操作系統(tǒng)的核心組件,如GNU Compiler Collection (GCC)、GNU C Library (glibc)和GNU Core Utilities (coreutils)。GNU項(xiàng)目也提倡自由軟件哲學(xué),推動(dòng)了GNU通用公共許可證(GPL)的編制和普及。
今天談?wù)摰腖inux操作系統(tǒng),通常指的是"GNU/Linux"系統(tǒng),它是指使用Linux內(nèi)核和GNU軟件及工具的操作系統(tǒng)。Linux提供了操作系統(tǒng)的核心,即內(nèi)核,而GNU提供了構(gòu)建完整操作系統(tǒng)所需的許多基本工具和庫(kù)。
但是大多數(shù)情況下,通常將整個(gè)操作系統(tǒng)簡(jiǎn)稱為"Linux",但嚴(yán)格來(lái)講,當(dāng)包括了大量GNU軟件的時(shí)候,它應(yīng)該被稱為"GNU/Linux"。
那些年我折騰過(guò)的Linux桌面
上面給大家說(shuō)了,在安裝Linux的時(shí)候我們需要考慮三個(gè)部分,Linux內(nèi)核、發(fā)行版、桌面環(huán)境(DE)。但是發(fā)行版其實(shí)就是Linux內(nèi)核+工具集,所以發(fā)行版是依賴Linux內(nèi)核才能運(yùn)行的。因此大多數(shù)時(shí)候你選擇了一個(gè)發(fā)行版里面就包含了內(nèi)核,就不需要再選擇Linux內(nèi)核了(安裝完成后可以更換內(nèi)核)。
而我第一款Linux桌面系統(tǒng)是Ubuntu+GNOME(DE 桌面環(huán)境)的組合。至于為什么是Ubuntu+GNOME,因?yàn)樵谀菚r(shí)候我只接觸過(guò)Centos和Ubuntu。而我去網(wǎng)上搜索Centos和Ubuntu的桌面版本時(shí),大多數(shù)網(wǎng)站都是建議Ubuntu桌面,事實(shí)上也是如此。而Ubuntu桌面版默認(rèn)的桌面環(huán)境(DE)就是GNOME。
這么多年過(guò)去了,我陸續(xù)使用過(guò)很多Linux發(fā)行版和DE的不同組合。發(fā)行版使用過(guò)Manjaro、大蜥蜴、Debian、Deepin(非UOS)、Arch、CutfishOS等,桌面環(huán)境使用過(guò)GNOME、KDE、XFCE、DDE(國(guó)產(chǎn)Deepin DE)、I3等。目前(2024-03-11)使用的是Arch+KDE,在寫這篇文章的時(shí)候剛好KDE6發(fā)布了,這幾天也折騰了一下KDE6,給大家看看效果:
使用Linux遇到的問(wèn)題?
上面講了我是如何選擇Linux桌面的,接下來(lái)講講大家可能最關(guān)心的問(wèn)題,那就是Linux桌面能不能像Windows和MacOS那樣正常辦公或者開發(fā)?
Linux桌面相比Windows和MacOS目前最大的問(wèn)題就是生態(tài),我記得我剛開始使用Linux桌面的時(shí)候國(guó)內(nèi)很多軟件都沒(méi)有Linux版本,大多數(shù)情況下都是使用Wine等技術(shù)來(lái)兼容使用Windows版本。目前情況改善了很多,目前主流的國(guó)產(chǎn)辦公軟件都有Linux版本了,比如我們常用的釘釘、飛書、騰訊會(huì)議等。QQ、微信也都出了Linux原生版本。
這里不得不吐槽一下騰訊了,QQ是2023年開始推出全平臺(tái)重構(gòu)版本的,在這之前的QQ Linux版本幾乎就不可用;而微信截至目前(2024-3-11)還只有一個(gè)原生Linux測(cè)試版本,而且還有白名單限制僅限UOS和麒麟系的Linux發(fā)行版使用。反觀人家WPS,Linux版本的WPS一直都沒(méi)有廣告,雖然前不久WPS也官宣Windows版本去掉廣告了,而且WPS Linux版本一直活躍更新,功能也不比Windows版本少。
而開發(fā)相關(guān)的軟件,作為Java后端常用的Idea、DataGrip、Navicat等都有Linux版本,其他的開發(fā)工具大多數(shù)也都有Linux版本,比如VsCode。這里不得不說(shuō)國(guó)外的軟件在全平臺(tái)支持上確實(shí)要比國(guó)內(nèi)軟件好太多了。
這里給大家列一下我常用的一些軟件:
功能 | 軟件名稱 | 官方地址 |
---|---|---|
截圖 | Flameshot | https://flameshot.org/ |
郵件 | Mailspring | https://www.getmailspring.com/ |
文件管理 | Spacedrive | https://github.com/spacedriveapp/spacedrive |
文檔處理 | Wps | https://www.wps.com/office/linux/ |
看圖 | Gthumb | https://github.com/GNOME/gthumb |
SSH | Xterminal | https://xterminal.cn/ |
視頻剪輯 | Kdenlive | https://kdenlive.org/zh/ |
字幕 | Arctime | https://arctime.org/ |
Java IDE | IntelliJ IDEA | https://www.jetbrains.com/idea/ |
DataBase IDE | DataGrip | https://www.jetbrains.com/datagrip/ |
Vpn | V2raya | https://v2raya.org/ |
輸入法 | Rime + Fcitx5 | https://rime.im/ |
文本編輯 | Neovim | https://neovim.io/ |
系統(tǒng)備份 | Timeshift | https://github.com/linuxmint/timeshift |
接口測(cè)試 | Insomnia | https://insomnia.rest/ |
Redis客戶端 | Redisinsight | https://github.com/RedisInsight/RedisInsight |
終端 | Warp | https://www.warp.dev/ |
Linux桌面的優(yōu)缺點(diǎn)
在這里總結(jié)一下我認(rèn)為的Linux桌面的優(yōu)點(diǎn)和缺點(diǎn)。
優(yōu)點(diǎn): 開源免費(fèi),無(wú)論是Windows還是MacOS都是收費(fèi)的,而Linux是開源免費(fèi)的,開源項(xiàng)目總比閉源項(xiàng)目在安全性上更可靠。 發(fā)行版眾多,Linux有很多發(fā)行版,可以根據(jù)自己的喜好選擇不同的發(fā)行版,不會(huì)像Windows和MacOS那樣被一家公司或者組織束縛。 自由度高,Linux上面你可以隨便折騰,一個(gè)發(fā)行版可以換不同的桌面環(huán)境,不會(huì)像Windows和MacOS那樣只有一個(gè)桌面環(huán)境,而且桌面環(huán)境可以高度個(gè)性化。 穩(wěn)定性好,Linux的穩(wěn)定性比Widnows要好很多,這也是服務(wù)器操作系統(tǒng)大多數(shù)都是Linux的原因之一。 技術(shù)支持好,這個(gè)跟發(fā)行版有很大的關(guān)系,比如我正在使用的Arch Linux,有非常完善的Wiki系統(tǒng),而且有非?;钴S的社區(qū)。當(dāng)你在使用中出現(xiàn)問(wèn)題,絕大多數(shù)情況下你都可以在Arch wiki上找到解決方案,極少數(shù)找不到解決方案的問(wèn)題你也可以在Arch社區(qū)發(fā)帖提問(wèn),會(huì)有很多熱心的大佬給你提供建議和幫助。這點(diǎn)我想如果你不是Widnows企業(yè)用戶的話估計(jì)很難得到技術(shù)支持。
缺點(diǎn): 軟件生態(tài)差,目前Linux相比Windows和MacOS最大的問(wèn)題就是軟件應(yīng)用生態(tài)不足了,但是如果只是普通辦公和開發(fā)也完全足夠了。 對(duì)新手不友好,雖然Linux桌面環(huán)境已經(jīng)在努力改善了,但是依然會(huì)出現(xiàn)很多和開發(fā)相關(guān)的名詞和知識(shí),對(duì)于非計(jì)算機(jī)行業(yè)的朋友可能不太友好。 游戲支持差,對(duì)于喜歡玩游戲的朋友來(lái)說(shuō),Linux就不適合了,雖然Steam也有Linux版,但是里面可玩的游戲很少。
上面的優(yōu)缺點(diǎn)我認(rèn)為是對(duì)所有人都適用的,我作為Java后端使用Linux開發(fā)還有其他的優(yōu)勢(shì):
容器化技術(shù)原生支持,比如Docker,就是使用Linux命名空間(namespaces)和資源隔離(CGroups)實(shí)現(xiàn)的。 Linux上寫的Java代碼直接部署在Linux服務(wù)器上能避免一些操作系統(tǒng)差異引起的bug,雖然Java號(hào)稱跨平臺(tái)的,但是還是可能會(huì)因?yàn)橐恍┎僮飨到y(tǒng)上的差異導(dǎo)致的bug。比如Tomcat默認(rèn)端口是80,如果你在Widnows上開發(fā)是能正常運(yùn)行的,但是你將寫好的程序打包到Linux上以非root用戶是無(wú)法運(yùn)行的,因?yàn)長(zhǎng)inux上1024以下的端口是普通用戶無(wú)法使用的。 能學(xué)習(xí)更多的Linux知識(shí),對(duì)于工作中需要使用Linux的人來(lái)說(shuō),這確實(shí)能提升技術(shù)能力。
以上就是我分享的為什么使用Linux做開發(fā)的經(jīng)驗(yàn),當(dāng)然也不是勸大家使用Linux桌面,這個(gè)根據(jù)個(gè)人情況自己決定,本文只是純經(jīng)驗(yàn)分享。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-838610.html
本文使用 markdown.com.cn 排版文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-838610.html
到了這里,關(guān)于我為什么使用Linux做開發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!