寫給工程師的 Ubuntu 20.04 最佳配置指南

最近 Ubuntu 發佈了 20.04 LTS 版本,我也在第一時間安裝體驗。因爲各類 Linux 發行版本並不像 MacOS、Windows 同樣開箱即用,所以須要作不少配置。每次配置都須要查閱各類資料,雖然網絡上有不少配置文章,但基本上都會存在一些問題:php

  1. 只教怎麼作,不說爲何;
  2. 文檔陳舊,不更新;
  3. 內容缺失,不豐富;......

所以我但願整理一份最佳配置指南,除了記錄須要作什麼,還會說明背後的原理和技術背景。一方面方便本身從此查閱,另外一方面也想將這份指南分享給你們,並和你們一塊兒逐步完善它。因此,這是一份會持續更新的、有實操有原理、內容豐富的最佳配置指南。python

關注公衆號 BaronTalk,回覆 Ubuntu 便可下載最新的 PDF 版本配置文檔。linux

一. 系統配置

1. 關閉 sudo 密碼

爲了不每次使用 sudo 命令時都輸入密碼,咱們能夠將密碼關閉。操做方法:git

第一步:終端輸入命令sudo visudo,打開 visudo;github

第二步:找到 %sudo ALL=(ALL:ALL) ALL 這一行修改成%sudo ALL=(ALL:ALL) NOPASSWD:ALLchrome

2. 修改軟件源

Ubuntu 默認的軟件源是境外的,速度上會有些問題,咱們能夠在「Software & Updates」(軟件和更新)中選擇國內的鏡像。shell

3. 更新系統

# 更新本地報數據庫
sudo apt update

# 更新全部已安裝的包(也可使用 full-upgrade)
sudo apt upgrade

# 自動移除不須要的包
sudo apt autoremove
複製代碼

這裏補充幾個經常使用的清理命令:數據庫

命令 描述
apt autoclean 將已刪除軟件包的.deb安裝文件從硬盤中刪除
apt clean 同上,但會把已安裝的軟件包的安裝包也刪除掉
apt autoremove 刪除爲了知足其餘軟件包的依賴而安裝,但如今再也不須要的軟件包
apt remove [軟件包名] 刪除已安裝的軟件包(保留配置文件)
apt --purge remove [軟件包名] 刪除已安裝包(不保留配置文件)

4. 高分屏適配

默認狀況高分屏下 UI 元素顯得太小,所以須要調整界面的縮放比例。Ubuntu20.04 默認是 GNOME 桌面,GNOME 能夠在 **Settings>Displays(設置>顯示)**中開啓 HiDPI 支持,以整數倍來調整屏幕比例。也能夠經過以下命令的來設置:ubuntu

# scaling-factor 僅能設置爲整數 1=100%,2=200% 3=300% ......
gsettings set org.gnome.desktop.interface scaling-factor 2
複製代碼

整數倍的縮放設置,在部分設備上 UI 元素要麼顯得過大,要麼顯得太小,所以咱們須要進一步調整。vim

使用下面的命令查看你 Linux 設備上的 Window System(圖形接口協議),一般是 Wayland/X11

echo $XDG_SESSION_TYPE
複製代碼

Wayland

若是是 wayland,使用下面的命令啓動實驗性的非整數倍縮放功能。

gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
複製代碼

以後再次打開 Settings>Displays,就能夠選擇非整數倍縮放(125%、150%、175%)。Ubuntu20.04 已經在 Settings>Displays 中提供了圖形化的界面來開啓實驗性的非整數倍的縮放功能,所以無需經過上面的命令來開啓。

我試驗下來,這種方式沒法在個人設備上正常設置非整數倍縮放。我判斷是由於 Ubuntu20.04 默認的 Window System 是 X11 而不是 Wayland,若是你的設備上是 Wayland,應該是能夠正常設置的。或者你在登錄桌面系統時選擇 Ubuntu On Wayland 理論上也是能夠的。

X11

