<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>终端与包管理 on 扎塔-Zata</title><link>https://www.zata.cc/tags/%E7%BB%88%E7%AB%AF%E4%B8%8E%E5%8C%85%E7%AE%A1%E7%90%86/</link><description>Recent content in 终端与包管理 on 扎塔-Zata</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>扎塔-Zata</copyright><lastBuildDate>Thu, 24 Sep 2026 17:09:06 +0800</lastBuildDate><atom:link href="https://www.zata.cc/tags/%E7%BB%88%E7%AB%AF%E4%B8%8E%E5%8C%85%E7%AE%A1%E7%90%86/index.xml" rel="self" type="application/rss+xml"/><item><title>新电脑快速配置-scoop</title><link>https://www.zata.cc/p/%E6%96%B0%E7%94%B5%E8%84%91%E5%BF%AB%E9%80%9F%E9%85%8D%E7%BD%AE-scoop/</link><pubDate>Tue, 10 Feb 2026 11:59:09 +0800</pubDate><guid>https://www.zata.cc/p/%E6%96%B0%E7%94%B5%E8%84%91%E5%BF%AB%E9%80%9F%E9%85%8D%E7%BD%AE-scoop/</guid><description>&lt;img src="https://www.zata.cc/p/%E6%96%B0%E7%94%B5%E8%84%91%E5%BF%AB%E9%80%9F%E9%85%8D%E7%BD%AE-scoop/images/index/index.png" alt="Featured image of post 新电脑快速配置-scoop" />&lt;h1 id="windows-注意要最好打开clash的tun模式">windows (注意要最好打开clash的TUN模式)
&lt;/h1>&lt;ol>
&lt;li>
&lt;p>必备开发工具安装：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">Set-ExecutionPolicy&lt;/span> &lt;span class="n">RemoteSigned&lt;/span> &lt;span class="n">-Scope&lt;/span> &lt;span class="n">CurrentUser&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">irm &lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">scoop&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">sh&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="nb">iex
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">scoop&lt;/span> &lt;span class="n">install&lt;/span> &lt;span class="n">git&lt;/span> &lt;span class="n">uv&lt;/span> &lt;span class="n">just&lt;/span> &lt;span class="n">nvm&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>安装wsl,执行命令,然后重启电脑,使用管理员打开powershell,输入wsl &amp;mdash;- &lt;a class="link" href="https://learn.microsoft.com/en-us/windows/wsl/install" target="_blank" rel="noopener"
>官方教程&lt;/a>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">wsl&lt;/span> &lt;span class="p">-&lt;/span>&lt;span class="n">-install&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>进入wsl后必须安装&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo apt update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt install git just -y
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl -LsSf https://astral.sh/uv/install.sh &lt;span class="p">|&lt;/span> sh
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh &lt;span class="p">|&lt;/span> bash
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>必安装软件&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://code.visualstudio.com/insiders" target="_blank" rel="noopener"
>vscode下载地址&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://www.docker.com/get-started/" target="_blank" rel="noopener"
>docker下载地址&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/clash-verge-rev/clash-verge-rev" target="_blank" rel="noopener"
>clash下载地址&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://docs.cherry-ai.com/cherry-studio/download" target="_blank" rel="noopener"
>cherry studio下载地址&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/farion1231/cc-switch/releases" target="_blank" rel="noopener"
>cc-swith下载地址&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://code.claude.com/docs/en/overview" target="_blank" rel="noopener"
>claude code下载地址 &amp;mdash; 最好开tun模式或者设置代理端口环境变量&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://developers.openai.com/codex/cli/" target="_blank" rel="noopener"
>codex下载地址&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>额外插件安装&lt;/p>
&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>
&lt;p>智能桌面助手&amp;ndash;主要功能是查看当前输入法是中/英文&lt;/p>
&lt;p>&lt;a class="link" href="https://github.com/aardio/ImTip" target="_blank" rel="noopener"
>ImTip 智能桌面助手&lt;/a>&lt;/p>
&lt;/li>
&lt;/ul></description></item><item><title>多台电脑环境变量(.env)同步方案</title><link>https://www.zata.cc/p/%E5%A4%9A%E5%8F%B0%E7%94%B5%E8%84%91%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F.env%E5%90%8C%E6%AD%A5%E6%96%B9%E6%A1%88/</link><pubDate>Sat, 07 Feb 2026 15:06:19 +0800</pubDate><guid>https://www.zata.cc/p/%E5%A4%9A%E5%8F%B0%E7%94%B5%E8%84%91%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F.env%E5%90%8C%E6%AD%A5%E6%96%B9%E6%A1%88/</guid><description>&lt;img src="https://www.zata.cc/p/%E5%A4%9A%E5%8F%B0%E7%94%B5%E8%84%91%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F.env%E5%90%8C%E6%AD%A5%E6%96%B9%E6%A1%88/images/index/index.png" alt="Featured image of post 多台电脑环境变量(.env)同步方案" />&lt;h1 id="多台电脑环境变量env同步方案">多台电脑环境变量(.env)同步方案
&lt;/h1>&lt;p>在多台电脑之间同步环境变量（&lt;code>.env&lt;/code>）确实是一个痛点，因为我们既要保证&lt;strong>方便&lt;/strong>（换台电脑就能跑），又要保证&lt;strong>安全&lt;/strong>（不上传到 Git）。&lt;/p>
&lt;p>以下是目前行业内主流的几种管理方案，按&lt;strong>推荐程度&lt;/strong>排序：&lt;/p>
&lt;p>&lt;strong>方案一：手动同步 + 密码管理器（最安全、最通用）&lt;/strong>&lt;/p>
&lt;p>这是最基础也最稳妥的做法，适合个人或小型项目。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>操作&lt;/strong>：在 Git 中只保留 &lt;code>.env.example&lt;/code>。&lt;/li>
&lt;li>&lt;strong>同步&lt;/strong>：将真实的 &lt;code>.env&lt;/code> 内容存放在 &lt;strong>1Password、Bitwarden 或 飞书文档/Notion&lt;/strong> 的加密笔记中。&lt;/li>
&lt;li>&lt;strong>流程&lt;/strong>：在新电脑上：&lt;/li>
&lt;/ul>
&lt;ol>
&lt;li>&lt;code>git clone&lt;/code> 项目。&lt;/li>
&lt;li>从密码管理器复制配置。&lt;/li>
&lt;li>&lt;code>vi .env&lt;/code> 粘贴进去。&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>方案二：使用 1Password / Doppler 等专业工具（最优雅）&lt;/strong>&lt;/p>
&lt;p>如果你不想手动复制粘贴，现在有很多专业的 &lt;strong>Secrets Management (秘密管理)&lt;/strong> 工具。&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Doppler (推荐)&lt;/strong>：它像是一个云端的 &lt;code>.env&lt;/code> 管理器。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>你在云端配置变量。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>在不同电脑上安装 Doppler CLI。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>运行 &lt;code>doppler run -- python main.py&lt;/code>，它会自动把云端的变量注入到进程中，本地根本不需要 &lt;code>.env&lt;/code> 文件。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>1Password CLI&lt;/strong>：如果你用 1Password，它支持直接将变量注入到本地环境。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>方案三：私有的&amp;quot;配置仓库&amp;quot;（进阶方案）&lt;/strong>&lt;/p>
&lt;p>如果你有很多项目，每个项目都有 &lt;code>.env&lt;/code>，你可以创建一个&lt;strong>私有的 Git 仓库&lt;/strong>（比如叫 &lt;code>my-secrets&lt;/code>）专门存这些文件。&lt;/p>
&lt;ol>
&lt;li>创建一个私有仓库（只有你自己能访问）。&lt;/li>
&lt;li>按照项目名存放文件：&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/my-secrets
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> /project-a/.env
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> /project-b/.env
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="3">
&lt;li>在不同电脑上拉取这个私有仓库。&lt;/li>
&lt;li>使用软链接（Symbolic Link）把文件连过去：
&lt;code>ln -s ~/my-secrets/project-a/.env ~/projects/project-a/.env&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>方案四：云端网盘同步（最简单但有风险）&lt;/strong>&lt;/p>
&lt;p>使用 iCloud、Dropbox 或 Google Drive 同步一个专门的配置文件夹。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>注意&lt;/strong>：&lt;strong>千万不要&lt;/strong>直接同步整个项目文件夹（会导致 node_modules 或 git 冲突）。&lt;/li>
&lt;li>&lt;strong>做法&lt;/strong>：只同步一个 &lt;code>EnvBackups&lt;/code> 文件夹。换电脑时，从网盘拷贝到项目目录下。&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>核心逻辑对比表&lt;/strong>&lt;/p>
&lt;p>为了帮你决定，参考下表：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>方案&lt;/th>
&lt;th>便捷性&lt;/th>
&lt;th>安全性&lt;/th>
&lt;th>适用场景&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>密码管理器&lt;/strong>&lt;/td>
&lt;td>⭐⭐⭐&lt;/td>
&lt;td>⭐⭐⭐⭐⭐&lt;/td>
&lt;td>个人项目、密钥不频繁变动&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Doppler/Vault&lt;/strong>&lt;/td>
&lt;td>⭐⭐⭐⭐⭐&lt;/td>
&lt;td>⭐⭐⭐⭐⭐&lt;/td>
&lt;td>自动化要求高、多服务、团队协作&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>私有配置库&lt;/strong>&lt;/td>
&lt;td>⭐⭐⭐&lt;/td>
&lt;td>⭐⭐⭐⭐&lt;/td>
&lt;td>深度 Git 用户、多项目管理&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>云网盘&lt;/strong>&lt;/td>
&lt;td>⭐⭐⭐⭐&lt;/td>
&lt;td>⭐⭐&lt;/td>
&lt;td>个人开发者、非极其敏感数据&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>我的建议&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>&lt;strong>首选&lt;/strong>：使用 &lt;strong>&lt;code>.env.example&lt;/code>&lt;/strong> 记录结构，真实内容存在 &lt;strong>密码管理器&lt;/strong>。这能养成良好的安全习惯。&lt;/li>
&lt;li>&lt;strong>次选&lt;/strong>：如果你项目非常多，尝试 &lt;strong>Doppler&lt;/strong>。它可以跨平台（Windows/Mac/Linux）同步，且免费额度对个人开发者非常友好。&lt;/li>
&lt;li>&lt;strong>禁止&lt;/strong>：绝对不要为了图方便把 &lt;code>.env&lt;/code> 传到公共仓库，哪怕是私有仓库，也要确保没有包含生产环境的最核心密钥（如银行支付接口等）。&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>你想尝试配置一下 Doppler 这种云端同步方案，还是想看如何写一个脚本自动从私有目录同步配置？&lt;/strong>&lt;/p></description></item><item><title>nvm</title><link>https://www.zata.cc/p/nvm/</link><pubDate>Thu, 05 Feb 2026 16:53:23 +0800</pubDate><guid>https://www.zata.cc/p/nvm/</guid><description>&lt;img src="https://www.zata.cc/p/nvm/images/index/index.png" alt="Featured image of post nvm" />&lt;h1 id="安装使用">安装使用
&lt;/h1>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> ~ &lt;span class="c1"># Switch to Linux Home Directory&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh &lt;span class="p">|&lt;/span> bash &lt;span class="c1"># Install Node.js via NVM (Recommended)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#或者如果网络不行，使用下面的国内镜像去拉取&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># curl -o- https://cdn.jsdelivr.net/gh/nvm-sh/nvm@v0.40.3/install.sh | bash&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 如果还是不行，应该是解析的问题&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 查看raw.githubusercontent.com的解析地址，如果是0.0.0.0就是有问题的，使用sudo apt install dnsutils 安装nslookup&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#nslookup raw.githubusercontent.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 如果是解析问题，使用 Google DNS（8.8.8.8）, 修改好解析之后在进行上一步&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#echo &amp;#34;nameserver 8.8.8.8&amp;#34; | tee /etc/resolv.conf &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">. &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$HOME&lt;/span>&lt;span class="s2">/.nvm/nvm.sh&amp;#34;&lt;/span> &lt;span class="c1"># Activate NVM without restarting:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">nvm install &lt;span class="m">20&lt;/span> &lt;span class="c1"># Install Node.js version 20 (LTS):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">node --version &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> npm --version &lt;span class="c1"># Verify Installation&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>homebrew</title><link>https://www.zata.cc/p/homebrew/</link><pubDate>Sun, 01 Feb 2026 19:57:49 +0800</pubDate><guid>https://www.zata.cc/p/homebrew/</guid><description>&lt;img src="https://www.zata.cc/p/homebrew/images/index/index.png" alt="Featured image of post homebrew" />&lt;h1 id="homebrew-完全指南从安装到高效使用2026-最新版">Homebrew 完全指南：从安装到高效使用（2026 最新版）
&lt;/h1>&lt;blockquote>
&lt;p>本文全面介绍 macOS 和 Linux 下最流行的包管理器 Homebrew，涵盖安装、配置、常用命令、实战技巧及常见问题排查，助你成为命令行效率大师。&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>Homebrew（昵称 &lt;em>brew&lt;/em>）是 macOS 和 Linux 上开源的包管理器，被誉为 &amp;ldquo;The Missing Package Manager for macOS&amp;rdquo;。它允许你用一行命令安装数千款开发工具、应用和库，无需手动编译或处理依赖。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 传统方式（繁琐）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./configure &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> make &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> sudo make install
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Homebrew（优雅）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install node
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Homebrew 的优势在于其简单直观的操作方式，无需管理员权限即可安装软件，能够自动解决软件依赖关系，支持大量可用软件包（formulae），同时还能支持 macOS 和 Linux 平台。此外，它还提供了 Cask 来安装图形界面应用，以及 Bottles 来使用预编译二进制文件。&lt;/p>
&lt;hr>
&lt;p>从 Homebrew 4.0 起，官方在 &lt;a class="link" href="https://brew.sh" target="_blank" rel="noopener"
>brew.sh&lt;/a> 首页主推 &lt;code>.pkg&lt;/code> 安装方式，更适合新手。&lt;/p>
&lt;p>&lt;strong>安装步骤：&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>
&lt;p>访问 GitHub Releases：
👉 &lt;a class="link" href="https://github.com/Homebrew/brew/releases/latest" target="_blank" rel="noopener"
>https://github.com/Homebrew/brew/releases/latest&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>下载最新 &lt;code>.pkg&lt;/code> 文件（如 &lt;code>homebrew-4.6.1.pkg&lt;/code>）&lt;/p>
&lt;/li>
&lt;li>
&lt;p>双击安装包，按向导完成安装（需输入密码）&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>自动配置 PATH&lt;/strong>（4.6.0+ 版本已内置，无需手动操作）&lt;/p>
&lt;/li>
&lt;li>
&lt;p>验证安装：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">brew --version
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 输出示例：Homebrew 4.6.1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>💡 安装路径自动选择：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Apple Silicon (M1/M2/M3/M4)&lt;/strong> → &lt;code>/opt/homebrew&lt;/code>&lt;/li>
&lt;li>&lt;strong>Intel Mac&lt;/strong> → &lt;code>/usr/local&lt;/code>&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;p>如果需要，也可以使用传统脚本方法进行安装：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 安装前确保已安装 Xcode 命令行工具&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">xcode-select --install
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 执行官方安装脚本&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">/bin/bash -c &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">$(&lt;/span>curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>⚠️ 安装后若 &lt;code>brew&lt;/code> 命令不可用，请按终端提示配置 PATH：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Apple Silicon&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s1">&amp;#39;eval &amp;#34;$(/opt/homebrew/bin/brew shellenv)&amp;#34;&amp;#39;&lt;/span> &amp;gt;&amp;gt; ~/.zprofile
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">eval&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">$(&lt;/span>/opt/homebrew/bin/brew shellenv&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/blockquote>
&lt;hr>
&lt;p>为了进一步提升 Homebrew 的使用体验，可进行一些基础配置和优化。例如，配置国内镜像源以大幅提升下载速度：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 替换 brew.git 仓库&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git -C &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">$(&lt;/span>brew --repo&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 替换 formulae 源（Apple Silicon）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git -C &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">$(&lt;/span>brew --repo homebrew/core&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Intel Mac 额外替换：&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># git -C &amp;#34;$(brew --repo homebrew/cask)&amp;#34; remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 重置并更新&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew update-reset
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew update
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>🌐 常用镜像源：&lt;/p>
&lt;ul>
&lt;li>清华大学：&lt;code>https://mirrors.tuna.tsinghua.edu.cn&lt;/code>&lt;/li>
&lt;li>中科大：&lt;code>https://mirrors.ustc.edu.cn&lt;/code>&lt;/li>
&lt;li>阿里云：&lt;code>https://mirrors.aliyun.com&lt;/code>&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;p>此外，启用自动补全功能可以让你更高效地使用 Homebrew：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Zsh（macOS Catalina 及以上默认）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s1">&amp;#39;autoload -Uz compinit &amp;amp;&amp;amp; compinit&amp;#39;&lt;/span> &amp;gt;&amp;gt; ~/.zshrc
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew shellenv &amp;gt;&amp;gt; ~/.zshrc
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">source&lt;/span> ~/.zshrc
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Bash&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew shellenv &amp;gt;&amp;gt; ~/.bash_profile
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">source&lt;/span> ~/.bash_profile
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;p>Homebrew 提供了一些核心命令来管理软件包。以下是常用的命令速查表：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>命令&lt;/th>
&lt;th>说明&lt;/th>
&lt;th>示例&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>brew install &amp;lt;pkg&amp;gt;&lt;/code>&lt;/td>
&lt;td>安装软件&lt;/td>
&lt;td>&lt;code>brew install git&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>brew uninstall &amp;lt;pkg&amp;gt;&lt;/code>&lt;/td>
&lt;td>卸载软件&lt;/td>
&lt;td>&lt;code>brew uninstall node&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>brew reinstall &amp;lt;pkg&amp;gt;&lt;/code>&lt;/td>
&lt;td>重装软件&lt;/td>
&lt;td>&lt;code>brew reinstall python@3.12&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>brew upgrade &amp;lt;pkg&amp;gt;&lt;/code>&lt;/td>
&lt;td>升级指定软件&lt;/td>
&lt;td>&lt;code>brew upgrade curl&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>brew upgrade&lt;/code>&lt;/td>
&lt;td>升级所有软件&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>brew cleanup&lt;/code>&lt;/td>
&lt;td>清理旧版本&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>brew list&lt;/code>&lt;/td>
&lt;td>列出已安装软件&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>brew info &amp;lt;pkg&amp;gt;&lt;/code>&lt;/td>
&lt;td>查看软件信息&lt;/td>
&lt;td>&lt;code>brew info nginx&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>brew search &amp;lt;keyword&amp;gt;&lt;/code>&lt;/td>
&lt;td>搜索软件包&lt;/td>
&lt;td>&lt;code>brew search postgres&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>对于 GUI 应用管理，使用 &lt;code>brew install --cask&lt;/code> 命令可以安装图形界面应用：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 安装图形界面应用&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install --cask google-chrome
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install --cask visual-studio-code
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 卸载&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew uninstall --cask iterm2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 查看所有已安装 Cask&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew list --cask
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>💡 Cask 支持的应用包括：Chrome、VS Code、Docker、Obsidian、Raycast 等。&lt;/p>
&lt;/blockquote>
&lt;p>使用 &lt;code>brew search&lt;/code> 和 &lt;code>brew deps&lt;/code> 可以进行软件包的搜索及查看依赖关系：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 搜索软件&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew search python
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 查看可安装的版本&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew search /python@/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 查看软件依赖树&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew deps --tree node
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;p>在实际使用中，Homebrew 可以帮助你快速搭建开发环境。例如，以下命令可以用于配置一个前端开发环境：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1. 安装核心工具链&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install node yarn pnpm git coreutils
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 2. 安装 GUI 工具&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install --cask visual-studio-code iterm2 docker
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3. 安装数据库&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install postgresql redis
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 4. 启动服务（后台运行）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew services start postgresql
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew services start redis
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 5. 验证安装&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">node -v &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> npm -v &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> psql --version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>对于需要管理多个版本 Python 的场景，可以安装特定版本并切换路径：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 安装特定版本&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install python@3.11 python@3.12
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 切换版本（通过 PATH 优先级）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s1">&amp;#39;export PATH=&amp;#34;/opt/homebrew/opt/python@3.11/bin:$PATH&amp;#34;&amp;#39;&lt;/span> &amp;gt;&amp;gt; ~/.zshrc
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">source&lt;/span> ~/.zshrc
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python3 --version &lt;span class="c1"># 输出 3.11.x&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;p>Homebrew 还提供了一些高级技巧，例如使用 &lt;code>brew bundle&lt;/code> 管理项目依赖：&lt;/p>
&lt;p>在项目根目录创建 &lt;code>Brewfile&lt;/code>：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Brewfile&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">brew&lt;/span> &lt;span class="s2">&amp;#34;git&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">brew&lt;/span> &lt;span class="s2">&amp;#34;node&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">brew&lt;/span> &lt;span class="s2">&amp;#34;redis&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cask&lt;/span> &lt;span class="s2">&amp;#34;visual-studio-code&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>一键安装/同步环境：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">brew bundle &lt;span class="c1"># 安装所有依赖&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew bundle cleanup &lt;span class="c1"># 卸载未在 Brewfile 中声明的软件&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>✅ 适合团队协作、新机器快速配置、云开发环境复现&lt;/p>
&lt;/blockquote>
&lt;p>同时还可查看软件安装位置与配置：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 查看安装路径&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew --prefix node
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 查看配置文件位置&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew --prefix redis
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 输出：/opt/homebrew/opt/redis&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 配置文件通常在：/opt/homebrew/etc/redis.conf&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>遇到问题时，可使用以下命令进行诊断与修复：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 检查环境健康状态&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew doctor
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 修复常见问题（如权限、PATH 错误）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew cleanup
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo chown -R &lt;span class="k">$(&lt;/span>whoami&lt;span class="k">)&lt;/span> &lt;span class="k">$(&lt;/span>brew --prefix&lt;span class="k">)&lt;/span>/*
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;p>在实际使用过程中，可能会遇到一些常见问题。以下是一些问题及其解决方案的汇总：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>问题&lt;/th>
&lt;th>解决方案&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>command not found: brew&lt;/code>&lt;/td>
&lt;td>重启终端，或执行 &lt;code>eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>权限错误 &lt;code>/opt/homebrew&lt;/code>&lt;/td>
&lt;td>&lt;code>sudo chown -R $(whoami):admin /opt/homebrew&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>安装卡在 &lt;code>Updating Homebrew...&lt;/code>&lt;/td>
&lt;td>按 &lt;code>Ctrl+C&lt;/code> 取消，配置国内镜像源后重试&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Error: Cannot install under Rosetta 2&lt;/code>&lt;/td>
&lt;td>确保终端以原生 ARM 模式运行（非 Rosetta）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>卸载 Homebrew&lt;/td>
&lt;td>&lt;code>/bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)&amp;quot;&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;p>为了更好地使用 Homebrew，建议遵循以下最佳实践：&lt;/p>
&lt;p>✅ &lt;strong>推荐做法：&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>优先使用 &lt;code>.pkg&lt;/code> 安装器，减少配置烦恼&lt;/li>
&lt;li>定期执行 &lt;code>brew update &amp;amp;&amp;amp; brew upgrade &amp;amp;&amp;amp; brew cleanup&lt;/code>&lt;/li>
&lt;li>用 &lt;code>Brewfile&lt;/code> 管理个人/团队开发环境&lt;/li>
&lt;li>遇到问题先运行 &lt;code>brew doctor&lt;/code> 诊断&lt;/li>
&lt;/ul>
&lt;p>❌ &lt;strong>避免做法：&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>不要混用 &lt;code>sudo brew&lt;/code>（Homebrew 设计为无 sudo 运行）&lt;/li>
&lt;li>不要手动修改 &lt;code>/opt/homebrew&lt;/code> 下的文件结构&lt;/li>
&lt;li>不要同时使用多个镜像源（易导致冲突）&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>如需了解更多 Homebrew 的信息，可以参考以下资源：&lt;/p>
&lt;ul>
&lt;li>官方文档：https://docs.brew.sh&lt;/li>
&lt;li>公式仓库：https://github.com/Homebrew/homebrew-core&lt;/li>
&lt;li>Cask 仓库：https://github.com/Homebrew/homebrew-cask&lt;/li>
&lt;li>社区论坛：https://github.com/Homebrew/discussions&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>Homebrew 不仅是软件安装工具，更是现代开发者的工作流基石。掌握它，意味着你能在几分钟内搭建起完整的开发环境，告别繁琐的手动配置。&lt;/p>
&lt;blockquote>
&lt;p>🚀 &lt;strong>行动建议&lt;/strong>：现在就打开终端，执行 &lt;code>brew install just&lt;/code>，用 justfile 管理你的常用命令，体验效率飞跃！&lt;/p>
&lt;/blockquote>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 创建你的第一个 justfile&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s1">&amp;#39;hello:
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> echo &amp;#34;Hello from Homebrew!&amp;#34;&amp;#39;&lt;/span> &amp;gt; justfile
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">just hello
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Happy Brewing! 🍻&lt;/p>
&lt;h1 id="homebrew-为什么它是-macos-上的必备工具">Homebrew 为什么它是 macOS 上的必备工具
&lt;/h1>&lt;p>Homebrew 是一款 macOS（现在也支持 Linux）的&lt;strong>包管理器&lt;/strong>（Package Manager），它的口号是“macOS 缺失的软件包的管理器”。对于任何想要深度掌握 macOS 的用户（尤其是开发者、设计师或极客）来说，Homebrew 几乎是“必装”的神器。&lt;/p>
&lt;p>你可以把 &lt;strong>Homebrew&lt;/strong> 理解为 macOS 上的“软件管家”或“应用商店”，但它是通过**命令行（Terminal）**来运作的，而且比普通的 App Store 强大得多。以下是关于 Homebrew 的全方位解读，包括你提到的一系列问题，以及我认为你需要知道的额外信息。&lt;/p>
&lt;p>Homebrew 的特点包括：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>极简操作：&lt;/strong> 不需要去浏览器搜索官网、下载 &lt;code>.dmg&lt;/code> 文件、拖拽到 Applications 文件夹。一行命令搞定一切。&lt;/li>
&lt;li>&lt;strong>依赖管理（杀手级特性）：&lt;/strong> 很多软件需要依赖其他的小程序库才能运行。如果你手动安装，经常会遇到“缺少 xxx 库”的报错。Homebrew 会自动把这些“依赖包”全部帮你下载并配置好。&lt;/li>
&lt;li>&lt;strong>沙盒安装：&lt;/strong> Homebrew 会将软件包安装到独立目录（Apple Silicon 芯片在 &lt;code>/opt/homebrew&lt;/code>，Intel 芯片在 &lt;code>/usr/local/Cellar&lt;/code>），然后通过“软链接”整合到系统里。这意味着它不会弄乱你的系统核心文件，删除时也能删得很干净。&lt;/li>
&lt;li>&lt;strong>开源免费：&lt;/strong> 它完全由社区驱动，配方（Formulae）更新速度极快。&lt;/li>
&lt;/ul>
&lt;p>如果你只是偶尔装个微信或 Word，可能不需要它。但如果你有以下需求，它是必须的：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>安装开发者工具：&lt;/strong> 比如 Python, Node.js, Git, MySQL 等。这些工具在 App Store 里找不到，去官网下载配置环境变量又非常麻烦，Homebrew 能一键搞定。&lt;/li>
&lt;li>&lt;strong>统一管理与更新：&lt;/strong> 你的电脑里装了50个软件，怎么更新？一个一个打开检查更新吗？用 Homebrew，只需要输入 &lt;code>brew upgrade&lt;/code>，所有通过它安装的软件都会自动升级到最新版。&lt;/li>
&lt;li>&lt;strong>脚本化部署：&lt;/strong> 如果你换了新 Mac，不需要花一天时间重新下载软件。你可以导出一个 Homebrew 列表文件，在新电脑上运行一行命令，所有软件自动装好。&lt;/li>
&lt;/ol>
&lt;p>虽然 Homebrew 是目前 macOS 上最主流的选择，但也有其他替代品：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>替代品&lt;/th>
&lt;th>特点&lt;/th>
&lt;th>评价&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>MacPorts&lt;/strong>&lt;/td>
&lt;td>历史悠久，模仿 FreeBSD 的 Ports 系统。&lt;/td>
&lt;td>&lt;strong>更严谨&lt;/strong>。它在完全独立的目录中编译和安装软件，不依赖 macOS 自带的库。这使得它更稳定，但占用空间更大，编译时间更长。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Nix&lt;/strong>&lt;/td>
&lt;td>跨平台，基于纯函数式语言的包管理器。&lt;/td>
&lt;td>&lt;strong>更极客&lt;/strong>。它非常强大，支持回滚版本、多版本共存，能保证环境绝对一致。但学习曲线极陡峭，适合高级开发者。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>App Store&lt;/strong>&lt;/td>
&lt;td>苹果官方商店。&lt;/td>
&lt;td>&lt;strong>更安全但受限&lt;/strong>。适合普通用户下载日常 App，但不仅没有开发工具，且很多开源软件因为审核原因无法上架。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>手动安装&lt;/strong>&lt;/td>
&lt;td>下载 DMG/PKG 文件。&lt;/td>
&lt;td>&lt;strong>最原始&lt;/strong>。难以管理更新，卸载往往残留垃圾文件。&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>结论：&lt;/strong> 对于 95% 的 macOS 用户，&lt;strong>Homebrew 是最佳选择&lt;/strong>，因为它的社区最活跃，软件库最全。&lt;/p>
&lt;p>除了基础功能，Homebrew 还有几个关键概念，理解它们能让你成为真正的“高阶用户”。&lt;/p>
&lt;p>什么是 Cask？（Homebrew 的 GUI 扩展）&lt;/p>
&lt;p>很多人以为 Homebrew 只能装黑底白字的命令行工具（如 Git）。其实不是！Homebrew 有一个扩展叫 &lt;strong>Homebrew Cask&lt;/strong>。&lt;/p>
&lt;ul>
&lt;li>&lt;code>brew install python&lt;/code> -&amp;gt; 安装的是&lt;strong>命令行工具&lt;/strong>（配方 Formula）。&lt;/li>
&lt;li>&lt;code>brew install --cask google-chrome&lt;/code> -&amp;gt; 安装的是&lt;strong>图形界面软件&lt;/strong>（比如 Chrome, VS Code, IINA, Discord, 微信等）。
&lt;strong>这意味着你可以用 Homebrew 管理你电脑上几乎所有的软件。&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>如何维护和清理？&lt;/p>
&lt;p>Homebrew 下载安装包后，默认会保留旧版本的缓存。时间久了会占用几十 GB 空间。&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>常用命令：&lt;/strong> &lt;code>brew cleanup&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>这个命令会删除所有过期的下载缓存和旧版本软件，瞬间释放大量磁盘空间。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>常用命令：&lt;/strong> &lt;code>brew doctor&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>如果你发现 Homebrew 报错，运行这个命令，它会像医生一样自动诊断问题并告诉你怎么修复。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Apple Silicon (M1/M2/M3) 的路径变化&lt;/p>
&lt;p>如果你使用的是新款 Mac（M系列芯片），Homebrew 的安装路径发生了变化：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>旧款 Intel Mac:&lt;/strong> &lt;code>/usr/local&lt;/code>&lt;/li>
&lt;li>&lt;strong>新款 M 芯片 Mac:&lt;/strong> &lt;code>/opt/homebrew&lt;/code>
这主要是为了避免与 macOS 自带的 Rosetta 转译机制冲突。虽然使用上没区别，但在配置环境变量时需要注意。&lt;/li>
&lt;/ul>
&lt;p>Brewfile (备份你的 Mac)&lt;/p>
&lt;p>这是最酷的功能。你可以创建一个名为 &lt;code>Brewfile&lt;/code> 的文本文件，里面写上：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="n">brew&lt;/span> &lt;span class="s2">&amp;#34;git&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">brew&lt;/span> &lt;span class="s2">&amp;#34;node&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cask&lt;/span> &lt;span class="s2">&amp;#34;google-chrome&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cask&lt;/span> &lt;span class="s2">&amp;#34;visual-studio-code&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>然后运行 &lt;code>brew bundle&lt;/code>。Homebrew 就会按照这个清单自动把所有软件装好。这被称为 &lt;strong>&amp;ldquo;Infrastructure as Code&amp;rdquo; (基础设施即代码)&lt;/strong>，是很多工程师配置新电脑的秘诀。&lt;/p>
&lt;p>Homebrew 是 macOS 的&lt;strong>外挂级&lt;/strong>装备。它让软件安装变得像手机应用商店一样简单，同时又保留了极高的可控性和专业性。&lt;/p>
&lt;p>&lt;strong>想现在尝试一下吗？&lt;/strong>
你只需要打开你的终端（Terminal），粘贴官方的一行安装代码即可开始。&lt;/p></description></item><item><title>wsl使用教程</title><link>https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</link><pubDate>Mon, 30 Jun 2025 15:04:11 +0800</pubDate><guid>https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</guid><description>&lt;img src="https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/index.png" alt="Featured image of post wsl使用教程" />&lt;h2 id="基础知识">基础知识
&lt;/h2>&lt;h3 id="安装">安装
&lt;/h3>&lt;p>相关教程：&lt;/p>
&lt;p>&lt;a class="link" href="https://learn.microsoft.com/zh-cn/windows/wsl/install" target="_blank" rel="noopener"
>windows官方&lt;/a>&lt;/p>
&lt;p>安装相关软件&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">apt install git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">apt install just
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># 安装uv
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl -LsSf https://astral.sh/uv/install.sh | sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>安装nvm&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh &lt;span class="p">|&lt;/span> bash
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="配置">配置
&lt;/h3>&lt;p>&lt;img src="https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/image-2.png"
width="1284"
height="791"
srcset="https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/image-2_hu13578863898626238918.png 480w, https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/image-2_hu12141046485350929521.png 1024w"
loading="lazy"
alt="网络设置为镜像模式,nat很麻烦"
class="gallery-image"
data-flex-grow="162"
data-flex-basis="389px"
>&lt;/p>
&lt;p>配置中文字体&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo apt update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt install fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo locale-gen zh_CN.UTF-8
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>如果从windows复制过来的.sh需要修改字符&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sed -i &lt;span class="s1">&amp;#39;s/\r$//&amp;#39;&lt;/span> ./zata.sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="问题解决">问题解决
&lt;/h3>&lt;h4 id="wsl和docker冲突--表现为wsl无法联网------把docker关了或者使用docker里面的linux容器">wsl和docker冲突 表现为wsl无法联网 &amp;mdash; 把docker关了，或者使用docker里面的linux容器
&lt;/h4>&lt;p>&lt;img src="https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/image.png"
width="1157"
height="464"
srcset="https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/image_hu8185382552746628334.png 480w, https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/image_hu12648800005716954328.png 1024w"
loading="lazy"
alt="docker打开一会wsl断开连接"
class="gallery-image"
data-flex-grow="249"
data-flex-basis="598px"
>
&lt;img src="https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/image-1.png"
width="580"
height="450"
srcset="https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/image-1_hu13618605369311275544.png 480w, https://www.zata.cc/p/wsl%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/images/index/image-1_hu12590515238191052810.png 1024w"
loading="lazy"
alt="docker报错"
class="gallery-image"
data-flex-grow="128"
data-flex-basis="309px"
>&lt;/p>
&lt;p>&lt;span style="color:red;">下面不要用了，会把网络设置搞乱&lt;/span>&lt;/p>
&lt;p>&lt;del>使用下面命令之后重启可以恢复，但是当再次打开docker又会出现问题,主要就是关了docker就行&lt;/del>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">wsl --shutdown
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">netsh winsock reset
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>tmux简易使用</title><link>https://www.zata.cc/p/tmux%E7%AE%80%E6%98%93%E4%BD%BF%E7%94%A8/</link><pubDate>Fri, 09 May 2025 11:32:28 +0800</pubDate><guid>https://www.zata.cc/p/tmux%E7%AE%80%E6%98%93%E4%BD%BF%E7%94%A8/</guid><description>&lt;img src="https://www.zata.cc/p/tmux%E7%AE%80%E6%98%93%E4%BD%BF%E7%94%A8/images/index/index.png" alt="Featured image of post tmux简易使用" />&lt;h2 id="安装">安装
&lt;/h2>&lt;h3 id="macos">macOS
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 用 Homebrew（推荐）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install tmux
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 用 MacPorts&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo port install tmux
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="ubuntu--debian">Ubuntu / Debian
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo apt update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt install tmux
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>Ubuntu 自带的 tmux 版本通常较老（1.8），功能受限。需要新版（如 3.x 的 true color 支持等）可以加 PPA：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo add-apt-repository ppa:tmux-stable/ppa
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt install tmux
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/blockquote>
&lt;h3 id="windows">Windows
&lt;/h3>&lt;p>Windows 原生没有 tmux，常见方案：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>WSL（推荐）&lt;/strong>：在 WSL（Ubuntu 等发行版）里 &lt;code>sudo apt install tmux&lt;/code>，然后通过 Windows Terminal 使用。&lt;/li>
&lt;li>&lt;strong>MSYS2&lt;/strong>：自带包管理器：
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pacman -S tmux
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>不愿用 Linux 子系统的话，可考虑 Windows Terminal 自带的 panes/tabs 作为替代。&lt;/li>
&lt;/ul>
&lt;h3 id="验证安装">验证安装
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">tmux -V
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>输出形如 &lt;code>tmux 3.4&lt;/code> 即安装成功。&lt;/p>
&lt;hr>
&lt;h2 id="什么是-tmux">什么是 tmux
&lt;/h2>&lt;p>tmux（Terminal Multiplexer）是一个终端复用器。它允许你在一个终端窗口里运行多个会话（session），每个会话里又能打开多个窗口（window）和窗格（pane）。最实用的好处是：&lt;strong>关闭 SSH 连接或终端窗口后，tmux 会话里的程序仍在后台运行，下次可以原样恢复&lt;/strong>。&lt;/p>
&lt;h2 id="为什么用-tmux">为什么用 tmux
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>会话持久化&lt;/strong>：远程服务器上跑长任务，断开 SSH 也不会中断。&lt;/li>
&lt;li>&lt;strong>一屏多用&lt;/strong>：把屏幕拆成多个窗格，同时看日志、跑测试、编辑代码。&lt;/li>
&lt;li>&lt;strong>环境快速恢复&lt;/strong>：一套窗口/窗格布局保存后，下次一键还原。&lt;/li>
&lt;li>&lt;strong>协作/演示&lt;/strong>：多人 attach 到同一会话，方便结对调试。&lt;/li>
&lt;/ul>
&lt;h2 id="常用命令速查">常用命令速查
&lt;/h2>&lt;p>最常用的几条命令，记住它们就能应付日常 80% 的场景：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 创建并进入会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux new -s mysession
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 列出所有会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux ls
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 重新进入会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux attach -t mysession
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 临时退出会话（后台运行）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 快捷键：Ctrl-b 松开后按 d&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 重命名当前会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux rename-session 新名字
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 重命名指定会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux rename-session -t 旧名字 新名字
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 彻底关闭某个会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux kill-session -t mysession
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>快捷键速记：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>快捷键&lt;/th>
&lt;th>作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>Ctrl-b d&lt;/code>&lt;/td>
&lt;td>退出会话（ detach，程序继续在后台跑）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl-b $&lt;/code>&lt;/td>
&lt;td>重命名当前会话&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl-b c&lt;/code>&lt;/td>
&lt;td>新建窗口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl-b n&lt;/code> / &lt;code>Ctrl-b p&lt;/code>&lt;/td>
&lt;td>下一个 / 上一个窗口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl-b %&lt;/code>&lt;/td>
&lt;td>垂直分屏&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl-b &amp;quot;&lt;/code>&lt;/td>
&lt;td>水平分屏&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl-b o&lt;/code>&lt;/td>
&lt;td>切换到下一个窗格&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl-b x&lt;/code>&lt;/td>
&lt;td>关闭当前窗格&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="基础概念">基础概念
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>概念&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>会话（session）&lt;/td>
&lt;td>最高级容器，通常对应一个完整的工作场景，例如“前端开发”“服务器运维”。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>窗口（window）&lt;/td>
&lt;td>会话内的标签页，类似浏览器标签。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>窗格（pane）&lt;/td>
&lt;td>窗口内的分屏区域，一个窗口可分成多个窗格。&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>默认**前缀键（prefix）**是 &lt;code>Ctrl-b&lt;/code>，所有快捷键都要先按 prefix，松开后按功能键。&lt;/p>
&lt;h2 id="会话管理">会话管理
&lt;/h2>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 创建无名称会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 创建带名称的会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux new -s mysession
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 在创建时直接执行命令（命令结束会话不关闭）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux new -s build -d &lt;span class="s2">&amp;#34;npm run build&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 列出所有会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux ls
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 附加到已有会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux attach -t mysession
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 简写&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux a -t mysession
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 从外部重命名会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux rename-session -t oldname newname
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 分离当前会话（后台运行，不关闭）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 快捷键：prefix + d&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux detach
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 杀死指定会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux kill-session -t mysession
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 杀死所有会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux kill-server
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="会话快捷键">会话快捷键
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>快捷键&lt;/th>
&lt;th>作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>prefix d&lt;/code>&lt;/td>
&lt;td>分离当前会话&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix $&lt;/code>&lt;/td>
&lt;td>重命名当前会话&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix s&lt;/code>&lt;/td>
&lt;td>列出所有会话，用方向键选择切换&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix (&lt;/code>&lt;/td>
&lt;td>切换到上一个会话&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix )&lt;/code>&lt;/td>
&lt;td>切换到下一个会话&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="窗口管理">窗口管理
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>快捷键&lt;/th>
&lt;th>作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>prefix c&lt;/code>&lt;/td>
&lt;td>新建窗口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix ,&lt;/code>&lt;/td>
&lt;td>重命名当前窗口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix n&lt;/code>&lt;/td>
&lt;td>切换到下一窗口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix p&lt;/code>&lt;/td>
&lt;td>切换到上一窗口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix 0~9&lt;/code>&lt;/td>
&lt;td>切换到对应编号窗口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix w&lt;/code>&lt;/td>
&lt;td>可视化选择窗口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix &amp;amp;&lt;/code>&lt;/td>
&lt;td>关闭当前窗口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix .&lt;/code>&lt;/td>
&lt;td>修改当前窗口编号&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>命令行操作：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 创建窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux new-window -t mysession -n &lt;span class="s2">&amp;#34;logs&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 关闭窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux kill-window -t mysession:1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="窗格管理">窗格管理
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>快捷键&lt;/th>
&lt;th>作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>prefix %&lt;/code>&lt;/td>
&lt;td>垂直分割窗格&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix &amp;quot;&lt;/code>&lt;/td>
&lt;td>水平分割窗格&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix o&lt;/code>&lt;/td>
&lt;td>切换到下一个窗格&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix 方向键&lt;/code>&lt;/td>
&lt;td>切换到对应方向窗格&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix x&lt;/code>&lt;/td>
&lt;td>关闭当前窗格&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix z&lt;/code>&lt;/td>
&lt;td>最大化/还原当前窗格&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix 空格&lt;/code>&lt;/td>
&lt;td>切换窗格布局&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix {&lt;/code> / &lt;code>prefix }&lt;/code>&lt;/td>
&lt;td>移动当前窗格位置&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix !&lt;/code>&lt;/td>
&lt;td>把当前窗格拆成独立窗口&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>调整窗格大小：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>快捷键&lt;/th>
&lt;th>作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>prefix Ctrl+方向键&lt;/code>&lt;/td>
&lt;td>以 1 格为单位调整&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix Alt+方向键&lt;/code>&lt;/td>
&lt;td>以 5 格为单位调整&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="复制模式">复制模式
&lt;/h2>&lt;p>tmux 自带复制/滚动模式，方便查看历史输出。&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>快捷键&lt;/th>
&lt;th>作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>prefix [&lt;/code>&lt;/td>
&lt;td>进入复制模式&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix ]&lt;/code>&lt;/td>
&lt;td>粘贴缓冲区内容&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix =&lt;/code>&lt;/td>
&lt;td>列出粘贴历史&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>复制模式下常用操作：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>按键&lt;/th>
&lt;th>作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>Ctrl-c&lt;/code> / &lt;code>q&lt;/code>&lt;/td>
&lt;td>退出复制模式&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl-f&lt;/code> / &lt;code>Ctrl-b&lt;/code>&lt;/td>
&lt;td>向下/向上翻页&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>/&lt;/code>&lt;/td>
&lt;td>向下搜索&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>?&lt;/code>&lt;/td>
&lt;td>向上搜索&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>v&lt;/code>&lt;/td>
&lt;td>开始选区（vi 模式下）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>y&lt;/code>&lt;/td>
&lt;td>复制选区（vi 模式下）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>让 tmux 使用 vi 风格键位：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ~/.tmux.conf&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">setw -g mode-keys vi
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="常用配置">常用配置
&lt;/h2>&lt;p>创建或编辑 &lt;code>~/.tmux.conf&lt;/code>：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 重新加载配置的快捷键&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">bind&lt;/span> r source-file ~/.tmux.conf &lt;span class="se">\;&lt;/span> display-message &lt;span class="s2">&amp;#34;Config reloaded!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 启用鼠标支持（滚轮、拖拽调整窗格、点击选择窗格）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g mouse on
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 把前缀键改成 Ctrl-a（更接近 GNU Screen 习惯）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">unbind C-b
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g prefix C-a
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">bind&lt;/span> C-a send-prefix
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 使用 vi 风格复制模式&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">setw -g mode-keys vi
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 窗口编号从 1 开始&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g base-index &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">setw -g pane-base-index &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 重新编号窗口（删除中间窗口后自动补齐）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g renumber-windows on
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 状态栏显示时间&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g status-right &lt;span class="s1">&amp;#39;%Y-%m-%d %H:%M&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 窗格边框颜色&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g pane-border-style &lt;span class="nv">fg&lt;/span>&lt;span class="o">=&lt;/span>colour240
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g pane-active-border-style &lt;span class="nv">fg&lt;/span>&lt;span class="o">=&lt;/span>colour33
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>配置修改后，可以在 tmux 里按 &lt;code>prefix r&lt;/code> 重新加载，或执行：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">tmux source-file ~/.tmux.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="推荐插件">推荐插件
&lt;/h2>&lt;p>使用 &lt;a class="link" href="https://github.com/tmux-plugins/tpm" target="_blank" rel="noopener"
>Tmux Plugin Manager（TPM）&lt;/a> 管理插件更方便。&lt;/p>
&lt;p>安装 TPM：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>在 &lt;code>~/.tmux.conf&lt;/code> 末尾加入：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 插件列表&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g @plugin &lt;span class="s1">&amp;#39;tmux-plugins/tpm&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g @plugin &lt;span class="s1">&amp;#39;tmux-plugins/tmux-sensible&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g @plugin &lt;span class="s1">&amp;#39;tmux-plugins/tmux-resurrect&amp;#39;&lt;/span> &lt;span class="c1"># 保存/恢复会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g @plugin &lt;span class="s1">&amp;#39;tmux-plugins/tmux-continuum&amp;#39;&lt;/span> &lt;span class="c1"># 自动保存&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 初始化 TPM（必须放在文件最后）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">run &lt;span class="s1">&amp;#39;~/.tmux/plugins/tpm/tpm&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>常用插件说明：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>插件&lt;/th>
&lt;th>作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>tmux-sensible&lt;/code>&lt;/td>
&lt;td>一组合理的默认配置&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>tmux-resurrect&lt;/code>&lt;/td>
&lt;td>保存和恢复会话、窗口、窗格布局及运行程序&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>tmux-continuum&lt;/code>&lt;/td>
&lt;td>自动定时保存，开机后自动恢复&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>tmux-yank&lt;/code>&lt;/td>
&lt;td>把 tmux 选区复制到系统剪贴板&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>tmux-prefix-highlight&lt;/code>&lt;/td>
&lt;td>在状态栏高亮显示前缀键状态&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>安装插件：先按 &lt;code>prefix I&lt;/code>（大写 i）。&lt;/p>
&lt;h2 id="实用工作流示例">实用工作流示例
&lt;/h2>&lt;h3 id="1-远程跑长任务">1. 远程跑长任务
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">ssh server
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux new -s training
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 在会话里执行训练脚本&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python train.py
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 按 prefix d 分离，关闭 SSH 即可&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>下次恢复：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">ssh server
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux attach -t training
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="2-本地开发多面板">2. 本地开发多面板
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">tmux new -s dev
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>然后按 &lt;code>prefix %&lt;/code> 把窗口分成左右两部分：左边跑编辑器/服务器，右边跑测试或日志。&lt;/p>
&lt;h3 id="3-快速保存与恢复环境">3. 快速保存与恢复环境
&lt;/h3>&lt;p>安装 &lt;code>tmux-resurrect&lt;/code> 后：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>快捷键&lt;/th>
&lt;th>作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>prefix Ctrl-s&lt;/code>&lt;/td>
&lt;td>保存当前环境&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>prefix Ctrl-r&lt;/code>&lt;/td>
&lt;td>恢复保存的环境&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="进阶技巧">进阶技巧
&lt;/h2>&lt;h3 id="1-同步输入到所有窗格">1. 同步输入到所有窗格
&lt;/h3>&lt;p>需要在多台机器或同一组窗口里执行相同命令时，可以打开&lt;strong>输入同步&lt;/strong>：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 在 tmux 命令行执行&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">setw synchronize-panes on
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>快捷键绑定（加入 &lt;code>~/.tmux.conf&lt;/code>）：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">bind&lt;/span> S setw synchronize-panes &lt;span class="se">\;&lt;/span> display-message &lt;span class="s2">&amp;#34;Sync panes: #{?synchronize-panes,ON,OFF}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>然后按 &lt;code>prefix S&lt;/code> 即可切换同步状态。再次关闭：&lt;code>setw synchronize-panes off&lt;/code>。&lt;/p>
&lt;h3 id="2-用脚本一键搭建开发环境">2. 用脚本一键搭建开发环境
&lt;/h3>&lt;p>把常用布局写成脚本，避免每次手动分屏：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="c1"># start-dev.sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">SESSION&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;dev&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux has-session -t &lt;span class="nv">$SESSION&lt;/span> 2&amp;gt;/dev/null
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> &lt;span class="nv">$?&lt;/span> !&lt;span class="o">=&lt;/span> &lt;span class="m">0&lt;/span> &lt;span class="o">]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tmux new-session -d -s &lt;span class="nv">$SESSION&lt;/span> -n editor
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tmux send-keys -t &lt;span class="nv">$SESSION&lt;/span>:editor &lt;span class="s1">&amp;#39;vim .&amp;#39;&lt;/span> C-m
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tmux split-window -h -t &lt;span class="nv">$SESSION&lt;/span>:editor
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tmux send-keys -t &lt;span class="nv">$SESSION&lt;/span>:editor.right &lt;span class="s1">&amp;#39;npm run dev&amp;#39;&lt;/span> C-m
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tmux split-window -v -t &lt;span class="nv">$SESSION&lt;/span>:editor.right
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tmux send-keys -t &lt;span class="nv">$SESSION&lt;/span>:editor.bottom &lt;span class="s1">&amp;#39;git status&amp;#39;&lt;/span> C-m
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux attach -t &lt;span class="nv">$SESSION&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="3-嵌套-tmux本地--远程">3. 嵌套 tmux（本地 + 远程）
&lt;/h3>&lt;p>如果你本地开了 tmux，SSH 到远程服务器后又开了 tmux，两个 &lt;code>Ctrl-b&lt;/code> 会冲突。常见解决办法：&lt;/p>
&lt;ul>
&lt;li>本地用 &lt;code>Ctrl-b&lt;/code>，远程用 &lt;code>Ctrl-a&lt;/code>：
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 远程服务器的 ~/.tmux.conf&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g prefix C-a
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">unbind C-b
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">bind&lt;/span> C-a send-prefix
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>或者在本地 tmux 里按 &lt;code>Ctrl-b b&lt;/code>，把 prefix 透传给远程 tmux。&lt;/li>
&lt;/ul>
&lt;h3 id="4-查看并重新连接-detached-的会话">4. 查看并重新连接 detached 的会话
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 列出 detached 的会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux ls
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 如果只有一个 detached 会话，直接 attach&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux attach
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="5-调整颜色与终端兼容">5. 调整颜色与终端兼容
&lt;/h3>&lt;p>如果 vim/neovim 在 tmux 里颜色显示异常，加这几行：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ~/.tmux.conf&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -g default-terminal &lt;span class="s2">&amp;#34;screen-256color&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -ag terminal-overrides &lt;span class="s2">&amp;#34;,xterm-256color:RGB&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>并确保外部终端也支持 256 色 / true color。&lt;/p>
&lt;h2 id="命令速查表">命令速查表
&lt;/h2>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux new -s &amp;lt;name&amp;gt; &lt;span class="c1"># 新建会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux ls &lt;span class="c1"># 列出会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux attach -t &amp;lt;name&amp;gt; &lt;span class="c1"># 接入会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux detach &lt;span class="c1"># 退出当前会话（后台运行）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux rename-session -t &amp;lt;old&amp;gt; &amp;lt;new&amp;gt; &lt;span class="c1"># 重命名会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux kill-session -t &amp;lt;name&amp;gt; &lt;span class="c1"># 结束会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tmux kill-server &lt;span class="c1"># 结束所有会话&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 窗口（在 tmux 内）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">prefix c &lt;span class="c1"># 新建窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">prefix , &lt;span class="c1"># 重命名窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">prefix n &lt;span class="c1"># 下一个窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">prefix p &lt;span class="c1"># 上一个窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">prefix w &lt;span class="c1"># 可视化选择窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">prefix 0-9 &lt;span class="c1"># 切换到对应编号窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">prefix &lt;span class="p">&amp;amp;&lt;/span> &lt;span class="c1"># 关闭窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 窗格（在 tmux 内）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">prefix % &lt;span class="c1"># 垂直分割&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">prefix &lt;span class="s2">&amp;#34; # 水平分割
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">prefix o # 切换窗格
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">prefix 方向键 # 按方向切换窗格
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">prefix x # 关闭窗格
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">prefix z # 最大化/还原窗格
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">prefix 空格 # 切换窗格布局
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">prefix ! # 把当前窗格拆成独立窗口
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"># 复制模式
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">prefix [ # 进入复制/滚动模式
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">prefix ] # 粘贴
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="常见问题">常见问题
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>问题&lt;/th>
&lt;th>原因 / 解决&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>滚轮不能翻历史&lt;/td>
&lt;td>按 &lt;code>prefix [&lt;/code> 进入复制模式后再滚；或开启 &lt;code>set -g mouse on&lt;/code>。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl-b&lt;/code> 没反应&lt;/td>
&lt;td>先松开 &lt;code>Ctrl-b&lt;/code> 再按功能键；或者 prefix 被改成了 &lt;code>Ctrl-a&lt;/code>。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>中文显示乱码&lt;/td>
&lt;td>检查终端编码为 UTF-8，并在 &lt;code>~/.tmux.conf&lt;/code> 里加 &lt;code>setw -g utf8 on&lt;/code>（较新版本已默认支持）。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>vim 里按 ESC 有延迟&lt;/td>
&lt;td>加 &lt;code>set -sg escape-time 10&lt;/code> 到 &lt;code>~/.tmux.conf&lt;/code>。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>关闭终端后程序被杀死&lt;/td>
&lt;td>确保程序是跑在 tmux 会话里，并且你是按 &lt;code>prefix d&lt;/code> 分离，而不是直接关窗口。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>状态栏不显示&lt;/td>
&lt;td>确认配置文件没有语法错误，执行 &lt;code>tmux source-file ~/.tmux.conf&lt;/code> 查看报错。&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="小贴士">小贴士
&lt;/h2>&lt;ol>
&lt;li>&lt;strong>先松 prefix 再按功能键&lt;/strong>：例如 &lt;code>Ctrl-b&lt;/code> 松开后按 &lt;code>c&lt;/code>。&lt;/li>
&lt;li>&lt;strong>善用 &lt;code>prefix ?&lt;/code>&lt;/strong>：随时查看所有快捷键列表。&lt;/li>
&lt;li>&lt;strong>调整终端大小后&lt;/strong>，tmux 会自动适配；如果显示异常，可以按 &lt;code>prefix r&lt;/code> 刷新。&lt;/li>
&lt;li>&lt;strong>tmux 默认不共享系统剪贴板&lt;/strong>，需要 &lt;code>tmux-yank&lt;/code> 或配合 &lt;code>xclip&lt;/code>/&lt;code>pbcopy&lt;/code> 等工具。&lt;/li>
&lt;li>&lt;strong>鼠标支持开启后&lt;/strong>，可以像普通终端一样滚屏、拖拽调整窗格大小，适合新手过渡。&lt;/li>
&lt;/ol></description></item><item><title>postman</title><link>https://www.zata.cc/p/postman/</link><pubDate>Wed, 05 Mar 2025 10:00:47 +0800</pubDate><guid>https://www.zata.cc/p/postman/</guid><description>&lt;img src="https://www.zata.cc/p/postman/images/index/index.png" alt="Featured image of post postman" />&lt;!-- ![alt text](images/index/index.png) -->
&lt;h3 id="postman介绍">postman介绍
&lt;/h3>&lt;p>如今，Postman的开发者已超过1000万(来自官网)，选择使用Postman的原因如下:&lt;br>
简单易用 - 要使用Postman，你只需登录自己的账户，只要在电脑上安装了Postman应用程序，就可以方便地随时随地访问文件。
使用集合 - Postman允许用户为他们的API调用创建集合。每个集合可以创建子文件夹和多个请求。这有助于组织测试结构。
多人协作 - 可以导入或导出集合和环境，从而方便共享文件。直接使用链接还可以用于共享集合。
创建环境 - 创建多个环境有助于减少测试重复(DEV/QA/STG/UAT/PROD)，因为可以为不同的环境使用相同的集合。这是参数化发生的地方，将在后续介绍。
创建测试 - 测试检查点(如验证HTTP响应状态是否成功)可以添加到每个API调用中，这有助于确保测试覆盖率。
自动化测试 - 通过使用集合Runner或Newman，可以在多个迭代中运行测试，节省了重复测试的时间。
调试 - Postman控制台有助于检查已检索到的数据，从而易于调试测试。
持续集成——通过其支持持续集成的能力，可以维护开发实践。&lt;/p>
&lt;h3 id="heading">
&lt;/h3></description></item></channel></rss>