Atuin 是一款用 Rust 编写的 Shell 历史增强工具,它将命令行历史从普通的文本文件升级成一个功能强大的 SQLite 数据库,并提供跨会话、跨机器的加密同步能力。
逛 GitHub 时发现 Atuin 这个项目,它恰好解决了我一直以来的小困扰:每次换电脑或者打开新终端,历史命令就丢失了,找起来也相当麻烦。
这款工具能将你所有终端的命令历史集中存储到一个 SQLite 数据库中,并支持加密同步至云端,让你随时随地都能查看完整的历史记录。它还能根据时间、目录、甚至命令是否成功来搜索历史,是个相当实在的工具。
Atuin 是什么

Atuin 是一个用 Rust 写的 Shell 历史增强工具,它把你的命令行历史从普通的文本文件升级成一个功能强大的 SQLite 数据库,并提供了跨会话、跨机器的加密同步能力。
核心功能
(1) 全屏历史搜索
它将 Ctrl-R 和上箭头键重新绑定为一个全屏搜索界面,你可以像使用搜索引擎一样查找之前输过的命令,比反复按上箭头翻找效率高得多,界面看起来也很清晰。

历史上文全记录不止是命令本身,它会把每条命令的退出码、执行时间、在哪个目录运行的、主机名、会话 ID 都存下来,这样你回头查的时候就知道上次为什么失败,或者某个耗时的命令是在哪执行的。

(2) 端到端加密同步
你可以将历史记录通过 Atuin 的服务器或者自建服务器进行同步,所有数据在离开你电脑前就已加密,所以即使是服务提供商也看不到你的命令内容,这样家里和公司的命令历史就能无缝衔接。
(3) 强大的过滤搜索
在搜索界面里,你可以按快捷键切换过滤模式,比如只看当前终端会话的历史,或者只看当前目录下的历史,全局搜索当然也行,这对于在特定上下文里找命令特别有帮助。

(3) 无缝导入与兼容
它不会粗暴地覆盖你原来的 .bash_history 或 .zsh_history 文件,而是可以把这些旧历史导入到自己的数据库里,和你之后的新记录并存,对现有的 shell 环境干扰很小。
(4) 额外实用小工具
除了搜索,它还能通过命令行分析你的使用习惯,比如统计最常用的命令,或者找出一段时间内所有成功的 make 构建命令,这些对于复盘工作效率还挺有用的。

安装指南
最快的方式就是使用最新的一键安装脚本:curl --proto ’=https’ --tlsv1.2 -LsSf https://setup.atuin.sh | sh,这个脚本会自动检测你的系统并安装。
安装后,你需要初始化一下,注册一个云端账号用于同步:atuin register -u <用户名> -e <邮箱>,然后运行 atuin import auto 导入现有历史,最后 atuin sync 启动同步,重启你的终端就能用了。
如果你不想用云同步,或者想自己托管服务器,可以去项目的文档里看离线安装和配置的详细说明,过程也不复杂。
开源地址:https://github.com/atuinsh/atuin/
