在单系统和多系统环境中安装并配置 Ubuntu

本文是一篇个人向(只详细记录了自己的、可能不是所有人都喜欢的环境)的配置教程,以帮助想配置 Linux 的同学搭建一个可以日常使用的、比较适合新手的 Linux 双系统环境(Ubuntu + kde + zsh)。

说在前面

完成效果,要是这还觉得不够好看请提交你的教程

为什么是单/双系统? 如果你乐于尝试、喜欢自定义、不怕折腾,那么: 除了运行流畅、稳定、性能良好这类有点自欺欺人的优点以外,Linux 已经有足够日常使用的软件:QQ、微信、IDA、网易云等,生态已经比前几年好太多了; 此外(至少 Ubuntu,在开发环境上)相对 Windows 感觉少了许多对新手来说难以排查、摸不着头脑 Bug; Linux 可以高度的自定义,十分的美观; 对新手来说,许多设置已经可以通过 UI 来完成了。

教程不清楚/好像哪里不对? 直接找我(Crazy_13754)就好了。

和网上的教程有什么区别? 或许更多的是对网上的教程的一个总结。 但愿我能保证本教程是正确、清楚、全面的。

前置条件? 本教程是 Win11 下的双系统安装; 如果你仍想保留 Win,请先保证 Win 的正常运行,因为重装 Win 默认清理覆盖全部引导项。

缺点? Linux 没什么游戏且没有 MS Office,因此双系统会是更佳选择; Ubuntu 的功能相对 Win 一定是较少的,并且 如果需要频繁切换系统,开关机似乎也很烦人。

准备工作

由于安装过程中人为操作失误可能导致数据丢失,建议提前备份重要数据;安装过程中可能会遇到一些稀奇古怪的问题,如果不知道自己在做什么,建议不要随意操作。

首先下载 Ubuntu 24.04.01 LTS 。下载这个较大的版本往往可以解决一些驱动上的问题。

关于 LTS

LTS(Long Term Support)是长期支持版本,每两年发布一次,支持时间为 5 年。非 LTS 版本每半年发布一次,支持时间为 9 个月。LTS 版本更稳定,更适合企业和长期使用。

个人经验来说,LTS 版本的驱动更全、更容易适配电脑(出现问题更少),因此推荐使用 LTS 版本。

你仍需要完成以下三件准备工作:

关闭安全启动。

你的电脑在启动时按特定键可以进入 BIOS 设置,这取决你的电脑品牌、主板型号等(自行必应搜 XX 电脑如何进入 BIOS)。在其设置中找到安全启动(Secure Boot)并关闭它。应该在安全(Security)或者启动(Boot)选项卡中能找到。

关于安全启动

安全启动是 UEFI BIOS 的一个子规则,旨在防止恶意软件侵入。它要求所有加载的模块必须签名,否则会拒绝启动。预装 Win8/10/11 的系统要求开启 Secure Boot,而 Win7 则不支持。消费者可根据需要选择开启或关闭,但安装 Win11 需在线更新功能时必须开启。 通常它是有用的,但会阻止我们安装 Ubuntu。

制作安装盘

找到一个 U 盘,下一个 Rufus。后缀字母 p 的意义是便携的 portable,即给你一个不用安装的可执行文件,正常选带 p 的就可以了。 打开后,设备选择你的 U 盘(会格式化清理上面的所有文件,请备份 U 盘上面的文件!)。 镜像选择下好的镜像文件。 分区类型,正常来说,应该改为 GPT(UEFI 非 CSM),但如果你电脑是老电脑,可能是 MBR(BIOS 或 UEFI CSM)。 点开始即可。 Rufus 设置

(准备使用双系统的话)为 Linux 准备足够空间。

应为分配 70-150 G 空间(空间足够的话当然越大越好,70 一般够了)。Ubuntu 系统本身占用空间不大,但软件安装后会占用一定空间。 安装过程中也可以直接改,不过这样可以减少出错。这里有两种方法:

可以右键文件管理器的此电脑,点击显示更多选项——管理(G); 1打开计算机管理 打开的界面左侧选择存储——磁盘管理,在想分区的地方点压缩卷分配空间; 压缩页面 分配空间

或者下载一个图吧工具箱,安好后在磁盘工具中找到 Disk Genius 并操作,这个工具比 Win 自带的磁盘管理更直观些。 DG 页面

安装

然后重启,并在启动时按特定键进入启动盘选择自行必应搜 XX 电脑如何选择启动盘)。选择你的 U 盘,它上面应该标注了 Ubuntu,如 SanDisk Ubuntu 之类。

