Atuin:给 Shell 历史记录装一台时光机,Ctrl+R 从此变成神器

用过终端的人,多多少少都被命令历史折磨过:按…

用过终端的人,多多少少都被命令历史折磨过:按上箭头翻半天找不到昨天那条长命令,Ctrl+R 只能搜最近几条,换个机器、换个容器,历史记录全清零。今天给大伙推荐一个工具——Atuin,它把 Shell 历史升级成了带加密同步、全文搜索、统计报表的「命令时光机」。

Atuin 是 Rust 写的,启动快、内存省,bash、zsh、fish、nushell 都支持。它把你敲过的每一条命令存进本地 SQLite,还能可选地同步到云端(官方服务或者你自己搭的服务器),端到端加密。最关键的是它替换 Ctrl+R 的交互界面:全屏 TUI、模糊搜索、实时预览、方向键上下翻、回车直接执行,比默认的反向搜索好用十倍。

一条命令装好

安装脚本一键到位:

curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh

想用包管理器的也可以:brew install atuincargo install atuin,各发行版仓库基本也都有。装完第一步是注册一个账号(同步用):

atuin register -u yourname -e you@example.com

然后在 ~/.bashrc~/.zshrc 末尾加一行,让它接管你的历史记录:

eval "$(atuin init bash)"

最后把现有的历史导进去,别浪费了这些年攒下的命令:

atuin import auto

日常就这么用

日常三个高频动作:Ctrl+R 打开全屏搜索,敲几个关键词就能命中几个月前的命令;atuin search 关键词 在命令行里直接搜;atuin stats 看看你最常用的命令是啥——大概率是 git statusls,别问我是怎么知道的。

本地优先党可以自建同步服务

Atuin 默认连官方服务器同步历史。如果你跟我一样是「本地优先」党,不想把敲过的命令放别人服务器上,官方提供了 docker-compose,一个 Postgres 加一个 Atuin 服务容器,起起来就是自己的同步节点。配置文件里把 sync_address 指到内网地址,历史数据就全在自己手里,加密、离线、随时可用。

对我来说,Atuin 最大的价值不是「多炫」,而是它把命令历史从一个易失的缓存,变成了可检索、可同步、可统计的资产。敲过的每一条命令,都是踩坑踩出来的经验,现在终于能找回来了。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注