WSL中安装并启用中文字体
本文介绍了在 WSL(Ubuntu) 中安装中文字体的两种方法:一是直接使用 Windows 系统自带的中文字体,二是安装从网络下载的中文字体文件。文章详细讲解了从字体复制、安装到验证的完整过程,并对每个命令的作用进行了说明,适合 WSL 用户解决中文字体显示问题。
在 WSL(Ubuntu) 中安装和启用中文字体的两种方法
本文将详细介绍在 WSL(Ubuntu) 上使用中文字体的两种方法:
- 直接安装 Windows 系统自带的中文字体
- 安装从网络下载并保存在 Windows 本地目录的中文字体
背景与原理
WSL(Windows Subsystem for Linux)本质上是一个运行在 Windows 上的 Linux 子系统。它能够通过类似 /mnt/c/
这样的路径来访问 Windows 的文件系统。例如,Windows 的 C:\Windows\Fonts
对应 WSL 中的 /mnt/c/Windows/Fonts
。因此,我们可以将 Windows 中的字体文件复制到 WSL 的字体目录中(如 /usr/share/fonts/
或 /usr/local/share/fonts/
),并使用 fc-cache
刷新缓存,即可在 Linux 环境下全局启用相应字体。
第一部分:在 WSL(Ubuntu) 中安装 Windows 自带的中文字体
1. 前置准备
- 确保 WSL(Ubuntu) 已安装所需工具:
sudo
,cp
,mkdir
,fc-cache
等(Ubuntu 通常自带)
- 确保拥有管理员权限:
- 在 WSL 中执行需要写入系统目录的操作时,需使用
sudo
- 在 WSL 中执行需要写入系统目录的操作时,需使用
2. 打开 WSL(Ubuntu) 终端
在 Windows 开始菜单或任务栏,找到并打开 “Ubuntu” 或 “WSL” 应用,进入 Linux 命令行界面。
3. (可选)更新软件包索引
1 | sudo apt update |
这条命令会更新系统的软件包列表,确保后续安装的软件是最新版本。
4. 确保已安装 fontconfig
1 | sudo apt install fontconfig |
fontconfig 是 Linux 系统中的字体管理工具,用于配置和管理系统字体。如果已安装,系统会提示已是最新版本。
5. 创建字体存放目录
1 | sudo mkdir -p /usr/local/share/fonts/chinese |
mkdir
: 创建目录命令-p
: 如果父目录不存在则自动创建/usr/local/share/fonts/chinese
: 存放中文字体的目标目录
在 Linux 系统中,字体文件的存放位置有以下几个标准目录:
/usr/share/fonts/
- 系统级字体目录,所有用户可用
- 通常由包管理器安装的字体会放在这里
- 系统更新可能会修改此目录
/usr/local/share/fonts/
- 系统级字体目录,所有用户可用
- 推荐用于管理员手动安装的字体
- 系统更新不会修改此目录
- 与系统自带字体分开管理,方便维护
~/.local/share/fonts/
或~/.fonts/
- 用户级字体目录,仅当前用户可用
- 适合个人用户安装自己需要的字体
- 不影响其他用户
本教程选择 /usr/local/share/fonts/chinese
目录的原因:
- 作为系统级目录,所有用户都能使用这些中文字体
- 与系统自带字体分开存放,便于管理和备份
- 创建 chinese 子目录使结构更清晰,便于后续管理
字体文件格式:
.ttf
: TrueType 字体,最常见的字体格式.ttc
: TrueType Collection,包含多个 TTF 字体的集合文件.otf
: OpenType 字体,更现代的字体格式
6. 进入 Windows 字体目录并查看可用字体
1 | cd /mnt/c/Windows/Fonts |
cd
: 切换目录到 Windows 的字体文件夹ls
: 列出目录中的所有文件,可以看到各种字体文件
7. 复制所需的中文字体到 WSL 的字体目录
方法1: 手动指定复制特定字体
1 | sudo cp SimSun.ttc /usr/local/share/fonts/chinese/ |
方法2: 自动检测并复制中文字体
- 首先创建脚本文件:
1 | # 使用 nano 或其他编辑器创建脚本文件 |
- 将以下内容复制到脚本中:
1 |
|
- 保存文件并赋予执行权限:
1 | chmod +x ~/copy-chinese-fonts.sh |
- 运行脚本:
1 | ~/copy-chinese-fonts.sh |
脚本执行过程:
- 创建中文字体存放目录(如果不存在)
- 初始化计数器,用于统计发现和复制的字体数量
- 遍历 Windows 字体目录中的所有字体文件
- 使用 fc-scan 分析每个字体文件是否支持中文
- 显示发现的中文字体名称并尝试复制
- 统计复制结果并显示成功/失败状态
- 最后刷新字体缓存并显示总结信息
运行时的输出示例:
1 | 开始扫描中文字体... |
注意事项:
脚本需要 sudo 权限才能复制文件到系统目录
首次运行可能需要几分钟时间,因为要分析每个字体文件
-n
参数确保不会覆盖已存在的字体文件,避免重复安装脚本会显示详细的进度信息,方便追踪安装过程
如果遇到权限问题,可以尝试:
1
sudo ~/copy-chinese-fonts.sh
验证安装结果:
1 | # 检查所有已安装的中文字体 |
8. 刷新字体缓存
1 | sudo fc-cache -fv |
fc-cache
: 刷新系统字体缓存的命令-f
: 强制刷新,即使似乎没有必要-v
: 显示详细过程信息
9. 验证字体是否安装成功
1 | fc-list | grep -i simsun |
fc-list
: 列出系统中所有可用的字体|
: 管道符,将前一个命令的输出传递给后一个命令grep -i simsun
: 搜索包含 “simsun” 的行,-i 表示忽略大小写
第二部分:在 WSL(Ubuntu) 中安装从网络下载的中文字体文件
有的时候,我们需要安装一些从网络下载的中文字体文件,假设这些字体文件下载后被保存到 Windows 桌面的fonts文件夹中。
1. 前置准备
与第一部分相同,需要:
- WSL(Ubuntu) 终端和 sudo 权限
- fontconfig 已安装
2. 创建字体目录
1 | sudo mkdir -p /usr/local/share/fonts/chinese |
命令解释:
sudo
: 使用管理员权限执行命令mkdir -p
: 创建目录,如果父目录不存在则一并创建/usr/local/share/fonts/chinese
: 存放中文字体的目标目录
3. 切换到 Windows 桌面目录
1 | # 切换到 Windows 桌面目录 |
⚠️ 注意:需要将
【你的Windows用户名】
替换为你实际的 Windows 用户名。例如,如果你的用户名是 john,那么命令就是:
1 cd /mnt/c/Users/john/Desktop/fonts
4. 拷贝字体文件到 WSL 字体目录
如果所有字体文件都在同一个目录下:
1 | sudo cp *.{ttf,ttc,otf,TTF,TTC,OTF} /usr/local/share/fonts/chinese/ 2>/dev/null |
命令解释:
sudo cp
: 以管理员权限复制文件*.{ttf,ttc,otf,TTF,TTC,OTF}
: 匹配所有常见字体文件格式(包括大小写)/usr/local/share/fonts/chinese/
: 目标目录2>/dev/null
: 忽略错误信息(如某些格式文件不存在时)
5. 刷新字体缓存
1 | sudo fc-cache -fv |
命令解释:
sudo
: 使用管理员权限fc-cache
: 刷新字体缓存的命令-f
: 强制刷新所有字体-v
: 显示详细处理信息
6. 验证字体是否安装成功
1 | # 列出所有中文字体 |
💡 提示:将
【要搜索的字体名称】
替换为你要查找的具体字体名,例如:
1
2 fc-list | grep -i "SimSun" # 搜索宋体
fc-list | grep -i "微软雅黑" # 搜索微软雅黑
命令解释:
fc-list :lang=zh
: 列出所有支持中文的字体fc-list | grep -i "字体名称"
: 搜索特定字体|
: 管道符,将前一个命令的输出传给后一个命令grep -i
: 搜索文本,-i 表示忽略大小写"字体名称"
: 要搜索的字体名称,如 “SimSun” 或 “微软雅黑”
注意事项:
- 确保字体文件夹的路径正确
- 替换脚本中的
<username>
为你的 Windows 用户名 - 如果字体文件有子目录,可以使用第一部分的自动检测脚本
- 建议在复制前检查字体文件的版权问题