成功进入安装程序后,根据引导安装即可。

第一个界面是选择语言,选择中文即可。

第三张的键盘布局指的是你的键盘是什么样的,一般来说是中文键盘即可。此功能是给键盘会多一个键地区准备的,如英国键盘多一个 £ 键)。

“您想如何安装 Ubuntu?”这里选择交互安装。交互安装

分区类型选择其他选项(自已创建、调整分区、或者为 Ubuntu 选择多个分区),然后做出如下调整:

  1. 在形如 nvme0n1p1 的地方选择你的硬盘(一般是 nvme0n1),找到你分出的空间。
  2. 点 + 号,新建一个分区,大小 4G,文件系统选择交换空间(Swap),挂载点选择交换空间(Swap)。
  3. 剩下点 + 号,新建一个分区,文件系统选择 ext4,挂载点选择 /。
分区设置

关于交换空间

交换空间(Swap Space)是一种磁盘上的特殊空间,用于扩展系统的虚拟内存。当系统的物理内存(RAM)使用量达到其最大容量时,Linux内核会使用交换空间来临时存储那些暂时不活跃的进程,从而为其他进程腾出内存空间。交换空间的作用类似于虚拟内存,但它是存储在磁盘上的,而不是在物理内存中。个人电脑的内存通常很难用完,不过没有交换空间将会只能睡眠,不能休眠。 当然,你可以分几十个 G 给交换空间,但个人认为这也是没必要的。

关于 /

/ 是根目录,所有文件都会放在这里。 Linux 的文件系统是树状结构,根目录是所有文件的起点,所有文件都是从根目录开始的。

安装即可,安装完成后,应该会有 Please remove the installation medium, then press ENTER(请拔掉安装介质,然后按下 ENTER)的提示。再次启动应该就有系统选择界面了。

安装后直接进入 Win

Bios 中的引导顺序可能是 Win 优先,所以你可能需要进入 Bios 设置引导顺序,将 Ubuntu 优先,Ubuntu 的引导页可以选择进入哪个系统。

Ubuntu 安装至此完成,下面讲各种配置。

配置

换源

由于国内网络环境,Ubuntu 默认的源可能会很慢,因此我们需要换源。以清华源为例,打开终端,输入以下命令:

1
2
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
sudo nano /etc/apt/sources.list.d/ubuntu.sources

把原来的删掉,替换为清华源的,保存退出,再 sudo apt update 即可。

设置 su 密码

安装页面设置的密码是 sudo 密码,su 是 root 用户,需要设置密码:

1
2
sudo su
passwd

更新系统

打开终端(Ctrl+Alt+T),输入以下命令:

1
sudo apt update; sudo apt upgrade; sudo apt autoremove;

其分别是更新软件源、更新软件、删除不需要的软件。

基本工具

安装一些不自带但常用的工具:

1
sudo apt install vim git curl wget net-tools -y

安装软件

个人建议先下Spark Store,因为真的方便。

关于下载安装软件

spark-store_4.3.3.2_amd64.debamd64 是指 amd64 架构,即 64 位系统,如果你是 32 位系统,下载 i386 的;.deb 是 Debian 的安装包,Ubuntu 是基于 Debian 的,所以 Ubuntu 也可以安装 .deb 包。

使用 sudo dpkg -i spark-store_4.3.3.2_amd64.deb 安装,若提示缺少依赖,使用 sudo apt install -f 安装依赖。

打开后,搜索你想要的软件,点击安装即可。其中网易云音乐建议使用 Wine 版本,其他软件都是 Linux 原生即可。

安装配置终端

zsh 和 oh-my-zsh 安装

按下 Ctrl+Alt+T 打开终端时,我们看到的是 bash,即 Bourne Again Shell,是 Linux 系统默认的 shell。zsh 是一个强大的 shell,oh-my-zsh 是一个 zsh 的配置框架。

1
2
sudo apt install zsh
sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)" # 安装过程应会提示改为 zsh 为默认 shell

安装 Terminator

Terminator 是一个多标签终端模拟器,可以在一个窗口中打开多个终端。安装方法如下:

1
sudo apt install terminator

安装 Nerd Font 和 powerlevel10k

首先安装一份 Nerd Font,这是一种字体,用于显示一些特殊字符,如箭头、星号等。访问 Nerd Fonts 下载一个你喜欢的字体,安装后在终端设置字体即可。

本人使用的主题为 powerlevel10k,安装方法如下:

1
2
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
vim ~/.zshrc

