Atuin 是什么

开源 Shell 历史增强工具,核心的思路是:把传统的纯文本 ~/.bash_history 替换成一个 SQLite 数据库,在存储命令的同时,记录下更多有价值的上下文信息

原来的 Shell 历史只记录”你输入了什么”,而 Atuin 还会记录”你在哪个目录输入的”、”命令运行了多久”、”命令是否成功退出”、”是在哪台机器上输入的”

这些信息听起来不起眼,但当你真正需要找回某条命令时,这些上下文就是救命稻草——特别是你记得”这个命令我是在项目目录下运行的,而且大概跑了一分多钟”,就能快速缩小搜索范围

核心功能

Ctrl+R 或者上箭头,弹出全屏搜索界面,支持模糊搜索,可按工作目录、主机名、会话等维度过滤

基本使用方法

在搜索界面中,你可以:

  • 使用 Enter 键执行选中的命令

  • 使用 Tab 键编辑选中的命令

  • 使用 Alt+数字 快速选择特定的结果(例如 Alt+1 选择第一个结果)

  • 多次按 Ctrl+R 在不同的过滤模式间切换(全局/主机/会话/目录)

安装与配置

安装

https://docs.atuin.sh/main/#quickstart

curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
atuin import auto

echo 'eval "$(atuin init bash --disable-up-arrow)"' >> ~/.bashrc

atuin import auto #导入现有的 Shell 历史

注册账号与同步

atuin register -u your_username -e your@email.com 注册后,登录并同步: atuin login -u your_username atuin sync

日常使用技巧

搜索界面中,循环 Ctrl+R 可以切换搜索范围,在”全局历史”和”当前目录历史”之间切换

很多时候你需要找的命令就是在特定项目目录下运行的,切换到目录过滤模式可以大幅减少干扰

删除重复

atuin history dedup --dry-run --before "2099-01-01" --dupkeep 1
atuin history dedup  --before "2099-01-01" --dupkeep 1

配置删除

keymap_mode = "vim-insert"

[keymap.vim-insert]
"delete"="delete-all"