每日一博丨你的 Ubuntu 为何如此炫酷?

点击右上方,关注开源中国OSC头条号,获取最新技术资讯

很多人觉得 Windows 是最好的操作系统,它的用户图形化交互界面、它的各种功能应用,还有它的易用性等方面完全就碾压一切,Linux 党对此表示不屑;又有很多人把 elementary OS 定义为最美的 Linux 发行版,Ubuntu 党跳出来对此表示不屑。啊~并不是想(打)引(去)战(吧),其实笔者觉得不管是 Windows 还是 Linux,不管是 Ubuntu 还是其它 Linux 发行版,都有自己的特点,至于当下为什么更多的人使用 Windows 而不是 Linux,其中一个大原因在于易用性和相应的配套应用与个性化设置,然而其实他们误会了已经发展到如今的 Linux 了,或者说有些人根本没接触过吧。

Linux 发展到今天,早已不再是只局限于服务器与嵌入式端了,作为个人日常使用的操作系统也完全是杠杠的。鉴于笔者是 Ubuntu 流,本文就以目前比较活跃的 LTS Ubuntu 18.04 为例,从系统安装到具体配置,再到如何个性化美化,一步步分享一下个人经验,让大家了解到 Linux 也可以像 Windows 那样简易;而对于 Ubuntu 党外人士,只想告诉他们,Ubuntu 是最好的发行版。啊~并不是想(打)引(去)战(吧) 。说实在的,希望新手读本文有收获,老司机也可以留言讨论一下相关的配置与个性化设置方案。

一、安装操作系统

1 制作引导盘

鉴于现在都 8102 年了,是时候完全抛弃 Legacy 引导,只采用 UEFI 引导了。

这里有两种选择(所有操作均在 Windows 下进行):

刻录到光盘:使用 UltraISO 刻录系统镜像,在完成之后,电脑可以将光盘识别到 Legacy 和 UEFI 两种方式的引导项。而如果 BIOS 中设置为仅 UEFI ,就只需直接选择进行安装即可。刻录到 U 盘:1、解压镜像文件:准备一个干净的 FAT32 U 盘( NTFS 不行 ),使用 WinRAR,7z 等压缩工具对 Ubuntu 镜像文件进行解压,解压目录为 U 盘根目录。2、使用刻录工具:Ubuntu 官网中推荐的 U 盘刻录工具为 Universal-USB-Installer ,但是需要注意的是这个工具刻录后的 U 盘只有 Legacy 引导 ,所以只能抛弃该软件。在网上简单搜索后找到了另一款 U 盘刻录工具:Rufus,它支持 UEFI 引导。使用 Rufus 刻录时分区类型注意选择 GPT。

2 分区

本次目标是做一个双系统出来,所以保留原 Windows 系统,压缩出一个分区给 Ubuntu 使用。找到磁盘管理工具页面 ,对相应分区进行压缩,注意对压缩后的新分区不要新建简单卷或格式化

3 安装系统

正常的安装过程,诸如对 BIOS 进行设置之类,网上教程很多,这里不多赘述。

在进行到安装类型这一步时,如果你在上一步压缩完分区后,没有新建简单卷,那么这里就会多出一个“安装 Ubuntu,与 Windows boot manager 共存”这一选项,那么就只需默认无脑下一步即可。而如果需要自主划分分区,就选择其他选项

分区只推荐划分出根 / 和家目录 /home。

注意1:为了系统的稳定,安装过程中请连上网络,勾选“安装 Ubuntu 时下载更新 ”。

注意2:安装时选择最小安装 ,除非你对雷鸟、LibreOffice 之类的软件感兴趣。

二、初步系统配置

1 不可或缺的更新

如果在上一步中勾选了安装 Ubuntu 时下载更新,那么大部分的系统更新已经下载完毕。

先移步到设置详细信息 ,点击右下角的检查更新,如果存在软件更新,那么完成相应的更新。

接着移步到设置区域和语言管理已安装的语言,在此处完成一个更新下载。

最后,为了确保系统和软件都更新完毕,打开终端使用命令安装更新:

sudo apt update
sudo apt upgrade

也可以不使用命令行,使用软件更新器对系统和软件进行更新。

2 双系统的时区问题

双系统下 Windows 与 Ubuntu 的时间将会不相同,原因不多阐述,解决方案如下:

timedatectl set-local-rtc 1

3 更换终端类型

这里推荐使用 oh-my-zsh ,因为其具有十分智能的 Tab 补全能力:

