04 维护和配置linux
本文以Ubuntu 25.10为例。macOS用户请忽略此文档。
如果你对存储设备、文件系统、目录和路径等背景知识不熟悉,那么请先阅读本文最后的附录
Part 1、维护Ubuntu系统
一、替换更新源列表文件
Ubuntu系统需要不定时更新。更新时,需要从远端服务器下载更新包。
Ubuntu系统更新需要一个更新源配置目录sources.list.d,里面记录的默认的服务器是Ubuntu的主站,因其部署在国外,从而导致下载速度会比较慢。为加速下载,需要将服务器改为国内的镜像,例如清华大学的tuna镜像网站。
-
查看
Ubuntu版本在终端中发出如下命令:
lsb_release -a这将会显示类似于如下的信息:
Distributor ID: Ubuntu Description: Ubuntu 25.10 Release: 25.10 Codename: questing其中,
questing是25.10版本的代号。 -
在终端中发出如下命令:
注:这些命令需要一条一条发出。每发出一条命令后按回车,命令成功执行后再发第二条命令。
cd /etc/apt/sources.list.d sudo vim ubuntu.sources在
vim编辑器中,你看到的内容可能是这样的:## 一堆以##开头的注释 Types: deb URIs: http://archive.ubuntu.com/ubuntu Suites: questing questing-updates questing-backports questing-security Components: main universe restricted multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg按上下左右等方位键,将移动光标移动到
URIs:后面,然后按i键进入插入模式,删除后面的那个网址,将内容替换为:https://mirrors.tuna.tsinghua.edu.cn/ubuntu按
ESC键,再按冒号:键,在编辑器底部出现的:后输入wq,最后回车,保存并退出。
二、更新升级Ubuntu系统组件
-
更新Update
在终端中发出如下更新命令:
sudo apt update此后可以看到更新信息。请忽略所有下载错误。 如果系统提示需要安装一些缺失的包,那么请发出如下命令:
sudo apt update --fix-missing -
升级Upgrade
接着,再发出如下升级命令:
sudo apt dist-upgrade -y然后会看到系统的很多包的更新升级信息。请忽略所有下载错误。 如果遇到有选择,基本上一律选OK。
-
移除Remove
如果系统提示有些包已不再使用,可以这样移除这些包:
sudo apt autoremove
Ubuntu的维护团队经常更新系统,所以你需要隔几天就发出上述几条命令更新和升级Ubuntu。
Part 2、升级Ubuntu内核到最新版本
如果你的系统内核版本不是最新的,那么为了能获得更好的服务,以及安装最新的工具链(例如gcc 15版),你可能需要将Ubuntu的内核升级到最新版。
-
修改升级管理器的默认行为
在终端中发出如下命令:
sudo vim /etc/update-manager/release-upgrades在
vim的编辑界面,内容可能是这样的:[Default] # 好多行以#开始的注释 Prompt=normal其中,
Prompt可能是normal、lts和never之一。- 如果是
normal,那么就直接到下面的步骤2。 - 如果不是,并且想升级,那么请这么做(以lts为例):
- 将光标移动到 lts 上,然后按
i键 - 删除 lts,然后键入:normal
- 按
ESC键,再按冒号:键,在编辑器底部出现的:后输入wq,最后回车,保存并退出。
- 将光标移动到 lts 上,然后按
lts 是长期支持版的英文缩写。
- 如果是
-
更新升级现有系统组件到最新
请阅读正上方的:Part 1 二、更新Ubuntu系统和软件包
-
查看能够升级到哪个内核
在终端中发出如下命令:
do-release-upgrade -c如果系统显示:无新版本发现,那么就可以不用做后续步骤了。
-
系统内核升级
在终端中发出如下命令:
sudo do-release-upgrade此后,系统内核升级进程开始。
强烈建议在升级程序询问时,选择’y’,或者系统提示的默认选项。
升级进程完成后,重启系统,整个升级过程结束。
-
再次查看是否还可升级
请重复步骤2~4,直到系统升级到最新版本位置。
Part 3、配置WSL
一、配置默认账户
打开Ubuntu终端,其中的命令提示符可能长这样:
bzj@Laobai:/usr/local$
其中:
bzj:当前账户名Laobai:当前系统名称/usr/local:当前所在目录$:命令提示符的标志,说明账户是一个普通账户,权限可能受限;如果是#,那么账户就是root,拥有最高权限。
不建议在Linux中使用root账户进行操作。root权限过大,一旦有误操作就可能导致系统不可用。当然,如果你坚持用root账户也没有问题,只是操作时须谨慎。
如果你发现在启动WSL后,默认账户是root,而你又想使用已经存在的普通账户(假设账户名为abc),那么可以这样做:
-
打开一个
Ubuntu终端,在其中输入如下命令:cd /etc sudo vim wsl.conf - 当
vim编辑器启动后,按字母键i(此键意为插入insert),然后将如下内容输入:[user] default=abc [automount] enabled = true options = "metadata,uid=1000,gid=1000,umask=0022,fmask=11, case=off" mountFsTab = false [filesystem] umask = 0022 [boot] systemd = true输入完成后,先按
ESC键,再按冒号键:,屏幕的底部会出现:。在其后输入:wq,然后按回车。 -
重新启动WSL
关闭所有与
WSL连接的应用(例如VS Code),然后以管理员身份运行Powershell,然后在其中发出如下命令:wsl --shutdown此后,再次启动
Ubuntu,配置就生效了。
如果你仅有一个root账户,那么你需要创建一个普通账户。请阅读另一篇博文:修改WSL启动时的默认账户。
对于虚拟机中的Ubuntu或者独立Ubuntu,请先创建账户,然后以这个账户登录系统即可,不必考虑wsl.conf的问题。这个是转为WSL设置的。
附录、背景知识:关于存储设备、目录和路径
一、Windows
Windows的一个存储设备常被划分为若干分区(也许只有1个),每个分区是一个逻辑上的磁盘驱动器,被分配了一个盘符。例如:Windows系统盘的盘符是C:,数据盘的是D:,以此类推。
每一个Windows磁盘驱动器都有自己的目录树。目录树的根节点是根目录。
在Windows的cmd或Powershell窗口中,使用如下命令可以切换磁盘,以及切换目录:
C:
cd C:\Windows\system32
上述两条命令的作用是:进入C盘,并进入根目录下的Windows目录(常叫做文件夹)下的子目录system32,使之成为当前工作目录。
这里,C:\Windows\system32被称为路径(path),符号\是Windows路径的分隔符。
二、UNIX(含Linux/macOS)
UNIX下的存储设备没有盘符。本着 “一切皆文件” 的理念,UNIX的存储设备都被映射到一种特殊的设备文件中,并保存在/dev目录下。例如,第一个磁盘映射的设备文件可能是/dev/sda1。这里,符号/是UNIX路径的分隔符,这与Windows的不同。单个/代表着根目录。与Windows不同,UNIX整个系统只有一棵目录树,但路径的概念与Windows基本相同。
UNIX的一个存储设备需要关联到目录树的某个位置上。说白了,就是关联到某个目录上。这称为 “挂载(mount)”。例如:当UNIX系统启动时,一个特殊的存储设备(通常被叫做根分区)会被挂载到UNIX的根目录/上,其他的存储设备会被挂载到不同的目录上。进入某个目录,就是进入了这个目录对应的存储设备。
在UNIX的终端中,使用如下命令可以切换并进入目录:
cd /usr/local
三、WSL
WSL中的Ubuntu和Windows文件系统的可以非常方便地互操作。WSL启动后,Windows系统下的存储设备(磁盘)全部都自动挂载到了Ubuntu系统的/mnt目录下。例如,Windows的C:盘挂载在Ubuntu的/mnt/c目录下,其它盘以此类推。进入这些目录后就可以看到原来在Windows下的所有文档了。例如,要在Ubuntu下进入Windows的D盘根目录并列出所有文档,可以发出如下命令:
cd /mnt/d
ll
ll命令的拼写是两个小写的L,而不是数字1。ll命令的功能是,以长格式列出当前目录下的所有子目录和文件。
相较于WSL,其它虚拟机(例如VMWare)中的Linux的文件系统与其宿主Windows主机的是隔离的,因此不能在虚拟机中直接访问到Windows的文件或目录。反之也不能。因此,需要为虚拟机安装一些网络工具,这些工具可以支持两个系统间的文件或目录传送。
四、几个特殊的目录名
.代表当前目录。..代表上级目录。~代表账户的home目录。假设账户名是abc:- 在Linux中,
~代表的是/home/abc - 在Windows中,
~代表的是C:\用户\abc。
- 在Linux中,
注:“用户”这个目录的名字可能是英文的“Users”。