我喜欢的 shell 工具

我喜欢的 shell 工具

💡 原文中文,约2600字,阅读约需7分钟。
📝

内容提要

这篇文章介绍了几个命令行小工具,包括percol、atuin、tmux和just,可以提高工作效率。作者还提到了zellij和rustc-justfile这两个工具。

🔎

延伸解读

percol 的通用管道设计

percol 遵循 Unix 哲学,只通过管道接收输入并返回选择结果,因此能嵌入任何需要交互选择的命令链中。文章展示了用它选择 git 分支、进程和测试文件,还通过 tmux 配置实现 session 和 window 的模糊查找。这种设计让 percol 不局限于特定场景,读者可以将其灵活组合到自己的脚本或别名中。

atuin 的历史记录增强

atuin 将 shell 历史存储在 SQLite 数据库中,相比传统历史文件支持更丰富的查询。它还提供跨机器同步功能,但需要加密通信。作者目前仅将 Ctrl-R 绑定到 atuin,未使用同步。对于需要频繁检索历史命令的用户,atuin 的数据库方案可能带来更高效的体验。

tmux 在远程环境中的实用性

作者在通过网页跳板机登录服务器时,因网络不稳定而频繁重新登录,从而发现 tmux 的会话恢复能力非常实用。配合 tmux-resurrect 和 tmux-continuum 插件,即使机器重启,session 也能恢复如初。作者认为,相比新兴的 zellij,tmux 在远程服务器上更普遍可用,因此更推荐使用。

just 作为命令运行器的优势

just 的语法比 Makefile 更简单直观,作者在 rustc-dev 项目中大量使用 justfile 管理常用命令。通过将频繁调整的参数放在命令末尾,可以方便地测试不同用例。例如,定义 test-one 任务后,执行 just test-one SPEC 就能灵活测试。对于需要简化命令管理的开发者,just 是一个值得尝试的工具。

❓

Q&A

percol 工具的主要功能是什么?

percol 是一个模糊搜索工具,可以通过管道接收输入并返回结果,方便用户选择。

atuin 如何记录和同步 shell 历史?

atuin 记录 shell 历史到 SQLite 数据库,并支持不同机器之间的加密同步。

tmux 有哪些主要优点?

tmux 是一个终端复用工具,适合在不稳定网络下使用,支持会话恢复。

just 工具与 Makefile 有什么区别?

just 的语法比 Makefile 更简单直观,适合管理常用命令。

如何使用 percol 选择 git 分支?

可以通过命令 'git branch | percol' 来模糊查找并选择 git 分支。

作者对 zellij 的看法是什么?

作者认为 zellij 使用更老的 tmux 会更方便,因为远程服务器必然有 tmux。

🏷️

标签

➡️

继续阅读