sudo apt-get install git
sudo apt-get install zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
chsh -s /usr/bin/zsh

重启系统以生效。

三、配置与美化系统

1 Gnome-tweak-tool

Ubuntu 18.04 与 16.04 最大的变动就是抛弃了 Unity 桌面,转而使用 Gnome ,所以先安装以下工具:

sudo apt install gnome-tweak-tool

然后找到 Ubuntu 软件附加组件,在此处安装相应的 Shell 组件。

为了自定义 Shell 主题,需要安装、启用 User Themes 插件,这样才可以修改 Shell 样式,也就是顶栏。

附:一个下载主题的网站:Gnome-look

上图中主题和图标的的下载地址:Sierra-light、MacOS Icon

2 主题、图标、字体

下载的主题如果是 deb 包的形式,安装方式见下文。而如果是压缩包的形式,那么就只能解压它放到对应的目录中了,这个目录有两种,区别上类似于 Windows 环境变量里的个人和系统。

主题存放目录:/usr/share/themes 或 ~/.themes图标存放目录:/usr/share/icons 或 ~/.icons字体存放目录:/usr/share/fonts 或 ~/.fonts

其中 /usr/share 目录需要 root 权限才能修改,秉着有图形界面就不用终端的心态:

# 终端下打开一个具有管理员权限的文件管理器
# 打开后终端最小化,不要关闭
sudo nautilus
# 或者放到本地目录中就无需 root 权限了

这里推荐一个专为 Linux 设计的字体:文泉驿系列字体

sudo apt install fonts-wqy-microhei fonts-wqy-zenhei

3 Grub 启动项美化

主题包地址:Gnome Look - GRUB Themes (自行挑选喜欢的)

这里使用的主题包为:Fallout

接下来介绍安装步骤:

首先下载主题包,它是一个 zip 压缩包。解压出文件,使用 sudo nautilus 打开带权限的文件管理器。

定位到目录:/boot/grub,在该目录下新建文件夹:themes,把解压出的文件拷贝到文件夹中。

接着(终端下)使用 gedit 修改 grub 文件:

sudo gedit /etc/default/grub

在该文件末尾添加:

# GRUB_THEME="/boot/grub/themes/主题包文件夹名称/theme.txt"
GRUB_THEME="/boot/grub/themes/fallout-grub-theme-master/theme.txt"

最后更新配置文件:

sudo update-grub

重启系统以见证效果。

另外谈到 grub 就不得不谈到 /boot/grub/grub.cfg ,这个文件才是事实上的配置文件,操纵此文件一个不慎就整个系统凉凉。所谓更新配置文件就是重新生成 grub.cfg 的过程,要小心谨慎。

上面的步骤是不是略显麻烦,不过不用担心,如果你决定使用 Fallout 主题,那么该主题的作者提供了更简单安全的安装命令:

wget -O - https://github.com/shvchk/fallout-grub-theme/raw/master/install.sh | bash

4 搜狗输入法

Ubuntu 18.04 没有提供 Fcitx 输入框架,所以先安装该框架:

sudo apt install fcitx

先到搜狗输入法官网下载输入法安装包,将会下载到一个 deb 格式的安装包,安装它:

# 首先移步到文件管理器的下载目录,终端下输入以下命令进行安装
sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb
# 一般情况下会提示安装失败,缺失依赖,所以先解决依赖问题
sudo apt install -f
# 接着重复第一步安装搜狗输入法的命令
# 一般 deb 包都是如此安装的,如果失败就去解决依赖问题

然后移步到设置区域和语言,删除一部分输入源,只保留汉语 。接着选择管理已安装的语言,修改键盘输入法系统为 fcitx 。关闭窗口,打开所有程序,选择软件 Fctix 配置 ,选择加号添加搜狗输入法(见下图):

如果没有找到搜狗,就重启系统,再次重复以上步骤即可。

推荐一个搜狗输入法皮肤:简约-信 。

5 底栏 Docky

这是一个能做到和 Mac 类似效果的 Dock 软件,颜值上比 Ubuntu 自带的好了很多。

首先把 Ubuntu 自带的 Dock 设置为自动隐藏:

设置Dock自动隐藏 Dock ,然后安装软件:

sudo apt install docky

如果想要去掉 Docky 第一个图标,可以这么操作:

Ubuntu SoftWare 中搜索 Configuration Editor ,安装后打开软件,定位到:

/apps/docky-2/Docky/Items/DockyItem

取消 ShowDockyItem 的勾选状态。

四、安装常用软件

1 DeepinWine 环境安装 QQ

