Atuin 使用 SQLite 数据库取代了你现有的 shell 历史,并为你的命令记录了额外的内容。此外,它还通过 Atuin 服务器,在机器之间提供可选的、完全加密的历史记录同步功能。
除了搜索 UI,它还可以执行以下操作:
# 搜索昨天下午3点之后记录的所有成功的 `make` 命令atuin search --exit 0 --after "yesterday 3pm" make
atuin search <query>
Atuin 搜索还支持带有 * 或 % 字符的通配符。 默认情况下,会执行前缀搜索(即,所有查询都会自动附加通配符)。
举例:
# 打开交互式搜索 TUIatuin search -i# 打开预装了查询的交互式搜索 TUIatuin search -i atuin# 搜索所有以 cargo 开头且成功退出的命令。atuin search --exit 0 cargo# 从当前目录中搜索所有在2021年4月1日之前运行且失败的命令。atuin search --exclude-exit 0 --before 01/04/2021 --cwd .# 搜索所有以 cargo 开头,成功退出且是在昨天下午3点之后运行的命令。atuin search --exit 0 --after "yesterday 3pm" cargo
使用默认的同步服务器
以下将注册至默认的同步服务器,由托管方提供。所有内容采用端到端加密,确保内容安全。
bash <(curl https://raw.githubusercontent.com/ellie/atuin/main/install.sh)atuin register -u <USERNAME> -e <EMAIL> -p <PASSWORD>atuin import autoatuin sync
使用活跃图
除了托管 Atuin 服务器外,还有一个服务可以用来生成你的 shell 历史记录使用活跃图!这个功能的灵感来自于 GitHub 的使用活跃图。
登陆你的同步服务器后,执行:
curl https://api.atuin.sh/enable -d $(cat ~/.local/share/atuin/session)
执行结果为你的活跃图 URL 地址。可以共享或嵌入这个 URL 地址,令牌(token)并不是加密的,只是用来防止被枚举攻击。
仅离线 (不同步)
bash <(curl https://raw.githubusercontent.com/ellie/atuin/main/install.sh)atuin import auto
脚本 (推荐)
# 不要以root身份运行,如果需要的话,会要求root。bash <(curl https://raw.githubusercontent.com/ellie/atuin/main/install.sh)
然后可直接看 Shell 插件
cargo
最好使用 rustup 来设置 Rust 工具链,然后运行命令:
cargo install atuin
然后可直接看 Shell 插件
Homebrew
brew install atuin
然后可直接看 Shell 插件
MacPorts
Atuin 也可以在 MacPorts 中找到sudo port install atuin
然后可直接看 Shell 插件
Pacman
Atuin 在 Arch Linux 的 社区存储库 中可用。pacman -S atuin
然后可直接看 Shell 插件
从源码编译安装
git clone https://github.com/ellie/atuin.gitcd atuin/atuincargo install --path .
然后可直接看 Shell 插件
安装二进制文件后,需要安装 shell 插件。
zsh
echo 'eval "$(atuin init zsh)"' >> ~/.zshrc
或使用插件管理器:
zinit load ellie/atuin
bash
需要设置一些钩子(hooks), 所以首先需要安装 bash-preexec:
curl https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh -o ~/.bash-preexec.shecho '[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh' >> ~/.bashrc
然后设置 Atuin:
echo 'eval "$(atuin init bash)"' >> ~/.bashrc
fish
添加
atuin init fish | source
到 ~/.config/fish/config.fish 文件中的 is-interactive 块中
Fig
通过 Fig 可为 zsh, bash 或 fish 一键安装 atuin 脚本插件。
https://fig.io/