對於 X11,咱們能夠同時使用 scaling-factor 和 xrandr 來實現非整數倍縮放,這可使 TTF 字體被正確縮放,防止單獨使用 xrandr 時出現的模糊現象。你可使用 gsettings 或者在 Settings>Displays 中來指定放大係數,並用 xrandr 指定縮小系數。

首先將界面縮放係數設置爲「UI看起來太大」的最小系數,一般是 2(200%),若是不夠大就繼續嘗試 3 甚至更大的係數。而後使用 xrandr 來設置縮小系數,我本身設置的是 1.25,若是 UI 看起來太大就提升係數,反之就下降係數。命令以下:

xrandr --output DP-4 --scale 1.25x1.25
複製代碼

使用上述命令你可能會遇到 warning: output DP-4 not founnd; gnoring的提示,或者執行命令後界面無任何變化。此時你須要執行 xrandr 命令來查看你的 output 參數(也就是當前顯示接口的名稱,日誌中顯示 connected 的就是),好比我設備上的是 DP-4。

正確執行完命令後可能會出現 UI 元素太小的狀況,回去 Settings>Displays 中看看,是否是整數倍縮放被還原成了 100%,若是是從新選擇合適的縮放比例便可(好比 200%)。

重啓後 xrandr 的設置會失效,咱們能夠設置個啓動自動執行的腳本,好比 start-service.sh :

# start-service.sh
#!/bin/bash
xrandr --output DP-4 --scale 1.25x1.25
exit 0
複製代碼

接着給 start-service.sh 授予執行權限

sudo chmod +x start-service.sh
複製代碼

而後在 Ubuntu 中搜索「sartup Applications」(啓動應用程序) ,將腳本添加進去:

至此就能完美的支持 4K 屏顯示了。

5. 安裝 Python2

Ubuntu20.04 自帶了 python3,可是某些第三方工具或者腳本仍是用的 python2,所以咱們須要自行安裝

apt install python
複製代碼

6. 安裝 Git

apt install git
複製代碼

7. 中文輸入法

因爲搜狗輸入法目前還不支持Ubuntu20.04,加之其對高分屏支持不太友好,所以再也不折騰選擇了 ibus-libpinyin。

# 安裝
sudo apt install ibus-libpinyin 
sudo apt install ibus-clutter
複製代碼

接着在應用程序中找到「Language Support」(語言支持),更改「Keyboard input method system」(鍵盤輸入法系統)爲「IBUS」。重啓系統,而後在**Settings>Region & Language>Input Sources(設置>區域與語言>輸入源)**中新增「Chinese(Intelligent Pinyin)」(中文(智能拼音))就可使用中文輸入法了。

二. 打造你的命令行工具(Terminator && ZSH)

1. 安裝 Terminnator

若是你用慣了 Mac 平臺下的 iTerm2,必定會對它的分屏功能戀戀不忘,然而 Ubuntu 自帶的 Terminal 並很差用。好在 Linux 下有各類開源 Terminal,我的比較推薦 Terminator,強大如 iTerm2,同樣支持分屏。

# 安裝
sudo add-apt-repository ppa:gnome-terminator
sudo apt update
sudo apt install terminator
複製代碼

Terminator 默認的界面比較醜,不過配置靈活,你們能夠根據喜愛自行調整。

2. 配置 Shell(安裝 zsh 和 oh-my-zsh)

搞定了 Terminal,接下來配置 Shell。執行下面的命令:

cat /etc/shells
複製代碼

能夠看到 Ubuntu 已經內置了各類 Shell:

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
複製代碼

市面上經常使用的 Linux 發行版本一般默認使用的 Shell 都是 bash,但 zsh 要遠比 bash 強大的多。

# 安裝 zsh
apt install zsh

# 將 zsh 設置爲系統默認 shell
sudo chsh -s /bin/zsh
複製代碼

不過 zsh 的配置太複雜,好在有人開發了 oh-my-zsh,可讓咱們更方便的配置 zsh。

# 自動安裝,若是你沒安裝 git 須要先安裝 git
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

# 或者也能夠選擇手動安裝
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
複製代碼

重啓 Terminal 你就能發現變化。