曾经试用过一次 CrossOver ,用其安装了 TIM ,心想如果没太大毛病就购买这个软件了,只是蛮遗憾的一堆小问题,虽然不影响使用,但是影响体验呀。所以真的很感叹 Deepin 封装的 TIM/QQ 的稳定性,所以这里也是借用 Deepin 的贡献达到使用 QQ 的目的。

首先需要在本机下载 Deepin-Wine 环境:deepin-wine-ubuntu

克隆或下载压缩包到本机,解压后在终端目录下执行命令:./install.sh 安装环境。

2 网易云音乐

在写这篇文章时,操作系统版本为:Ubuntu 18.04.1 LTS x86_64 ;网易云音乐版本为:1.1.0

首先去网易云音乐官网下载安装包(Ubuntu 16.04 64 位),然后就是正常的 deb 包安装过程。

安装完毕后,会发现在应用列表中

点击应用图标无法启动软件 (当前版本如此),解决方案:

# 修改网易云音乐的启动图标:
sudo gedit /usr/share/applications/netease-cloud-music.desktop
# 修改 Exec 这一行内容为:
Exec=sh -c "unset SESSION_MANAGER && netease-cloud-music %U"
# 附录:网易云音乐配置及缓存目录:
~/.config/netease-cloud-music
~/.cache/netease-cloud-music

参考资料地址:Ubuntu 18.04 装了网易云音乐,难道只能用 sudo 启动吗?- @Fancy 解答

3 一般性软件安装

相对麻烦的软件安装记录完毕,下文介绍一些其它软件的安装:

3.1 Chrome - Web 浏览器

sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt update
sudo apt install google-chrome-stable

3.2 Shadowsocks - 网络代理

下载地址:shadowsocks-qt5

下载到的是 AppImage 格式,是可以直接双击运行的。

关于自启动:打开应用列表找到启动应用程序
,选择添加,命令中点浏览,选择安装程序即可。关于代理类型:软件中的配置编辑器,本地地址:127.0.0.1,本地端口:1080,服务器类型:SOCKS5系统设置中,网络网络代理,类型选择手动。Socks 主机:127.0.0.1 1080 ,其余的置空。

如此代理,是为全局代理。而如何使用 PAC 呢,请让你的 SS 提供商提供支持在线填写过滤规则的面板。

Shadowsocks 在协议上支持 SS 协议,不支持 SSR 协议。可以使用软件:electron-ssr:erguotou520/electron-ssr

这是一个跨平台(支持 Windows、macOS 与 Linux 系统)的 ShadowsocksR 客户端桌面应用,它功能丰富,支持 Windows 版大部分功能,更有更多人性化功能。

3.3 Neofetch - 系统配置查询

终端下查询系统配置信息。

sudo apt install neofetch

3.4 Typora - MD 编辑、阅读器

颜值很高的实时 MD 编辑、阅读软件。

# optional, but recommended
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'


sudo apt update
# install typora
sudo apt install typora

3.5 Albert 软件启动器

很实用的软件启动器,我在安装的时候按照添加 PPA 的方法安装失败了,所以去其官网(GitHub-Albert)查找了一下,步骤上略显繁琐,这里记录一下:

先这样:

wget -nv -O Release.key \ https://build.opensuse.org/projects/home:manuelschneid3r/public_key
sudo apt-key add - < Release.key
sudo apt update

然后这样:

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_18.04/ /' > /etc/apt/sources.list.d/home:manuelschneid3r.list"
sudo apt update
sudo apt install albert

3.6 popup-dict - 划词翻译

Linux 下的划词翻译工具,支持使用有道等多种翻译服务。

功能特点:

目前只支持英文->中文翻译,支持单词和短语主要针对 Gnome 桌面环境,不保证其它环境下的正常使用鼠标划词翻译,弹窗显示智能处理选中内容(去除两端非英文字符、压缩空白字符、删除换行符等)弹窗显示一段时间后自动关闭。若鼠标在弹窗中,延迟关闭点击弹窗中链接可打开有道词典网页版

安装过程:

# 安装 pip3 ,如果已有请忽略此步骤
sudo apt install python3-pip
# 安装 PyGObject 依赖
sudo apt install python-gi python-gi-cairo python3-gi python3-gi-cairo gir1.2-gtk-3.0
# 安装 popup-dict
sudo pip3 install popupdict

运行软件:使用 Gnome 扩展 Popup dict Switcher

4 Gnome 扩展

