Windows AI 开发环境搭建(四):WSL Ubuntu Terminal 增强

本文 Windows AI 开发环境搭建第四篇,主要介绍如何增强 WSL Ubuntu 终端的体验和效率。主要依赖 Starship,fzf、zoxide、eza、batcat、fd-find 等工具,他们不仅提供了终端更丰富直观的信息,也让终端变得赏心悦目,最重要的是比老旧的命令行工具,极大的提升了速度效能。

安装 Nerd Font 字体

后面安装的 starship、eza 依赖此字体

下载 Nerd Font,推荐:JetBrains Mono Nerd Font

解压 JetBrainsMono.zip 字体包,里面有非常多字体,按需安装,不清楚,建议安装以下四个就行。

✅ JetBrainsMonoNerdFont-Regular.ttf
✅ JetBrainsMonoNerdFont-Bold.ttf
✅ JetBrainsMonoNerdFont-Italic.ttf
✅ JetBrainsMonoNerdFont-BoldItalic.ttf

安装方式:

  • 选择右键安装即可
  • 复制文件到 C:\Windows\Fonts 目录

新开一个 Windows Terminal:

终端窗口点击右上角下拉箭头 V 
 ↓
设置,左侧菜单栏滑动到底部
 ↓
Ubuntu-24.04
 ↓
外观
 ↓
字体选 JetBrainsMono Nerd Font 保存

测试,如何图标显示正常没有 ? 号,表示安装字体成功:

Bash
echo "  🐍 🐳"

安装 Starship

Starship 是一款轻量级、极速且高度可定制的跨 Shell 命令行提示符(Prompt)。 简单来说,它可以美化并增强你终端(Terminal)中的命令行提示符,让你在敲命令时获得更丰富、直观的信息体验。

主要特点与功能

  • Rust 驱动:使用 Rust 语言编写,性能极高,响应非常敏捷,不会拖慢终端输入体验。
  • 智能上下文感知:根据你当前所在的目录自动展示相关信息,例如: 当前 Git 分支、代码状态(有无未提交的修改、暂存区状态等)。 当前项目所使用的编程语言及版本(如 Python, Node.js, Rust, Go, Java 等)。 操作系统标识、执行耗时、包管理器状态等。
  • 高度可定制:你可以通过简单的配置文件(~/.config/starship.toml)任意调整提示符的颜色、图标、显示顺序和显示内容。
  • 开箱即用:即使不进行任何配置,默认的提示符样式也非常现代、美观(需配合 Nerd Font 字体显示各种图标)。

安装:

Bash
curl -sS https://starship.rs/install.sh | sh

输入 y,继续,需要 sudo 权限,输入密码。

如果忘记密码,退出当前 Linux 窗口,在 PowerShell 中输入:

PowerShell
wsl -l -v

复制忘记密码的系统 NAME,例如 Ubuntu-24.04,关闭 Ubuntu:

PowerShell
wsl --shutdown

然后以 root 身份进入:

PowerShell
wsl -d Ubuntu-24.04 -u root

检查是否 root:

Bash
whoami # root

查看用户名:

Bash
ls /home

修改用户 username 密码:

Bash
passwd username # passwd: password updated successfully

右上角下拉箭头 V ,新开一个 Ubuntu 窗口,

重新安装:

Bash
curl -sS https://starship.rs/install.sh | sh

安装成功后,会提示不同 shell 所需添加的命令行,Ubuntu 默认是 Bash,所以添加下面一行到 ~/.bashrc

Bash
echo 'eval "$(starship init bash)"' >> ~/.bashrc

即时生效:

Bash
source ~/.bashrc

随便进入一个 python 或 node 项目,它更显示更丰富的信息,例如:

Bash
xxx on  master [?] is 📦 v0.1.0 via 🐍 v3.12.3

这里都是 starship 默认效果,默认就够用。喜欢折腾的,可以新建配置文件,详细可查配置文档

Bash
mkdir -p ~/.config && touch ~/.config/starship.toml

安装 fzf(历史搜索神器)

fzf 是一个模糊搜索命令行工具,常用功能:

  • ctrl + r:交互式搜索历史命令并快速复用
  • ctrl + t:快速模糊搜索并粘贴文件/目录路径到当前命令行
  • alt + c:快速搜索并 cd 进入指定目录

安装:

Bash
sudo apt install fzf -y

启用:

Bash
echo 'source /usr/share/doc/fzf/examples/key-bindings.bash' >> ~/.bashrc

