$ terminals _

Atuin

推荐

用 SQLite、上下文检索和端到端加密同步重做 Shell 历史,让 Ctrl-R 真正跨会话、跨设备可用

🌐 官网 GitHub brew install atuin

简介

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。