3. ZSH 配置

zsh 的配置主要集中在 ~/.zshrc 文件裏,好比咱們能夠給經常使用命令配置別名:

alias cls='clear'
alias ll='ls -l'
alias la='ls -a'
alias vi='vim'
alias grep="grep --color=auto"
複製代碼

或者選擇 zsh 的主題

ZSH_THEME="robbyrussell"
複製代碼

oh-my-zsh 內置了不少主題,對應的主題文件存放在 ~/.oh-my-zsh/themes 目錄下,你能夠根據本身的喜愛選擇或者編輯主題。

4. ZSH 插件安裝

oh-my-zsh 還支持各類插件,存放在 ~/.oh-my-zsh/plugins 目錄下。這裏推薦幾款:

autojump:快速切換目錄插件

# 安裝
apt install autojump

# 使用
j Document/
複製代碼

zsh-autosuggestions:命令行命令鍵入時的歷史命令建議插件

# 安裝
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
複製代碼

zsh-syntax-highlighting:命令行語法高亮插件

# 安裝
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
複製代碼

插件安裝好後須要在 ~/.zshrc 文件裏配置後方可以使用,配置以下:

# 打開 ~/.zshrc 文件,找到以下這行配置代碼,在後面追加插件名
plugins=(其餘插件名 autojump zsh-autosuggestions zsh-syntax-highlighting)
複製代碼

5. 有趣的命令行小玩具

配置好Terminator 和 ZSH 後,咱們還能夠爲命令行添加些有趣的小玩具。

CMatrix(github.com/abishekvash…)

終端黑客帝國屏保

# 安裝
sudo apt install cmatrix

# 運行(加上 -lba 參數看起來更像電影,加上 -ol 參數起來更像 Win/Mac 的屏保)
cmatrix
複製代碼

效果圖:

Steam Locomotive(github.com/mtoyoda/sl)

終端小火車動效

# 安裝
sudo apt install sl

# 運行
sl
複製代碼

效果圖:

Screenfetch(github.com/KittyKatt/s…)

The Bash Screenshot Information Tool,用於在終端顯示系統信息及 ASCII 化的 Linux 發行版圖標

# 安裝
sudo apt install screenfetch

# 運行
screenfetch
複製代碼

效果圖:

三. 軟件安裝

1. 安裝Clash(搭個tizi,你懂的)

第一步:到 github.com/Dreamacro/c… 下載最新的 Linux 版 Clash,例如:clash-linux-amd64-v0.19.0.gz。解壓後獲得一個可執行文件 clash-linux-amd64-v0.19.0:

tar -zxvf clash-linux-amd64-v0.19.0.gz
複製代碼

第二步:使用 mv 命令移動到 /usr/local/bin/clash:

sudo mv clash-linux-amd64-v0.19.0 /usr/local/bin/clash
複製代碼

第三步:終端輸入 sudo chmod +x /usr/local/bin/clash 添加執行權限;

sudo chmod +x /usr/local/bin/clash
複製代碼

第四步:終端執行 clash 命令,運行 clash;

# 運行 clash
clash
複製代碼

此時會在 /home/{用戶ID}/.config/clash 目錄下生成兩個文件:config.yaml 和 Country.mmdb;編輯 config.yaml 文件,配置代理服務器信息和規則,部分商家會提供yaml文件,下載後 copy 過來便可;

重啓 clash(關閉並從新打開終端,執行 clash 命令)以加載更新後的配置文件;

