blog / gadflysu

希望與熱烈的風
Talk is Cheap

  1. 1. 开始
  2. 2. 网络配置
    1. 2.1. Shadowsocks
    2. 2.2. Privoxy
    3. 2.3. ProxyChains-NG
    4. 2.4. 软件源
  3. 3. 语言环境
  4. 4. 输入法
  5. 5. 自动挂载分区
  6. 6. 外观
  7. 7. 常用 GUI 应用
  8. 8. 常用 CLI 应用

上一次对主力操作系统的改动是从 Ubuntu 16.04 直接升级到 18.04,多年运行的系统至今已经累积了许多冗余文件,所以最近 Ubuntu 20.04 发布,我决定在新的硬盘分区从零开始安装配置。

之前意识到系统性能瓶颈也许不在内存而在硬盘读写,已经对残留的 Windows 所在硬盘进行了清理,腾出一定的空间就用来装新的 Ubuntu,了结我将系统硬盘从缓慢的 HDD 换到 SSD 的心愿。

这是一次系统迁移的实践。得益于 Ubuntu/Debian 的丰富生态,整个过程相当顺利,基本还原我之前的工作环境。

本文分享在常规安装并进入 Ubuntu Desktop 20.04 之后对工作环境的配置,包括但不限于安装常用软件、同步原有/建议配置等,力求美观与高效,前者令我这样审美偏执的人心情愉悦,后者可以加速我的日常工作。本文是系统初始配置的小抄 (cheat sheet),相当的篇幅是软件分享,没有技术含量。

开始

首次进入系统的向导窗口将引导我配置 Livepatch,Livepatch 用于减少因安全更新的系统重启,跟随进行即可,期间需要登录 Ubuntu 账号。

打开蓝牙设置,连接无线键盘。

系统预装的软件包从发布至今可能已经有包括安全修补在内的更新,执行:

1
2
3
sudo apt update
sudo apt upgrade
sudo apt autoremove

注意刚开机时 Software Updater 可能会占用 /var/lib/apt/lists/,更新无法进行,稍等即可。

安装必要 CLI 软件以便之后的操作:

1
sudo apt install vim curl htop

网络配置

网络配置是包括 Android 在内的几乎所有操作系统初次启动时的必需步骤,特别是在网路审查普遍的地区。这里不是指网络接口驱动之类的事情,这部分 Ubuntu 已经做到开箱即用;而是指因当地网络策略限制,为了连接国际互联网而不得不进行的网络连接配置。本文以 Shadowsocks 为例,对此仅作简述。

Shadowsocks

Shadowsocks 是著名的 SOCKS5 代理,这里使用 shadowsocks-libev。安装:

1
sudo apt install shadowsocks-libev

停止默认的 ss-server 服务并禁用开机自启:

1
sudo systemctl stop --now shadowsocks-libev.service

从网络服务提供者获取配置,写入 /etc/shadowsocks-libev/client.json,运行 ss-local 服务并启用开机自启:

1
sudo systemctl start --now shadowsocks-libev-local@client.service

Privoxy

有些应用程序仅支持 HTTP 代理,这里利用 Privoxy 将 SOCKS5 转为 HTTP。安装:

1
sudo apt install privoxy

编辑配置 /etc/privoxy/config,在第 5.2 节加入下行:

1
forward-socks5  /   127.0.0.1:1082 .

其中「1082」是我的 Shadowsocks 本地端口。重启服务:

1
sudo systemctl restart privoxy.service

至此 HTTP 代理运行在本地 8118 端口,详见配置第 4.1 节。

ProxyChains-NG

我没有配置系统全局代理,这里使用 ProxyChains-NG 在命令行程序运行时将网络连接重定向以通过 SOCKS5 代理。安装:

1
sudo apt install proxychains4

编辑配置 /etc/proxychains4.conf,加入下行:

1
socks5 127.0.0.1 1082

其中「1082」是我的 Shadowsocks 本地端口。

为方便使用,设置命令别名:

1
echo "alias pc='proxychains -q'" >> ~/.bash_aliases

或者手动在其他配置文件如 ~/.bashrc 中编辑。

以后若要通过代理执行命令,直接在前面加上 pc 即可,如查看自己 代理 IP:

1
pc curl ip.sb

软件源

打开 Software & Updates,修改软件源服务器到国内镜像或者代理服务器所在地。如果和我一样选择后者,接下来为 APT 设置代理,执行:

