如何使用 Atuin 管理 shell 历史:安装、可选同步、Ctrl+R 搜索与导入 bash/zsh
装好 Atuin 并 init shell,用 Ctrl+R 搜命令历史;需要时再账号同步。
换机器、开新 tab,昨天那条带一长串参数的 docker compose 或 kubectl 命令就找不到了。Atuin 把 shell 历史存进本地 SQLite,用 Ctrl+R 做可搜索的交互界面;需要时再可选注册账号做加密同步。
搜索 Atuin shell 历史 安装 同步 Ctrl+R 导入 bash zsh 的人,通常要完成:安装 CLI、atuin import auto 导入旧历史、在 rc 里 eval "$(atuin init zsh)"、用 Ctrl+R 搜命令。可选步骤是 atuin register / atuin sync。步骤以官方文档 docs.atuin.sh 为准。
Atuin 适合谁
多机、多 tab 的开发者
历史落在本地数据库,可按目录、主机、时间过滤,比纯文本 HISTFILE 更好查。
想保留旧 bash/zsh 历史的人
atuin import auto 一次性导入现有历史,再让新命令写入 Atuin。
需要跨设备同步的人(可选)
注册 Atuin 账号后可端到端加密同步;只用本地搜索可以不注册。
安装 Atuin(macOS / Linux)
- 1
官方安装脚本(通用)
在终端执行官方 Getting Started 中的安装命令,例如
bash <(curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh)(以docs.atuin.sh当前页为准)。装完后新开终端,运行atuin --version。 - 2
macOS:Homebrew
若已用 Homebrew,也可
brew install atuin。不要混用未文档化的第三方安装包。 - 3
Linux 包与发行版
部分发行版提供社区包;文档若列出 cargo、apt 等路径,按对应章节安装。装完同样用
atuin --version验证。 - 4
导入现有 bash/zsh 历史
运行
atuin import auto,Atuin 会尝试从当前 shell 的历史文件导入。导入前可先备份~/.bash_history或 zsh 的HISTFILE。大量历史首次导入可能需几秒。
启用 shell 与 Ctrl+R 搜索
Atuin 必须在 shell 启动时初始化,才会记录每条命令并把 Ctrl+R 绑到 Atuin 搜索 UI:
# zsh (~/.zshrc)
eval "$(atuin init zsh)"
# bash (~/.bashrc)
eval "$(atuin init bash)"
# fish (~/.config/fish/config.fish)
atuin init fish | source保存后 source 该文件或重开终端。随便跑几条命令,再按 Ctrl+R:应出现可输入过滤的全屏或 TUI 列表(具体样式随版本)。在列表里用方向键选择,Enter 插入命令。
可选:账号与加密同步
- 1
仅本地使用
不注册也能搜本机历史。适合单台机器、或不想把历史上传到服务的场景。
- 2
注册与登录
按文档运行
atuin register创建账号,或atuin login登录已有账号。使用官方 Atuin 同步服务时需遵守其隐私与密钥说明。 - 3
手动同步
atuin sync上传/拉取加密历史(具体行为见文档 Sync 章节)。可在 cron 或登录脚本里定期执行,勿在日志里打印 token。 - 4
自托管(进阶)
文档提供自建同步服务器选项;团队合规要求数据不出域时再考虑,配置比默认云同步复杂。
| 命令 | 作用 | 何时用 |
|---|---|---|
atuin search | CLI 里搜历史 | 脚本、SSH 无 TUI 时 |
atuin stats | 统计常用命令 | 复盘工作流 |
atuin import auto | 导入 bash/zsh 历史 | 首次安装后 |
atuin sync | 加密同步(需账号) | 多设备对齐 |
Atuin 管的是命令历史,不替代 dotfiles 备份或密钥管理。含密码、token 的命令仍可能进历史——敏感操作请用
HISTCONTROL、空格前缀(视 shell 配置)或专用密钥库。
结对排查一条长部署命令时,可从 wbroom 首页 开浏览器房间共享屏幕,见 创建与加入房间。
还想核对的问题
Atuin 和 fzf 的 Ctrl+R 能一起用吗?
两者都会绑 Ctrl+R,后加载的 wins。通常二选一:用 Atuin 管全量历史搜索,或继续用 fzf 只搜 HISTFILE。改绑键见各自文档。
import 后历史条数不对?
检查原 HISTFILE 是否完整、zsh 是否启用了共享历史。可再跑 atuin import auto 或按文档指定文件导入。勿重复导入产生大量重复项时可查文档 dedupe 说明。
不同步时数据存在哪?
本地 SQLite 数据库,路径见官方 FAQ(通常在用户配置目录下)。备份机器时请一并备份该库。
fish / nu shell 支持吗?
官方文档列出 fish 等的 atuin init 用法。不支持的 shell 可能只能 CLI atuin search,不能自动记录每条命令。