简介
Atuin 将传统的文本历史文件升级为 SQLite 数据库,并记录退出码、工作目录、主机、会话和耗时等上下文。它会接管常用的 Ctrl-R 历史搜索,同时保留原来的历史文件,适合经常在多个项目、终端会话或设备之间切换的用户。
同步是可选的:可以只在本地使用,也可以连接官方服务或自建服务。同步内容在客户端端到端加密,服务端无法直接读取命令历史。
安装与启用
brew install atuin
# Zsh
echo 'eval "$(atuin init zsh)"' >> ~/.zshrc
# Bash
echo 'eval "$(atuin init bash)"' >> ~/.bashrc
# Fish
atuin init fish | source
首次使用可以导入已有历史:
atuin import auto
atuin stats
核心特性
- 上下文历史 — 除命令文本外,还记录目录、退出码、时间、主机和会话
- 结构化检索 — 可按目录、会话、时间范围或执行结果筛选
- 跨设备同步 — 历史在多台机器间保持一致,并支持自托管服务
- 端到端加密 — 同步前在客户端加密,降低命令与密钥泄露风险
- 多 Shell 支持 — 覆盖 Zsh、Bash、Fish、Nushell、Xonsh 和 PowerShell
使用示例
# 查找昨天 15:00 后成功执行过的 make 命令
atuin search --exit 0 --after "yesterday 3pm" make
# 只搜索当前目录的历史
atuin search --cwd . docker
# 查看命令使用统计
atuin stats
适合谁
如果你常靠 Ctrl-R 找长命令、在多个仓库间切换,或希望在个人设备间安全同步历史,Atuin 是当前最成熟的现代化替代方案之一。只需要轻量模糊搜索的用户仍可继续使用 Shell 自带历史或 fzf。