本文以Ubuntu 25.10为例。macOS用户请忽略此文档。

如果你对存储设备、文件系统、目录和路径等背景知识不熟悉,那么请先阅读本文最后的附录


Part 1、维护Ubuntu系统

一、替换更新源列表文件

Ubuntu系统需要不定时更新。更新时,需要从远端服务器下载更新包。

Ubuntu系统更新需要一个更新源配置目录sources.list.d,里面记录的默认的服务器是Ubuntu的主站,因其部署在国外,从而导致下载速度会比较慢。为加速下载,需要将服务器改为国内的镜像,例如清华大学的tuna镜像网站

  1. 查看Ubuntu版本

    在终端中发出如下命令:

     lsb_release -a
    

    这将会显示类似于如下的信息:

     Distributor ID: Ubuntu
     Description:    Ubuntu 25.10
     Release:        25.10
     Codename:       questing
    

    其中,questing25.10版本的代号。

  2. 在终端中发出如下命令:

    注:这些命令需要一条一条发出。每发出一条命令后按回车,命令成功执行后再发第二条命令。

     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系统组件

  1. 更新Update

    在终端中发出如下更新命令:

     sudo apt update
    

    此后可以看到更新信息。请忽略所有下载错误。 如果系统提示需要安装一些缺失的包,那么请发出如下命令:

     sudo apt update --fix-missing
    
  2. 升级Upgrade

    接着,再发出如下升级命令:

     sudo apt dist-upgrade -y
    

    然后会看到系统的很多包的更新升级信息。请忽略所有下载错误。 如果遇到有选择,基本上一律选OK

  3. 移除Remove

    如果系统提示有些包已不再使用,可以这样移除这些包:

     sudo apt autoremove
    

Ubuntu的维护团队经常更新系统,所以你需要隔几天就发出上述几条命令更新和升级Ubuntu。

Part 2、升级Ubuntu内核到最新版本

如果你的系统内核版本不是最新的,那么为了能获得更好的服务,以及安装最新的工具链(例如gcc 15版),你可能需要将Ubuntu的内核升级到最新版。

  1. 修改升级管理器的默认行为

    在终端中发出如下命令:

     sudo vim /etc/update-manager/release-upgrades
    

    vim的编辑界面,内容可能是这样的:

     [Default]
     # 好多行以#开始的注释
     Prompt=normal
    

    其中,Prompt可能是normalltsnever之一。

    • 如果是normal,那么就直接到下面的步骤2。
    • 如果不是,并且想升级,那么请这么做(以lts为例):
      • 将光标移动到 lts 上,然后按i
      • 删除 lts,然后键入:normal
      • ESC键,再按冒号:键,在编辑器底部出现的:后输入wq,最后回车,保存并退出。

    lts 是长期支持版的英文缩写。

  2. 更新升级现有系统组件到最新

    请阅读正上方的:Part 1 二、更新Ubuntu系统和软件包

  3. 查看能够升级到哪个内核

    在终端中发出如下命令:

     do-release-upgrade -c
    

    如果系统显示:无新版本发现,那么就可以不用做后续步骤了。

  4. 系统内核升级

    在终端中发出如下命令:

     sudo do-release-upgrade
    

    此后,系统内核升级进程开始。

    强烈建议在升级程序询问时,选择’y’,或者系统提示的默认选项。

    升级进程完成后,重启系统,整个升级过程结束。

  5. 再次查看是否还可升级

    请重复步骤2~4,直到系统升级到最新版本位置。

Part 3、配置WSL

一、配置默认账户

打开Ubuntu终端,其中的命令提示符可能长这样:

bzj@Laobai:/usr/local$

其中:

  • bzj:当前账户名
  • Laobai:当前系统名称
  • /usr/local:当前所在目录
  • $:命令提示符的标志,说明账户是一个普通账户,权限可能受限;如果是#,那么账户就是root,拥有最高权限。

不建议在Linux中使用root账户进行操作。root权限过大,一旦有误操作就可能导致系统不可用。当然,如果你坚持用root账户也没有问题,只是操作时须谨慎。

如果你发现在启动WSL后,默认账户是root,而你又想使用已经存在的普通账户(假设账户名为abc),那么可以这样做:

  1. 打开一个Ubuntu终端,在其中输入如下命令:

     cd /etc
     sudo vim wsl.conf
    
  2. 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,然后按回车。

  3. 重新启动WSL

    关闭所有与WSL连接的应用(例如VS Code),然后以管理员身份运行Powershell,然后在其中发出如下命令:

    wsl --shutdown
    

    此后,再次启动Ubuntu,配置就生效了。

如果你仅有一个root账户,那么你需要创建一个普通账户。请阅读另一篇博文:修改WSL启动时的默认账户。

对于虚拟机中的Ubuntu或者独立Ubuntu,请先创建账户,然后以这个账户登录系统即可,不必考虑wsl.conf的问题。这个是转为WSL设置的。


附录、背景知识:关于存储设备、目录和路径

一、Windows

Windows的一个存储设备常被划分为若干分区(也许只有1个),每个分区是一个逻辑上的磁盘驱动器,被分配了一个盘符。例如:Windows系统盘的盘符是C:,数据盘的是D:,以此类推。 每一个Windows磁盘驱动器都有自己的目录树。目录树的根节点是根目录。 在Windows的cmdPowershell窗口中,使用如下命令可以切换磁盘,以及切换目录:

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

注:“用户”这个目录的名字可能是英文的“Users”。