1
printf 'acquire {\n  http::proxy  "http://127.0.0.1:8118";\n  https::proxy "http://127.0.0.1:8118";\n}\n' | sudo tee /etc/apt/apt.conf.d/proxy

语言环境

由于我在安装系统时将时区设定为台湾,执行 locale 可以看到系统的一些语言配置被自动设定为 lzh_TW。最明显的表现是系统各处的日期和时间显示均为中文,为了修改为英文,执行:

1
sudo update-locale LC_TIME="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8"

登出后重新登入生效。

输入法

之前一直用 Fcitx,原来 Ubuntu 预置的是 IBus,现在开始体验。这里安装支持 IBus 的中州韻輸入法引擎

1
sudo apt install ibus-rime

启用 RIME 引擎:

1
ibus engine rime

在使用一段时间之后,发现有时有切换引擎失败的问题。执行:

1
ibus-daemon &

自动挂载分区

我有一个常用的外置硬盘,所以这一步必不可少。

查看分区 UUID:

1
sudo blkid

编辑 /etc/fstab。注意选项 (<options>) 部分写 defaults,uid=1000,gid=1000

外观

主题和图标选择 Vimix,一款 Material Design 风格的主题。安装:

1
2
3
git clone https://github.com/vinceliuice/vimix-gtk-themes
mkdir ~/.local/share/themes -p
./install.sh -d ~/.local/share/themes -c standard light -s laptop

需要通过 Tweaks 来选择主题。

1
sudo apt install gnome-tweaks

最容易影响观感的真是字体。

下列字体下载后解压到 ~/.local/share/fonts,执行 fc-cache -f -v

常用 GUI 应用

Sublime Text 3

我认为 Sublime Text 3 是最好用的文本编辑器。根据官网说明进行安装:

1
2
3
4
5
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt-get update
sudo apt-get install sublime-text

从首选项 (Preferences) 菜单进入【Settings】,编辑配置。

与其他文本编辑器类似,Sublime Text 3 也拥有丰富的包 (package),作为插件或扩展。

首先安装包管理器 Package Control。根据官网说明,按下【Ctrl + Shift + P】唤出命令面板 (Command Palette),输入 Install Package Control 并按下【Enter】以确认;或者从工具 (Tools) 菜单中选择【Install Package Control…】。由于当地网络政策,上述步骤可能并不顺利,可以重复尝试,或者通过环境变量设置代理。

然后为 Package Control 设置代理(可选)。根据官网说明,从首选项 (Preferences) 菜单进入【Package Settings】→【Package Control】→【Settings – User】,编辑用户配置文件,添加下列行:

1
2
"http_proxy": "host:port",
"https_proxy": "host:port",

其中 hostport 根据实际情况调整(如 127.0.0.1:8118),注意 JSON 格式。

我选择 Material Design 风格的主题 Material Theme。根据文档,按下【Ctrl + Shift + P】唤出命令面板 (Command Palette),输入 Package Control: Install Package 并按下【Enter】以确认,这是安装包的一般步骤。然后搜索 Material Theme,选择开发者 ID 为 equinusocio 的那个,按下【Enter】来安装。安装过程会提示是否安装作为依赖的另一个包 A File Icon,点击【Install】即可。

激活主题。唤出命令面板并输入 Material Theme: Activate theme

自定义配置。从首选项 (Preferences) 菜单进入【Settings】,编辑用户配置文件,添加下列行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"font_options": ["gray_antialias"],
"always_show_minimap_viewport": true,
"bold_folder_labels": true,
"overlay_scroll_bars": "enabled",
"material_theme_accent_cyan": true,
"material_theme_arrow_folders": true,
"material_theme_compact_panel": true,
"material_theme_compact_sidebar": true,
"material_theme_contrast_mode": true,
"material_theme_panel_separator": true,
"material_theme_small_statusbar": true,
"material_theme_small_tab": true,
"material_theme_tabs_separator": true,
"material_theme_titlebar": true,

其他包:

  • PackageResourceViewer:查看和编辑包资源文件。
  • CoolFormat:代码格式化工具。
  • CarbonCarbon 用于分享代码段的图片。

Typora

我认为 Typora 是最好用的 Markdown 编辑器。根据官网说明进行安装:

1
2
3
4
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
sudo apt-get install typora

CopyQ

剪贴板历史管理是【Ctrl + C/V】的绝配。

1
sudo apt install copyq

