培训归来:把新命令收纳到 shell 的命名约定
本机暂存
<blockquote><p>上次杜老师讲了”培训归来 3 步收纳”的方法,不少小伙伴留言问:alias 到底怎么起名字,才不会跟系统命令打架?今天杜老师就把命名约定这件事单拎出来讲一讲。</p></blockquote><span id="more"></span><h2 id="一、为什么命名约定重要"><a href="#一、为什么命名约定重要" class="headerlink" title="一、为什么命名约定重要"></a>一、为什么命名约定重要</h2><p>杜老师一开始是这种写法:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">alias k='kubectl'</span><br><span class="line">alias kg='kubectl get'</span><br><span class="line">alias kgp='kubectl get pod'</span><br></pre></td></tr></table></figure><p>用了不到一周就发现:</p><ul><li>敲 <code>k</code> 经常跟某些命令冲突</li><li>自己都记不清哪个 alias 对应哪条长命令</li><li>别人用电脑时一脸茫然</li></ul><p>后来杜老师定了一套约定,再没出现过这些问题。</p><h2 id="二、杜老师的-3-条命名约定"><a href="#二、杜老师的-3-条命名约定" class="headerlink" title="二、杜老师的 3 条命名约定"></a>二、杜老师的 3 条命名约定</h2><h3 id="约定-1:所有-alias-加统一前缀"><a href="#约定-1:所有-alias-加统一前缀" class="headerlink" title="约定 1:所有 alias 加统一前缀"></a>约定 1:所有 alias 加统一前缀</h3><p>杜老师用的是 <code>x</code> 前缀:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">alias xk='kubectl'</span><br><span class="line">alias xkg='kubectl get'</span><br><span class="line">alias xkgp='kubectl get pod'</span><br></pre></td></tr></table></figure><p>好处有两个:</p><ul><li>不会跟系统命令冲突</li><li>shell 按 <code>x</code> 找,能一键列出自己的所有 alias</li></ul><p>您可以选自己的前缀,但<strong>一定保持一致</strong>。</p><h3 id="约定-2:短前缀按”频次”分层"><a href="#约定-2:短前缀按”频次”分层" class="headerlink" title="约定 2:短前缀按”频次”分层"></a>约定 2:短前缀按”频次”分层</h3><p>杜老师的分层是这样的:</p><ul><li>每天用:<code>xk</code> <code>xd</code> <code>xg</code>(2 个字母)</li><li>每周用:<code>xkg</code> <code>xdc</code>(3 个字母)</li><li>偶尔用:保留长命令,不加 alias</li></ul><p>这样按 <code>x<1字符></code> 就能列出高频命令。</p><h3 id="约定-3:动作在前,对象在后"><a href="#约定-3:动作在前,对象在后" class="headerlink" title="约定 3:动作在前,对象在后"></a>约定 3:动作在前,对象在后</h3><p>杜老师的命名顺序是 <strong>“工具 + 子命令”</strong>:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">xkgp ← kubectl get pod</span><br><span class="line">xkga ← kubectl get pod -A</span><br><span class="line">xdc ← docker compose</span><br><span class="line">xdcl ← docker compose logs -f</span><br></pre></td></tr></table></figure><p>不是 <code>xkpg</code>,也不是 <code>kgp</code>。</p><p>按这种顺序,敲到第二个字母基本能猜出完整 alias。</p><h2 id="三、杜老师自己的-zshrc-local-节选"><a href="#三、杜老师自己的-zshrc-local-节选" class="headerlink" title="三、杜老师自己的 .zshrc.local 节选"></a>三、杜老师自己的 <code>.zshrc.local</code> 节选</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"># === kubectl ===</span><br><span class="line">alias xk='kubectl'</span><br><span class="line">alias xkg='kubectl get'</span><br><span class="line">alias xkgp='kubectl get pod'</span><br><span class="line">alias xkga='kubectl get pod -A'</span><br><span class="line"></span><br><span class="line"># === docker ===</span><br><span class="line">alias xd='docker'</span><br><span class="line">alias xdc='docker compose'</span><br><span class="line">alias xdcl='docker compose logs -f'</span><br><span class="line"></span><br><span class="line"># === 自学 ===</span><br><span class="line">alias xv='vim'</span><br><span class="line">alias xll='ls -lah'</span><br><span class="line">alias xg='git'</span><br><span class="line">alias xgs='git status'</span><br></pre></td></tr></table></figure><p>注意:高频命令才加 alias,一个月用不到 3 次的保持长命令。</p><h2 id="四、约定一旦定下来,别轻易改"><a href="#四、约定一旦定下来,别轻易改" class="headerlink" title="四、约定一旦定下来,别轻易改"></a>四、约定一旦定下来,别轻易改</h2><p>杜老师自己踩过这个坑:</p><ul><li>前缀从 <code>x</code> 改成 <code>m</code>,结果老的 alias 全部失效</li><li>命令顺序从”工具+子命令”改成”子命令+工具”,每次都敲错</li></ul><p>约定一旦定下来,至少用半年再考虑调整。</p><h2 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h2><p>培训命令收纳这件事,杜老师觉得”命名约定是性价比最高的一步”。</p><p>希望对同样每天跟命令打交道的您有所启发。如果您有别的命名方式,欢迎评论区留言分享。咱们下期见!</p><h2 id="看完记得"><a href="#看完记得" class="headerlink" title="看完记得"></a>看完记得</h2><p>如果您觉得本文对您有帮助,记得收藏、点赞、分享给身边的小伙伴哦!更多精彩内容,欢迎关注杜老师说,咱们下期见!</p>
同分类推荐文章
- 用 CLIProxyAPI 把 Codex 变成一个 OpenAI 兼容的 API 服务 (2026-07-12 22:05:00)
- 读完 Bun 用 Rust 重写:1 个人 11 天重写 50 万行代码是怎么做到的 (2026-07-12 08:00:00)
- 百度网络监控工具开源第四弹:evr — 构造 VXLAN 探测 (2026-06-30 23:15:45)
建议继续学习
- Git常用命令备忘 (累计阅读 54,756)
- Git log diff config高级进阶 (累计阅读 24,886)
- Bash的模式和配置文件加载 (累计阅读 24,447)
- Git subtree 要不要使用 –squash 参数 (累计阅读 23,445)
- 我的git笔记 (累计阅读 20,315)
- 28个Unix/Linux的命令行神器 (累计阅读 16,841)
- 我常用的主机监控shell脚本 (累计阅读 13,509)
- 公司倒了,请让领导先走 (累计阅读 13,456)
- 100个常用的linux命令 (累计阅读 11,664)
- Linux命令行里的“瑞士军刀” (累计阅读 11,618)