ZSH_THEME 改为 ZSH_THEME="powerlevel10k/powerlevel10k",保存退出,然后输入 source ~/.zshrc 即可。

此时会有一个配置向导,根据自己的喜好配置即可。

安装插件

1
2
3
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/MichaelAquilina/zsh-you-should-use.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/you-should-use

然后修改 ~/.zshrc,将 plugins 改为:

1
plugins=(git web-search jsontools z vi-mode zsh-syntax-highlighting zsh-autosuggestions you-should-use)

保存退出,输入 source ~/.zshrc 即可。

其中: git 插件,提供 git 命令的缩写,见官方文档; web-search 插件,搜索引擎名加内容即可搜索,如命令 bing ubuntu; z 插件,自动 cd 到最常用的目录,如 z doc,将会自动 cd 到最常用的名字含 doc 的目录; zsh-syntax-highlighting 插件,语法高亮,如命令 ls 会显示为绿色,错误的命令会显示为红色; zsh-autosuggestions 插件,自动补全,如输入 ls 后,再次输入 l 会自动补全为 ls; you-should-use 插件,提供一些命令的替代命令,如 git 提示使用 g

设置 sudo 免密

1
sudo visudo

在文件末尾添加 <username> ALL=(ALL) NOPASSWD: ALL,保存退出。如果你不知道自己的用户名,可以使用 whoami 查看。

visudo 是一个编辑 sudoers 文件的工具,其将会检查你的修改是否正确,如果有错误,将会提示错误信息。请不要直接编辑 /etc/sudoers 文件。

sudoers 文件是按顺序解析的,后面的规则可以覆盖前面的规则。<username> ALL=(ALL) NOPASSWD: ALL 更为宽松,应放在 %sudo ALL=(ALL:ALL) ALL 之后。

安装配置 KDE

KDE 是一个桌面环境,Ubuntu 默认的桌面环境是 GNOME,KDE 是一个更加美观、更加自定义的桌面环境。

1
sudo apt install kde-standard

安装过程中,会提示选择默认的桌面环境,选择 sddm 即可。

重启进入 KDE。

Latte Dock

24.04.01 LTS 对应的 KDE 任务栏不够完善,装一个 Latte Dock 美化下。

1
sudo apt install latte-dock

删除原任务栏,编辑新增加的 Latte Dock。任务栏上的内容通过小部件添加。

剪切板历史

Latte Dock 默认没有剪切板历史,可以在小部件中添加剪切板历史,之后就可以 Meta+V 查看剪切板历史了。

运行

1
2
kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta "org.kde.lattedock,/Latte,org.kde.LatteDock,activateLauncherMenu"
qdbus org.kde.KWin /KWin reconfigure

设置 Meta 键打开应用程序菜单。

系统设置

  • 快捷键——系统设置——系统设置 自定义一个 Meta+I 的快捷键,用于打开设置;
  • 将 Konsole 命令行终端的快捷键去掉,并在自定义快捷键中“编辑——新建——全局快捷键——命令/URL”中添加一个快捷键,设为 Ctrl+Alt+T,命令为 terminator
  • 显卡与显示器——全局缩放率,调整为 1.5(根据自己的显示器调整);

代理

运行 CFW

使用的是 Clash for Windows Linux 版。解压若直接运行会提示