立即生效:

Bash
source ~/.bashrc

安装 zoxide(智能 cd)

zoxide 是一个更智能的 cd 命令,灵感来源于 z 和 autojump。 它会记录你最常用的目录,所以你只需用更短的路径就能快速 cd 过去。

安装:

Bash
sudo apt install zoxide -y

启用:

Bash
echo 'eval "$(zoxide init bash)"' >> ~/.bashrc

立即生效:

Bash
source ~/.bashrc

随便切换到哪个深一点的目录:

Bash
cd ~/projects/ai/xxx

zoxide 会记录,下次输入简写,直接跳转

Bash
z xxx

查看快速跳转记录

Bash
zoxide query -l

安装 eza(替代 ls)

eza 功能增强版 ls,主要功能

  • 视觉增强‌:默认通过‌颜色编码‌区分文件类型(目录、执行文件、链接等),支持‌图标显示‌(需 Nerd Font),大幅提升可读性。
  • 信息丰富‌:长模式(-l)下不仅显示权限、大小、时间,还能直接集成显示 ‌Git 状态‌(如修改、新增、忽略文件),无需额外执行 git status。 ‌
  • 结构清晰‌:支持‌树状视图‌(–tree)并可限制层级深度,比传统 tree 命令更灵活,直观呈现目录结构。 ‌
  • 性能与兼容‌:单二进制文件,启动极快;参数与 ls 高度兼容,可无缝替换为默认命令。‌‌

安装:

Bash
sudo apt install eza -y

测试:

Bash
eza --icons=always --color=always  -T -L 2 -al # -T -L 分别是 --tree --level 缩写

配置 alias:

Bash
nano ~/.bashrc

末尾输入:

Bash
alias ls="eza --icons=always --color=always"
alias ll="eza --icons=always --color=always -la"
alias la="eza --icons=always --color=always -a"

nano 操作:

ctrl + o 保存
Enter 确认保存文件名
ctrl + x 退出

立即生效:

Bash
source ~/.bashrc

安装 bat(替代 cat)

batcat 增强版 cat,主要功能:

  • 语法高亮,支持常见编程语言格式
  • 结合 Git,查看哪里被修改
  • 显示非打印字符,命令行加参数 -A or –show-all
  • 长文自动分页,可以关闭 alias cat=’bat –paging=never’

安装:

Bash
sudo apt install bat -y

测试:

Bash
batcat ~/.bashrc

创建 bat 命令行快捷短命令行:

Bash
mkdir -p ~/.local/bin

ln -s /usr/bin/batcat ~/.local/bin/bat

.bashrc 高亮不是很明显,查看常用编程语言即可看效果,例如 markdown 文件:

Bash
bat README.md

安装 ripgrep(替代 grep)

ripgrep(命令行命令为 rg)文件内容搜索神器,它的核心作用是在指定的文本文件或代码仓库中,根据正则表达式或固定字符串快速查找包含目标文本的内容,并高亮显示匹配行。它是传统 Unix 命令 grep 的现代超强替代品。

特点:

  • 极致的搜索速度: 利用 Rust 优秀的性能、多线程并行搜索以及优化的 Rust 正则引擎(基于 DFA 和 SIMD 指令集优化),速度比传统的 grep、ack 甚至 the_silver_searcher (ag) 快数倍。
  • 聪明的行为: 自动忽略无关文件:默认会跳过 .gitignore 中列出的文件/目录(如 node_modules/、target/、.git/ 等),以及隐藏文件和二进制文件,大大节省无用搜索的时间。
  • 强大的 Unicode 支持: 默认完整支持 Unicode 搜索与匹配,且依然能保持极高的执行效率。
  • 良好的终端体验: 默认对匹配到的文件名、行号和文本提供清晰的高亮色彩显示,输出结果非常易读。

安装:

Bash
sudo apt install ripgrep -y

测试:

Bash
rg 'keyword' # 对当前目录搜索文件内容包含关键字
Bash
cat ~/.bashrc | rg 'eza'

安装 fd-find(替代 find)

fd-find 功能特点和上面 rg 类似,上面是搜索文件内容,这个是目录文件名搜索神器,是 find 的现代替代品。

安装:

Bash
sudo apt install fd-find -y

创建 fd 短命令行:

Bash
ln -s $(which fdfind) ~/.local/bin/fd

测试:

Bash
fd md # 查找 md 文件