跳转至

Shell 函数

本文译自 The Omarchy Manual — Shell Functions,同步自 basecamp/omarchy@ed7bae4。术语以 TERMS.md 为准。

Omarchy 自带一组 shell 函数,用来简化常见任务、封装复杂的参数调用。

压缩

  • compress [file/dir]:把文件/目录打成 tar.gz 归档。
  • decompress [file.tar.gz]:解开 tar.gz 文件。

磁盘

  • iso2sd [image.iso]:用指定的 iso 文件制作可启动 U 盘/SD 卡,交互式选择目标盘。
  • format-drive [device] [name]:把整块磁盘格式化为单个 exFAT 分区(Windows 和 macOS 也能读)。不带参数运行可查看可用磁盘。小心使用!

开发布局

tmux 的即开即用多面板开发布局:

  • tdl [ai]:创建带编辑器、AI Agent 和终端的 Tmux Dev Layout。使用 Agent 别名,如 tdl c 开 opencode、tdl cx 开 Claude Code;传第二个 Agent 可同时跑俩,如 tdl c cx
  • tds:创建 Tmux Dev Square,含编辑器、diff 监视(经 hunk diff --watch)、终端和 opencode。
  • tdlm [ai]:为当前目录下的每个子目录各创建一个 tdl 窗口。
  • tsl [count] [command]:创建网格平铺的面板蜂群,全部运行同一条命令(跑 AI Agent 特别合适)。

同样的布局在 Herdr 里对应 hdlhdshdlmhsl

Git worktree

  • ga [branch]:在当前仓库旁新建 worktree 和分支并跳进去。
  • gd:删除当前 worktree 及其分支(先要求确认)。

Rsync 监视器

  • rsw [source] [destination]:启动后台监视器,源一有变化就 rsync 到目标。目标可以是远程主机,比如 rsw ~/Work/app nyc-dev:Work/app
  • lsw:列出所有活跃监视器。
  • dsw:停止所有活跃监视器。

SSH 端口转发

适合对着远程机器做需要 localhost 安全上下文特权的 Web 开发。

  • fip:把远程主机的一个或多个端口经 SSH 转发到 localhost。
  • dip:断开一个或多个已转发的端口。
  • lip:列出所有活跃的 SSH 端口转发。

假设你在可访问为 nyc-dev 的机器上起了个 3000 端口的开发服务器,那么运行 fip nyc-dev 3000 转发该端口后,localhost:3000 实际到达的是 nyc-dev:3000——而且无需 SSL 证书就能获得测试 WebSocket 等所需的安全上下文。

SSH 自动重连

ssh 本身也被包了一层函数:当远程 tmux、Herdr 或编辑器占着终端而连接断掉时清理终端状态,并在交互会话掉线时自动重连(Ctrl-C 可停止重试循环)。