Bash等Linux shell是否可实现类似PowerShell的命令历史列表视图效果?
Linux Shell 历史命令列表视图预测功能实现
你提到的 PowerShell 中输入时以列表样式展示匹配历史命令的功能,Bash 及其他常见 Linux Shell 均支持对应效果,具体实现方式如下:
Bash
原生 Bash 可通过第三方工具组合实现该效果:- 先安装模糊查找工具
fzf和补全增强组件bash-completion,Debian/Ubuntu 系安装命令为sudo apt install fzf bash-completion - 在用户目录下的
.bashrc文件中添加快捷键绑定:bind '"\C-r": " \C-e\C-ufzf --height 40% --layout reverse < <(history | cut -c 8-)\e\C-e\C-x\C-r\C-x"',重载配置后按Ctrl + R即可唤起列表样式的历史命令筛选框,支持输入关键词实时过滤 - 如果需要输入时自动弹出列表建议,可安装 Bash 增强插件
ble.sh,开启历史预测配置后即可实现和 PSReadLine 完全一致的体验
- 先安装模糊查找工具
Zsh
Zsh 生态有更成熟的开箱即用方案:- 搭配
zsh-autosuggestions、zsh-history-substring-search两个插件,配置开启后输入命令时会自动弹出匹配的历史命令列表,通过上下方向键即可快速选择 - 也可使用 oh-my-zsh 框架的内置 fzf 插件,开启后默认按
Ctrl + R即可唤起全量历史命令的列表筛选视图
- 搭配
Fish Shell
Fish 原生就内置了该功能,无需额外安装任何插件或手动配置:
输入命令时会自动匹配历史记录,按 Tab 键即可展开列表视图选择对应命令,体验和 PSReadLine 预设的列表视图基本一致
内容的提问来源于stack exchange,提问作者Gary Allen
相关产品推荐
相关产品推荐