到首选项 (Preference) 中设定开机自启 (Autostart),设定显示主窗口的快捷键,比如【Shift + F3】。

Synapse

按下【Ctrl + Space】来唤出启动器,快速搜索或启动应用,以及其他插件。

1
sudo apt install synapse

到首选项 (Preference) 中设定开机自启 (Startup on login),设定主题为「Virgilio」。

Plank

1
sudo apt install plank

到首选项 (Preference) 中设定主题为「GTK+」,适当设定【Icon Zoom】。

到 Startup Applications 中添加新项以设定开机自启,名字 (Name) 任意,命令 (Command) 为 plank

Conky

桌面展示:

1
sudo apt install conky

到 Startup Applications 中添加新项以设定开机自启,名字 (Name) 任意,命令 (Command) 为 conky -d

顶栏 (panel) 展示:

1
sudo apt install indicator-multiload

到首选项 (Preference) 中设定【Indicator items…】,添加新项 🔥 $(size(mem.user)) ⬇️ $(speed(net.down)) ⬆️ $(speed(net.up)),然后到顶栏曲线图处使用鼠标滚轮切换到该项显示。

Flameshot

1
sudo apt install flameshot

到配置选项 (Configuration) 中设定开机自启 (Launch at startup)。

到系统键盘设定中,添加新的自定义快捷键,比如【Ctrl + Shift + Alt + P】,名字 (Name) 任意,命令 (Command) 为 flameshot gui

Kazam

1
sudo apt install kazam

GNOME sushi

文件快捷预览工具。

1
sudo apt install gnome-sushi

在文件管理器 (Nautilus) 中,按下空格即可对选中文件进行快速预览。

Nautilus Image Converter

在文件浏览器中快捷调整图片尺寸的工具。

1
sudo apt install nautilus-image-converter

对图片的右键菜单中可以快速调整图片大小 (resize images)。

Dconf Editor

DConf 是用于存储桌面环境设定的底层键值对数据库,这里安装一个 GUI 编辑器。

1
sudo apt install dconf-editor

Compiz Config Settings Manager

Compiz 是窗口管理器,这里安装一个 GUI 设定管理。

1
sudo apt install compizconfig-settings-manager

Telegram

我认为 Telegram 是世界上最好用的即时通讯工具。

1
sudo apt install telegram-desktop

Meld

Meld 是著名的图形对比 (diff) 与合并 (merge) 工具,支持对比文件和文件夹。

1
sudo apt install meld

qBittorrent

我认为 qBittorrent 是最好用的 BitTorrent 图形客户端。

1
sudo apt install qbittorrent -y

按照 Wiki 描述迁移程序设定和种子等数据,将 ~/.config/qBittorrent/~/.local/share/data/qBittorrent/ 两个文件夹复制到相应位置。

Thunderbird

Thunderbird 是 Mozilla 名下开源的电子邮件、新闻、RSS 和聊天客户端。在适应一段时间之后,我认为 Thunderbird 非常可靠。

Ubuntu 系统预置 Thunderbird。按照文档 “Profiles”“Moving Thunderbird Data to a New Computer” 迁移个人数据 (~/.thunderbird/xxxxxxxx.default/) 或全部应用数据 (~/.thunderbird/)。

KeePassXC

KeePassXC 是密码管理器的不二之选。

1
sudo apt install keepassxc

到设定 (Settings) 中启用【Show a system tray icon】。

云存储

1
2
3
4
5
6
7
8
9
10
11
12
# Dropbox
sudo apt install nautilus-dropbox

# MEGA
wget https://mega.nz/linux/MEGAsync/xUbuntu_20.04/amd64/megasync-xUbuntu_20.04_amd64.deb https://mega.nz/linux/MEGAsync/xUbuntu_20.04/amd64/nautilus-megasync-xUbuntu_20.04_amd64.deb
sudo dpkg -i megasync-xUbuntu_20.04_amd64.deb nautilus-megasync-xUbuntu_20.04_amd64.deb
sudo apt install -f

#坚果云
wget https://www.jianguoyun.com/static/exe/installer/ubuntu/nautilus_nutstore_amd64.deb
sudo dpkg -i nautilus_nutstore_amd64.deb
sudo apt-get install -f

网易云音乐

1
2
wget http://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb
sudo dpkg -i netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb

QQ