保持 clash 運行,打開瀏覽器訪問 clash.razord.top 進行策略配置、選擇代理線路等等(可能須要根據提示輸入IP、端口和口令,具體內容可在 config.yaml 中查看;

繼續保持 clash 運行,在系統網絡設置中設置手動代理 Settings>Network>Network Proxy>Manual(設置>網絡>代理>手動),配置信息參考 config.yaml 或者啓動 clash 時終端輸出的日誌。此時就能夠經過 clash 訪問網絡了。

按照前面的方式配置好後,每次系統啓動時都須要打開終端,執行 clash 命令,而且終端不能夠關閉,不然整個 clash 進程就結束了。若是不想一直保持終端打開,可以使用 nohup clash 命令啓動後臺運行。或者但願開機自啓動 clash,可將 nohup clash 這段命令加入到前面提到的 start-service.sh 腳本的最後

2. 安裝Typroa(開源MarkDown編輯器)

# or run:
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -

# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt update

# install typora
sudo apt install typora
複製代碼

3. JetBrains 全家桶

安裝 JetBrains 的 ToolBox App 後能夠無腦一鍵安裝旗下各類 IDE,包括 Android Studio。

4. 其它應用程序安裝

對於官網已經提供了 Ubuntu 版本 .deb 安裝文件的,可在官網下載 .deb 安裝文件後,執行下面的命令安裝:

# 安裝
sudo apt install ./<file>.deb
複製代碼

若是你是較早的 Linux 發行版本,須要使用下面的命令安裝(下同):

sudo dpkg -i <file>.deb
sudo apt-get install -f # Install dependencies
複製代碼
應用 下載地址
Chrome www.google.com/chrome
VS Code code.visualstudio.com
ZOOM zoom.us/download#cl…
WPS www.wps.cn/product/wps…
網易雲音樂 music.163.com/#/download
百度網盤 百度網盤...? 這垃圾玩意兒你裝它幹啥!!!
... ...

注:部分應用程序並不受 Scale 縮放係數的控制,所以即便在 **Settings>Displays(設置>顯示)**中將 Scale 設置爲了 200% 後,UI 元素在高分屏下依舊顯示太小。好比:ZOOM、網易雲音樂等,爲了解決這一問題可以使用下面的命令來啓動,便可正常顯示。

# 啓動zoom,縮放倍數可根據須要自行調整
QT_SCALE_FACTOR=2 zoom

# 啓動網易雲音樂
QT_SCALE_FACTOR=2 netease-cloud-music
複製代碼

5. 使用 Deepin-Wine 安裝 QQ/TIM/微信/Office/...

對於官網未提供了 Ubuntu 版本 .deb 安裝文件,但 deepin 中有的應用程序,可使用 Deepin-Wine 來安裝。

wine 是一種在 Linux 平臺實現了部分 Windows 系統 API 的技術,可讓用戶在 Linux 平臺無縫使用 Windows 平臺的應用程序。

deepin-wine 是國內的深度社區在 deepin linux 上通過改造的 wine 程序,而且社區在 deepin-wine 之上移植了不少的 Windows 軟件,好比微信、QQ、TIM等。

github 上有人開發了一個項目 deepin-wine-ubuntu,將 deepin-wine 及其之上適配好的各類 deb 軟件包遷移到了 Ubuntu 上。要安裝微信、QQ等軟件,咱們須要先安裝 deep-wine-ubuntu。方法以下:

# 首先 clone deepin-wine-ubuntu 源碼到本地
git clone git@github.com:wszqkzqk/deepin-wine-ubuntu.git

# 切換到源碼目錄
cd deepin-wine-ubuntu

# 安裝腳本受權
sudo chmod +x install_2.8.22.sh

# 安裝 deep-wine-ubuntu
./install_2.8.22.sh  
複製代碼

deep-wine-ubuntu 安裝完成以後,咱們就能夠下載深度社區提供的各類 deb 軟件,具體安裝方同第 4 小節的安裝方式:

# 安裝
sudo apt install ./<file>.deb
複製代碼

深度社區提供的各類 deb 軟件下載地址:

軟件 下載地址
QQ mirrors.aliyun.com/deepin/pool…
TIM mirrors.aliyun.com/deepin/pool…
微信 mirrors.aliyun.com/deepin/pool…
... ...

更多安裝方法及軟件地址能夠參考 github.com/wszqkzqk/de…

若是你的系統語言非中文,經過 deepin-wine 啓動的軟件中文會出現亂碼。你須要將 /opt/deepinwine/tools/run.sh 文件中 WINE_CMD 這一行修改成:

WINE_CMD="LC_ALL=zh_CN.UTF-8 deepin-wine"

6. 安裝 rmp 格式的軟件

不少軟件只提供了 rmp 格式的安裝包,並未提供 deb 格式的安裝包,好比:xmind。所以咱們須要將其轉爲 deb 安裝包在再進行安裝。這裏咱們拿 xmind 來舉例,看看如何操做。

好比咱們下載了 xmind 安裝包 XMind-2020.rpm:

# 添加 Universe 倉庫(若是未添加)
sudo add-apt-repository universe

# 更新
sudo apt update

# 安裝 Alien
sudo apt install alien

# 將.rpm 包轉換爲.deb 包(當前目錄下會生成一個 deb 安裝包,好比:XMind-2020.deb)
sudo alien XMind-2020.rpm

# 安裝
sudo dpkg -i XMind-2020.deb
複製代碼

四. 桌面美化

1. 安裝 tweek

sudo apt install gnome-tweak-tool
複製代碼

2. 安裝插件擴展支持

# 讓 gnome 支持插件擴展
sudo apt install gnome-shell-extensions 

# chrome 瀏覽器擴展支持,可使用瀏覽器安裝插件
sudo apt install chrome-gnome-shell
複製代碼

3. 經常使用插件清單

插件名 說明
Dash to Dock 自定義 dock
Screenshot Tool 截圖插件
Clipboard Indicator 擴展粘貼板,能夠看到歷史粘貼內容
Coverflow Alt-Tab 修改 Alt-Tab 應用切換效果
Applications Menu 在頂部狀態欄添加應用程序入口
OpenWeather 頂部狀態欄顯示天氣數據
Places Status Indicator 頂部狀態欄增長文件目錄訪問入口
Status Title Bar 在頂部狀態欄中顯示當前窗口的標題
GTK Title Bar 移除非 gtk 應用程序的標題欄
Hide Top Bar 自動隱藏狀態欄
Transparent Top Bar 透明狀態欄
... ...

更多擴展插件你們自行在extensions.gnome.org上探索吧。

4. 主題

可在 GNOME-LOOK 上下載各類桌面主題、Shell 主題、圖標(icon)主題

安裝桌面或者 shell 主題

# 解壓下載的主題文件
tar -xvf FileName.tar //解壓

# 將解壓後的主題文件拷貝到 /usr/share/themes
sudo cp -r FileName /usr/share/themes
複製代碼

安裝 icon 主題

# 解壓下載的主題文件
tar -xvf FileName.tar //解壓

# 將解壓後的主題文件拷貝到 /usr/share/icons
sudo cp -r FileName /usr/share/icons
複製代碼

以後打開 Tweeks 選擇安裝的主題便可

5. 壁紙

推薦幾個下載 4K 8K 超高清壁紙的網站:

pixabay.com

unsplash.com

wallpapersite.com

wallpapershome.com

最後貼一張美化後的桌面(Applications Theme: SURU++; Icons Theme: Reversal)

個人桌面

五. 使用問題記錄

問題一:Windows、Ubuntu 雙系統時間不統一

若是你是雙系統,安裝完 Ubuntu 設置好系統時間後,回到 Windows 會發現時間不統一。爲了理解爲何,咱們得先了解點基礎知識:

  • UTC(Coordinated Universal Time),協調世界時(世界統一時間);

  • GMT(Greenwich Mean Time),格林威治標準時間。

Windows 與類 Unix 系統(Unix/Linux/Mac)看待系統硬件時間的方式是不同的:

  • Windows 把計算機硬件時間看成本地時間(local time),因此在 Windows 系統中顯示的時間跟 BIOS 中顯示的時間是同樣的。

  • 類 Unix 系統把計算機硬件時間看成 UTC, 因此係統啓動後會在該時間的基礎上,加上電腦設置的時區數(比中國就加8),所以 Ubuntu 中顯示的時間老是比 Windows 中顯示的時間快 8 小時。

當你在 Ubuntu 中把系統顯示的時間設置正確後,計算機硬件時間就變成了在這個時間上減去 8 小時,因此當你切換成 Windows 系統後慢了8小時,就是這個緣由。

解決方案:在 Ubuntu 中把計算機硬件的時間改爲系統顯示時間,即禁用 Ubuntu 中的 UTC

timedatectl set-local-rtc 1 --adjust-system-clock
複製代碼

問題二:Ubuntu 循環登錄

這個問題是我在 Ubuntu19.10 版本遇到的,20.04 版本中我沒作驗證,不肯定是否有一樣的問題。

在解決問題以前,先補充一個關鍵知識點:顯示管理器(Display Manager),它用來提供圖形化登錄,向用戶顯示圖形化登錄界面,並處理用戶身份驗證。Linux 中常見的顯示管理器包括 gdm三、kdm、LightDM等:

  • gdm3: gdm3 是 gdm 的繼承者,它是 GNOME 的顯示管理器;
  • kdm: kdm 是 KDE 的顯示管理器;
  • LightDM: LightDM 是一個輕量級的顯示管理器,他是顯示管理器的規範解決方案。

緣由:

實操驗證,初步判定是由於設置中開啓了自動登錄,觸發了 dgm3 的某種 bug 致使的。(Ubuntu19.10 默認使用的是 GNOME 桌面系統, 而 gdm3 是 GNOME 的顯示管理器)

解決方案:使用 LightDM 替換 gdm3

第一步:安裝 LightDM(因爲你如今沒法進入圖形化桌面,所以須要你在登錄頁面使用 ctl + alt + F2 快捷鍵進入命令行模式,輸入帳號密碼登錄,而後使用下面的命令安裝)

sudo apt-get install lightdm
複製代碼

安裝完成後,系統會自動彈框要求你選擇當前系統中已安裝的顯示管理器,選擇 lightdm。

第二步:重啓

sudo reboot
複製代碼

重啓完就能正常登錄了。

這時候你會發現登錄界面變了,若是你想切回以前的登錄界面,在進入系統後把自動登錄關閉,而後實現下面的命令從新選擇 gdm3 顯示管理器便可(需重啓生效)

sudo dpkg-reconfigure gdm3
複製代碼

並非把自動登錄關閉後 gdm3 的 bug 就必定能規避掉,這一點可能只適用於我安裝的 Ubuntu19.10;我這裏說的緣由也不必定適用全部人。但有一點能夠確定的是,若是出現循環登錄的狀況,更換顯示管理器一般是能解決問題的。

若是你想查看當前系統正在運行的顯示管理器,可使用下面的命令:

cat /etc/X11/default-display-manager
複製代碼

問題三:NVIDIA 驅動修復

Ubuntu 20.04 自帶了 nvidia 顯卡驅動,可是被我不當心玩壞了。主要表如今:

  1. 前面提到的 xrandr 命令失效,沒法實現小數倍縮放;
  2. NVIDIA X Server Settings 客戶端打開空白;
  3. 命令行執行 nvidia-settings 命令出錯;
  4. **Settings>Displays(設置>顯示)**中沒法設置多種分辨率等等。

若是你也和我遇到一樣的問題,或者但願手動安裝顯卡驅動,能夠按照下面的方式操做。(須要首先到 NVIDIA 官網下載你設備對應的顯卡驅動)

# 先安裝一些依賴庫
sudo apt install build-essential libglvnd-dev pkg-config

# 中止桌面管理器,進入命令行摸索
sudo telinit 3

# 刪除已安裝的 nvidia 驅動
sudo apt purge "nvidia*"

# 手動安裝顯卡驅動
sudo bash NVIDIA-Linux-x86_64-440.82.run 

# 重啓
sudo reboot
複製代碼

更多顯卡驅動方式可參考:linuxconfig.org/how-to-inst…


參考文檔:

本文檔會持續更新,關注公衆號 BaronTalk,回覆 Ubuntu 便可下載最新的 PDF 版本配置文檔。

若是你喜歡個人文章,就關注下個人公衆號 BaronTalk知乎專欄 或者在 GitHub 上添個 Star 吧!

相關文章
相關標籤/搜索