Ubuntu 18.04 抛弃了 Unity 桌面转而使用 Gnome,所以 Gnome 桌面下的一些 Shell 扩展在 Ubuntu 18.04 中就可以使用了。在 Gnome-tweak-tool 一节中就提到通过 Ubuntu 软件中心下载、安装和管理 Gnome 扩展(附加组件),下面介绍一种通过浏览器对 Gnome 插件的安装管理方式:

首先安装 Chrome Gnome Shell :

sudo apt install chrome-gnome-shell

然后安装浏览器插件(谷歌浏览器):Chrome 网上应用商店

浏览器插件安装完成后点击插件图标就能进入:Shell 扩展商店

Gnome 扩展推荐

扩展简要功能描述Appfolders Management extension添加文件夹Autohide Battery自动隐藏电源(充电状态下已满)Caffeine取消自动锁屏(应用前台允许下)Clipboard Indicator剪切板管理工具Coverflow Alt-TabAlt Tab 切换应用(更酷炫的界面)Dash to DockDock (没 Docky 好看,但能添加收藏夹)EasyScreenCast录屏工具(录制质量优秀)Extension update notifier自动推送所有扩展的更新信息Hide Top Bar全屏时自动隐藏顶栏HiKitty一个有趣的扩展(放松必备)Internet speed meter顶栏显示当前网络速度Lock Keys顶栏显示 Numlock 和 Capslock 的状态Never close calendar event从不清除日历事件OpenWeather顶栏显示天气情况(支持中文)Places Status Indicator提供快捷目录入口(同文件管理器)Popup dict Switcher一键开关划词翻译Removable Drive Menu移除可移动设备Screenshot Tool截图工具(挺方便)Sound Input & Output Device Chooser更方便的调整声音、亮度System-monitor在状态栏中显示系统信息(很多类型)TaskBar类似于 Windows 任务栏的显示效果Time ++番茄钟(闹钟、秒表、计时器)TopIcons Plus顶栏显示应用图标(托盘显示)User Themes允许本地安装使用 Shell 主题

以上表格提到的所有扩展都能在 Ubuntu 18.04 中使用,如果存在安装失败的情况,请检查是否满足依赖

5 使用 Snap 包安装软件

5.1 Snap 简介

在 Ubuntu 16.04 时,Ubuntu 系统就已经内置了 Snap,Snap 打包的应用不同于 deb 安装包,其包含了各种依赖环境等等(另一个和 Snap 类似的是 Flatpak,Deepin 正在使用的就是这个)。

5.2 Snap 命令

登录 Snap Store

# 这个账户是你的 UBuntu One 账户(https://login.ubuntu.com/+login)
sudo snap login xxxxx@gmail.com
# 退出账户
snap logout

Snap 通常从 Snap Store 安装。您可以在不登录的情况下与 Snap Store 进行交互,但登录可提供许多优势。这些优势包括能够访问私人快照和管理快照而无需设备上的 root 。概括来说:可以不登录,但是大部分命令就需要使用 sudo,登录账户后则无需使用。此外登录账户后才可以发布 snap 包。

PS:在应用商店里可以搜索、安装、下载到基于 snap 的软件,所以下列内容仅供参考。

snap find <query> # 查找
snap install <snap> # 安装
snap remove <snap> # 删除
snap revert <snap> # 还原
snap disable <snap> # 禁用
snap enable <snap> # 启用
/<snap>/<snap>/<snap>/<snap>/<snap>/<query>

更多 snap 的命令用法可在终端下:man snap 查看,或者浏览器访问:snap: command reference

6 文件备份同步

6.1 FreeFileSync

FreeFileSync 是一款本地同步备份软件:如将本地硬盘上的文件同步到移动硬盘上。可以做到增量备份、自动识别差异项等。同步方式有:双向、镜像、更新 。

本身是一款免费的跨平台软件(Windows、macOS、Linux),可以通过捐赠获得免安装版本(然而只有 Windows 和 macOS 版)。

下载地址:Download FreeFileSync

Linux 版本下载文件为一个压缩包,解压后直接点击 FreeFileSync 文件就能使用,所以也就没有桌面图标啦。

有条件就绝对不手写,创建图标:

# 安装软件 gnome-desktop-item-edit
# –-no-install-recommends 参数避免安装非必须的文件,从而减小体积


sudo apt install --no-install-recommends gnome-panel
# 创建应用程序启动方式
sudo gnome-desktop-item-edit /usr/share/applications/ --create-new

执行命令后会打开如上图所示窗口,然后就是一些参数的填写:

