如何使用 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 为准。

安装 Atuinimport 旧历史 · init shellCtrl+R 搜索 · 可选 sync

Atuin 适合谁

01

多机、多 tab 的开发者

历史落在本地数据库,可按目录、主机、时间过滤,比纯文本 HISTFILE 更好查。

02

想保留旧 bash/zsh 历史的人

atuin import auto 一次性导入现有历史,再让新命令写入 Atuin。

03

需要跨设备同步的人(可选)

注册 Atuin 账号后可端到端加密同步;只用本地搜索可以不注册。

安装 Atuin(macOS / Linux)

  1. 1

    官方安装脚本(通用)

    在终端执行官方 Getting Started 中的安装命令,例如 bash <(curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh)(以 docs.atuin.sh 当前页为准)。装完后新开终端,运行 atuin --version。

  2. 2

    macOS:Homebrew

    若已用 Homebrew,也可 brew install atuin。不要混用未文档化的第三方安装包。

  3. 3

    Linux 包与发行版

    部分发行版提供社区包;文档若列出 cargo、apt 等路径,按对应章节安装。装完同样用 atuin --version 验证。

  4. 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. 1

    仅本地使用

    不注册也能搜本机历史。适合单台机器、或不想把历史上传到服务的场景。

  2. 2

    注册与登录

    按文档运行 atuin register 创建账号,或 atuin login 登录已有账号。使用官方 Atuin 同步服务时需遵守其隐私与密钥说明。

  3. 3

    手动同步

    atuin sync 上传/拉取加密历史(具体行为见文档 Sync 章节)。可在 cron 或登录脚本里定期执行,勿在日志里打印 token。

  4. 4

    自托管(进阶)

    文档提供自建同步服务器选项;团队合规要求数据不出域时再考虑,配置比默认云同步复杂。

命令作用何时用
atuin searchCLI 里搜历史脚本、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,不能自动记录每条命令。

开始一场会议