1
2
3
./cfw
[4541:0202/125831.389604:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /Clash for Windows-0.20.39-x64-linux/chrome-sandbox is owned by root and has mode 4755.
[1] 4541 trace trap (core dumped) ./cfw

根据提示运行

1
2
sudo chown root:root chrome-sandbox
sudo chmod 4755 chrome-sandbox

即可。

设置代理

Linux 下的代理不能像 Windows 一样设置全局代理,需要在系统设置中设置代理。其位置为“网络设置——代理——手动”,填入代理地址和端口即可(内容参照脚本)。

推荐使用脚本加快捷键设置代理。KDE 下系统设置为 kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key 'ProxyType' 1,关闭代理为 kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key 'ProxyType' 0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

# 获取当前代理模式
current_mode=$(kreadconfig5 --file kioslaverc --group 'Proxy Settings' --key 'ProxyType')

# notify-send "当前代理模式为: $current_mode"

if [ "$current_mode" -eq 0 ]; then
# 设置代理为手动模式
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key 'ProxyType' 1
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key 'httpProxy' 'http://127.0.0.1:7890'
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key 'httpsProxy' 'http://127.0.0.1:7890'
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key 'ftpProxy' 'ftp://127.0.0.1:7890'
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key 'socksProxy' 'socks://127.0.0.1:7890'
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key 'NoProxyFor' 'localhost,127.0.0.0/8,::1'
notify-send "代理已启用"
else
# 关闭代理
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key 'ProxyType' 0
notify-send "代理已禁用"
fi

为此脚本在系统设置中设置快捷键即可。(系统设置——快捷键——自定义快捷键——命令/URL;编辑——新建——全局快捷键——命令/URL)

设置代理终端

设置中启用代理后,终端不会自动使用代理,需要在终端中设置代理。有三种方法:

~/.zshrc 中添加

1
2
3
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7891

保存退出,输入 source ~/.zshrc 即可。这将会使所有终端都使用代理。

~/.zshrc 中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
# 启动代理
proxy () {
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891
echo "HTTP Proxy on"
}

# 关闭代理
noproxy () {
unset http_proxy
unset https_proxy
unset all_proxy
echo "HTTP Proxy off"
}

保存退出,输入 source ~/.zshrc 即可。此后在终端中输入 proxy 即可启用代理,输入 noproxy 即可关闭代理。

使用 proxychains4 命令对某句命令使用代理,如 proxychains4 curl ip.sb。不过此方法在某些情况下可能会失效。

首先,

1
sudo apt install proxychains4

然后编辑 /etc/proxychains.conf,将最后一行的 socks4 127.0.0.1 9050 改为 socks5 127.0.0.1 7890,即可使用代理。

pyenv

由官网:

1
curl -fsSL https://pyenv.run | bash

如失败,可以使用以下命令:

1
2
3
4
5
6
7
8
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
cd ~/.pyenv && src/configure && make -C src

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc

exec "$SHELL"

Anaconda

Anaconda 是一个用于科学计算的 Python 发行版,包含了许多科学计算、数据处理的库。其自带的 conda 是一个包管理工具,可以用于安装并管理 Python 包。 安装方法如下:

清华源下载一个 Anaconda 的安装包,然后在终端中运行:

1
bash Anacondaxxxxx.sh

安装过程中会提示是否将 Anaconda 添加到 PATH 中,选择 yes 即可。

texlive

见本站教程 VS Code + HyperSnips + $\LaTeX$笔记速记

nodejs 和 npm

1
2
sudo apt update
sudo apt install nodejs npm

git

1
2
git config --global user.name "Your Name"
git config --global user.email "Your Email"

为 GitHub 设置 SSH 密钥:

1
2
ssh-keygen # 一路回车
cat ~/.ssh/id_rsa.pub

将输出的内容添加到 GitHub 的 SSH 密钥中(GitHub 设置——SSH and GPG keys——New SSH key)。

Win 与 Linux 时间同步

Win 认为硬件时间是本地时间,Linux 认为硬件时间是 UTC 时间,因此在双系统中会出现时间不同步的问题。并且,Win 同步时间并不频繁,因而在 Win 下时间总会不准。可以在 Linux 中将硬件时间设置为本地时间:

1
timedatectl set-local-rtc 1 --adjust-system-clock

卸载

卸载 Ubuntu 时,需要先删除分区,然后修复引导。

可以直接进 Win 删除 Linux 所在的分区,并把 EFI 区中 Ubuntu 文件夹引导删除。

引导修复

若误操作需要恢复引导,首先修复 Win 引导,然后修复 Linux 引导,因为 Win 引导会删除覆盖 EFI 分区的所有引导项。

Ubuntu 提供了 boot-repair 工具,可以帮助修复引导。

首先进入安装盘,选择试用 Ubuntu,然后打开终端,输入以下命令:

1
2
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt update
sudo apt install -y boot-repair && boot-repair

用 Recommended repair 即可。

PS: 不使用 U 盘的方法

我们下载的 .iso 文件实际上是一个光盘镜像,包含了系统所需的所有文件和目录结构、文件系统属性,并且不需要再进行编译。因此,我们只要按照安装程序的规则将这些文件复制到硬盘上,然后通过引导加载这些文件即可。

同样,要为 Ubuntu 创建一个分区,并且文件系统为 FAT32,然后将 .iso 文件解压到这个分区中。

然后再为这个分区创建一个引导项。在 Win 下,可以使用 EasyBCD 创建一个引导项,选择添加新条目——ISO——选择你的 .iso 文件即可。

如果不想再安软件,可以使用 DiskGenius 创一个临时引导项,进入 Ubuntu 后再使用 boot-repair 修复引导。Ubuntu 的引导文件在 /boot/efi/EFI/ubuntu