Ubuntu 24.04 WSL2 Bash 增强配置
1. 背景
Ubuntu 默认使用 Bash 作为 Shell。
Bash 具有:
- 稳定
- 兼容性好
- Linux 服务器环境普遍使用
- 脚本支持广泛
但是默认 Bash 的交互体验较基础:
- 命令补全能力有限
- 历史命令查找不方便
- 输入命令时不会自动提示以前执行过的命令
通过增加以下工具,可以提升日常使用体验:
| 工具 | 作用 |
|---|---|
| bash-completion | 增强 Tab 补全 |
| fzf | 模糊搜索历史和文件 |
| ble.sh | 输入时自动提示历史命令 |
最终结构:
Bash
|
+-- bash-completion
| |
| +-- Tab 参数补全
|
+-- fzf
| |
| +-- Ctrl+R 搜索历史
|
+-- ble.sh
|
+-- 输入命令自动提示
2. 检查基础环境
更新软件源:
sudo apt update
查看 Bash:
bash --version
Ubuntu 24.04 默认已经包含 bash-completion。
检查:
dpkg -l | grep bash-completion
如果没有:
sudo apt install bash-completion
3. 配置 bash-completion
3.1 检查启用状态
查看:
grep bash_completion ~/.bashrc
如果没有,可以添加:
# bash completion
if [ -f /usr/share/bash-completion/bash_completion ]; then
source /usr/share/bash-completion/bash_completion
fi
重新加载:
source ~/.bashrc
3.2 使用效果
例如:
Git:
git che<Tab>
可以补全:
git checkout
git cherry-pick
Docker:
docker run --<Tab>
显示:
--name
--network
--volume
--rm
4. 配置 fzf
fzf 是一个终端模糊搜索工具。
主要用途:
- 搜索历史命令
- 搜索文件
- 快速选择内容
4.1 安装
sudo apt install fzf
检查:
fzf --version
4.2 启用 Bash 快捷键
查看:
ls /usr/share/doc/fzf/examples/
Ubuntu 24.04:
key-bindings.bash
key-bindings.zsh
key-bindings.fish
编辑:
vim ~/.bashrc
加入:
# fzf
if [ -f /usr/share/doc/fzf/examples/key-bindings.bash ]; then
source /usr/share/doc/fzf/examples/key-bindings.bash
fi
重新加载:
source ~/.bashrc
5. fzf 常用操作
5.1 Ctrl + R 搜索历史命令
按:
Ctrl + R
进入历史搜索。
输入:
docker
显示:
docker compose up -d
docker ps
docker logs xxx
选择后回车执行。
适合:
- 长命令
- docker 命令
- git 命令
- 编译命令
5.2 Ctrl + T 搜索文件
按:
Ctrl + T
搜索当前目录文件。
例如:
输入:
config
选择:
config.yaml
会自动插入:
vim config.yaml
6. 安装 ble.sh
6.1 功能
ble.sh 用于增强 Bash 交互能力。
主要提供:
- 输入历史自动提示
- 更好的命令编辑体验
- Bash 输入增强
例如历史中存在:
docker compose up -d
再次输入:
docker c
会显示:
docker compose up -d
按:
→
接受。
6.2 使用官方 release 安装
下载 nightly 版本:
curl -L \
https://github.com/akinomyoga/ble.sh/releases/download/nightly/ble-nightly.tar.xz \
| tar xJf -
安装:
bash ble-nightly/ble.sh --install ~/.local/share
安装完成后:
~/.local/share/blesh/
会生成 ble.sh 文件。
6.3 启用 ble.sh
添加:
echo 'source -- ~/.local/share/blesh/ble.sh' >> ~/.bashrc
或者手动编辑:
vim ~/.bashrc
加入:
source -- ~/.local/share/blesh/ble.sh
重新进入 Bash:
exec bash
7. ble.sh 极简配置
ble.sh 默认功能比较丰富:
- 语法高亮
- 文件名高亮
- 变量高亮
- 自动补全菜单
- 执行耗时提示
如果只需要:
输入命令时显示历史提示
创建:
vim ~/.blerc
内容:
# 极简配置:只保留自动建议
# 关闭语法高亮
bleopt highlight_syntax=
# 关闭文件名高亮
bleopt highlight_filename=
# 关闭变量高亮
bleopt highlight_variable=
# 关闭自动菜单
bleopt complete_auto_menu=
# 关闭耗时报告
bleopt exec_elapsed_enabled=
# 开启自动建议
bleopt complete_auto_complete=1
# 自动提示延迟
bleopt complete_auto_delay=0
8. 测试 ble.sh
重新启动:
exec bash
执行:
docker ps
git status
python main.py
然后输入:
docker
如果历史中存在:
docker ps
会出现自动提示。
按:
→
接受。
9. 推荐最终配置
Ubuntu 24.04 WSL2
bash
|
+-- bash-completion
| |
| +-- Tab 补全
|
+-- fzf
| |
| +-- Ctrl+R 历史搜索
| +-- Ctrl+T 文件搜索
|
+-- ble.sh
|
+-- 输入历史自动提示
10. 常见问题
10.1 ble.sh 感觉卡顿
ble.sh 功能较多。
可以关闭:
bleopt highlight_syntax=
bleopt highlight_filename=
bleopt highlight_variable=
减少实时计算。
10.2 查看 ble.sh 当前配置
执行:
bleopt
查看当前所有选项。
10.3 重新加载配置
推荐:
exec bash
避免多次:
source ~/.bashrc
导致 ble.sh 重复加载。
总结
Ubuntu 24.04 WSL2 下,保持 Bash 作为默认 Shell:
- bash-completion 提供基础补全
- fzf 提供高效历史搜索
- ble.sh 提供输入历史自动提示
可以获得接近 zsh/fish 的交互体验,同时保持 Bash 在 Linux 开发环境中的兼容性。