Skip to content
AstroPaper
Go back

Ubuntu 24.04 WSL2 Bash 增强配置

Edit page

Ubuntu 24.04 WSL2 Bash 增强配置

1. 背景

Ubuntu 默认使用 Bash 作为 Shell。

Bash 具有:

但是默认 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

选择后回车执行。

适合:


5.2 Ctrl + T 搜索文件

按:

Ctrl + T

搜索当前目录文件。

例如:

输入:

config

选择:

config.yaml

会自动插入:

vim config.yaml

6. 安装 ble.sh

6.1 功能

ble.sh 用于增强 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:

可以获得接近 zsh/fish 的交互体验,同时保持 Bash 在 Linux 开发环境中的兼容性。


Edit page
Share this post on:

Next Post
Windows + WSL2 + KeePassXC + SSH Agent 配置指南