命令:点浏览展开到解压目录,选择 FreeFileSync 的可执行文件(图中解压目录位于 ~/App/ 目录)。

图标:解压包中有一个名为 Resources.zip 的压缩包,含有一些图片,从中选取软件图标。

6.2 坚果云

坚果云是一款云端同步软件,与同类的 OneDrive 相比,坚果云做到了全平台兼容。

下载地址:坚果云 Linux 版 (普通的 deb 安装包)

6.3 Chfs

该程序是一个免费的、HTTP 协议的文件共享服务器,使用浏览器可以快速访问。它具有以下特点:

单个文件,整个软件只有一个可执行程序,无配置文件等其他文件跨平台运行,支持主流平台:Windows、Linux 和 macOS支持扫码下载和手机端访问,手机与电脑之间共享文件非常方便支持账户权限控制和地址过滤

与其它常用文件共享方式(如 FTP、飞秋、网盘、自己建站)相比,具有使用简单、适用场景更多的优点,在个人使用以及共享给他人的场景中非常方便快捷

下载地址:CuteHttpFileServer ,使用方案见网站说明。

7 触摸板手势

触摸板手势这里有两个选择:touchegg 和 libinput-gestures

touchegg 从提交记录上看似乎有些年代偏久了,而且 Issues 也有一堆问题,所以这里选用 libinput-gestures。

安装步骤:

需要先加入用户组才有权限:

# 加入用户组
sudo gpasswd -a $USER input # 完成之后重启操作系统

Debian 和 Ubuntu 用户还要安装 libinput-tools

sudo apt install libinput-tools

然后:

# 安装
git clone https://github.com/bulletmark/libinput-gestures.git
cd libinput-gestures
sudo make install # (or sudo ./libinput-gestures-setup install)
# 启动
libinput-gestures-setup start
libinput-gestures-setup autostart
# 停止
libinput-gestures-setup stop
libinput-gestures-setup autostop
# 卸载
libinput-gestures-setup stop
libinput-gestures-setup autostop
sudo libinput-gestures-setup uninstall


五、附录

1、软件图标(.desktop)文件位置:

/usr/share/applications # 大部分启动图标都在此~/.local/share/applications # 一部分本地图标/var/lib/snapd/desktop/applications # snap 类软件在此

对于 *.desktop 文件,可以使用文本编辑器对图标或名称之类的进行修改。

2、基本命令:

# 查看所有 shell 以及如何切换
cat /etc/shells
chsh -s /xxx/xxxx
# 强制清空回收站
sudo rm -rf $HOME/.local/share/Trash/files/*
# 系统环境变量位置
/etc/profile
# 环境变量值 PATH 的一种写法
export PATH=$PATH:变量1:变量2:变量3
# 个人终端下的环境变量
~/.bashrc
~/.zshrc
# MySQL 的 root 账户密码
sudo mysql -u root # 使用管理员权限进数据库
DROP USER 'root'@'localhost'; # 删除原数据库中 root 账户
CREATE USER 'root'@'%' IDENTIFIED BY 'passwd'; # 新建并指定密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; # 赋权
FLUSH PRIVILEGES; # 更新
# 多版本切换( java 等)
sudo update-alternatives --install <link> <name> <path> <priority>
sudo update-alternatives --remove <name> <path>


sudo update-alternatives --config <name>
/<name>/<path>/<name>/<priority>/<path>/<name>

Inkss,个人 GitHub:https://github.com/inkss 。

互联网技术相关,包括但不限于开发语言、网络、数据库、架构、运维、前端、DevOps(DevXXX)、AI、区块链、存储、移动、安全、技术团队管理等内容。文章不需要首发,可以是已经在开源中国博客或网上其它平台发布过的。但是鼓励首发,首发内容被收录可能性较大。如果你是记录某一次解决了某一个问题(这在博客中占绝大比例),那么需要将问题的前因后果描述清楚,最直接的就是结合图文等方式将问题复现,同时完整地说明解决思路与最终成功的方案。如果你是分析某一技术理论知识,请从定义、应用场景、实际案例、关键技术细节、观点等方面,对其进行较为全面地介绍。如果你是以实际案例分享自己或者公司对诸如某一架构模型、通用技术、编程语言、运维工具的实践,那么请将事件相关背景、具体技术细节、演进过程、思考、应用效果等方面描述清楚。其它未尽 case 具体情况具体分析,不虚的,文章投过来试试先,比如我们并不拒绝就某个热点事件对其进行的报导、深入解析。

↓↓↓