1
2
3
4
5
6
git clone https://github.com/wszqkzqk/deepin-wine-ubuntu
cd deepin-wine-ubuntu
./install.sh
sudo apt install fonts-wqy-microhei fonts-wqy-zenhei
wget http://packages.deepin.com/deepin/pool/non-free/d/deepin.com.qq.im/deepin.com.qq.im_9.1.8deepin0_i386.deb
sudo dpkg -i deepin.com.qq.im_9.1.8deepin0_i386.deb

常用 CLI 应用

oathtool

基于时间的一次性密码 (TOTP) 的命令行工具。

1
sudo apt install oathtool

在妥善、谨慎地保存密钥 (key) 文件的前提下,获取一次性密码:

1
cat KEY_FILE | xargs oathtool --totp -b -d 6 -w 1

Neofetch

显示系统基本信息。

1
sudo apt install neofetch

trash-cli

trash-cli 是命令行的回收站工具,与图形环境兼容 (FreeDesktop.org),支持记录文件名、原路径、删除日期和权限。

1
sudo apt install trash-cli

Google Chrome

官网下载对应版本 (deb) 的包,然后安装:

1
2
sudo dpkg -i google-chrome-stable_*.deb
sudo apt install -f

安装过程 Google Chrome 会自动配置软件源,以后使用 APT 更新即可。但在第一次执行 apt update 时,如果遇到无法验证签名的错误:

1
2
W: GPG error: http://dl.google.com/linux/chrome/deb stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 78BD65473CB3BD13
E: The repository 'http://dl.google.com/linux/chrome/deb stable InRelease' is not signed.

根据 Google Linux Software Repositories 说明,执行:

1
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

Chromium

大概是从 Ubuntu 19.10 开始,chromium-browser 成为一个过渡包,直接执行 apt install chromium-browser 会自动从 Snap 安装 Chromium 浏览器。Snap 版本的 Chromium 在读写其他分区的文件时存在不便。总之 Snap 并不讨喜。好在上游 Debian 10 的软件源仍在编译 Chromium,利用这一点,我们可以仍然从 APT 安装 Chromium。

如果已经从 Snap 安装 Chromium,那么先卸载:

1
2
snap remove chromium
sudo apt remove chromium-browser

如果同时安装了 chromium-chromedriverchromium-browser-l10nchromium-codecs-ffmpeg-extra 等包,相应执行:

1
sudo apt remove chromium-chromedriver chromium-browser-l10n chromium-codecs-ffmpeg-extra

添加 Debian Stable 源。新建并编辑 /etc/apt/sources.list.d/debian-stable.list

1
2
3
4
5
6
7
8
9
10
11
12
# Debian stable
deb http://ftp.debian.org/debian/ stable main
# deb-src http://ftp.debian.org/debian/ stable main

# Debian updates (previously known as 'volatile')
deb http://ftp.debian.org/debian/ stable-updates main
# deb-src http://ftp.debian.org/debian/ stable-updates main

# Debian security updates
deb http://security.debian.org/ stable/updates main
# deb http://ftp.debian.org/debian-security buster/updates main
# deb-src http://security.debian.org/ stable/updates main

获取并添加 Debian 公钥:

1
2
sudo apt install debian-archive-keyring
sudo apt-key add /usr/share/keyrings/debian-archive-keyring.gpg

根据 APT 文档,设定软件源优先级策略。新建并编辑 /etc/apt/preferences.d/debian-chromium

1
2
3
4
5
6
7
8
9
Explanation: Prevent installing from debian repo.
Package: *
Pin: origin "*.debian.org"
Pin-Priority: 1

Explanation: Allow installing chromium from debian repo.
Package: chromium*
Pin: origin "*.debian.org"
Pin-Priority: 100

检查策略:

1
2
sudo apt update
apt-cache policy chromium linux-base

安装 Chromium:

1
sudo apt install chromium chromium-l10n

打开 chrome://flags,查看 Chrome/Chromium 中值得注意的试验性选项:

  • #tab-groups:标签分组。
  • #enable-parallel-downloading:多线程下载。
  • #tab-hover-cards:标签预览卡片(禁用)。
  • #global-media-controls:全局媒体控制。

以上。又水了一篇。🐟


📖 [Ref]

Author : gadflysu
本文采用「知识共享署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0)」进行许可。你可自由分享演绎,惟须遵照:署名非商业性使用相同方式共享不得增加额外限制
Link to this article : https://blog.gadflysu.com/linux/ubuntu-primer/

This article was last updated on days ago, and the information described in the article may have changed.