Shell 与 SQLite 数据库完美结合,实现同步记录!

Shell 与 SQLite 数据库完美结合,实现同步记录!Atuin 使用 SQLite 数据库取代了你现有的 shell 历史,并为你的命令记录了额外的内容。此外,它还通过 Atuin 服务器,在机器之间提供可选的、完全加密的历史记录同步功能。Shell 与 SQLite 数据库完美结合,实现同步记录!「显示退出代码、命令持续时间、上次执行时间和执行的命令」

除了搜索 UI,它还可以执行以下操作:

# 搜索昨天下午3点之后记录的所有成功的 `make` 命令
atuin search --exit 0 --after "yesterday 3pm" make

功能

  • 重新绑定 upctrl-r 的全屏历史记录搜索 UI 界面
  • 使用 sqlite 数据库存储 shell 历史记录
  • 备份以及同步已加密的 shell 历史记录
  • 在不同的终端、不同的会话以及不同的机器上都有相同的历史记录
  • 记录退出代码、cwd、主机名、会话、命令持续时间,等等
  • 计算统计数据,如 “最常用的命令”
  • 不替换旧的历史文件
  • 通过 Alt-<num> 快捷键快速跳转到之前的记录
  • 通过 ctrl-r 切换过滤模式;可以仅从当前会话、目录或全局来搜索历史记录

历史记录搜索

atuin search <query>

Atuin 搜索还支持带有 *% 字符的通配符。默认情况下,会执行前缀搜索(即,所有查询都会自动附加通配符)。Shell 与 SQLite 数据库完美结合,实现同步记录!举例:

# 打开交互式搜索 TUI
atuin search -i

# 打开预装了查询的交互式搜索 TUI
atuin 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 auto
atuin 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.git
cd atuin/atuin
cargo install --path .

然后可直接看 Shell 插件

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.sh
echo '[[ -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/

传送门

开源协议:MIT

开源地址:https://github.com/ellie/atuin

项目合集:https://github.com/OpenTechCol/OpenTechCol

「回复【加群】加入开源技术交流群,干货很多!」

-END-


原文始发于微信公众号(开源技术专栏):Shell 与 SQLite 数据库完美结合,实现同步记录!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/145730.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!