<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>小明的部落格</title>
  <icon>https://www.xmdblog.com/icon.png</icon>
  <subtitle>探索科技，启迪技能</subtitle>
  <link href="https://www.xmdblog.com/atom.xml" rel="self"/>
  
  <link href="https://www.xmdblog.com/"/>
  <updated>2026-06-05T10:06:40.114Z</updated>
  <id>https://www.xmdblog.com/</id>
  
  <author>
    <name>xiaoming</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>🤖 用 GitHub / GitLab CI/CD 部署 Hexo 到宝塔服务器</title>
    <link href="https://www.xmdblog.com/posts/2cd5d824.html"/>
    <id>https://www.xmdblog.com/posts/2cd5d824.html</id>
    <published>2025-09-04T12:25:48.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>相比直接部署到服务器，使用 GitHub&#x2F;GitLab CI&#x2F;CD 的方案更现代化、更安全：源码托管在云端，服务器只接收构建产物，支持团队协作、版本控制、自动化测试等。</p><blockquote><p>[!TIP]<br>适合人群：希望源码云端托管、自动化构建部署、支持团队协作的 Hexo 用户。</p></blockquote><hr><h2 id="🔧-一、准备与目标"><a href="#🔧-一、准备与目标" class="headerlink" title="🔧 一、准备与目标"></a>🔧 一、准备与目标</h2><h3 id="🔧-1-前置条件"><a href="#🔧-1-前置条件" class="headerlink" title="🔧 1. 前置条件"></a>🔧 1. 前置条件</h3><ul><li>已有一台可外网访问的服务器（推荐 Ubuntu 22.04&#x2F;24.04 或 CentOS 7&#x2F;8 Stream）</li><li>已有域名，并能在域名服务商处设置解析</li><li>GitHub 或 GitLab 账号</li><li>本地已安装 Node.js、Git、Hexo 开发环境（若未搭好，可参考<a href="https://www.xmdblog.com/posts/70db7d7c.html">《Hexo博客搭建教程》</a>）</li></ul><h3 id="🚀-2-部署目标与架构"><a href="#🚀-2-部署目标与架构" class="headerlink" title="🚀 2. 部署目标与架构"></a>🚀 2. 部署目标与架构</h3><ol><li><p><strong>源码托管</strong>：Hexo 源码推送到 GitHub&#x2F;GitLab 仓库</p></li><li><p><strong>自动构建</strong>：GitHub Actions 或 GitLab CI 自动构建 Hexo 静态文件</p></li><li><p><strong>自动部署</strong>：构建完成后自动推送到宝塔服务器站点目录</p></li><li><p><strong>Web 服务</strong>：Nginx 提供 Web 访问，开启 HTTPS 并强制跳转</p></li></ol><blockquote><p>[!NOTE]<br>我们采用”源码云端托管 → CI&#x2F;CD 自动构建 → 自动部署到服务器”的方案。更安全、更稳定、支持团队协作。</p></blockquote><hr><h2 id="💡-二、安装宝塔与-Nginx"><a href="#💡-二、安装宝塔与-Nginx" class="headerlink" title="💡 二、安装宝塔与 Nginx"></a>💡 二、安装宝塔与 Nginx</h2><h3 id="🔧-1-安装宝塔面板"><a href="#🔧-1-安装宝塔面板" class="headerlink" title="🔧 1. 安装宝塔面板"></a>🔧 1. 安装宝塔面板</h3><p>前往官网获取安装脚本：<a href="https://www.bt.cn/new/download.html">宝塔面板下载，免费全能的服务器运维软件</a></p><p>在服务器上以 <code>root</code> 执行对应系统脚本。安装完成后，按提示登录面板。</p><h3 id="🔧-2-在宝塔安装-Nginx-与创建站点"><a href="#🔧-2-在宝塔安装-Nginx-与创建站点" class="headerlink" title="🔧 2. 在宝塔安装 Nginx 与创建站点"></a>🔧 2. 在宝塔安装 Nginx 与创建站点</h3><ol><li><p>打开”软件商店”仅安装 Nginx（暂不装 PHP&#x2F;MySQL）</p></li><li><p>“网站”→”添加站点”，填入你的域名，如 <code>xmdblog.com</code>（会自动创建站点目录 <code>/www/wwwroot/xmdblog.com</code>）</p></li><li><p>稍后 CI&#x2F;CD 会将构建产物部署到此目录</p></li></ol><hr><h2 id="🔐-三、创建部署用户与配置-SSH（服务器）"><a href="#🔐-三、创建部署用户与配置-SSH（服务器）" class="headerlink" title="🔐 三、创建部署用户与配置 SSH（服务器）"></a>🔐 三、创建部署用户与配置 SSH（服务器）</h2><p>以下以 Ubuntu 为例，CentOS 在命令后附等价命令。</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># Ubuntu/Debian</span></span><br><span class="line"><span class="built_in">sudo</span> adduser deploy</span><br><span class="line"></span><br><span class="line"><span class="comment"># CentOS/RHEL（等价创建）</span></span><br><span class="line"><span class="comment"># sudo adduser deploy</span></span><br></pre></td></tr></table></figure><p>为 <code>deploy</code> 用户配置 SSH：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">sudo</span> -u deploy <span class="built_in">mkdir</span> -p /home/deploy/.ssh</span><br><span class="line"><span class="built_in">sudo</span> -u deploy <span class="built_in">touch</span> /home/deploy/.ssh/authorized_keys</span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">chmod</span> 700 /home/deploy/.ssh</span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">chmod</span> 600 /home/deploy/.ssh/authorized_keys</span><br></pre></td></tr></table></figure><blockquote><p>[!TIP]<br>我们使用 <code>deploy</code> 用户而不是 <code>git</code>，更符合 CI&#x2F;CD 部署的语义。</p></blockquote><p>授予站点目录权限：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">sudo</span> <span class="built_in">chown</span> -R deploy:deploy /www/wwwroot/xmdblog.com</span><br></pre></td></tr></table></figure><blockquote><p>[!NOTE]<br>若宝塔在站点目录生成 <code>.user.ini</code> 导致权限操作受限，可先暂时删除此文件；或在”网站 → 设置 → 伪静态&#x2F;配置文件”里关闭相关限制后，或删除这个文件再设置权限。</p></blockquote><hr><h2 id="🔑-四、生成-SSH-密钥并配置到-CI-CD"><a href="#🔑-四、生成-SSH-密钥并配置到-CI-CD" class="headerlink" title="🔑 四、生成 SSH 密钥并配置到 CI&#x2F;CD"></a>🔑 四、生成 SSH 密钥并配置到 CI&#x2F;CD</h2><h3 id="🚀-1-生成部署密钥"><a href="#🚀-1-生成部署密钥" class="headerlink" title="🚀 1. 生成部署密钥"></a>🚀 1. 生成部署密钥</h3><p>在本地生成专门用于 CI&#x2F;CD 部署的密钥：</p><blockquote><p>[!NOTE]</p><p>这一步在你的电脑上使用Git Bash运行，不是服务器。</p></blockquote><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">ssh-keygen -t ed25519 -C <span class="string">&quot;ci-deploy@xmdblog&quot;</span> -f ~/.ssh/ci_deploy_key</span><br><span class="line"><span class="comment"># 一路回车。会生成 ci_deploy_key（私钥）和 ci_deploy_key.pub（公钥）</span></span><br></pre></td></tr></table></figure><h3 id="🔧-2-配置服务器公钥"><a href="#🔧-2-配置服务器公钥" class="headerlink" title="🔧 2. 配置服务器公钥"></a>🔧 2. 配置服务器公钥</h3><p>将公钥内容添加到服务器：</p><p>打开你电脑的<code>C:\Users\您的用户名\.ssh</code>目录，用记事本打开<code>ci_deploy_key.pub</code>复制里面的全部内容。</p><p>登录你服务器的宝塔面板，打开”文件”找到<code>/home/deploy/.ssh</code>目录，双击<code>authorized_keys</code>这个文件名，将复制的内容粘贴进去，注意点击对话框左上角的保存！</p><h3 id="✅-3-测试连接"><a href="#✅-3-测试连接" class="headerlink" title="✅ 3. 测试连接"></a>✅ 3. 测试连接</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">ssh -i ~/.ssh/ci_deploy_key deploy@你的服务器IP</span><br><span class="line"><span class="built_in">exit</span></span><br></pre></td></tr></table></figure><p>若能登录&#x2F;退出，说明密钥配置正常。</p><hr><h2 id="🧩-五、配置-Nginx-与-HTTPS（宝塔）"><a href="#🧩-五、配置-Nginx-与-HTTPS（宝塔）" class="headerlink" title="🧩 五、配置 Nginx 与 HTTPS（宝塔）"></a>🧩 五、配置 Nginx 与 HTTPS（宝塔）</h2><ol><li>在宝塔”网站 → 你的域名 → SSL”，申请&#x2F;安装 Let’s Encrypt，建议勾选”强制 HTTPS”</li><li>Nginx 站点根目录保持为 <code>/www/wwwroot/xmdblog.com</code></li></ol><hr><h2 id="🚀-六、配置-GitHub-Actions-自动部署"><a href="#🚀-六、配置-GitHub-Actions-自动部署" class="headerlink" title="🚀 六、配置 GitHub Actions 自动部署"></a>🚀 六、配置 GitHub Actions 自动部署</h2><h3 id="💡-1-推送源码到-GitHub"><a href="#💡-1-推送源码到-GitHub" class="headerlink" title="💡 1. 推送源码到 GitHub"></a>💡 1. 推送源码到 GitHub</h3><p>首先将你的 Hexo 源码推送到 GitHub 仓库（提前在GitHub创建好仓库，在你本地的博客目录运行以下命令）：</p><blockquote><p>[!WARNING]</p><p>一定要创建私人库！一定要创建私人库！一定要创建私人库！不要公开！</p></blockquote><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 在 Hexo 根目录</span></span><br><span class="line">git init</span><br><span class="line">git add .</span><br><span class="line">git commit -m <span class="string">&quot;Initial commit&quot;</span></span><br><span class="line">git branch -M main</span><br><span class="line">git remote add origin https://github.com/你的用户名/你的仓库名.git</span><br><span class="line">git push -u origin main</span><br></pre></td></tr></table></figure><blockquote><p>[!NOTE]</p><p>如果你使用了第三方主题且运行过<code>hexo generate</code>，运行<code>git add .</code>时报错，那么请根据情况使用Git Bash运行以下代码：</p></blockquote><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 在仓库根目录执行</span></span><br><span class="line">git <span class="built_in">rm</span> --cached .deploy_git</span><br><span class="line">git <span class="built_in">rm</span> --cached themes/anzhiyu</span><br><span class="line"><span class="built_in">rm</span> -rf .deploy_git</span><br><span class="line"><span class="built_in">rm</span> -rf .gitmodules</span><br><span class="line">git commit -m <span class="string">&quot;chore: remove invalid submodule config&quot;</span></span><br><span class="line">git push    <span class="comment">#重新上传</span></span><br></pre></td></tr></table></figure><h3 id="🔧-2-配置-GitHub-Secrets"><a href="#🔧-2-配置-GitHub-Secrets" class="headerlink" title="🔧 2. 配置 GitHub Secrets"></a>🔧 2. 配置 GitHub Secrets</h3><p>在 GitHub 仓库页面，进入 <code>Settings</code> → <code>Secrets and variables</code> → <code>Actions</code> → <code>Manage environment secrets</code>→ <code>New environment</code>→<code>Name*</code>输入<code>secrets</code>→ <code>Configure environment</code>→ <code>Add environment secret</code>添加以下 secrets：</p><ul><li><code>SERVER_HOST</code>: 你的服务器 IP 或域名</li><li><code>SERVER_USER</code>: <code>deploy</code></li><li><code>SSH_PRIVATE_KEY</code>: 私钥内容（<code>ci_deploy_key</code> 文件的完整内容）</li></ul><h3 id="💡-3-创建-GitHub-Actions-工作流"><a href="#💡-3-创建-GitHub-Actions-工作流" class="headerlink" title="💡 3. 创建 GitHub Actions 工作流"></a>💡 3. 创建 GitHub Actions 工作流</h3><p>在 Hexo 根目录创建 <code>.github/workflows/deploy.yml</code>：</p><figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">name:</span> <span class="string">Deploy</span> <span class="string">Hexo</span> <span class="string">to</span> <span class="string">Server</span></span><br><span class="line"></span><br><span class="line"><span class="attr">on:</span></span><br><span class="line">  <span class="attr">push:</span></span><br><span class="line">    <span class="attr">branches:</span> [ <span class="string">main</span> ]</span><br><span class="line">  <span class="attr">pull_request:</span></span><br><span class="line">    <span class="attr">branches:</span> [ <span class="string">main</span> ]</span><br><span class="line"></span><br><span class="line"><span class="attr">jobs:</span></span><br><span class="line">  <span class="attr">build-and-deploy:</span></span><br><span class="line">    <span class="attr">runs-on:</span> <span class="string">ubuntu-latest</span></span><br><span class="line">    <span class="attr">environment:</span> <span class="string">secrets</span></span><br><span class="line"></span><br><span class="line">    <span class="attr">steps:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Checkout</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/checkout@v4</span></span><br><span class="line"></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Setup</span> <span class="string">Node.js</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/setup-node@v4</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">node-version:</span> <span class="string">&#x27;18&#x27;</span></span><br><span class="line">          <span class="attr">cache:</span> <span class="string">&#x27;npm&#x27;</span></span><br><span class="line"></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Install</span> <span class="string">dependencies</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">npm</span> <span class="string">ci</span></span><br><span class="line"></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Install</span> <span class="string">Hexo</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">npm</span> <span class="string">install</span> <span class="string">hexo-cli</span> <span class="string">-g</span></span><br><span class="line"></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Build</span> <span class="string">Hexo</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string">          hexo clean</span></span><br><span class="line"><span class="string">          hexo generate</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Deploy</span> <span class="string">to</span> <span class="string">Server</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">appleboy/ssh-action@v1.0.3</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">host:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SERVER_HOST</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">username:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SERVER_USER</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">key:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SSH_PRIVATE_KEY</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">script:</span> <span class="string">|</span></span><br><span class="line"><span class="string">            # 清空站点目录</span></span><br><span class="line"><span class="string">            rm -rf /www/wwwroot/xmdblog.com/*</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Upload</span> <span class="string">files</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">appleboy/scp-action@v0.1.7</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">host:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SERVER_HOST</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">username:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SERVER_USER</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">key:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SSH_PRIVATE_KEY</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">source:</span> <span class="string">&quot;public/*&quot;</span></span><br><span class="line">          <span class="attr">target:</span> <span class="string">&quot;/www/wwwroot/xmdblog.com/&quot;</span></span><br><span class="line">          <span class="attr">strip_components:</span> <span class="number">1</span></span><br></pre></td></tr></table></figure><h3 id="🚀-4-推送并触发部署"><a href="#🚀-4-推送并触发部署" class="headerlink" title="🚀 4. 推送并触发部署"></a>🚀 4. 推送并触发部署</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git add .github/workflows/deploy.yml</span><br><span class="line">git commit -m <span class="string">&quot;Add GitHub Actions workflow&quot;</span></span><br><span class="line">git push</span><br></pre></td></tr></table></figure><p>此时访问 GitHub 仓库的 <code>Actions</code> 页面，应该能看到构建和部署过程。</p><hr><h2 id="🦊-七、配置-GitLab-CI-CD（替代方案）"><a href="#🦊-七、配置-GitLab-CI-CD（替代方案）" class="headerlink" title="🦊 七、配置 GitLab CI&#x2F;CD（替代方案）"></a>🦊 七、配置 GitLab CI&#x2F;CD（替代方案）</h2><p>如果你更喜欢 GitLab，可以创建 <code>.gitlab-ci.yml</code>：</p><figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">stages:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">build</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">deploy</span></span><br><span class="line"></span><br><span class="line"><span class="attr">variables:</span></span><br><span class="line">  <span class="attr">NODE_VERSION:</span> <span class="string">&quot;18&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="attr">build:</span></span><br><span class="line">  <span class="attr">stage:</span> <span class="string">build</span></span><br><span class="line">  <span class="attr">image:</span> <span class="string">node:18-alpine</span></span><br><span class="line">  <span class="attr">cache:</span></span><br><span class="line">    <span class="attr">paths:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">node_modules/</span></span><br><span class="line">  <span class="attr">before_script:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">npm</span> <span class="string">ci</span></span><br><span class="line">  <span class="attr">script:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">hexo</span> <span class="string">clean</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">hexo</span> <span class="string">generate</span></span><br><span class="line">  <span class="attr">artifacts:</span></span><br><span class="line">    <span class="attr">paths:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">public/</span></span><br><span class="line">    <span class="attr">expire_in:</span> <span class="number">1</span> <span class="string">hour</span></span><br><span class="line"></span><br><span class="line"><span class="attr">deploy:</span></span><br><span class="line">  <span class="attr">stage:</span> <span class="string">deploy</span></span><br><span class="line">  <span class="attr">image:</span> <span class="string">alpine:latest</span></span><br><span class="line">  <span class="attr">before_script:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">apk</span> <span class="string">add</span> <span class="string">--no-cache</span> <span class="string">openssh-client</span> <span class="string">rsync</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">eval</span> <span class="string">$(ssh-agent</span> <span class="string">-s)</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">echo</span> <span class="string">&quot;$SSH_PRIVATE_KEY&quot;</span> <span class="string">|</span> <span class="string">tr</span> <span class="string">-d</span> <span class="string">&#x27;\r&#x27;</span> <span class="string">|</span> <span class="string">ssh-add</span> <span class="bullet">-</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">mkdir</span> <span class="string">-p</span> <span class="string">~/.ssh</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">chmod</span> <span class="number">700</span> <span class="string">~/.ssh</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">ssh-keyscan</span> <span class="string">-H</span> <span class="string">$SERVER_HOST</span> <span class="string">&gt;&gt;</span> <span class="string">~/.ssh/known_hosts</span></span><br><span class="line">  <span class="attr">script:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">rsync</span> <span class="string">-avz</span> <span class="string">--delete</span> <span class="string">public/</span> <span class="string">$SERVER_USER@$SERVER_HOST:/www/wwwroot/xmdblog.com/</span></span><br><span class="line">  <span class="attr">only:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">main</span></span><br><span class="line">  <span class="attr">dependencies:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">build</span></span><br></pre></td></tr></table></figure><p>在 GitLab 项目设置中添加以下变量：</p><ul><li><code>SERVER_HOST</code>: 服务器地址</li><li><code>SERVER_USER</code>: <code>deploy</code></li><li><code>SSH_PRIVATE_KEY</code>: 私钥内容</li></ul><hr><h2 id="🧱-八、安全与权限最佳实践"><a href="#🧱-八、安全与权限最佳实践" class="headerlink" title="🧱 八、安全与权限最佳实践"></a>🧱 八、安全与权限最佳实践</h2><ul><li>仅用于部署的 <code>deploy</code> 用户，禁止密码登录（仅允许密钥）</li><li>站点目录属主设为 <code>deploy:deploy</code>，避免权限错乱</li><li>定期备份站点目录：<code>/www/wwwroot/xmdblog.com</code></li><li>建议将服务器 <code>22</code> 端口改为高位端口并在防火墙中放行；或使用宝塔安全组放行所需端口</li><li>GitHub Secrets 中的私钥要妥善保管，不要泄露</li></ul><hr><h2 id="🛠️-九、常见问题排查（精选）"><a href="#🛠️-九、常见问题排查（精选）" class="headerlink" title="🛠️ 九、常见问题排查（精选）"></a>🛠️ 九、常见问题排查（精选）</h2><h3 id="💡-1-GitHub-Actions-构建失败"><a href="#💡-1-GitHub-Actions-构建失败" class="headerlink" title="💡 1) GitHub Actions 构建失败"></a>💡 1) GitHub Actions 构建失败</h3><ul><li>检查 <code>package.json</code> 中是否有正确的依赖</li><li>确认 Node.js 版本是否匹配（推荐 18.x）</li><li>查看 Actions 日志中的具体错误信息</li></ul><h3 id="🚀-2-部署失败：SSH-连接问题"><a href="#🚀-2-部署失败：SSH-连接问题" class="headerlink" title="🚀 2) 部署失败：SSH 连接问题"></a>🚀 2) 部署失败：SSH 连接问题</h3><ul><li>确认 GitHub Secrets 中的 <code>SSH_PRIVATE_KEY</code> 格式正确（包含完整的私钥内容）</li><li>检查服务器 SSH 服务是否正常运行：<code>systemctl status ssh</code></li><li>确认防火墙是否放行了 SSH 端口</li></ul><h3 id="🚀-3-文件上传失败：权限问题"><a href="#🚀-3-文件上传失败：权限问题" class="headerlink" title="🚀 3) 文件上传失败：权限问题"></a>🚀 3) 文件上传失败：权限问题</h3><ul><li>检查站点目录权限：<code>ls -al /www/wwwroot/xmdblog.com</code></li><li>确认 <code>deploy</code> 用户对目录有写权限：<code>sudo chown -R deploy:deploy /www/wwwroot/xmdblog.com</code></li></ul><h3 id="💡-4-域名能访问但样式-404"><a href="#💡-4-域名能访问但样式-404" class="headerlink" title="💡 4) 域名能访问但样式 404"></a>💡 4) 域名能访问但样式 404</h3><ul><li>检查 Nginx 站点根是否正确</li><li>确认静态资源是否已正确上传到站点目录</li><li>检查主题配置是否有绝对路径问题</li></ul><h3 id="🆕-5-想回滚到上一个版本"><a href="#🆕-5-想回滚到上一个版本" class="headerlink" title="🆕 5) 想回滚到上一个版本"></a>🆕 5) 想回滚到上一个版本</h3><p>在 GitHub 仓库中：</p><ol><li>进入 <code>Actions</code> 页面</li><li>找到想要回滚的提交</li><li>点击 “Re-run jobs” 重新部署</li></ol><p>或手动回滚：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 在服务器上</span></span><br><span class="line"><span class="built_in">cd</span> /www/wwwroot/xmdblog.com</span><br><span class="line">git <span class="built_in">log</span> --oneline  <span class="comment"># 查看提交历史</span></span><br><span class="line">git checkout &lt;commit-hash&gt;  <span class="comment"># 回滚到指定提交</span></span><br></pre></td></tr></table></figure><hr><h2 id="📌-十、进阶优化"><a href="#📌-十、进阶优化" class="headerlink" title="📌 十、进阶优化"></a>📌 十、进阶优化</h2><h3 id="🔧-1-多环境部署"><a href="#🔧-1-多环境部署" class="headerlink" title="🔧 1. 多环境部署"></a>🔧 1. 多环境部署</h3><p>可以配置不同的分支部署到不同环境：</p><figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="comment"># .github/workflows/deploy.yml</span></span><br><span class="line"><span class="attr">on:</span></span><br><span class="line">  <span class="attr">push:</span></span><br><span class="line">    <span class="attr">branches:</span> [ <span class="string">main</span>, <span class="string">develop</span> ]</span><br><span class="line">    </span><br><span class="line"><span class="attr">jobs:</span></span><br><span class="line">  <span class="attr">build-and-deploy:</span></span><br><span class="line">    <span class="attr">if:</span> <span class="string">github.ref</span> <span class="string">==</span> <span class="string">&#x27;refs/heads/main&#x27;</span></span><br><span class="line">    <span class="comment"># 生产环境部署逻辑</span></span><br></pre></td></tr></table></figure><h3 id="💡-2-自动备份"><a href="#💡-2-自动备份" class="headerlink" title="💡 2. 自动备份"></a>💡 2. 自动备份</h3><p>在 GitHub Actions 中添加备份步骤：</p><figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Backup</span> <span class="string">current</span> <span class="string">site</span></span><br><span class="line">  <span class="attr">uses:</span> <span class="string">appleboy/ssh-action@v1.0.3</span></span><br><span class="line">  <span class="attr">with:</span></span><br><span class="line">    <span class="attr">host:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SERVER_HOST</span> <span class="string">&#125;&#125;</span></span><br><span class="line">    <span class="attr">username:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SERVER_USER</span> <span class="string">&#125;&#125;</span></span><br><span class="line">    <span class="attr">key:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SSH_PRIVATE_KEY</span> <span class="string">&#125;&#125;</span></span><br><span class="line">    <span class="attr">script:</span> <span class="string">|</span></span><br><span class="line">      <span class="string">tar</span> <span class="string">-czf</span> <span class="string">/tmp/backup-$(date</span> <span class="string">+%Y%m%d-%H%M%S).tar.gz</span> <span class="string">/www/wwwroot/xmdblog.com</span></span><br></pre></td></tr></table></figure><h3 id="💡-3-通知集成"><a href="#💡-3-通知集成" class="headerlink" title="💡 3. 通知集成"></a>💡 3. 通知集成</h3><p>部署完成后发送通知：</p><figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Notify</span> <span class="string">deployment</span></span><br><span class="line">  <span class="attr">uses:</span> <span class="string">8398a7/action-slack@v3</span></span><br><span class="line">  <span class="attr">with:</span></span><br><span class="line">    <span class="attr">status:</span> <span class="string">$&#123;&#123;</span> <span class="string">job.status</span> <span class="string">&#125;&#125;</span></span><br><span class="line">    <span class="attr">channel:</span> <span class="string">&#x27;#deployments&#x27;</span></span><br><span class="line">    <span class="attr">webhook_url:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SLACK_WEBHOOK</span> <span class="string">&#125;&#125;</span></span><br></pre></td></tr></table></figure><hr><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>通过本教程，你获得了一套现代化的 Hexo 部署方案：</p><ul><li><strong>源码云端托管</strong>：GitHub&#x2F;GitLab 管理源码，支持版本控制和团队协作</li><li><strong>自动化构建</strong>：CI&#x2F;CD 自动构建 Hexo 静态文件，无需本地环境</li><li><strong>安全部署</strong>：专用部署用户 + SSH 密钥，最小权限原则</li><li><strong>宝塔管理</strong>：Nginx&#x2F;HTTPS 配置，简单易用的服务器管理</li><li><strong>可回滚</strong>：Git 历史记录支持快速回滚到任意版本</li></ul><h3 id="💡-相比传统方案的优势"><a href="#💡-相比传统方案的优势" class="headerlink" title="💡 相比传统方案的优势"></a>💡 相比传统方案的优势</h3><ol><li><strong>更安全</strong>：服务器只接收构建产物，不暴露源码</li><li><strong>更稳定</strong>：云端构建环境一致，避免本地环境差异</li><li><strong>更高效</strong>：支持并行构建，构建缓存加速</li><li><strong>更灵活</strong>：支持多环境部署、自动备份、通知集成</li></ol><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区分享：</p><ol><li>你使用哪种 CI&#x2F;CD 平台？GitHub Actions 还是 GitLab CI？</li><li>在部署过程中遇到过哪些问题？如何解决的？</li><li>有没有其他自动化部署的最佳实践？</li></ol>]]></content>
    
    
    <summary type="html">使用 GitHub Actions 或 GitLab CI/CD 自动构建 Hexo 并部署到宝塔服务器。 源码托管在云端，服务器只接收构建产物，更安全、更稳定、支持团队协作。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Hexo教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/Hexo%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="Hexo" scheme="https://www.xmdblog.com/tags/Hexo/"/>
    
    <category term="宝塔面板" scheme="https://www.xmdblog.com/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/"/>
    
    <category term="CI/CD" scheme="https://www.xmdblog.com/tags/CI-CD/"/>
    
  </entry>
  
  <entry>
    <title>🛍️ 非个人版 Windows 安装微软商店教程</title>
    <link href="https://www.xmdblog.com/posts/3e57d0c3.html"/>
    <id>https://www.xmdblog.com/posts/3e57d0c3.html</id>
    <published>2025-05-27T11:30:49.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>Windows Server、LTSC等非个人版本默认是没有微软商店的，这给需要使用UWP应用的用户带来了不便。本文将介绍如何在这些版本中安装微软商店，让您也能使用UWP应用。</p><blockquote><p>[!NOTE]<br>本教程适用于Windows Server 2016&#x2F;2019&#x2F;2022&#x2F;2025、Windows 10&#x2F;11 LTSC等版本。</p></blockquote><hr><h2 id="💡-一、准备工作"><a href="#💡-一、准备工作" class="headerlink" title="💡 一、准备工作"></a>💡 一、准备工作</h2><h3 id="💡-1-系统要求"><a href="#💡-1-系统要求" class="headerlink" title="💡 1. 系统要求"></a>💡 1. 系统要求</h3><ul><li>Windows Server 2016&#x2F;2019&#x2F;2022&#x2F;2025</li><li>Windows 10&#x2F;11 LTSC</li><li>管理员权限</li><li>网络连接</li></ul><h3 id="📥-2-下载必要文件"><a href="#📥-2-下载必要文件" class="headerlink" title="📥 2. 下载必要文件"></a>📥 2. 下载必要文件</h3><p><a href="https://www.xbox.com/en-US/apps/xbox-app-on-pc">点这里打开Xbox官网</a></p><p>点击<code>DOWNLOAD THE APP</code>下载并安装Xbox</p><p><img src="https://imgbed.xmdblog.com/file/aYV9iAeJ.png" alt="image.png"></p><p><img src="https://imgbed.xmdblog.com/file/WavMLOiI.jpg" alt="1725505546.jpg"></p><blockquote><p>[!TIP]<br>如果官网你无法下载，建议从可靠的来源下载文件，避免使用未知来源的文件。</p></blockquote><hr><h2 id="💡-二、安装步骤"><a href="#💡-二、安装步骤" class="headerlink" title="💡 二、安装步骤"></a>💡 二、安装步骤</h2><ol><li>打开Xbox APP后会弹出提示，点击<code>立即审核</code></li></ol><p><img src="https://imgbed.xmdblog.com/file/VutbTvHM.png" alt="1725505634.png"></p><ol start="2"><li>把这些缺失的全部安装即可</li></ol><p><img src="https://imgbed.xmdblog.com/file/DlOkdAmn.png" alt="1725505804.png"></p><hr><h2 id="💡-三、验证安装"><a href="#💡-三、验证安装" class="headerlink" title="💡 三、验证安装"></a>💡 三、验证安装</h2><ol><li>打开开始菜单</li><li>搜索”Microsoft Store”</li><li>如果能看到商店图标，说明安装成功</li></ol><h3 id="🛠️-常见问题解决"><a href="#🛠️-常见问题解决" class="headerlink" title="🛠️ 常见问题解决"></a>🛠️ 常见问题解决</h3><ol><li><p>如果商店无法打开：</p><ul><li>检查Windows Store服务是否运行</li><li>运行Windows Store应用故障排除程序</li></ul></li><li><p>如果应用无法下载：</p><ul><li>检查网络连接</li><li>确保系统时间正确</li><li>检查Windows Update服务是否正常运行</li></ul></li></ol><hr><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>通过以上步骤，您可以在非个人版本的Windows系统中安装并使用微软商店。主要实现了：</p><ul><li>安装依赖包</li><li>安装微软商店</li><li>解决常见问题</li></ul><blockquote><p>[!TIP]<br>建议定期更新系统，以确保商店功能正常运行。</p></blockquote><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区讨论：</p><ol><li>您在安装过程中遇到了什么问题？</li><li>您最常用的UWP应用是什么？</li><li>对教程还有什么疑问？</li></ol>]]></content>
    
    
    <summary type="html">详细介绍如何在Windows Server、LTSC等非个人版本Windows系统中安装微软商店，让您也能使用UWP应用。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Windows教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/Windows%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="LTSC" scheme="https://www.xmdblog.com/tags/LTSC/"/>
    
    <category term="Windows" scheme="https://www.xmdblog.com/tags/Windows/"/>
    
    <category term="Microsoft Store" scheme="https://www.xmdblog.com/tags/Microsoft-Store/"/>
    
  </entry>
  
  <entry>
    <title>✨ Markdown 写作进阶技巧</title>
    <link href="https://www.xmdblog.com/posts/c6c552a4.html"/>
    <id>https://www.xmdblog.com/posts/c6c552a4.html</id>
    <published>2025-04-10T02:00:00.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>在掌握了Markdown基础语法后，如何让文章更加美观、专业？本文将为您介绍一系列Markdown写作的进阶技巧，帮助您提升写作效率和文章质量。</p><blockquote><p>[!NOTE]<br>本文介绍的技巧适用于所有Markdown编辑器，但部分功能可能需要特定编辑器支持。</p></blockquote><hr><h2 id="✨-一、高级排版技巧"><a href="#✨-一、高级排版技巧" class="headerlink" title="✨ 一、高级排版技巧"></a>✨ 一、高级排版技巧</h2><h3 id="💡-1-文本强调与引用"><a href="#💡-1-文本强调与引用" class="headerlink" title="💡 1. 文本强调与引用"></a>💡 1. 文本强调与引用</h3><p>文本强调</p><p><strong>加粗文本</strong> 或 <strong>加粗文本</strong><br><em>斜体文本</em> 或 <em>斜体文本</em><br><del>删除线文本</del></p><p>引用嵌套</p><blockquote><p>一级引用</p><blockquote><p>二级引用</p><blockquote><p>三级引用</p></blockquote></blockquote></blockquote><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line"><span class="section"># 文本强调</span></span><br><span class="line"><span class="strong">**加粗文本**</span> 或 <span class="strong">__加粗文本__</span></span><br><span class="line"><span class="emphasis">*斜体文本*</span> 或 <span class="emphasis">_斜体文本_</span></span><br><span class="line">~~删除线文本~~</span><br><span class="line"></span><br><span class="line"><span class="section"># 引用嵌套</span></span><br><span class="line"><span class="quote">&gt; 一级引用</span></span><br><span class="line">&gt;&gt; 二级引用</span><br><span class="line">&gt;&gt;&gt; 三级引用</span><br></pre></td></tr></table></figure><h3 id="💡-2-列表进阶"><a href="#💡-2-列表进阶" class="headerlink" title="💡 2. 列表进阶"></a>💡 2. 列表进阶</h3><p>任务列表</p><ul><li><input disabled="" type="checkbox"> 待办事项</li><li><input checked="" disabled="" type="checkbox"> 已完成事项</li></ul><p>自定义列表</p><ol><li>第一项<ul><li>子项1</li><li>子项2</li></ul></li><li>第二项</li></ol><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line"><span class="section"># 任务列表</span></span><br><span class="line"><span class="bullet">-</span> [ ] 待办事项</span><br><span class="line"><span class="bullet">-</span> [x] 已完成事项</span><br><span class="line"></span><br><span class="line"><span class="section"># 自定义列表</span></span><br><span class="line"><span class="bullet">1.</span> 第一项</span><br><span class="line"><span class="bullet">    -</span> 子项1</span><br><span class="line"><span class="bullet">    -</span> 子项2</span><br><span class="line"><span class="bullet">2.</span> 第二项</span><br></pre></td></tr></table></figure><h3 id="💡-3-表格优化"><a href="#💡-3-表格优化" class="headerlink" title="💡 3. 表格优化"></a>💡 3. 表格优化</h3><table><thead><tr><th align="left">左对齐</th><th align="center">居中</th><th align="right">右对齐</th></tr></thead><tbody><tr><td align="left">内容</td><td align="center">内容</td><td align="right">内容</td></tr></tbody></table><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line">| 左对齐 | 居中 | 右对齐 |</span><br><span class="line">|:-------|:----:|-------:|</span><br><span class="line">| 内容   | 内容 | 内容   |</span><br></pre></td></tr></table></figure><hr><h2 id="🎨-二、美化技巧"><a href="#🎨-二、美化技巧" class="headerlink" title="🎨 二、美化技巧"></a>🎨 二、美化技巧</h2><h3 id="💡-1-分割线样式"><a href="#💡-1-分割线样式" class="headerlink" title="💡 1. 分割线样式"></a>💡 1. 分割线样式</h3><hr><hr><hr><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line">---</span><br><span class="line"><span class="strong">***</span></span><br><span class="line"><span class="strong">__<span class="emphasis">_</span></span></span><br></pre></td></tr></table></figure><h3 id="💻-2-代码块美化"><a href="#💻-2-代码块美化" class="headerlink" title="💻 2. 代码块美化"></a>💻 2. 代码块美化</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">代码内容</span><br></pre></td></tr></table></figure><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line"><span class="code">```语言</span></span><br><span class="line"><span class="code">代码内容</span></span><br><span class="line"><span class="code">```</span></span><br></pre></td></tr></table></figure><h3 id="💡-3-图片排版"><a href="#💡-3-图片排版" class="headerlink" title="💡 3. 图片排版"></a>💡 3. 图片排版</h3><p>图片居中</p><div align="center">  <img src="图片地址" alt="描述"></div><p>图片大小调整</p><img src="图片地址" width="300" height="200"><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line"><span class="section"># 图片居中</span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">div</span> <span class="attr">align</span>=<span class="string">&quot;center&quot;</span>&gt;</span></span></span><br><span class="line">  <span class="language-xml"><span class="tag">&lt;<span class="name">img</span> <span class="attr">src</span>=<span class="string">&quot;图片地址&quot;</span> <span class="attr">alt</span>=<span class="string">&quot;描述&quot;</span>&gt;</span></span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="section"># 图片大小调整</span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">img</span> <span class="attr">src</span>=<span class="string">&quot;图片地址&quot;</span> <span class="attr">width</span>=<span class="string">&quot;300&quot;</span> <span class="attr">height</span>=<span class="string">&quot;200&quot;</span>&gt;</span></span></span><br></pre></td></tr></table></figure><hr><h2 id="⚡-三、效率提升技巧"><a href="#⚡-三、效率提升技巧" class="headerlink" title="⚡ 三、效率提升技巧"></a>⚡ 三、效率提升技巧</h2><h3 id="💡-1-快捷键设置"><a href="#💡-1-快捷键设置" class="headerlink" title="💡 1. 快捷键设置"></a>💡 1. 快捷键设置</h3><p>常用快捷键：</p><ul><li><code>Ctrl + B</code>: 加粗</li><li><code>Ctrl + I</code>: 斜体</li><li><code>Ctrl + K</code>: 插入链接</li><li><code>Ctrl + Shift + I</code>: 插入图片</li></ul><h3 id="💡-2-自定义样式"><a href="#💡-2-自定义样式" class="headerlink" title="💡 2. 自定义样式"></a>💡 2. 自定义样式</h3><ol><li>创建自定义CSS文件</li><li>在Markdown文件头部引入：</li></ol><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">style</span>&gt;</span></span></span><br><span class="line">.custom-style &#123;</span><br><span class="line"><span class="code">    color: #333;</span></span><br><span class="line"><span class="code">    font-size: 16px;</span></span><br><span class="line"><span class="code">&#125;</span></span><br><span class="line"><span class="code">&lt;/style&gt;</span></span><br></pre></td></tr></table></figure><h3 id="💡-3-模板使用"><a href="#💡-3-模板使用" class="headerlink" title="💡 3. 模板使用"></a>💡 3. 模板使用</h3><p>创建常用模板：</p><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line">---</span><br><span class="line">title: &#123;&#123;title&#125;&#125;</span><br><span class="line">date: &#123;&#123;date&#125;&#125;</span><br><span class="line">tags: []</span><br><span class="line"><span class="section">categories: []</span></span><br><span class="line"><span class="section">---</span></span><br><span class="line"></span><br><span class="line"><span class="section">## 前言</span></span><br><span class="line"></span><br><span class="line"><span class="section">## 正文</span></span><br><span class="line"></span><br><span class="line"><span class="section">## 总结</span></span><br></pre></td></tr></table></figure><hr><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>掌握这些进阶技巧后，您的Markdown写作将更加高效和专业。建议：</p><ol><li>根据个人需求选择合适的技巧</li><li>建立自己的写作模板</li><li>持续学习和实践</li></ol><blockquote><p>[!TIP]<br>建议保存常用的Markdown片段，建立个人代码库。</p></blockquote><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区讨论：</p><ol><li>您最常用的Markdown技巧是什么？</li><li>在写作过程中遇到过哪些问题？</li><li>您希望了解哪些方面的Markdown知识？</li></ol>]]></content>
    
    
    <summary type="html">详细介绍Markdown写作的进阶技巧，包括高级语法、排版优化、效率提升等内容。</summary>
    
    
    
    <category term="软件分享" scheme="https://www.xmdblog.com/categories/%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/"/>
    
    <category term="写作工具" scheme="https://www.xmdblog.com/categories/%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/%E5%86%99%E4%BD%9C%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="热门" scheme="https://www.xmdblog.com/tags/%E7%83%AD%E9%97%A8/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="写作技巧" scheme="https://www.xmdblog.com/tags/%E5%86%99%E4%BD%9C%E6%8A%80%E5%B7%A7/"/>
    
    <category term="Markdown" scheme="https://www.xmdblog.com/tags/Markdown/"/>
    
  </entry>
  
  <entry>
    <title>💿 Windows 7 纯净终极版镜像下载</title>
    <link href="https://www.xmdblog.com/posts/5eec6cc5.html"/>
    <id>https://www.xmdblog.com/posts/5eec6cc5.html</id>
    <published>2025-01-07T06:54:20.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>🎈经过一段时间的努力，我根据<a href="https://www.yrxitong.com/h-nd-1329.html">这篇文章</a>的指导，精心定制并封装了一个 Windows 7 精简系统镜像。本文会集中介绍这套镜像的优化内容、预装软件、下载方式与安装说明，方便需要老系统装机的朋友快速了解。</p><hr><h2 id="💡-一、系统简介"><a href="#💡-一、系统简介" class="headerlink" title="💡 一、系统简介"></a>💡 一、系统简介</h2><p>本次封装的Windows 7镜像基于原版系统，针对现代硬件需求进行了优化，同时精简了不必要的组件，增强了系统的兼容性、性能和稳定性。本系统支持 <strong>UEFI</strong> 和 <strong>安全启动</strong>，适用于主流硬件平台。</p><hr><h2 id="🔧-二、更新与优化"><a href="#🔧-二、更新与优化" class="headerlink" title="🔧 二、更新与优化"></a>🔧 二、更新与优化</h2><p>在制作本镜像过程中，我进行了以下主要更改：</p><h3 id="1-🛠️-集成更新与补丁"><a href="#1-🛠️-集成更新与补丁" class="headerlink" title="1. 🛠️ 集成更新与补丁"></a>1. 🛠️ 集成更新与补丁</h3><ul><li>✅ 集成 <strong>IE11浏览器</strong> 和 <strong>.NET Framework 4.8</strong>，满足运行现代软件的需求。</li><li>✅ 整合了 <strong>2019年11月之前的156个必要补丁</strong>，确保系统安全稳定。</li><li>✅ 应用 <strong>2022年9月的累积更新补丁 (KB5017361)</strong>，支持 UEFI 和安全启动功能。</li></ul><h3 id="2-✂️-精简系统组件"><a href="#2-✂️-精简系统组件" class="headerlink" title="2. ✂️ 精简系统组件"></a>2. ✂️ 精简系统组件</h3><ul><li>🚮 移除了一些无用的系统组件和服务（例如系统帮助文件、语言包等），减小系统体积。</li><li>⚡ 精简了不必要的服务和功能，使系统运行更轻量、更高效。</li><li>🛑 删除了 <strong>Windows 7 服务结束通知功能</strong>，避免弹出相关提示。</li></ul><h3 id="3-🔒-修复已知问题"><a href="#3-🔒-修复已知问题" class="headerlink" title="3. 🔒 修复已知问题"></a>3. 🔒 修复已知问题</h3><ul><li>🖨️ 集成了 <strong>防止共享打印机报错b11</strong> 的注册表文件，解决网络打印机共享问题。</li><li>🛡️ 替换了 <strong>防止A5蓝屏的补丁</strong>，增强系统稳定性。</li></ul><h3 id="4-🔓-启用扩展安全支持（ESU）"><a href="#4-🔓-启用扩展安全支持（ESU）" class="headerlink" title="4. 🔓 启用扩展安全支持（ESU）"></a>4. 🔓 启用扩展安全支持（ESU）</h3><ul><li>🛠️ 使用 <strong>BypassESU-v11 工具</strong>，突破微软对Windows 7停止支持的限制，继续接收最新安全更新。</li></ul><hr><h2 id="📦-三、集成-IT天空万能驱动包"><a href="#📦-三、集成-IT天空万能驱动包" class="headerlink" title="📦 三、集成 IT天空万能驱动包"></a>📦 三、集成 IT天空万能驱动包</h2><p>为实现安装过程中的自动驱动安装，我在镜像中集成了 <strong>IT天空的万能驱动包</strong>。<br>该驱动包支持市面上绝大多数主流硬件，同时兼容大多数旧硬件，确保系统在各种硬件环境下的兼容性和稳定性。</p><blockquote><p>⚠️ <strong>注意</strong>：由于驱动包的体积较大，使得镜像文件总大小约为 <strong>10GB</strong>。</p></blockquote><hr><h2 id="✨-四、预装常用软件"><a href="#✨-四、预装常用软件" class="headerlink" title="✨ 四、预装常用软件"></a>✨ 四、预装常用软件</h2><p>为了方便用户使用，我在镜像中预装了以下常用软件：</p><ul><li><strong>Bandizip</strong>：🗂️ 一款免费且快速地压缩解压工具，支持多种格式，界面简洁，操作方便。</li><li><strong>PotPlayer</strong>：🎥 功能强大的多媒体播放器，支持多种视频和音频格式，提供丰富的解码器和插件，播放流畅。</li><li><strong>火绒安全</strong>：🛡️ 轻量级的安全防护软件，提供实时病毒查杀、网络防护和系统优化功能，占用资源少，保护效果佳。</li><li><strong>360驱动大师</strong>：🔧 专业的驱动管理工具，提供驱动检测、下载和安装功能，确保系统硬件驱动的及时更新和兼容。</li><li><strong>Geek Uninstaller</strong>：🗑️ 轻量级的软件卸载工具，支持强力卸载和残留清理，帮助用户彻底移除不需要的软件。</li><li><strong>Microsoft Office 2016</strong>：📄 包含 Word、Excel、PowerPoint 等办公应用，满足日常文档编辑、数据处理和演示制作需求。</li><li><strong>Adobe Acrobat DC</strong>：📘 专业的 PDF 阅读和编辑工具，支持创建、编辑、转换和签署 PDF 文档，功能全面。</li><li><strong>Google Chrome 109</strong>：🌐 最后一个支持win7的版本，快速、安全的网页浏览器，提供流畅的浏览体验和丰富的扩展支持。</li></ul><p>这些预装软件能够满足大部分用户的日常需求，提供开箱即用的便利体验！🎉</p><hr><h2 id="📥-五、下载链接"><a href="#📥-五、下载链接" class="headerlink" title="📥 五、下载链接"></a>📥 五、下载链接</h2><p>镜像文件已上传至可靠的网盘，请通过以下链接下载：</p><ul><li>👉 <a href="https://pan.xmdblog.com/alipan/cn_windows_7_ultimate_sp1_x64_dvd_fz.iso"><strong>点击下载精简版Windows 7系统镜像</strong></a></li></ul><blockquote><p>💡 提示：下载完成后，请使用专业工具（如<a href="https://rufus.ie/">Rufus</a>）制作U盘启动盘，进行系统安装。</p></blockquote><hr><h2 id="🛠️-六、安装说明"><a href="#🛠️-六、安装说明" class="headerlink" title="🛠️ 六、安装说明"></a>🛠️ 六、安装说明</h2><ol><li>🔌 准备一个11GB以上容量的U盘。</li><li>⚙️ 使用<a href="https://rufus.ie/">Rufus</a>将镜像写入U盘，选择UEFI模式。</li><li>🔄 进入BIOS设置为UEFI启动，插入U盘并重启电脑。</li><li>🖱️ 按提示完成系统安装。</li></ol><blockquote><p>📝 <strong>注</strong>：安装完成后，请运行火绒安全检查更新并安装病毒库。</p></blockquote><hr><h2 id="⚠️-七、注意事项"><a href="#⚠️-七、注意事项" class="headerlink" title="⚠️ 七、注意事项"></a>⚠️ 七、注意事项</h2><ul><li>📜 本系统仅供学习和研究使用，请勿用于商业用途。</li><li>💬 如果有任何问题或建议，请在评论区留言，我会尽快解答！</li></ul><hr><p>希望本次封装的系统能为大家带来更好的使用体验，感谢支持！❤️</p><h2 id="📌-总结"><a href="#📌-总结" class="headerlink" title="📌 总结"></a>📌 总结</h2><p>如果你正需要一套适合老机器、兼顾兼容性与实用性的 Windows 7 镜像，这个版本会是一个比较省心的选择。它已经完成常见补丁、驱动和常用软件的整合，适合装机、测试或备用环境使用。</p><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区交流：</p><ol><li>你更偏向纯净原版还是适度优化版系统？</li><li>你还希望镜像内集成哪些常用工具？</li><li>安装过程中如果遇到问题，也可以留言一起排查。</li></ol>]]></content>
    
    
    <summary type="html">这是一款基于Windows 7精简封装的系统镜像，集成IT天空万能驱动包及多款常用软件，支持自动驱动安装，优化轻量化，开箱即用，满足日常使用需求。</summary>
    
    
    
    <category term="软件分享" scheme="https://www.xmdblog.com/categories/%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="下载" scheme="https://www.xmdblog.com/tags/%E4%B8%8B%E8%BD%BD/"/>
    
    <category term="热门" scheme="https://www.xmdblog.com/tags/%E7%83%AD%E9%97%A8/"/>
    
    <category term="装机" scheme="https://www.xmdblog.com/tags/%E8%A3%85%E6%9C%BA/"/>
    
    <category term="系统镜像" scheme="https://www.xmdblog.com/tags/%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/"/>
    
    <category term="Windows 7" scheme="https://www.xmdblog.com/tags/Windows-7/"/>
    
  </entry>
  
  <entry>
    <title>🎨 Alist 美化魔改教程和源码分享</title>
    <link href="https://www.xmdblog.com/posts/d7d7e48c.html"/>
    <id>https://www.xmdblog.com/posts/d7d7e48c.html</id>
    <published>2025-01-04T12:25:48.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>Alist 默认界面并不难用，但如果你希望它更有个人风格、更贴近自己的站点气质，就可以通过自定义头部代码、自定义内容代码和一些前端样式进行美化。</p><p>这篇文章会围绕“效果展示 → 配置位置 → 可直接使用的代码 → 修改建议”这条路线来整理，让你不只是复制代码，还能大概看懂每一部分在做什么。</p><blockquote><p>[!NOTE]<br>本文以我的网盘 <a href="https://pan.xmdblog.com/">pan.xmdblog.com</a> 为例演示，适合已经安装好 Alist 的用户继续美化界面。</p></blockquote><hr><h2 id="✨-一、效果展示"><a href="#✨-一、效果展示" class="headerlink" title="✨ 一、效果展示"></a>✨ 一、效果展示</h2><h3 id="1-首页效果"><a href="#1-首页效果" class="headerlink" title="1. 首页效果"></a>1. 首页效果</h3><p><img src="/img/posts/d7d7e48c/image-20241210223838575.png" alt="首页效果图"></p><h3 id="2-列表页效果"><a href="#2-列表页效果" class="headerlink" title="2. 列表页效果"></a>2. 列表页效果</h3><p><img src="/img/posts/d7d7e48c/image-20241210224043543.png" alt="列表页效果图"></p><p>从效果上看，这套方案主要实现了这些变化：</p><ul><li>页面背景更有氛围感</li><li>主列表与导航区域带有毛玻璃效果</li><li>全站统一字体风格</li><li>底部增加自定义链接与备案信息</li><li>增加一言内容，页面更灵动</li></ul><hr><h2 id="🛠️-二、进入后台配置位置"><a href="#🛠️-二、进入后台配置位置" class="headerlink" title="🛠️ 二、进入后台配置位置"></a>🛠️ 二、进入后台配置位置</h2><h3 id="1-找到配置入口"><a href="#1-找到配置入口" class="headerlink" title="1. 找到配置入口"></a>1. 找到配置入口</h3><p>登录 Alist 后台后，按下面路径进入：</p><ol><li>点击“管理”</li><li>找到“其他设置”</li><li>找到“自定义头部”与“自定义内容”</li></ol><p><img src="/img/posts/d7d7e48c/image-20241210224614668.png" alt="后台配置"></p><blockquote><p>[!TIP]<br>一般来说，样式类代码放进“自定义头部”，页面底部补充内容、脚本内容放进“自定义内容”，会更清晰。</p></blockquote><hr><h2 id="🧩-三、这套美化方案包含哪些部分"><a href="#🧩-三、这套美化方案包含哪些部分" class="headerlink" title="🧩 三、这套美化方案包含哪些部分"></a>🧩 三、这套美化方案包含哪些部分</h2><p>为了方便理解，你可以把本文的代码拆成 4 个模块：</p><h3 id="1-基础兼容与字体资源"><a href="#1-基础兼容与字体资源" class="headerlink" title="1. 基础兼容与字体资源"></a>1. 基础兼容与字体资源</h3><p>负责：</p><ul><li>引入 <code>replaceAll</code> 兼容脚本</li><li>引入网页字体</li></ul><h3 id="2-页面视觉样式"><a href="#2-页面视觉样式" class="headerlink" title="2. 页面视觉样式"></a>2. 页面视觉样式</h3><p>负责：</p><ul><li>背景图</li><li>毛玻璃卡片</li><li>顶部栏透明效果</li><li>白天&#x2F;夜间模式适配</li></ul><h3 id="3-底部自定义内容"><a href="#3-底部自定义内容" class="headerlink" title="3. 底部自定义内容"></a>3. 底部自定义内容</h3><p>负责：</p><ul><li>邮箱、博客、云盘、后台入口等链接</li><li>备案信息展示</li><li>页面底部结构补充</li></ul><h3 id="4-动态增强脚本"><a href="#4-动态增强脚本" class="headerlink" title="4. 动态增强脚本"></a>4. 动态增强脚本</h3><p>负责：</p><ul><li>延迟插入底部内容</li><li>一言内容加载</li></ul><p>当你知道这些模块分别是干什么的，后面二次修改就不会太痛苦。</p><hr><h2 id="💻-四、自定义头部代码"><a href="#💻-四、自定义头部代码" class="headerlink" title="💻 四、自定义头部代码"></a>💻 四、自定义头部代码</h2><p>把下面代码粘贴到 Alist 的“自定义头部”中：</p><figure class="highlight html"><table><tr><td class="code"><pre><span class="line"><span class="comment">&lt;!-- 引入 polyfill --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://polyfill.alicdn.com/v3/polyfill.min.js?features=String.prototype.replaceAll&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!-- 引入字体 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://npm.elemecdn.com/lxgw-wenkai-webfont@1.1.0/lxgwwenkai-regular.css&quot;</span> /&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">style</span>&gt;</span><span class="language-css"></span></span><br><span class="line"><span class="language-css">    <span class="comment">/* 隐藏底部 */</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.footer</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">display</span>: none <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">    <span class="comment">/* 背景设置 */</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-ui-dark</span>, <span class="selector-class">.hope-ui-light</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-image</span>: <span class="built_in">url</span>(<span class="string">&#x27;https://www.xmdblog.com/img/backgroud.jpeg&#x27;</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-size</span>: cover;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-attachment</span>: fixed;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-position</span>: center;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    </span></span><br><span class="line"><span class="language-css">    <span class="comment">/*主列表白天模式透明*/</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.obj-box</span><span class="selector-class">.hope-stack</span><span class="selector-class">.hope-c-dhzjXW</span><span class="selector-class">.hope-c-PJLV</span><span class="selector-class">.hope-c-PJLV-igScBhH-css</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.3</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">6px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="comment">/*主列表夜间模式透明*/</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.obj-box</span><span class="selector-class">.hope-stack</span><span class="selector-class">.hope-c-dhzjXW</span><span class="selector-class">.hope-c-PJLV</span><span class="selector-class">.hope-c-PJLV-iigjoxS-css</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.3</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">6px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="comment">/*readme白天模式透明*/</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-c-PJLV</span><span class="selector-class">.hope-c-PJLV-ikSuVsl-css</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.3</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">6px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="comment">/*readme夜间模式透明*/</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-c-PJLV</span><span class="selector-class">.hope-c-PJLV-iiuDLME-css</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.3</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">6px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">    <span class="comment">/*顶部*/</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-id">#root</span> &gt; <span class="selector-class">.header</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">6px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">    <span class="comment">/*导航条*/</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-ui-light</span> <span class="selector-class">.body</span> &gt; <span class="selector-class">.nav</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.3</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">border-radius</span>: <span class="built_in">var</span>(--hope-radii-xl);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">6px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-ui-dark</span> <span class="selector-class">.body</span> &gt; <span class="selector-class">.nav</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.3</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">border-radius</span>: <span class="built_in">var</span>(--hope-radii-xl);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">6px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">   </span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.body</span> &gt; <span class="selector-class">.nav</span><span class="selector-pseudo">::after</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">display</span>: none;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">    <span class="comment">/*右上视图切换菜单*/</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-ui-light</span> <span class="selector-class">.hope-c-PJLV-iSMXDf-css</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.3</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">border-radius</span>: <span class="number">10px</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">6px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-ui-dark</span> <span class="selector-class">.hope-c-PJLV-iSMXDf-css</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.3</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">border-radius</span>: <span class="built_in">var</span>(--hope-radii-xl);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">6px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">    <span class="comment">/*右下角按钮透明*/</span></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-ui-light</span> <span class="selector-class">.hope-c-PJLV-ijgzmFG-css</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.3</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-ui-dark</span> <span class="selector-class">.hope-c-PJLV-ijgzmFG-css</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.5</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-ui-light</span> pre &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.1</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.hope-ui-dark</span> pre &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">    dibu &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">border-top</span>: <span class="number">0px</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">position</span>: absolute;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">bottom</span>: <span class="number">0</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">width</span>: <span class="number">100%</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">margin</span>: <span class="number">0px</span>;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">padding</span>: <span class="number">0px</span>;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.App</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">min-height</span>: <span class="number">85vh</span>;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="selector-class">.table</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">margin</span>: auto;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">    * &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">font-family</span>: LXGW WenKai;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">font-weight</span>: bold;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css">    <span class="selector-tag">body</span> &#123;</span></span><br><span class="line"><span class="language-css">        <span class="attribute">font-family</span>: LXGW WenKai;</span></span><br><span class="line"><span class="language-css">    &#125;</span></span><br><span class="line"><span class="language-css"></span><span class="tag">&lt;/<span class="name">style</span>&gt;</span></span><br></pre></td></tr></table></figure><h3 id="这段代码主要做了什么"><a href="#这段代码主要做了什么" class="headerlink" title="这段代码主要做了什么"></a>这段代码主要做了什么</h3><p>可以简单理解为：</p><ul><li>先把原始底部隐藏</li><li>给页面铺上背景图</li><li>给内容卡片和导航区域加透明与模糊效果</li><li>调整白天 &#x2F; 夜间模式下的显示</li><li>全站切换到 <code>LXGW WenKai</code> 字体</li></ul><blockquote><p>[!WARNING]<br>这类基于类名的样式选择器，可能会随着 Alist 前端版本更新而失效，后续升级后如果样式不生效，需要重新检查选择器。</p></blockquote><hr><h2 id="📄-五、自定义内容代码"><a href="#📄-五、自定义内容代码" class="headerlink" title="📄 五、自定义内容代码"></a>📄 五、自定义内容代码</h2><p>把下面代码粘贴到“自定义内容”中：</p><figure class="highlight html"><table><tr><td class="code"><pre><span class="line"><span class="comment">&lt;!-- 延迟加载 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">&quot;customize&quot;</span> <span class="attr">style</span>=<span class="string">&quot;display: none;&quot;</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">div</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">center</span> <span class="attr">class</span>=<span class="string">&quot;dibu&quot;</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">&quot; line-height: 20px;font-size: 9pt;font-weight: bold;&quot;</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span>&gt;</span></span><br><span class="line">                    &quot;</span><br><span class="line">                    <span class="tag">&lt;<span class="name">span</span> <span class="attr">style</span>=<span class="string">&quot;color: rgb(154, 216, 166); font-weight: bold;&quot;</span> <span class="attr">id</span>=<span class="string">&quot;hitokoto&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;#&quot;</span> <span class="attr">id</span>=<span class="string">&quot;hitokoto_text&quot;</span>&gt;</span></span><br><span class="line">                            &quot;探索科技，启迪技能&quot;</span><br><span class="line">                        <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;/<span class="name">span</span>&gt;</span> &quot;</span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">            <span class="comment">&lt;!-- 底部链接 --&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">&quot;font-size: 13px; font-weight: bold;&quot;</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;mailto:xiaoming@xmdblog.com&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span>邮箱 |<span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;www.xmdblog.com&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span>博客 |<span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;pan.xmdblog.com&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span>云盘 |<span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;/@manage&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span>管理 |<span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://github.com/Xhofe/alist&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span>Alist<span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://beian.miit.gov.cn/#/Integrated/index&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span></span><br><span class="line">                        沪ICP备2024050492号-1</span><br><span class="line">                    <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">center</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">    <span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://v1.hitokoto.cn/?encode=js&amp;select=%23hitokoto&quot;</span> <span class="attr">defer</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span>&gt;</span><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript">    <span class="keyword">let</span> interval = <span class="built_in">setInterval</span>(<span class="function">() =&gt;</span> &#123;</span></span><br><span class="line"><span class="language-javascript">        <span class="keyword">if</span> (<span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;.footer&quot;</span>)) &#123;</span></span><br><span class="line"><span class="language-javascript">            <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#customize&quot;</span>).<span class="property">style</span>.<span class="property">display</span> = <span class="string">&quot;&quot;</span>;</span></span><br><span class="line"><span class="language-javascript">            <span class="built_in">clearInterval</span>(interval);</span></span><br><span class="line"><span class="language-javascript">        &#125;</span></span><br><span class="line"><span class="language-javascript">    &#125;, <span class="number">200</span>);</span></span><br><span class="line"><span class="language-javascript"></span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure><h3 id="这段代码负责什么"><a href="#这段代码负责什么" class="headerlink" title="这段代码负责什么"></a>这段代码负责什么</h3><p>它主要做了 3 件事：</p><ol><li>在底部插入自定义链接</li><li>显示备案信息</li><li>加载一言内容，让页面更生动</li></ol><hr><h2 id="🎨-六、你最值得优先改的内容"><a href="#🎨-六、你最值得优先改的内容" class="headerlink" title="🎨 六、你最值得优先改的内容"></a>🎨 六、你最值得优先改的内容</h2><p>如果你想把这套代码真正改成“自己的版本”，建议优先改下面这些地方：</p><h3 id="1-背景图片地址"><a href="#1-背景图片地址" class="headerlink" title="1. 背景图片地址"></a>1. 背景图片地址</h3><p>把：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">https://www.xmdblog.com/img/backgroud.jpeg</span><br></pre></td></tr></table></figure><p>替换成你自己的图片地址。</p><h3 id="2-邮箱、博客、云盘链接"><a href="#2-邮箱、博客、云盘链接" class="headerlink" title="2. 邮箱、博客、云盘链接"></a>2. 邮箱、博客、云盘链接</h3><p>把文中的示例链接改成你自己的：</p><ul><li>邮箱地址</li><li>博客首页地址</li><li>云盘地址</li><li>后台入口</li></ul><h3 id="3-备案号"><a href="#3-备案号" class="headerlink" title="3. 备案号"></a>3. 备案号</h3><p>如果你没有备案，可以删除备案部分；如果你有备案，请改成自己的备案号。</p><h3 id="4-一言内容风格"><a href="#4-一言内容风格" class="headerlink" title="4. 一言内容风格"></a>4. 一言内容风格</h3><p>如果你不喜欢随机句子，也可以把一言 API 去掉，换成固定文案。</p><hr><h2 id="🛠️-七、常见问题"><a href="#🛠️-七、常见问题" class="headerlink" title="🛠️ 七、常见问题"></a>🛠️ 七、常见问题</h2><h3 id="1-样式没生效"><a href="#1-样式没生效" class="headerlink" title="1. 样式没生效"></a>1. 样式没生效</h3><p>优先检查：</p><ul><li>代码是否放错位置</li><li>是否保存成功</li><li>浏览器缓存是否未刷新</li><li>Alist 版本更新后类名是否发生变化</li></ul><h3 id="2-背景图不显示"><a href="#2-背景图不显示" class="headerlink" title="2. 背景图不显示"></a>2. 背景图不显示</h3><p>优先检查：</p><ul><li>图片链接是否能直接访问</li><li>是否开启了防盗链</li><li>地址是否拼写错误</li></ul><h3 id="3-底部内容不显示"><a href="#3-底部内容不显示" class="headerlink" title="3. 底部内容不显示"></a>3. 底部内容不显示</h3><p>优先检查：</p><ul><li>自定义内容代码是否完整复制</li><li>页面是否成功找到 <code>.footer</code></li><li>是否有其他脚本冲突</li></ul><h3 id="4-夜间模式显示怪异"><a href="#4-夜间模式显示怪异" class="headerlink" title="4. 夜间模式显示怪异"></a>4. 夜间模式显示怪异</h3><p>说明部分颜色或透明度不够协调，可以单独调整：</p><ul><li><code>background-color</code></li><li><code>box-shadow</code></li><li><code>backdrop-filter</code></li></ul><hr><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>这套 Alist 美化方案的重点不是“代码多”，而是思路清晰：</p><ol><li>用头部代码控制整体视觉</li><li>用自定义内容补充底部结构</li><li>用字体、背景、透明效果塑造统一风格</li><li>用一言和链接让页面更完整</li></ol><p>如果你只是想快速提升默认界面的观感，这一套已经够用；如果你还想继续深入，下一步可以进一步做：</p><ul><li>登录页单独美化</li><li>图标与配色统一</li><li>移动端细节适配</li><li>更精简、更稳的选择器重写</li></ul><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区交流：</p><ol><li>你更喜欢简洁风，还是这种毛玻璃氛围风？</li><li>你还想给 Alist 增加哪些视觉效果？</li><li>如果你愿意，我也可以继续帮你把这套代码再精简成更稳定、可维护的版本。</li></ol>]]></content>
    
    
    <summary type="html">详细介绍 Alist 网盘程序的美化和魔改方法，包括界面美化、功能增强等内容，并提供完整源码。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="网站建设" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/%E7%BD%91%E7%AB%99%E5%BB%BA%E8%AE%BE/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="美化" scheme="https://www.xmdblog.com/tags/%E7%BE%8E%E5%8C%96/"/>
    
    <category term="CSS" scheme="https://www.xmdblog.com/tags/CSS/"/>
    
    <category term="Alist" scheme="https://www.xmdblog.com/tags/Alist/"/>
    
  </entry>
  
  <entry>
    <title>⌨️ Windows 运行框有大作用</title>
    <link href="https://www.xmdblog.com/posts/99a46679.html"/>
    <id>https://www.xmdblog.com/posts/99a46679.html</id>
    <published>2024-11-05T09:10:40.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>Windows 运行框(Win+R)是一个强大的系统工具，通过它可以快速启动系统程序、打开系统设置等。本文将介绍一些常用的运行命令，帮助您提高工作效率。</p><blockquote><p>[!NOTE]<br>运行框可以通过快捷键 <code>Win + R</code> 快速打开。</p></blockquote><h2 id="✨-一、实际应用案例"><a href="#✨-一、实际应用案例" class="headerlink" title="✨ 一、实际应用案例"></a>✨ 一、实际应用案例</h2><p>最近遇到一个案例：一台电脑开机后黑屏，重启也一样，只有 Edge 搜索框和 360 还在桌面上。通过以下步骤成功解决：</p><ol><li>按 <code>Win + Shift + Esc</code> 打开任务管理器</li><li>发现找不到资源管理器进程</li><li>按 <code>Win + R</code> 打开运行框</li><li>输入 <code>explorer.exe</code> 并回车</li><li>成功恢复桌面显示</li></ol><h2 id="💻-二、常用运行命令"><a href="#💻-二、常用运行命令" class="headerlink" title="💻 二、常用运行命令"></a>💻 二、常用运行命令</h2><p>下面是一些常用的系统程序运行命令：</p><table><thead><tr><th>功能</th><th>命令</th><th>说明</th></tr></thead><tbody><tr><td>资源管理器</td><td>explorer.exe</td><td>系统文件管理器</td></tr><tr><td>任务管理器</td><td>taskmgr.exe</td><td>查看系统进程和性能</td></tr><tr><td>注册表编辑器</td><td>regedit.exe</td><td>修改系统注册表</td></tr><tr><td>本地安全策略</td><td>secpol.exe</td><td>管理系统安全策略</td></tr><tr><td>设备管理器</td><td>devmgmt.msc</td><td>管理硬件设备</td></tr><tr><td>控制面板</td><td>control.exe</td><td>系统设置中心</td></tr><tr><td>显示设置</td><td>desk.cpl</td><td>调整显示器和分辨率设置</td></tr><tr><td>磁盘管理</td><td>diskmgmt.msc</td><td>管理硬盘分区</td></tr><tr><td>系统服务</td><td>services.msc</td><td>管理系统服务</td></tr></tbody></table><blockquote><p>[!TIP]<br>这些命令都可以通过运行框快速访问，无需在系统中查找对应程序。</p></blockquote><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>Windows 运行框不仅可以快速启动程序，还能在系统出现问题时帮助我们快速定位和解决问题。建议记住常用的命令，可以大大提高工作效率。</p><blockquote><p>[!WARNING]<br>修改系统设置时请谨慎操作，建议提前备份重要数据。</p></blockquote><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区讨论：</p><ol><li>您知道其他实用的运行命令吗？</li><li>您是否用运行框解决过系统问题？</li></ol>]]></content>
    
    
    <summary type="html">介绍 Windows 运行框(Win+R)的实用命令，帮助用户快速启动系统程序和解决常见问题。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Windows技巧" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/Windows%E6%8A%80%E5%B7%A7/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="热门" scheme="https://www.xmdblog.com/tags/%E7%83%AD%E9%97%A8/"/>
    
    <category term="系统技巧" scheme="https://www.xmdblog.com/tags/%E7%B3%BB%E7%BB%9F%E6%8A%80%E5%B7%A7/"/>
    
    <category term="Win+R" scheme="https://www.xmdblog.com/tags/Win-R/"/>
    
    <category term="Windows" scheme="https://www.xmdblog.com/tags/Windows/"/>
    
  </entry>
  
  <entry>
    <title>🛠️ VSCode 报错“此系统上禁止运行脚本”</title>
    <link href="https://www.xmdblog.com/posts/c743088a.html"/>
    <id>https://www.xmdblog.com/posts/c743088a.html</id>
    <published>2024-09-12T12:22:44.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>在使用 VSCode 时可能会遇到”此系统上禁止运行脚本”的错误提示，这是由于 Windows 默认的 PowerShell 执行策略限制导致的。</p><h2 id="🛠️-解决方法"><a href="#🛠️-解决方法" class="headerlink" title="🛠️ 解决方法"></a>🛠️ 解决方法</h2><h3 id="💡-1-打开-Windows-设置"><a href="#💡-1-打开-Windows-设置" class="headerlink" title="💡 1. 打开 Windows 设置"></a>💡 1. 打开 Windows 设置</h3><p>使用快捷键 <code>WIN + I</code> 打开 Windows 设置。</p><h3 id="💡-2-修改执行策略"><a href="#💡-2-修改执行策略" class="headerlink" title="💡 2. 修改执行策略"></a>💡 2. 修改执行策略</h3><p><img src="/img/posts/c743088a/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE2024-09-12.png" alt="Windows PowerShell 执行策略设置"></p><blockquote><p>[!TIP]<br>也可以通过 PowerShell 命令修改执行策略:</p><figure class="highlight powershell"><table><tr><td class="code"><pre><span class="line"><span class="built_in">Set-ExecutionPolicy</span> RemoteSigned</span><br></pre></td></tr></table></figure></blockquote><h3 id="✅-3-验证设置"><a href="#✅-3-验证设置" class="headerlink" title="✅ 3. 验证设置"></a>✅ 3. 验证设置</h3><p>设置完成后，重启 VSCode 验证问题是否解决。</p><hr><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>通过修改 Windows PowerShell 的执行策略，我们解决了 VSCode 无法运行脚本的问题。这个设置不会影响系统安全性，但可以让开发工作更顺畅。</p><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区讨论:</p><ol><li>您是否遇到过类似问题？</li><li>还有什么 VSCode 使用问题需要解决？</li></ol>]]></content>
    
    
    <summary type="html">解决 VSCode 在 Windows 系统上提示&quot;此系统上禁止运行脚本&quot;的问题。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="问题解决" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="热门" scheme="https://www.xmdblog.com/tags/%E7%83%AD%E9%97%A8/"/>
    
    <category term="VSCode" scheme="https://www.xmdblog.com/tags/VSCode/"/>
    
    <category term="Windows" scheme="https://www.xmdblog.com/tags/Windows/"/>
    
    <category term="PowerShell" scheme="https://www.xmdblog.com/tags/PowerShell/"/>
    
  </entry>
  
  <entry>
    <title>🧩 front-matter 介绍与写法说明</title>
    <link href="https://www.xmdblog.com/posts/2ebce51e.html"/>
    <id>https://www.xmdblog.com/posts/2ebce51e.html</id>
    <published>2024-06-18T08:42:24.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>Front-matter 是 Markdown 文件最上方以 <code>---</code> 分隔的配置区域，用于给页面或文章声明标题、时间、标签、封面、描述等元信息。掌握它之后，你会更容易把 Hexo 文章写得更规范，也更利于 SEO 与主题展示。</p><ul><li>Page Front-matter 用于配置页面</li><li>Post Front-matter 用于配置文章</li></ul><blockquote><p>[!NOTE]</p><p>如果标注的参数，可根据自己需要添加，不用全部都写在 markdown 里</p></blockquote><h2 id="📄-一、Page-Front-matter-字段说明"><a href="#📄-一、Page-Front-matter-字段说明" class="headerlink" title="📄 一、Page Front-matter 字段说明"></a>📄 一、Page Front-matter 字段说明</h2><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line">---</span><br><span class="line">title:</span><br><span class="line">date:</span><br><span class="line">updated:</span><br><span class="line">type:</span><br><span class="line">comments:</span><br><span class="line">description:</span><br><span class="line">keywords:</span><br><span class="line">top<span class="emphasis">_img:</span></span><br><span class="line"><span class="emphasis">mathjax:</span></span><br><span class="line"><span class="emphasis">katex:</span></span><br><span class="line"><span class="emphasis">aside:</span></span><br><span class="line"><span class="emphasis">aplayer:</span></span><br><span class="line"><span class="emphasis">highlight_</span>shrink:</span><br><span class="line"><span class="section">random:</span></span><br><span class="line"><span class="section">---</span></span><br></pre></td></tr></table></figure><table><thead><tr><th>写法</th><th align="left">解释</th></tr></thead><tbody><tr><td>title</td><td align="left">【必需】页面标题</td></tr><tr><td>date</td><td align="left">【必需】页面创建日期</td></tr><tr><td>type</td><td align="left">【必需】标签、分类和友情链接三个页面需要配置</td></tr><tr><td>updated</td><td align="left">【可选】页面更新日期</td></tr><tr><td>description</td><td align="left">【可选】页面描述</td></tr><tr><td>keywords</td><td align="left">【可选】页面关键词</td></tr><tr><td>comments</td><td align="left">【可选】显示页面评论模块 （默认 true）</td></tr><tr><td>top_img</td><td align="left">【可选】页面顶部图片</td></tr><tr><td>mathjax</td><td align="left">【可选】显示mathjax （当设置mathjax的per_page： false时，才需要配置，默认 false）</td></tr><tr><td>katex</td><td align="left">【可选】显示katex （当设置katex的per_page： false时，才需要配置，默认 false）</td></tr><tr><td>aside</td><td align="left">【可选】显示侧边栏 （默认 true）</td></tr><tr><td>aplayer</td><td align="left">【可选】在需要的页面加载aplayer的js和css，请参考文章下面的 配置音乐</td></tr><tr><td>highlight_shrink</td><td align="left">【可选】配置代码框是否展开 （true&#x2F;false） （默认为设置中highlight_shrink的配置）</td></tr><tr><td>random</td><td align="left">【可选】配置友情链接是否随机排序（默认为 false）</td></tr></tbody></table><h2 id="🧩-二、Post-Front-matter-字段说明"><a href="#🧩-二、Post-Front-matter-字段说明" class="headerlink" title="🧩 二、Post Front-matter 字段说明"></a>🧩 二、Post Front-matter 字段说明</h2><figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line">---</span><br><span class="line">title:</span><br><span class="line">date:</span><br><span class="line">updated:</span><br><span class="line">tags:</span><br><span class="line">categories:</span><br><span class="line">keywords:</span><br><span class="line">description:</span><br><span class="line">top<span class="emphasis">_img:</span></span><br><span class="line"><span class="emphasis">comments:</span></span><br><span class="line"><span class="emphasis">cover:</span></span><br><span class="line"><span class="emphasis">toc:</span></span><br><span class="line"><span class="emphasis">toc_</span>number:</span><br><span class="line">toc<span class="emphasis">_style_</span>simple:</span><br><span class="line">copyright:</span><br><span class="line">copyright<span class="emphasis">_author:</span></span><br><span class="line"><span class="emphasis">copyright_</span>author<span class="emphasis">_href:</span></span><br><span class="line"><span class="emphasis">copyright_</span>url:</span><br><span class="line">copyright<span class="emphasis">_info:</span></span><br><span class="line"><span class="emphasis">mathjax:</span></span><br><span class="line"><span class="emphasis">katex:</span></span><br><span class="line"><span class="emphasis">aplayer:</span></span><br><span class="line"><span class="emphasis">highlight_</span>shrink:</span><br><span class="line">aside:</span><br><span class="line"><span class="section">abcjs:</span></span><br><span class="line"><span class="section">---</span></span><br></pre></td></tr></table></figure><table><thead><tr><th>写法</th><th>解释</th></tr></thead><tbody><tr><td>title</td><td>【必需】文章标题</td></tr><tr><td>date</td><td>【必需】文章创建日期</td></tr><tr><td>updated</td><td>【可选】文章更新日期</td></tr><tr><td>tags</td><td>【可选】文章标签</td></tr><tr><td>categories</td><td>【可选】文章分类</td></tr><tr><td>keywords</td><td>【可选】文章关键词</td></tr><tr><td>description</td><td>【可选】文章描述</td></tr><tr><td>top_img</td><td>【可选】文章顶部图片</td></tr><tr><td>cover</td><td>【可选】文章缩略图（如果没有设置top_img，文章页顶部将显示缩略图，可设为false&#x2F;图片地址&#x2F;留空）</td></tr><tr><td>comments</td><td>【可选】显示文章评论模块（默认 true）</td></tr><tr><td>toc</td><td>【可选】显示文章TOC（默认为设置中toc的enable配置）</td></tr><tr><td>toc_number</td><td>【可选】显示toc_number（默认为设置中toc的number配置）</td></tr><tr><td>toc_style_simple</td><td>【可选】显示 toc 简洁模式</td></tr><tr><td>copyright</td><td>【可选】显示文章版权模块（默认为设置中post_copyright的enable配置）</td></tr><tr><td>copyright_author</td><td>【可选】文章版权模块的文章作者</td></tr><tr><td>copyright_author_href</td><td>【可选】文章版权模块的链接文章作者</td></tr><tr><td>copyright_url</td><td>【可选】文章版权模块的链接文章链接</td></tr><tr><td>copyright_info</td><td>【可选】文章版权模块的文字版权声明</td></tr><tr><td>mathjax</td><td>【可选】显示mathjax（当设置 mathjax 的 per_page： false 时，才需要配置，默认 false ）</td></tr><tr><td>katex</td><td>【可选】显示 katex （当设置 katex 的 per_page： false 时，才需要配置，默认 false ）</td></tr><tr><td>aplayer</td><td>【可选】在需要的页面加载 aplayer 的 js 和 css</td></tr><tr><td>highlight_shrink</td><td>【可选】配置代码框是否展开（true&#x2F;false）（默认为设置中 highlight_shrink 的配置）</td></tr><tr><td>aside</td><td>【可选】显示侧边栏 （默认 true）</td></tr><tr><td>abcjs</td><td>【可选】加载 abcjs （当设置 abcjs 的 per_page： false 时，才需要配置，默认 false ）</td></tr></tbody></table><h2 id="📌-总结"><a href="#📌-总结" class="headerlink" title="📌 总结"></a>📌 总结</h2><p>Front-matter 可以理解为 Hexo 文章与页面的“配置入口”。只要掌握常用字段的用途，你就能更轻松地管理文章标题、分类、标签、封面、描述与显示效果。建议平时整理一份自己的 Front-matter 模板，后续写作会高效很多。</p><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区交流：</p><ol><li>你最常用的 Front-matter 字段有哪些？</li><li>你更想了解页面配置还是文章配置？</li><li>还想看哪些 Hexo 写作规范相关内容？</li></ol>]]></content>
    
    
    <summary type="html">详细介绍Hexo博客front-matter的配置和使用方法。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Hexo教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/Hexo%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="Hexo" scheme="https://www.xmdblog.com/tags/Hexo/"/>
    
    <category term="Markdown" scheme="https://www.xmdblog.com/tags/Markdown/"/>
    
    <category term="front-matter" scheme="https://www.xmdblog.com/tags/front-matter/"/>
    
  </entry>
  
  <entry>
    <title>✍️ Typora：超好用的 Markdown 编辑器</title>
    <link href="https://www.xmdblog.com/posts/c6c552a3.html"/>
    <id>https://www.xmdblog.com/posts/c6c552a3.html</id>
    <published>2024-06-18T08:42:24.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>接触前端的人一定知道 Markdown，这是一种轻量级标记语言，被广泛用于撰写帮助文档、论坛消息和博客文章。Typora 让 Markdown 写作变得简单优雅。</p><blockquote><p>[!NOTE]<br>Markdown 已成为 GitHub、SourceForge 等平台的标准写作格式。</p></blockquote><hr><h2 id="✨-一、为什么选择-Typora"><a href="#✨-一、为什么选择-Typora" class="headerlink" title="✨ 一、为什么选择 Typora"></a>✨ 一、为什么选择 Typora</h2><h3 id="💡-1-简单易用"><a href="#💡-1-简单易用" class="headerlink" title="💡 1. 简单易用"></a>💡 1. 简单易用</h3><p><img src="/img/posts/c6c552a3/image-20240618110650379.png" alt="Typora界面"></p><p>特点：</p><ul><li>所见即所写(WYSIWYG)编辑模式</li><li>清爽的界面设计</li><li>无需记忆复杂语法</li></ul><h3 id="✨-2-强大的功能"><a href="#✨-2-强大的功能" class="headerlink" title="✨ 2. 强大的功能"></a>✨ 2. 强大的功能</h3><p>以表格为例，无需手动编写复杂的语法：</p><p><img src="/img/posts/c6c552a3/image-20240618111208684.png" alt="表格编辑"></p><p>支持的功能：</p><ul><li>表格编辑</li><li>图片插入</li><li>数学公式</li><li>代码高亮</li><li>目录生成</li><li>多种导出格式</li></ul><hr><h2 id="🛠️-二、如何用-Typora-写-Hexo-文章"><a href="#🛠️-二、如何用-Typora-写-Hexo-文章" class="headerlink" title="🛠️ 二、如何用 Typora 写 Hexo 文章"></a>🛠️ 二、如何用 Typora 写 Hexo 文章</h2><h3 id="💡-1-创建文章"><a href="#💡-1-创建文章" class="headerlink" title="💡 1. 创建文章"></a>💡 1. 创建文章</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 在博客根目录运行</span></span><br><span class="line">hexo new &lt;文章标题&gt;</span><br></pre></td></tr></table></figure><h3 id="💡-2-编辑文章"><a href="#💡-2-编辑文章" class="headerlink" title="💡 2. 编辑文章"></a>💡 2. 编辑文章</h3><ol><li>打开 Typora</li><li>编辑 front-matter</li><li>撰写文章内容</li><li>复制到 Hexo 文章中</li></ol><p><img src="/img/posts/c6c552a3/image-20240618163200746.png" alt="编辑示例"></p><blockquote><p>[!TIP]<br>关于 front-matter 的详细说明，可以参考<a href="/posts/2ebce51e.html">这篇文章</a></p></blockquote><hr><h2 id="🛒-三、关于购买"><a href="#🛒-三、关于购买" class="headerlink" title="🛒 三、关于购买"></a>🛒 三、关于购买</h2><h3 id="🛒-官方购买"><a href="#🛒-官方购买" class="headerlink" title="🛒 官方购买"></a>🛒 官方购买</h3><ul><li>官网：<a href="https://typoraio.cn/">Typora 官方中文站</a></li><li>价格：80 RMB (荔枝软件商店)</li></ul><h3 id="💡-免费替代方案"><a href="#💡-免费替代方案" class="headerlink" title="💡 免费替代方案"></a>💡 免费替代方案</h3><p>如果预算有限，可以考虑：</p><ul><li><a href="https://www.marktext.cc/">MarkText</a>：开源免费</li><li><a href="https://code.visualstudio.com/">VSCode + Markdown 插件</a>：功能丰富</li></ul><blockquote><p>[!NOTE]<br>个人建议支持正版 Typora，物有所值。</p></blockquote><hr><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>Typora 是一款优秀的 Markdown 编辑器：</p><ul><li>界面简洁优雅</li><li>功能强大实用</li><li>适合写作分享</li><li>值得投资购买</li></ul><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区讨论：</p><ol><li>您使用过哪些 Markdown 编辑器？</li><li>对 Typora 有什么使用建议？</li></ol>]]></content>
    
    
    <summary type="html">介绍 Typora 这款优秀的 Markdown 编辑器，包括其特点、使用方法和购买建议。</summary>
    
    
    
    <category term="软件分享" scheme="https://www.xmdblog.com/categories/%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/"/>
    
    <category term="写作工具" scheme="https://www.xmdblog.com/categories/%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/%E5%86%99%E4%BD%9C%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="写作工具" scheme="https://www.xmdblog.com/tags/%E5%86%99%E4%BD%9C%E5%B7%A5%E5%85%B7/"/>
    
    <category term="Typora" scheme="https://www.xmdblog.com/tags/Typora/"/>
    
    <category term="Markdown" scheme="https://www.xmdblog.com/tags/Markdown/"/>
    
  </entry>
  
  <entry>
    <title>🪄 Windows 11 跳过 OOBE（联网激活）</title>
    <link href="https://www.xmdblog.com/posts/1fcd9f39.html"/>
    <id>https://www.xmdblog.com/posts/1fcd9f39.html</id>
    <published>2024-06-11T14:38:24.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>在安装 Windows 11 时，系统会要求完成 OOBE（开箱体验）设置并联网激活。本文介绍一个简单有效的方法来跳过这些步骤，特别适合虚拟机安装场景。</p><blockquote><p>[!NOTE]<br>OOBE (Out-Of-Box Experience) 是微软为新用户设计的初始化设置向导。</p></blockquote><hr><h2 id="🛠️-一、解决方法"><a href="#🛠️-一、解决方法" class="headerlink" title="🛠️ 一、解决方法"></a>🛠️ 一、解决方法</h2><blockquote><p>[!IMPORTANT]<br>请注意：在 Windows 11 最新版本中，部分旧方法可能已不再适用。建议优先尝试以下最新方法。</p></blockquote><h3 id="💻-1-打开命令提示符"><a href="#💻-1-打开命令提示符" class="headerlink" title="💻 1. 打开命令提示符"></a>💻 1. 打开命令提示符</h3><p>在 OOBE 界面按下快捷键:</p><ul><li>普通键盘: <code>Shift + F10</code></li><li>笔记本键盘: <code>Shift + Fn + F10</code></li></ul><h3 id="💻-2-执行跳过命令"><a href="#💻-2-执行跳过命令" class="headerlink" title="💻 2. 执行跳过命令"></a>💻 2. 执行跳过命令</h3><p>在打开的命令提示符(CMD)窗口中输入:</p><figure class="highlight cmd"><table><tr><td class="code"><pre><span class="line">OOBE\BYPASSNRO</span><br></pre></td></tr></table></figure><blockquote><p>[!TIP]<br>执行命令后系统会自动重启并跳过 OOBE 设置。</p></blockquote><h3 id="🛠️-3-通过注册表修改（究极方法）"><a href="#🛠️-3-通过注册表修改（究极方法）" class="headerlink" title="🛠️ 3. 通过注册表修改（究极方法）"></a>🛠️ 3. 通过注册表修改（究极方法）</h3><p>如果上述方法无效，可以尝试通过修改注册表的方式：</p><ol><li><p>在 OOBE 界面按下快捷键打开命令提示符：</p><ul><li>普通键盘: <code>Shift + F10</code></li><li>笔记本键盘: <code>Shift + Fn + F10</code></li></ul></li><li><p>在命令提示符窗口中输入：</p></li></ol><figure class="highlight cmd"><table><tr><td class="code"><pre><span class="line">regedit</span><br></pre></td></tr></table></figure><ol start="3"><li>在注册表编辑器中依次导航到：</li></ol><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE</span><br></pre></td></tr></table></figure><ol start="4"><li>在右侧空白处右键，选择：<ul><li>新建 -&gt; DWORD (32 位)值(D)</li><li>将新建的值命名为：<code>BypassNRO</code></li><li>双击该值，将数值数据修改为 <code>1</code></li></ul></li></ol><p><img src="https://imgbed.xmdblog.com/file/lItgq0Ze.png" alt="image.png"></p><ol start="5"><li>完成后在命令提示符窗口输入：</li></ol><figure class="highlight cmd"><table><tr><td class="code"><pre><span class="line">logoff</span><br></pre></td></tr></table></figure><blockquote><p>[!TIP]<br>执行完这些步骤后，系统将跳过联网登录账号提示。</p></blockquote><h3 id="🛠️-4-脚本自动化方法（推荐批量使用）"><a href="#🛠️-4-脚本自动化方法（推荐批量使用）" class="headerlink" title="🛠️ 4. 脚本自动化方法（推荐批量使用）"></a>🛠️ 4. 脚本自动化方法（推荐批量使用）</h3><p>如果您经常需要安装系统并跳过 OOBE，可以准备一个自动化脚本：</p><ol><li>在 U 盘根目录创建文件 <code>SkipOOBE.bat</code>，写入以下内容：</li></ol><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">@echo off</span><br><span class="line">reg add &quot;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE&quot; /v &quot;BypassNRO&quot; /t REG_DWORD /d &quot;1&quot; /f</span><br><span class="line">logoff</span><br></pre></td></tr></table></figure><ol start="2"><li>使用方法：<ul><li>在 OOBE 界面按下 <code>Shift + F10</code>（笔记本可能需要 <code>Shift + Fn + F10</code>）打开命令提示符</li><li>确认 U 盘盘符（例如输入 <code>dir d:</code> 查看是否是 D 盘）</li><li>执行脚本（假设 U 盘是 D 盘）：</li></ul></li></ol><figure class="highlight cmd"><table><tr><td class="code"><pre><span class="line"><span class="function">d:</span></span><br><span class="line"><span class="function"><span class="title">SkipOOBE.bat</span></span></span><br></pre></td></tr></table></figure><blockquote><p>[!TIP]</p><ul><li>将脚本保存在 U 盘中，可以随时携带使用</li><li>建议将 U 盘格式化为 FAT32 格式，确保最大兼容性</li><li>如果找不到 U 盘盘符，可以用 <code>diskpart</code> 命令查看：输入 <code>diskpart</code> 回车，然后输入 <code>list volume</code> 即可查看所有盘符</li></ul></blockquote><hr><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>这个方法具有以下优点:</p><ul><li>操作简单快捷</li><li>无需第三方工具</li><li>适用于所有 Windows 11 版本</li><li>不会影响系统功能</li></ul><blockquote><p>[!WARNING]<br>跳过 OOBE 后，您可能需要手动配置一些系统设置。</p></blockquote><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区讨论:</p><ol><li>您在安装 Windows 11 时遇到过什么问题？</li><li>还有什么 Windows 11 使用技巧想了解？</li></ol>]]></content>
    
    
    <summary type="html">介绍如何在 Windows 11 安装过程中跳过 OOBE（开箱体验）和联网激活步骤的方法。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Windows技巧" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/Windows%E6%8A%80%E5%B7%A7/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="热门" scheme="https://www.xmdblog.com/tags/%E7%83%AD%E9%97%A8/"/>
    
    <category term="OOBE" scheme="https://www.xmdblog.com/tags/OOBE/"/>
    
    <category term="系统安装" scheme="https://www.xmdblog.com/tags/%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85/"/>
    
    <category term="Windows 11" scheme="https://www.xmdblog.com/tags/Windows-11/"/>
    
  </entry>
  
  <entry>
    <title>🌐 Hexo 博客搭建教程</title>
    <link href="https://www.xmdblog.com/posts/70db7d7c.html"/>
    <id>https://www.xmdblog.com/posts/70db7d7c.html</id>
    <published>2024-03-21T14:11:06.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>如果你想快速拥有一个属于自己的博客，但又不想折腾传统动态网站，那么 Hexo 会是非常适合入门的选择。它是一个轻量、速度快、生态成熟的静态博客框架，配合 GitHub Pages、Vercel 等平台，可以低成本完成发布。</p><blockquote><p>[!TIP]<br>如果你还想把博客部署到服务器，可以继续阅读站内另一篇教程：<a href="/posts/e039465e.html"><code>/posts/e039465e.html</code></a>。</p></blockquote><hr><h2 id="🎯-一、这篇教程你将完成什么"><a href="#🎯-一、这篇教程你将完成什么" class="headerlink" title="🎯 一、这篇教程你将完成什么"></a>🎯 一、这篇教程你将完成什么</h2><p>学完这篇文章后，你可以完成以下事情：</p><ol><li>安装 Hexo 所需环境</li><li>初始化一个全新的博客项目</li><li>本地预览博客效果</li><li>安装并配置主题</li><li>部署到 GitHub Pages</li><li>可选部署到 Vercel</li></ol><blockquote><p>[!NOTE]<br>本文更适合第一次接触 Hexo 的新手，尽量按顺序操作，不建议跳步。</p></blockquote><hr><h2 id="🔧-二、环境准备"><a href="#🔧-二、环境准备" class="headerlink" title="🔧 二、环境准备"></a>🔧 二、环境准备</h2><h3 id="1-安装-Node-js"><a href="#1-安装-Node-js" class="headerlink" title="1. 安装 Node.js"></a>1. 安装 Node.js</h3><p>Node.js 是 Hexo 的运行环境，必须先安装。</p><p>操作步骤：</p><ol><li>打开 <a href="https://nodejs.org/en">Node.js 官网</a></li><li>下载 LTS 稳定版</li><li>按默认选项完成安装</li><li>打开命令提示符验证版本</li></ol><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">node -v</span><br></pre></td></tr></table></figure><p>如果能正常输出版本号，就说明安装成功。</p><p>为了提升依赖安装速度，建议顺手切换 npm 镜像源：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">npm config <span class="built_in">set</span> registry https://registry.npmmirror.com</span><br></pre></td></tr></table></figure><h3 id="2-安装-Git"><a href="#2-安装-Git" class="headerlink" title="2. 安装 Git"></a>2. 安装 Git</h3><p>Git 用于管理博客源码，也用于后续部署。</p><p>操作步骤：</p><ol><li>打开 <a href="https://git-scm.com/downloads">Git 官网下载页</a></li><li>按默认选项完成安装</li><li>安装后执行以下命令确认是否正常</li></ol><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git --version</span><br></pre></td></tr></table></figure><h3 id="3-安装-Hexo-CLI"><a href="#3-安装-Hexo-CLI" class="headerlink" title="3. 安装 Hexo CLI"></a>3. 安装 Hexo CLI</h3><p>环境准备完成后，安装 Hexo 命令行工具：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">npm install -g hexo-cli</span><br></pre></td></tr></table></figure><p>安装完成后，检查版本：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo -v</span><br></pre></td></tr></table></figure><h3 id="4-配置-GitHub-账号信息"><a href="#4-配置-GitHub-账号信息" class="headerlink" title="4. 配置 GitHub 账号信息"></a>4. 配置 GitHub 账号信息</h3><p>如果你打算部署到 GitHub Pages，建议先配置全局 Git 用户信息：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git config --global user.name &lt;你的用户名&gt;</span><br><span class="line">git config --global user.email &lt;你的邮箱&gt;</span><br></pre></td></tr></table></figure><p>查看是否配置成功：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git config -l</span><br></pre></td></tr></table></figure><h3 id="5-配置-SSH-连接-GitHub"><a href="#5-配置-SSH-连接-GitHub" class="headerlink" title="5. 配置 SSH 连接 GitHub"></a>5. 配置 SSH 连接 GitHub</h3><p>为了后续推送代码更方便，建议配置 SSH：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">ssh-keygen -t rsa -C &lt;你的邮箱&gt;</span><br></pre></td></tr></table></figure><p>一路回车后，打开用户目录下的 <code>.ssh</code> 文件夹，复制 <code>id_rsa.pub</code> 内容，添加到 GitHub：</p><p><code>头像 → Settings → SSH and GPG keys → New SSH key</code></p><p>添加完成后测试连接：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">ssh -T git@github.com</span><br></pre></td></tr></table></figure><blockquote><p>[!TIP]<br>首次连接时看到确认提示，输入 <code>yes</code> 即可。</p></blockquote><hr><h2 id="🚀-三、新建-Hexo-项目"><a href="#🚀-三、新建-Hexo-项目" class="headerlink" title="🚀 三、新建 Hexo 项目"></a>🚀 三、新建 Hexo 项目</h2><p>环境安装完成后，就可以正式创建博客了。</p><h3 id="1-初始化项目"><a href="#1-初始化项目" class="headerlink" title="1. 初始化项目"></a>1. 初始化项目</h3><p>在你想放置博客的位置打开终端，执行：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo init &lt;项目名&gt;</span><br><span class="line"><span class="built_in">cd</span> &lt;项目名&gt;</span><br></pre></td></tr></table></figure><p>例如：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo init my-blog</span><br><span class="line"><span class="built_in">cd</span> my-blog</span><br></pre></td></tr></table></figure><h3 id="2-安装依赖"><a href="#2-安装依赖" class="headerlink" title="2. 安装依赖"></a>2. 安装依赖</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">npm i</span><br></pre></td></tr></table></figure><p>安装完成后，一个基础的 Hexo 博客就已经创建好了。</p><hr><h2 id="👀-四、本地预览博客"><a href="#👀-四、本地预览博客" class="headerlink" title="👀 四、本地预览博客"></a>👀 四、本地预览博客</h2><p>为了先确认博客能正常运行，建议先进行本地预览。</p><h3 id="1-生成静态文件"><a href="#1-生成静态文件" class="headerlink" title="1. 生成静态文件"></a>1. 生成静态文件</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo generate</span><br></pre></td></tr></table></figure><h3 id="2-启动本地服务"><a href="#2-启动本地服务" class="headerlink" title="2. 启动本地服务"></a>2. 启动本地服务</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo server</span><br></pre></td></tr></table></figure><p>浏览器打开：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">http://localhost:4000/</span><br></pre></td></tr></table></figure><p>如果页面能正常打开，就说明博客已经运行成功。</p><blockquote><p>[!NOTE]<br>常用缩写命令也可以记一下：<code>hexo cl</code>、<code>hexo g</code>、<code>hexo s</code>。</p></blockquote><hr><h2 id="⚙️-五、了解基础目录结构"><a href="#⚙️-五、了解基础目录结构" class="headerlink" title="⚙️ 五、了解基础目录结构"></a>⚙️ 五、了解基础目录结构</h2><p>新手最容易迷糊的就是项目目录，下面这几个位置最常用：</p><ul><li><code>_config.yml</code>：Hexo 全局配置文件</li><li><code>source/_posts/</code>：文章存放目录</li><li><code>themes/</code>：主题目录</li><li><code>public/</code>：生成后的静态文件目录</li><li><code>scaffolds/</code>：文章模板目录</li></ul><p>其中你最常接触的通常是：</p><ol><li>写文章：<code>source/_posts/</code></li><li>改站点信息：<code>_config.yml</code></li><li>改主题样式：主题目录</li></ol><hr><h2 id="🎨-六、安装与配置主题"><a href="#🎨-六、安装与配置主题" class="headerlink" title="🎨 六、安装与配置主题"></a>🎨 六、安装与配置主题</h2><p>默认主题能用，但不够好看。大多数人都会换成更适合博客展示的主题。</p><h3 id="1-选择主题"><a href="#1-选择主题" class="headerlink" title="1. 选择主题"></a>1. 选择主题</h3><p>如果你想快速做出更完整的个人博客，推荐优先看成熟主题文档，例如：</p><ul><li><a href="https://butterfly.js.org/posts/21cfbf15/">Butterfly 主题</a></li></ul><h3 id="2-安装主题"><a href="#2-安装主题" class="headerlink" title="2. 安装主题"></a>2. 安装主题</h3><p>不同主题安装方式略有不同，一定要以该主题官方文档为准。</p><h3 id="3-修改主题配置"><a href="#3-修改主题配置" class="headerlink" title="3. 修改主题配置"></a>3. 修改主题配置</h3><p>一般会涉及两个部分：</p><ul><li>Hexo 全局配置 <code>_config.yml</code></li><li>主题自己的配置文件</li></ul><blockquote><p>[!WARNING]<br>主题文档一定要认真看，很多“页面空白”“样式错乱”“文章不显示”问题，往往都是配置漏改导致的。</p></blockquote><hr><h2 id="🌐-七、部署到-GitHub-Pages"><a href="#🌐-七、部署到-GitHub-Pages" class="headerlink" title="🌐 七、部署到 GitHub Pages"></a>🌐 七、部署到 GitHub Pages</h2><p>如果你希望博客免费上线，GitHub Pages 是非常常见的方案。</p><h3 id="1-创建仓库"><a href="#1-创建仓库" class="headerlink" title="1. 创建仓库"></a>1. 创建仓库</h3><p>在 GitHub 创建一个仓库，仓库名格式必须为：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">&lt;用户名&gt;.github.io</span><br></pre></td></tr></table></figure><p>例如你的用户名是 <code>xiaoming</code>，仓库名就必须叫：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">xiaoming.github.io</span><br></pre></td></tr></table></figure><h3 id="2-安装部署插件"><a href="#2-安装部署插件" class="headerlink" title="2. 安装部署插件"></a>2. 安装部署插件</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">npm install hexo-deployer-git --save</span><br></pre></td></tr></table></figure><h3 id="3-修改部署配置"><a href="#3-修改部署配置" class="headerlink" title="3. 修改部署配置"></a>3. 修改部署配置</h3><p>打开根目录下的 <code>_config.yml</code>，添加或修改 <code>deploy</code>：</p><figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">deploy:</span></span><br><span class="line">  <span class="attr">type:</span> <span class="string">git</span></span><br><span class="line">  <span class="attr">repository:</span> <span class="string">git@github.com:&lt;用户名&gt;/&lt;用户名&gt;.github.io.git</span></span><br><span class="line">  <span class="attr">branch:</span> <span class="string">main</span></span><br></pre></td></tr></table></figure><h3 id="4-执行部署"><a href="#4-执行部署" class="headerlink" title="4. 执行部署"></a>4. 执行部署</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo clean</span><br><span class="line">hexo generate</span><br><span class="line">hexo deploy</span><br></pre></td></tr></table></figure><p>如果终端出现 <code>Deploy done</code>，说明部署成功。</p><p>稍等一会儿后，访问：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">https://&lt;用户名&gt;.github.io</span><br></pre></td></tr></table></figure><p>就可以看到你的博客了。</p><hr><h2 id="☁️-八、可选部署到-Vercel"><a href="#☁️-八、可选部署到-Vercel" class="headerlink" title="☁️ 八、可选部署到 Vercel"></a>☁️ 八、可选部署到 Vercel</h2><p>除了 GitHub Pages，也可以把 Hexo 部署到 Vercel。</p><h3 id="适合人群"><a href="#适合人群" class="headerlink" title="适合人群"></a>适合人群</h3><ul><li>想要更简单的可视化部署</li><li>想绑定自己的域名</li><li>想后续继续扩展更多项目</li></ul><h3 id="大致流程"><a href="#大致流程" class="headerlink" title="大致流程"></a>大致流程</h3><ol><li>登录 <a href="https://vercel.com/">Vercel 官网</a></li><li>使用 GitHub 账号授权登录</li><li>导入你的 Hexo 仓库</li><li>点击部署</li><li>在后台绑定域名</li></ol><blockquote><p>[!TIP]<br>如果你的博客源码已经放在 GitHub，Vercel 的接入通常会非常顺手。</p></blockquote><hr><h2 id="🧩-九、常见问题"><a href="#🧩-九、常见问题" class="headerlink" title="🧩 九、常见问题"></a>🧩 九、常见问题</h2><h3 id="1-运行命令提示找不到-hexo"><a href="#1-运行命令提示找不到-hexo" class="headerlink" title="1. 运行命令提示找不到 hexo"></a>1. 运行命令提示找不到 <code>hexo</code></h3><p>通常是 <code>hexo-cli</code> 没安装成功，重新执行：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">npm install -g hexo-cli</span><br></pre></td></tr></table></figure><h3 id="2-本地能看，部署后样式丢失"><a href="#2-本地能看，部署后样式丢失" class="headerlink" title="2. 本地能看，部署后样式丢失"></a>2. 本地能看，部署后样式丢失</h3><p>优先检查：</p><ul><li><code>_config.yml</code> 中的 <code>url</code></li><li><code>root</code> 配置</li><li>主题静态资源路径</li></ul><h3 id="3-推送-GitHub-失败"><a href="#3-推送-GitHub-失败" class="headerlink" title="3. 推送 GitHub 失败"></a>3. 推送 GitHub 失败</h3><p>优先检查：</p><ul><li>SSH 是否配置成功</li><li>仓库地址是否写对</li><li>GitHub 仓库分支是否为 <code>main</code></li></ul><h3 id="4-端口被占用"><a href="#4-端口被占用" class="headerlink" title="4. 端口被占用"></a>4. 端口被占用</h3><p>如果 <code>4000</code> 端口被占用，可以换端口启动：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo server -p 4001</span><br></pre></td></tr></table></figure><hr><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>Hexo 的建站流程并不复杂，你只需要记住这条主线：</p><ol><li>安装 Node.js、Git、Hexo</li><li>初始化博客项目</li><li>本地预览</li><li>安装主题</li><li>部署到 GitHub Pages 或 Vercel</li></ol><p>等你把这套流程跑通后，后面要做的更多是内容建设、页面美化和 SEO 优化，而不是反复折腾环境。</p><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区交流：</p><ol><li>你是准备用 Hexo 做个人博客，还是知识记录站？</li><li>你更喜欢部署到 GitHub Pages，还是 Vercel？</li><li>如果你卡在某一步，也可以留言，我再帮你继续拆解。</li></ol>]]></content>
    
    
    <summary type="html">详细介绍如何搭建 Hexo 博客，包括环境配置、主题安装、部署等完整步骤。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Hexo教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/Hexo%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="热门" scheme="https://www.xmdblog.com/tags/%E7%83%AD%E9%97%A8/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="Hexo" scheme="https://www.xmdblog.com/tags/Hexo/"/>
    
    <category term="博客搭建" scheme="https://www.xmdblog.com/tags/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/"/>
    
  </entry>
  
  <entry>
    <title>🐧 Linux 常用命令汇总</title>
    <link href="https://www.xmdblog.com/posts/758d5779.html"/>
    <id>https://www.xmdblog.com/posts/758d5779.html</id>
    <published>2024-02-23T17:35:38.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>Linux 命令很多，但真正高频使用的通常集中在关机重启、权限设置、文件目录管理、用户管理、磁盘操作与软件管理这些场景。与其一次性死记硬背所有命令，不如先把最常用、最容易碰到的那批掌握下来。</p><p>这篇文章整理成一份偏“速查 + 入门说明”的结构，适合：</p><ul><li>刚接触 Linux 的新手</li><li>需要临时查命令的用户</li><li>想建立基础命令体系的人</li></ul><blockquote><p>[!TIP]<br>建议把这篇文章先收藏，平时遇到命令不熟的时候回来查，比硬背更有效。</p></blockquote><hr><h2 id="🔌-一、关机与重启命令"><a href="#🔌-一、关机与重启命令" class="headerlink" title="🔌 一、关机与重启命令"></a>🔌 一、关机与重启命令</h2><p>在服务器环境里，关机和重启都属于需要谨慎执行的操作。因为一旦执行，可能直接影响线上服务。</p><h3 id="1-常见命令"><a href="#1-常见命令" class="headerlink" title="1. 常见命令"></a>1. 常见命令</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">shutdown -h now</span><br><span class="line">shutdown -r now</span><br><span class="line">reboot</span><br><span class="line">halt</span><br><span class="line">poweroff</span><br></pre></td></tr></table></figure><h3 id="2-这些命令分别是什么意思"><a href="#2-这些命令分别是什么意思" class="headerlink" title="2. 这些命令分别是什么意思"></a>2. 这些命令分别是什么意思</h3><ul><li><code>shutdown -h now</code>：立即关机</li><li><code>shutdown -r now</code>：立即重启</li><li><code>reboot</code>：重启系统</li><li><code>halt</code>：停止系统</li><li><code>poweroff</code>：关闭电源</li></ul><h3 id="3-延时执行示例"><a href="#3-延时执行示例" class="headerlink" title="3. 延时执行示例"></a>3. 延时执行示例</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">shutdown -h +10</span><br><span class="line">shutdown -r +10</span><br><span class="line">shutdown -h 20:25</span><br></pre></td></tr></table></figure><p>它们分别表示：</p><ul><li>10 分钟后关机</li><li>10 分钟后重启</li><li>当天 <code>20:25</code> 关机</li></ul><h3 id="4-为什么常提到-sync"><a href="#4-为什么常提到-sync" class="headerlink" title="4. 为什么常提到 sync"></a>4. 为什么常提到 <code>sync</code></h3><p>在一些资料中，你会看到先执行：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sync</span><br></pre></td></tr></table></figure><p>它的作用是把内存中的数据同步到磁盘，避免还没写盘的数据丢失。</p><blockquote><p>[!NOTE]<br>在现代系统里很多情况下内核会自行处理，但理解这个命令的意义仍然很有帮助。</p></blockquote><hr><h2 id="🔐-二、文件权限与属主命令"><a href="#🔐-二、文件权限与属主命令" class="headerlink" title="🔐 二、文件权限与属主命令"></a>🔐 二、文件权限与属主命令</h2><p>Linux 权限体系是新手最容易卡住的地方。只要理解“属主、属组、其他人”这三层关系，很多命令就会清晰很多。</p><h3 id="1-chgrp：修改文件所属组"><a href="#1-chgrp：修改文件所属组" class="headerlink" title="1. chgrp：修改文件所属组"></a>1. <code>chgrp</code>：修改文件所属组</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">chgrp [-R] 属组名 文件名</span><br></pre></td></tr></table></figure><p>常见用法：</p><ul><li><code>-R</code>：递归修改目录及内部所有文件</li></ul><h3 id="2-chown：修改文件拥有者"><a href="#2-chown：修改文件拥有者" class="headerlink" title="2. chown：修改文件拥有者"></a>2. <code>chown</code>：修改文件拥有者</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">chown [–R] 所有者 文件名</span><br><span class="line">chown [-R] 所有者:属组名 文件名</span><br></pre></td></tr></table></figure><p>示例：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">chown root:root install.log</span><br></pre></td></tr></table></figure><p>这表示把 <code>install.log</code> 的属主和属组都改回 <code>root</code>。</p><h3 id="3-chmod：修改权限"><a href="#3-chmod：修改权限" class="headerlink" title="3. chmod：修改权限"></a>3. <code>chmod</code>：修改权限</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">chmod [-R] xyz 文件或目录</span><br></pre></td></tr></table></figure><p>Linux 的权限通常分成：</p><ul><li><code>r</code>：读，值为 <code>4</code></li><li><code>w</code>：写，值为 <code>2</code></li><li><code>x</code>：执行，值为 <code>1</code></li></ul><p>例如：</p><ul><li><code>777</code> &#x3D; <code>rwxrwxrwx</code></li><li><code>754</code> &#x3D; <code>rwxr-xr--</code></li></ul><p>示例：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">chmod 777 .bashrc</span><br><span class="line">chmod 754 test1</span><br></pre></td></tr></table></figure><h3 id="4-符号写法"><a href="#4-符号写法" class="headerlink" title="4. 符号写法"></a>4. 符号写法</h3><p>除了数字方式，也可以用符号写法：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">chmod u=rwx,g=rx,o=r test1</span><br><span class="line">chmod a-x test1</span><br></pre></td></tr></table></figure><p>常见字母含义：</p><ul><li><code>u</code>：user</li><li><code>g</code>：group</li><li><code>o</code>：others</li><li><code>a</code>：all</li></ul><blockquote><p>[!WARNING]<br><code>chmod 777</code> 虽然看起来方便，但权限过大，生产环境通常不推荐随便使用。</p></blockquote><hr><h2 id="📁-三、文件与目录管理"><a href="#📁-三、文件与目录管理" class="headerlink" title="📁 三、文件与目录管理"></a>📁 三、文件与目录管理</h2><p>这一部分是日常使用最频繁的内容，建议优先掌握。</p><h3 id="1-常见目录命令速览"><a href="#1-常见目录命令速览" class="headerlink" title="1. 常见目录命令速览"></a>1. 常见目录命令速览</h3><ul><li><code>ls</code>：列出文件</li><li><code>cd</code>：切换目录</li><li><code>pwd</code>：显示当前路径</li><li><code>mkdir</code>：创建目录</li><li><code>rmdir</code>：删除空目录</li><li><code>cp</code>：复制文件或目录</li><li><code>rm</code>：删除文件或目录</li><li><code>mv</code>：移动文件或重命名</li></ul><hr><h3 id="2-ls：列出目录内容"><a href="#2-ls：列出目录内容" class="headerlink" title="2. ls：列出目录内容"></a>2. <code>ls</code>：列出目录内容</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">ls -al</span><br></pre></td></tr></table></figure><p>常见参数：</p><ul><li><code>-a</code>：显示隐藏文件</li><li><code>-l</code>：以详细列表形式显示</li><li><code>-d</code>：只显示目录本身</li></ul><h3 id="3-cd：切换目录"><a href="#3-cd：切换目录" class="headerlink" title="3. cd：切换目录"></a>3. <code>cd</code>：切换目录</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">cd /root/runoob/</span><br><span class="line">cd ./runoob/</span><br><span class="line">cd ~</span><br><span class="line">cd ..</span><br></pre></td></tr></table></figure><p>常见用法：</p><ul><li><code>cd ~</code>：回到家目录</li><li><code>cd ..</code>：回到上一级目录</li></ul><h3 id="4-pwd：显示当前工作目录"><a href="#4-pwd：显示当前工作目录" class="headerlink" title="4. pwd：显示当前工作目录"></a>4. <code>pwd</code>：显示当前工作目录</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">pwd</span><br><span class="line">pwd -P</span><br></pre></td></tr></table></figure><p>其中 <code>-P</code> 会显示真实路径，而不是符号链接路径。</p><h3 id="5-mkdir：创建目录"><a href="#5-mkdir：创建目录" class="headerlink" title="5. mkdir：创建目录"></a>5. <code>mkdir</code>：创建目录</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">mkdir test</span><br><span class="line">mkdir -p test1/test2/test3/test4</span><br><span class="line">mkdir -m 711 test2</span><br></pre></td></tr></table></figure><p>常见参数：</p><ul><li><code>-p</code>：递归创建多级目录</li><li><code>-m</code>：创建时直接指定权限</li></ul><h3 id="6-rmdir：删除空目录"><a href="#6-rmdir：删除空目录" class="headerlink" title="6. rmdir：删除空目录"></a>6. <code>rmdir</code>：删除空目录</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">rmdir runoob/</span><br><span class="line">rmdir -p test1/test2/test3/test4</span><br></pre></td></tr></table></figure><blockquote><p>[!NOTE]<br><code>rmdir</code> 只能删除空目录，非空目录通常改用 <code>rm -r</code>。</p></blockquote><h3 id="7-cp：复制文件或目录"><a href="#7-cp：复制文件或目录" class="headerlink" title="7. cp：复制文件或目录"></a>7. <code>cp</code>：复制文件或目录</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">cp ~/.bashrc /tmp/bashrc</span><br><span class="line">cp -i ~/.bashrc /tmp/bashrc</span><br><span class="line">cp -r dir1 dir2</span><br></pre></td></tr></table></figure><p>常见参数：</p><ul><li><code>-i</code>：覆盖前询问</li><li><code>-r</code>：递归复制目录</li><li><code>-p</code>：保留文件属性</li></ul><h3 id="8-rm：删除文件或目录"><a href="#8-rm：删除文件或目录" class="headerlink" title="8. rm：删除文件或目录"></a>8. <code>rm</code>：删除文件或目录</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">rm -i bashrc</span><br><span class="line">rm -rf testdir</span><br></pre></td></tr></table></figure><p>常见参数：</p><ul><li><code>-i</code>：删除前询问</li><li><code>-f</code>：强制删除</li><li><code>-r</code>：递归删除目录</li></ul><blockquote><p>[!WARNING]<br><code>rm -rf</code> 是 Linux 最危险的高频命令之一，路径一定要确认清楚再执行。</p></blockquote><h3 id="9-mv：移动文件或重命名"><a href="#9-mv：移动文件或重命名" class="headerlink" title="9. mv：移动文件或重命名"></a>9. <code>mv</code>：移动文件或重命名</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">mv bashrc mvtest</span><br><span class="line">mv mvtest mvtest2</span><br></pre></td></tr></table></figure><p>它既可以：</p><ul><li>把文件移动到别的目录</li><li>也可以直接给文件&#x2F;目录改名</li></ul><hr><h2 id="👤-四、用户与用户组管理"><a href="#👤-四、用户与用户组管理" class="headerlink" title="👤 四、用户与用户组管理"></a>👤 四、用户与用户组管理</h2><p>在服务器管理中，用户与权限是非常核心的部分。很多系统问题，最后都能追溯到“谁能访问、谁能执行、谁能写入”。</p><h3 id="1-添加用户：useradd"><a href="#1-添加用户：useradd" class="headerlink" title="1. 添加用户：useradd"></a>1. 添加用户：<code>useradd</code></h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">useradd 选项 用户名</span><br></pre></td></tr></table></figure><p>例如：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">useradd -d /home/sam -m sam</span><br></pre></td></tr></table></figure><p>这个命令会创建用户 <code>sam</code>，并创建主目录 <code>/home/sam</code>。</p><h3 id="2-删除用户：userdel"><a href="#2-删除用户：userdel" class="headerlink" title="2. 删除用户：userdel"></a>2. 删除用户：<code>userdel</code></h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">userdel -r sam</span><br></pre></td></tr></table></figure><p>这里的 <code>-r</code> 表示连主目录一起删除。</p><h3 id="3-修改用户：usermod"><a href="#3-修改用户：usermod" class="headerlink" title="3. 修改用户：usermod"></a>3. 修改用户：<code>usermod</code></h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">usermod -s /bin/ksh -d /home/z -g developer sam</span><br></pre></td></tr></table></figure><p>这个命令可以修改：</p><ul><li>登录 Shell</li><li>主目录</li><li>用户组</li></ul><h3 id="4-修改密码：passwd"><a href="#4-修改密码：passwd" class="headerlink" title="4. 修改密码：passwd"></a>4. 修改密码：<code>passwd</code></h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">passwd sam</span><br><span class="line">passwd -d sam</span><br><span class="line">passwd -l sam</span><br></pre></td></tr></table></figure><p>常见含义：</p><ul><li><code>passwd sam</code>：给用户设置密码</li><li><code>passwd -d sam</code>：删除密码</li><li><code>passwd -l sam</code>：锁定账号</li></ul><hr><h3 id="5-用户组管理命令"><a href="#5-用户组管理命令" class="headerlink" title="5. 用户组管理命令"></a>5. 用户组管理命令</h3><h4 id="新建用户组"><a href="#新建用户组" class="headerlink" title="新建用户组"></a>新建用户组</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">groupadd group1</span><br><span class="line">groupadd -g 101 group2</span><br></pre></td></tr></table></figure><h4 id="删除用户组"><a href="#删除用户组" class="headerlink" title="删除用户组"></a>删除用户组</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">groupdel group1</span><br></pre></td></tr></table></figure><h4 id="修改用户组"><a href="#修改用户组" class="headerlink" title="修改用户组"></a>修改用户组</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">groupmod -g 102 group2</span><br><span class="line">groupmod -g 10000 -n group3 group2</span><br></pre></td></tr></table></figure><h4 id="切换用户组"><a href="#切换用户组" class="headerlink" title="切换用户组"></a>切换用户组</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">newgrp root</span><br></pre></td></tr></table></figure><blockquote><p>[!TIP]<br>当你遇到“明明有权限却访问不了”的情况，记得检查当前用户到底属于哪个组。</p></blockquote><hr><h2 id="🧾-五、与用户相关的重要系统文件"><a href="#🧾-五、与用户相关的重要系统文件" class="headerlink" title="🧾 五、与用户相关的重要系统文件"></a>🧾 五、与用户相关的重要系统文件</h2><p>Linux 中很多用户与权限信息，实际上都保存在系统文件里。</p><h3 id="1-etc-passwd"><a href="#1-etc-passwd" class="headerlink" title="1. /etc/passwd"></a>1. <code>/etc/passwd</code></h3><p>这个文件记录用户的基本信息。</p><p>格式如下：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell</span><br></pre></td></tr></table></figure><p>例如：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">sam:x:200:50:Sam san:/home/sam:/bin/sh</span><br></pre></td></tr></table></figure><h3 id="2-etc-shadow"><a href="#2-etc-shadow" class="headerlink" title="2. /etc/shadow"></a>2. <code>/etc/shadow</code></h3><p>这个文件存放加密后的密码信息，权限更严格，一般只有超级用户能读。</p><h3 id="3-etc-group"><a href="#3-etc-group" class="headerlink" title="3. /etc/group"></a>3. <code>/etc/group</code></h3><p>这个文件记录用户组信息。</p><p>格式如下：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">组名:口令:组标识号:组内用户列表</span><br></pre></td></tr></table></figure><p>理解这三个文件后，很多用户管理相关问题会更容易排查。</p><hr><h2 id="👥-六、批量创建用户"><a href="#👥-六、批量创建用户" class="headerlink" title="👥 六、批量创建用户"></a>👥 六、批量创建用户</h2><p>如果你只是偶尔加一个用户，用 <code>useradd</code> 就够了；但如果要一次创建几十个甚至几百个用户，就需要批量方式。</p><h3 id="1-准备用户文件"><a href="#1-准备用户文件" class="headerlink" title="1. 准备用户文件"></a>1. 准备用户文件</h3><p>例如 <code>user.txt</code>：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">user001::600:100:user:/home/user001:/bin/bash</span><br><span class="line">user002::601:100:user:/home/user002:/bin/bash</span><br><span class="line">user003::602:100:user:/home/user003:/bin/bash</span><br></pre></td></tr></table></figure><h3 id="2-批量导入用户"><a href="#2-批量导入用户" class="headerlink" title="2. 批量导入用户"></a>2. 批量导入用户</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">newusers &lt; user.txt</span><br></pre></td></tr></table></figure><h3 id="3-准备密码文件"><a href="#3-准备密码文件" class="headerlink" title="3. 准备密码文件"></a>3. 准备密码文件</h3><p>例如 <code>passwd.txt</code>：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">user001:123456</span><br><span class="line">user002:123456</span><br><span class="line">user003:123456</span><br></pre></td></tr></table></figure><h3 id="4-批量设置密码"><a href="#4-批量设置密码" class="headerlink" title="4. 批量设置密码"></a>4. 批量设置密码</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">chpasswd &lt; passwd.txt</span><br></pre></td></tr></table></figure><p>如果涉及 <code>shadow</code> 转换，也可能会配合：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">pwunconv</span><br><span class="line">pwconv</span><br></pre></td></tr></table></figure><blockquote><p>[!WARNING]<br>批量创建用户前，一定要仔细检查 UID、主目录和用户名是否冲突。</p></blockquote><hr><h2 id="💽-七、磁盘管理常用命令"><a href="#💽-七、磁盘管理常用命令" class="headerlink" title="💽 七、磁盘管理常用命令"></a>💽 七、磁盘管理常用命令</h2><p>磁盘管理直接关系到系统容量、挂载、格式化与健康状态。</p><p>常见命令有：</p><ul><li><code>df</code>：查看磁盘整体使用情况</li><li><code>du</code>：查看目录占用情况</li><li><code>fdisk</code>：磁盘分区</li><li><code>mkfs</code>：格式化文件系统</li><li><code>fsck</code>：文件系统检查</li><li><code>mount</code> &#x2F; <code>umount</code>：挂载与卸载</li></ul><h3 id="1-df：查看磁盘空间"><a href="#1-df：查看磁盘空间" class="headerlink" title="1. df：查看磁盘空间"></a>1. <code>df</code>：查看磁盘空间</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">df -h</span><br></pre></td></tr></table></figure><p>适合快速看：</p><ul><li>哪个分区快满了</li><li>挂载情况是否正常</li></ul><h3 id="2-du：查看目录体积"><a href="#2-du：查看目录体积" class="headerlink" title="2. du：查看目录体积"></a>2. <code>du</code>：查看目录体积</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">du -sh /var/log</span><br><span class="line">du -sh *</span><br></pre></td></tr></table></figure><p>适合查“哪个目录最占空间”。</p><h3 id="3-fdisk：磁盘分区"><a href="#3-fdisk：磁盘分区" class="headerlink" title="3. fdisk：磁盘分区"></a>3. <code>fdisk</code>：磁盘分区</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">fdisk -l</span><br></pre></td></tr></table></figure><p>用于查看当前系统磁盘与分区情况。</p><h3 id="4-mkfs：格式化文件系统"><a href="#4-mkfs：格式化文件系统" class="headerlink" title="4. mkfs：格式化文件系统"></a>4. <code>mkfs</code>：格式化文件系统</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">mkfs -t ext3 /dev/hdc6</span><br></pre></td></tr></table></figure><h3 id="5-fsck：文件系统检查"><a href="#5-fsck：文件系统检查" class="headerlink" title="5. fsck：文件系统检查"></a>5. <code>fsck</code>：文件系统检查</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">fsck -C -f -t ext3 /dev/hdc6</span><br></pre></td></tr></table></figure><h3 id="6-mount：挂载分区"><a href="#6-mount：挂载分区" class="headerlink" title="6. mount：挂载分区"></a>6. <code>mount</code>：挂载分区</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">mount /dev/hdc6 /mnt/hdc6</span><br></pre></td></tr></table></figure><h3 id="7-umount：卸载分区"><a href="#7-umount：卸载分区" class="headerlink" title="7. umount：卸载分区"></a>7. <code>umount</code>：卸载分区</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">umount /dev/hdc6</span><br></pre></td></tr></table></figure><blockquote><p>[!WARNING]<br>格式化和分区命令有不可逆风险，执行前一定确认设备名是否正确。</p></blockquote><hr><h2 id="✍️-八、vi-vim-基础使用"><a href="#✍️-八、vi-vim-基础使用" class="headerlink" title="✍️ 八、vi &#x2F; vim 基础使用"></a>✍️ 八、vi &#x2F; vim 基础使用</h2><p>在 Linux 世界里，<code>vi</code> &#x2F; <code>vim</code> 是绕不过去的编辑器。</p><h3 id="1-什么是-vim"><a href="#1-什么是-vim" class="headerlink" title="1. 什么是 vim"></a>1. 什么是 vim</h3><p>Vim 是从 <code>vi</code> 发展而来的文本编辑器，功能比传统 <code>vi</code> 更丰富，在服务器环境和开发场景中都非常常见。</p><h3 id="2-三种模式"><a href="#2-三种模式" class="headerlink" title="2. 三种模式"></a>2. 三种模式</h3><p>Vim 最核心的是 3 种模式：</p><ul><li>命令模式</li><li>输入模式</li><li>底线命令模式</li></ul><h3 id="3-高频操作"><a href="#3-高频操作" class="headerlink" title="3. 高频操作"></a>3. 高频操作</h3><h4 id="进入输入模式"><a href="#进入输入模式" class="headerlink" title="进入输入模式"></a>进入输入模式</h4><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">i</span><br></pre></td></tr></table></figure><h4 id="保存退出"><a href="#保存退出" class="headerlink" title="保存退出"></a>保存退出</h4><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">:wq</span><br></pre></td></tr></table></figure><h4 id="不保存强退"><a href="#不保存强退" class="headerlink" title="不保存强退"></a>不保存强退</h4><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">:q!</span><br></pre></td></tr></table></figure><h4 id="复制-删除当前行"><a href="#复制-删除当前行" class="headerlink" title="复制 &#x2F; 删除当前行"></a>复制 &#x2F; 删除当前行</h4><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">yy</span><br><span class="line">dd</span><br></pre></td></tr></table></figure><h4 id="撤销-重做"><a href="#撤销-重做" class="headerlink" title="撤销 &#x2F; 重做"></a>撤销 &#x2F; 重做</h4><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">u</span><br><span class="line">Ctrl + r</span><br></pre></td></tr></table></figure><blockquote><p>[!TIP]<br>新手最先记住 <code>i</code>、<code>Esc</code>、<code>:wq</code>、<code>:q!</code> 这几个命令，就够应付大多数情况了。</p></blockquote><hr><h2 id="📦-九、yum-包管理命令"><a href="#📦-九、yum-包管理命令" class="headerlink" title="📦 九、yum 包管理命令"></a>📦 九、yum 包管理命令</h2><p>在基于 RPM 的系统里，<code>yum</code> 是非常常见的软件包管理工具。</p><h3 id="1-常见用途"><a href="#1-常见用途" class="headerlink" title="1. 常见用途"></a>1. 常见用途</h3><ul><li>安装软件</li><li>更新软件</li><li>搜索软件包</li><li>删除软件</li><li>清理缓存</li></ul><h3 id="2-常见命令示例"><a href="#2-常见命令示例" class="headerlink" title="2. 常见命令示例"></a>2. 常见命令示例</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">yum install nginx</span><br><span class="line">yum update</span><br><span class="line">yum remove nginx</span><br><span class="line">yum search php</span><br><span class="line">yum clean all</span><br></pre></td></tr></table></figure><h3 id="3-使用场景理解"><a href="#3-使用场景理解" class="headerlink" title="3. 使用场景理解"></a>3. 使用场景理解</h3><ul><li>装软件：<code>yum install</code></li><li>升级系统或软件：<code>yum update</code></li><li>删除软件：<code>yum remove</code></li><li>搜索包名：<code>yum search</code></li><li>清缓存：<code>yum clean all</code></li></ul><hr><h2 id="📥-十、apt-命令汇总与使用教学"><a href="#📥-十、apt-命令汇总与使用教学" class="headerlink" title="📥 十、apt 命令汇总与使用教学"></a>📥 十、apt 命令汇总与使用教学</h2><p>如果你使用的是 Debian、Ubuntu、Linux Mint 等发行版，那么最常接触的软件包管理工具通常不是 <code>yum</code>，而是 <code>apt</code>。它主要负责软件包索引更新、软件安装、升级、卸载和依赖管理。</p><h3 id="1-先理解-apt-是做什么的"><a href="#1-先理解-apt-是做什么的" class="headerlink" title="1. 先理解 apt 是做什么的"></a>1. 先理解 <code>apt</code> 是做什么的</h3><p>你可以把 <code>apt</code> 理解成“系统应用商店的命令行版本”，它能帮你：</p><ul><li>从软件源获取软件包信息</li><li>安装或卸载软件</li><li>自动处理依赖关系</li><li>更新系统中的软件版本</li><li>清理不再需要的软件缓存</li></ul><blockquote><p>[!NOTE]<br>在较新的 Debian &#x2F; Ubuntu 系统中，日常操作一般直接用 <code>apt</code> 即可；而脚本场景中也常见 <code>apt-get</code>。</p></blockquote><h3 id="2-最常用的-apt-命令速查"><a href="#2-最常用的-apt-命令速查" class="headerlink" title="2. 最常用的 apt 命令速查"></a>2. 最常用的 apt 命令速查</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">apt update</span><br><span class="line">apt upgrade</span><br><span class="line">apt install nginx</span><br><span class="line">apt remove nginx</span><br><span class="line">apt purge nginx</span><br><span class="line">apt autoremove</span><br><span class="line">apt search nginx</span><br><span class="line">apt show nginx</span><br><span class="line">apt list --upgradable</span><br><span class="line">apt clean</span><br></pre></td></tr></table></figure><h3 id="3-这些命令分别是什么意思"><a href="#3-这些命令分别是什么意思" class="headerlink" title="3. 这些命令分别是什么意思"></a>3. 这些命令分别是什么意思</h3><ul><li><code>apt update</code>：更新软件源索引</li><li><code>apt upgrade</code>：升级已安装的软件</li><li><code>apt install nginx</code>：安装指定软件</li><li><code>apt remove nginx</code>：卸载软件，但通常保留配置文件</li><li><code>apt purge nginx</code>：彻底卸载软件及其配置文件</li><li><code>apt autoremove</code>：删除不再需要的依赖包</li><li><code>apt search nginx</code>：搜索软件包</li><li><code>apt show nginx</code>：查看软件包详情</li><li><code>apt list --upgradable</code>：查看可升级的软件</li><li><code>apt clean</code>：清理已下载的软件缓存</li></ul><hr><h3 id="4-新手最常见的正确使用顺序"><a href="#4-新手最常见的正确使用顺序" class="headerlink" title="4. 新手最常见的正确使用顺序"></a>4. 新手最常见的正确使用顺序</h3><p>如果你准备在 Ubuntu 服务器上安装一个软件，最常见流程通常是：</p><h4 id="第一步：更新软件源索引"><a href="#第一步：更新软件源索引" class="headerlink" title="第一步：更新软件源索引"></a>第一步：更新软件源索引</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt update</span><br></pre></td></tr></table></figure><p>这一步不是升级软件，而是先让系统知道“现在仓库里有哪些可用包、最新版本是多少”。</p><h4 id="第二步：安装软件"><a href="#第二步：安装软件" class="headerlink" title="第二步：安装软件"></a>第二步：安装软件</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt install nginx</span><br></pre></td></tr></table></figure><p>系统会自动解析并安装依赖。</p><h4 id="第三步：确认软件是否安装成功"><a href="#第三步：确认软件是否安装成功" class="headerlink" title="第三步：确认软件是否安装成功"></a>第三步：确认软件是否安装成功</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">nginx -v</span><br></pre></td></tr></table></figure><p>或者查看软件包信息：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">apt show nginx</span><br></pre></td></tr></table></figure><blockquote><p>[!TIP]<br>很多人一上来直接 <code>apt install</code>，虽然有时也能装，但更推荐先执行 <code>apt update</code>，这样更稳妥。</p></blockquote><hr><h3 id="5-升级系统时怎么用"><a href="#5-升级系统时怎么用" class="headerlink" title="5. 升级系统时怎么用"></a>5. 升级系统时怎么用</h3><p>如果你只是想更新软件列表：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt update</span><br></pre></td></tr></table></figure><p>如果你要把已安装的软件升级到仓库里的新版本：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt upgrade</span><br></pre></td></tr></table></figure><p>如果想先看有哪些包可升级：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">apt list --upgradable</span><br></pre></td></tr></table></figure><blockquote><p>[!WARNING]<br>在生产服务器上执行升级前，建议先确认是否会影响运行中的业务服务，尤其是 Nginx、MySQL、Docker 一类关键组件。</p></blockquote><hr><h3 id="6-删除软件时要注意什么"><a href="#6-删除软件时要注意什么" class="headerlink" title="6. 删除软件时要注意什么"></a>6. 删除软件时要注意什么</h3><p>普通卸载：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt remove nginx</span><br></pre></td></tr></table></figure><p>彻底卸载并删除配置：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt purge nginx</span><br></pre></td></tr></table></figure><p>清理无用依赖：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt autoremove</span><br></pre></td></tr></table></figure><p>这 3 个命令常常配合使用。例如：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt remove nginx</span><br><span class="line">sudo apt autoremove</span><br></pre></td></tr></table></figure><p>如果你想删得更干净：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt purge nginx</span><br><span class="line">sudo apt autoremove</span><br></pre></td></tr></table></figure><hr><h3 id="7-搜索与查看软件包信息"><a href="#7-搜索与查看软件包信息" class="headerlink" title="7. 搜索与查看软件包信息"></a>7. 搜索与查看软件包信息</h3><p>当你不确定包名时，可以先搜索：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">apt search php</span><br><span class="line">apt search docker</span><br></pre></td></tr></table></figure><p>如果你已经知道包名，想看详细信息：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">apt show php</span><br><span class="line">apt show docker.io</span><br></pre></td></tr></table></figure><p>你通常能看到：</p><ul><li>软件版本</li><li>依赖信息</li><li>软件说明</li><li>仓库来源</li></ul><hr><h3 id="8-缓存清理与系统整理"><a href="#8-缓存清理与系统整理" class="headerlink" title="8. 缓存清理与系统整理"></a>8. 缓存清理与系统整理</h3><p>安装软件后，系统会保留下载缓存。常见清理命令：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt clean</span><br><span class="line">sudo apt autoremove</span><br></pre></td></tr></table></figure><p>它们的作用分别是：</p><ul><li><code>apt clean</code>：清空本地下载的软件包缓存</li><li><code>apt autoremove</code>：清除已不再需要的依赖包</li></ul><p>如果服务器磁盘比较紧张，这两个命令会很实用。</p><hr><h3 id="9-apt-和-apt-get-有什么区别"><a href="#9-apt-和-apt-get-有什么区别" class="headerlink" title="9. apt 和 apt-get 有什么区别"></a>9. <code>apt</code> 和 <code>apt-get</code> 有什么区别</h3><p>很多旧教程里会写：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">apt-get update</span><br><span class="line">apt-get install nginx</span><br></pre></td></tr></table></figure><p>而现在常见写法是：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">apt update</span><br><span class="line">apt install nginx</span><br></pre></td></tr></table></figure><p>简单理解：</p><ul><li><code>apt</code>：更适合人工在终端里直接使用，输出更友好</li><li><code>apt-get</code>：更传统，也常见于脚本和老教程</li></ul><p>对于新手来说，日常记住 <code>apt</code> 就够用了。</p><hr><h3 id="10-apt-使用示例：在-Ubuntu-上安装-Nginx"><a href="#10-apt-使用示例：在-Ubuntu-上安装-Nginx" class="headerlink" title="10. apt 使用示例：在 Ubuntu 上安装 Nginx"></a>10. apt 使用示例：在 Ubuntu 上安装 Nginx</h3><p>下面给你一个完整示例：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt update</span><br><span class="line">sudo apt install nginx</span><br><span class="line">nginx -v</span><br><span class="line">systemctl status nginx</span><br></pre></td></tr></table></figure><p>如果后续不想用了，可以这样卸载：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt remove nginx</span><br><span class="line">sudo apt autoremove</span><br></pre></td></tr></table></figure><p>如果你要彻底清理：</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt purge nginx</span><br><span class="line">sudo apt autoremove</span><br></pre></td></tr></table></figure><p>这个流程基本能覆盖大多数新手的实际使用场景。</p><hr><h2 id="📌-总结"><a href="#📌-总结" class="headerlink" title="📌 总结"></a>📌 总结</h2><p>Linux 命令学习最怕的不是多，而是没有主线。你可以先按下面这条顺序掌握：</p><ol><li>文件和目录操作</li><li>权限和属主修改</li><li>用户与用户组管理</li><li>磁盘与挂载管理</li><li>Vim 基本编辑</li><li>软件包安装与更新</li></ol><p>把这些高频内容先掌握之后，你再接触服务管理、网络排查、Shell 脚本时会轻松很多。</p><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区交流：</p><ol><li>你目前最常用的 Linux 命令是哪几个？</li><li>你更想继续看服务器运维命令，还是日常桌面命令整理？</li><li>如果你愿意，我也可以继续帮你整理一版“Linux 新手必背 30 条命令”的精简版。</li></ol>]]></content>
    
    
    <summary type="html">全面介绍 Linux 系统常用命令,包括系统管理、文件操作、权限设置、yum 与 apt 包管理等实用内容,适合 Linux 初学者查阅参考。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Linux教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/Linux%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="热门" scheme="https://www.xmdblog.com/tags/%E7%83%AD%E9%97%A8/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="命令行" scheme="https://www.xmdblog.com/tags/%E5%91%BD%E4%BB%A4%E8%A1%8C/"/>
    
    <category term="Linux" scheme="https://www.xmdblog.com/tags/Linux/"/>
    
  </entry>
  
  <entry>
    <title>🚀 用宝塔面板把 Hexo 部署到服务器</title>
    <link href="https://www.xmdblog.com/posts/e039465e.html"/>
    <id>https://www.xmdblog.com/posts/e039465e.html</id>
    <published>2024-02-22T09:14:45.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>[!WARNING]<br>本教程属于较早期方案，部分细节可能已经落后。如果你想用更现代、更稳定的自动化流程，建议优先阅读站内新教程：<a href="/posts/2cd5d824.html">&#x2F;posts&#x2F;2cd5d824.html</a></p></blockquote><h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>如果你已经把 Hexo 博客写起来了，但觉得 GitHub Pages 访问速度不理想，或者你希望把网站真正部署到自己的服务器上，那么“宝塔面板 + Nginx + Git 自动部署”是一条很经典的路线。</p><p>这篇文章会带你完成一套传统但实用的服务器部署方案：本地写文章，执行部署命令后，服务器自动更新站点内容。</p><hr><h2 id="🎯-一、部署思路与流程"><a href="#🎯-一、部署思路与流程" class="headerlink" title="🎯 一、部署思路与流程"></a>🎯 一、部署思路与流程</h2><p>整个流程可以理解为下面这条链路：</p><ol><li>服务器安装宝塔面板与 Nginx</li><li>服务器创建专门用于接收代码的 Git 仓库</li><li>本地 Hexo 将生成后的内容推送到服务器仓库</li><li>服务器通过 Git Hooks 自动把内容发布到网站目录</li><li>由 Nginx 对外提供访问</li></ol><blockquote><p>[!TIP]<br>这类方案的核心重点不在“装软件”，而在“权限、路径、仓库、钩子”四件事是否都配置正确。</p></blockquote><hr><h2 id="🔧-二、前置准备"><a href="#🔧-二、前置准备" class="headerlink" title="🔧 二、前置准备"></a>🔧 二、前置准备</h2><p>在开始之前，建议你先准备好：</p><ul><li>一台可远程连接的 Linux 服务器</li><li>已解析到服务器的域名（可选，但强烈推荐）</li><li>本地已经安装好 Hexo、Node.js、Git</li><li>能正常使用 SSH 连接服务器</li></ul><p>如果你的 Hexo 还没搭好，可以先看站内基础教程：<a href="/posts/70db7d7c.html">&#x2F;posts&#x2F;70db7d7c.html</a></p><hr><h2 id="🏗️-三、安装宝塔与-Nginx"><a href="#🏗️-三、安装宝塔与-Nginx" class="headerlink" title="🏗️ 三、安装宝塔与 Nginx"></a>🏗️ 三、安装宝塔与 Nginx</h2><h3 id="1-安装宝塔面板"><a href="#1-安装宝塔面板" class="headerlink" title="1. 安装宝塔面板"></a>1. 安装宝塔面板</h3><p>前往宝塔官网下载对应系统的安装脚本：</p><ul><li><a href="https://www.bt.cn/new/download.html">宝塔面板官网</a></li></ul><p>连接服务器后，以 <code>root</code> 身份执行对应命令，安装完成后根据提示登录面板后台。</p><h3 id="2-安装-Nginx"><a href="#2-安装-Nginx" class="headerlink" title="2. 安装 Nginx"></a>2. 安装 Nginx</h3><p>进入宝塔面板后：</p><ol><li>打开“软件商店”</li><li>安装 <code>Nginx</code></li><li>暂时不需要先装 PHP、MySQL</li></ol><h3 id="3-创建站点"><a href="#3-创建站点" class="headerlink" title="3. 创建站点"></a>3. 创建站点</h3><p>在宝塔中创建你的网站：</p><ol><li>打开“网站”</li><li>点击“添加站点”</li><li>填入你的域名</li><li>记住站点目录名称，例如：<code>xmdblog.com</code></li></ol><p><img src="/img/posts/e039465e/%E6%B7%BB%E5%8A%A0%E7%AB%99%E7%82%B9.png" alt="添加站点"></p><blockquote><p>[!NOTE]<br>后续自动部署时，生成的站点文件就会发布到这个目录。</p></blockquote><hr><h2 id="🔐-四、服务器端-Git-仓库配置"><a href="#🔐-四、服务器端-Git-仓库配置" class="headerlink" title="🔐 四、服务器端 Git 仓库配置"></a>🔐 四、服务器端 Git 仓库配置</h2><h3 id="1-创建-git-用户"><a href="#1-创建-git-用户" class="headerlink" title="1. 创建 git 用户"></a>1. 创建 <code>git</code> 用户</h3><p>先在服务器中创建专门用于部署的用户：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">adduser git</span><br></pre></td></tr></table></figure><p>如果你需要给这个用户更高权限，可以临时调整 <code>sudoers</code>：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">chmod</span> 740 /etc/sudoers</span><br><span class="line">vim /etc/sudoers</span><br><span class="line"><span class="comment"># 在 root ALL=(ALL) ALL 下方添加</span></span><br><span class="line"><span class="comment"># git ALL=(ALL) ALL</span></span><br><span class="line"><span class="built_in">chmod</span> 400 /etc/sudoers</span><br></pre></td></tr></table></figure><blockquote><p>[!WARNING]<br>修改 <code>sudoers</code> 要格外小心，写错会影响系统 sudo 功能。不会改的话建议先备份。</p></blockquote><h3 id="2-配置-SSH-公钥登录"><a href="#2-配置-SSH-公钥登录" class="headerlink" title="2. 配置 SSH 公钥登录"></a>2. 配置 SSH 公钥登录</h3><p>在本地电脑生成 SSH 密钥：</p><figure class="highlight powershell"><table><tr><td class="code"><pre><span class="line">ssh<span class="literal">-keygen</span> <span class="literal">-t</span> rsa <span class="literal">-C</span> <span class="string">&quot;网站目录名&quot;</span></span><br></pre></td></tr></table></figure><p>如果你已经有密钥，可以直接复用。</p><p>然后在服务器中切换到 <code>git</code> 用户并创建 <code>.ssh</code> 目录：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">su git</span><br><span class="line"><span class="built_in">cd</span></span><br><span class="line"><span class="built_in">mkdir</span> -p ~/.ssh</span><br><span class="line"><span class="built_in">touch</span> ~/.ssh/authorized_keys</span><br><span class="line"><span class="built_in">chmod</span> 600 ~/.ssh/authorized_keys</span><br><span class="line"><span class="built_in">chmod</span> 700 ~/.ssh</span><br></pre></td></tr></table></figure><p>接着把你本地的 <code>id_rsa.pub</code> 内容复制到服务器的：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">/home/git/.ssh/authorized_keys</span><br></pre></td></tr></table></figure><p>保存后，在本地测试：</p><figure class="highlight powershell"><table><tr><td class="code"><pre><span class="line">ssh git<span class="selector-tag">@</span>服务器IP</span><br></pre></td></tr></table></figure><p>如果能正常连接，就说明密钥配置成功。</p><hr><h2 id="📦-五、创建裸仓库并配置自动部署"><a href="#📦-五、创建裸仓库并配置自动部署" class="headerlink" title="📦 五、创建裸仓库并配置自动部署"></a>📦 五、创建裸仓库并配置自动部署</h2><h3 id="1-创建-Git-仓库目录"><a href="#1-创建-Git-仓库目录" class="headerlink" title="1. 创建 Git 仓库目录"></a>1. 创建 Git 仓库目录</h3><p>在服务器上执行：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">sudo</span> <span class="built_in">mkdir</span> /home/git/repos</span><br><span class="line"><span class="built_in">cd</span> /home/git/repos</span><br><span class="line"><span class="built_in">sudo</span> git init --bare xmdblog.git</span><br></pre></td></tr></table></figure><p>这一步创建的是一个“裸仓库”，它专门用来接收推送，不直接作为工作目录编辑。</p><h3 id="2-配置-Git-Hooks-自动发布"><a href="#2-配置-Git-Hooks-自动发布" class="headerlink" title="2. 配置 Git Hooks 自动发布"></a>2. 配置 Git Hooks 自动发布</h3><p>找到：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">/home/git/repos/xmdblog.git/hooks/post-update.sample</span><br></pre></td></tr></table></figure><p>把它改名为：</p><figure class="highlight text"><table><tr><td class="code"><pre><span class="line">post-update</span><br></pre></td></tr></table></figure><p>并将内容改成：</p><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line"><span class="meta">#!/bin/sh</span></span><br><span class="line">git --work-tree=/www/wwwroot/网站目录名 --git-dir=/home/git/repos/仓库名.git checkout -f</span><br></pre></td></tr></table></figure><p>它的作用是：每次你把内容推送到仓库后，自动把内容签出到网站目录。</p><h3 id="3-赋予权限"><a href="#3-赋予权限" class="headerlink" title="3. 赋予权限"></a>3. 赋予权限</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cd</span> /home/git/repos/xmdblog.git/hooks</span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">chmod</span> +x post-update</span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">chown</span> -R git:git /home/git/repos/</span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">chown</span> -R git:git /www/wwwroot/网站目录名/</span><br></pre></td></tr></table></figure><blockquote><p>[!TIP]<br>如果你在宝塔里看到 <code>.user.ini</code> 导致无法操作网站目录，可以先临时删除它再继续。</p></blockquote><hr><h2 id="⚙️-六、本地-Hexo-配置"><a href="#⚙️-六、本地-Hexo-配置" class="headerlink" title="⚙️ 六、本地 Hexo 配置"></a>⚙️ 六、本地 Hexo 配置</h2><p>接下来回到你自己的 Hexo 项目，修改根目录下的 <code>_config.yml</code>。</p><h3 id="1-安装-Git-部署插件"><a href="#1-安装-Git-部署插件" class="headerlink" title="1. 安装 Git 部署插件"></a>1. 安装 Git 部署插件</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">npm install hexo-deployer-git --save</span><br></pre></td></tr></table></figure><h3 id="2-修改部署配置"><a href="#2-修改部署配置" class="headerlink" title="2. 修改部署配置"></a>2. 修改部署配置</h3><figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">deploy:</span></span><br><span class="line">  <span class="attr">type:</span> <span class="string">git</span></span><br><span class="line">  <span class="attr">repo:</span> <span class="string">git@服务器IP:/home/git/repos/仓库名.git</span></span><br><span class="line">  <span class="attr">branch:</span> <span class="string">master</span></span><br></pre></td></tr></table></figure><p>如果你的域名已经解析到服务器，也可以把 <code>服务器IP</code> 换成域名。</p><hr><h2 id="🚀-七、执行部署"><a href="#🚀-七、执行部署" class="headerlink" title="🚀 七、执行部署"></a>🚀 七、执行部署</h2><p>全部配置完成后，本地执行：</p><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo clean</span><br><span class="line">hexo generate</span><br><span class="line">hexo deploy</span><br></pre></td></tr></table></figure><p>如果一切正常，推送完成后服务器端会自动把内容同步到网站目录。</p><p>此时再访问你的域名，就应该能看到已经上线的博客了。</p><blockquote><p>[!NOTE]<br>原文里写成了 <code>hexo delopy</code>，这里要注意正确命令是 <code>hexo deploy</code>。</p></blockquote><hr><h2 id="🌐-八、配置-HTTPS-与访问优化"><a href="#🌐-八、配置-HTTPS-与访问优化" class="headerlink" title="🌐 八、配置 HTTPS 与访问优化"></a>🌐 八、配置 HTTPS 与访问优化</h2><p>博客能访问后，建议你继续做两件事：</p><h3 id="1-配置-SSL-证书"><a href="#1-配置-SSL-证书" class="headerlink" title="1. 配置 SSL 证书"></a>1. 配置 SSL 证书</h3><p>在宝塔站点设置里申请 Let’s Encrypt 证书，开启 HTTPS。</p><h3 id="2-配置重定向"><a href="#2-配置重定向" class="headerlink" title="2. 配置重定向"></a>2. 配置重定向</h3><p>建议把访问统一到你最终使用的域名版本，例如：</p><ul><li>强制跳转到 <code>https</code></li><li>统一跳转到 <code>www</code> 或非 <code>www</code></li></ul><p>这样对 SEO 和访问体验都更友好。</p><hr><h2 id="🛠️-九、常见问题排查"><a href="#🛠️-九、常见问题排查" class="headerlink" title="🛠️ 九、常见问题排查"></a>🛠️ 九、常见问题排查</h2><h3 id="1-推送成功但网站没更新"><a href="#1-推送成功但网站没更新" class="headerlink" title="1. 推送成功但网站没更新"></a>1. 推送成功但网站没更新</h3><p>优先检查：</p><ul><li><code>post-update</code> 是否有执行权限</li><li>仓库路径和站点路径是否写对</li><li>网站目录权限是否属于 <code>git</code> 用户</li></ul><h3 id="2-SSH-连接失败"><a href="#2-SSH-连接失败" class="headerlink" title="2. SSH 连接失败"></a>2. SSH 连接失败</h3><p>优先检查：</p><ul><li>本地公钥是否正确添加到 <code>authorized_keys</code></li><li><code>.ssh</code> 目录权限是否正确</li><li>服务器防火墙是否放行 SSH 端口</li></ul><h3 id="3-页面能打开但样式丢失"><a href="#3-页面能打开但样式丢失" class="headerlink" title="3. 页面能打开但样式丢失"></a>3. 页面能打开但样式丢失</h3><p>优先检查：</p><ul><li>Hexo 的 <code>url</code> 和 <code>root</code> 配置</li><li>静态资源是否完整上传</li><li>Nginx 站点根目录是否正确</li></ul><h3 id="4-网站目录无法写入"><a href="#4-网站目录无法写入" class="headerlink" title="4. 网站目录无法写入"></a>4. 网站目录无法写入</h3><p>优先检查：</p><ul><li>网站目录归属用户</li><li>是否存在 <code>.user.ini</code> 限制</li><li>宝塔是否开启了额外防护策略</li></ul><hr><h2 id="📚-总结"><a href="#📚-总结" class="headerlink" title="📚 总结"></a>📚 总结</h2><p>这套“宝塔面板 + Git Hooks + Nginx”的方案虽然不如 CI&#x2F;CD 现代，但对于很多个人站长来说依然足够实用。它的优点是：</p><ul><li>思路直观</li><li>部署链路清晰</li><li>适合自己掌控服务器环境</li><li>能帮助理解静态站点部署原理</li></ul><p>如果你更看重自动化、可维护性和安全性，下一步建议升级到 GitHub Actions 或 GitLab CI 的方案。</p><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区交流：</p><ol><li>你更喜欢传统 Git Hooks 部署，还是 CI&#x2F;CD 自动部署？</li><li>你在服务器部署过程中，最容易卡在哪一步？</li><li>如果你愿意，我也可以继续帮你把这套方案改造成更现代的部署流程。</li></ol>]]></content>
    
    
    <summary type="html">详细介绍如何使用宝塔面板将 Hexo 博客部署到服务器,包括环境配置、Git仓库搭建、自动部署等完整步骤。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Hexo教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/Hexo%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="部署" scheme="https://www.xmdblog.com/tags/%E9%83%A8%E7%BD%B2/"/>
    
    <category term="服务器" scheme="https://www.xmdblog.com/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
    <category term="Hexo" scheme="https://www.xmdblog.com/tags/Hexo/"/>
    
    <category term="宝塔面板" scheme="https://www.xmdblog.com/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/"/>
    
  </entry>
  
  <entry>
    <title>🎬 After Motion Z 下载</title>
    <link href="https://www.xmdblog.com/posts/c6ea8308.html"/>
    <id>https://www.xmdblog.com/posts/c6ea8308.html</id>
    <published>2024-02-21T14:57:20.000Z</published>
    <updated>2026-06-05T10:06:40.113Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>After Motion Z 是一款面向移动端的动画制作工具，适合做短视频特效、文字动画、图层合成与简单剪辑。如果你正想找一个上手门槛不高、功能又比较全面的安卓动画工具，这个版本值得试试。</p><h3 id="🆕-版本信息"><a href="#🆕-版本信息" class="headerlink" title="🆕 版本信息"></a>🆕 版本信息</h3><blockquote><p>[!NOTE]</p><ul><li>最后更新：2025 年 9 月 8 日</li><li>版本号：5.0.272.1028373</li><li>系统要求：Android 6 及更高版本</li><li>架构支持：通用</li></ul></blockquote><hr><h2 id="🆕-一、更新内容"><a href="#🆕-一、更新内容" class="headerlink" title="🆕 一、更新内容"></a>🆕 一、更新内容</h2><h3 id="✨-新增功能"><a href="#✨-新增功能" class="headerlink" title="✨ 新增功能"></a>✨ 新增功能</h3><ul><li>延长有效期</li></ul><h3 id="📥-下载地址"><a href="#📥-下载地址" class="headerlink" title="📥 下载地址"></a>📥 下载地址</h3><blockquote><p>[!TIP]<br>提供两个版本供选择：</p></blockquote><ol><li><a href="https://pan.xmdblog.com/onedrive/AMZ/AMZ_ORI_8SEP.apk">原包下载</a></li><li><a href="https://pan.xmdblog.com/onedrive/AMZ/AMZ_CLONE_8SEP.apk">共存包下载</a></li></ol><hr><h2 id="✨-二、功能特点"><a href="#✨-二、功能特点" class="headerlink" title="✨ 二、功能特点"></a>✨ 二、功能特点</h2><h3 id="✨-1-解锁高级功能"><a href="#✨-1-解锁高级功能" class="headerlink" title="✨ 1. 解锁高级功能"></a>✨ 1. 解锁高级功能</h3><ul><li>完整功能解锁</li><li>无广告和水印</li><li>支持高达 4K 分辨率</li><li>支持 999 层编辑</li><li>项目包导出功能</li></ul><blockquote><p>[!WARNING]<br>导入 Alightlink 项目超过 5Mb 的功能暂不支持</p></blockquote><h3 id="💡-2-优化改进"><a href="#💡-2-优化改进" class="headerlink" title="💡 2. 优化改进"></a>💡 2. 优化改进</h3><ul><li>移除支付页面</li><li>修复导入 XML 文件问题</li><li>修复 Google 登录功能</li><li>启用匿名登录</li><li>启用秘密菜单(三指同时按下触发)</li></ul><h3 id="💡-3-其他优化"><a href="#💡-3-其他优化" class="headerlink" title="💡 3. 其他优化"></a>💡 3. 其他优化</h3><ul><li>禁用错误代码提示</li><li>禁用应用验证</li><li>禁用 SurveyActivity</li><li>禁用篡改检测弹窗</li><li>资源文件优化</li></ul><h3 id="💡-4-支持与帮助"><a href="#💡-4-支持与帮助" class="headerlink" title="💡 4. 支持与帮助"></a>💡 4. 支持与帮助</h3><p>如果您遇到问题，可以在 After Motion Group 官方电报上提问</p><p>加入电报频道<a href="https://t.me/satriyaid">@satriyaid</a></p><h2 id="📌-总结"><a href="#📌-总结" class="headerlink" title="📌 总结"></a>📌 总结</h2><p>整体来看，After Motion Z 适合想在手机上快速完成动画制作与特效编辑的用户。本文提供了当前版本信息、下载地址与主要功能说明，建议下载后先在常用机型上测试兼容性，再作为长期创作工具使用。</p><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区讨论：</p><ol><li>你平时更常用手机做动画，还是电脑做动画？</li><li>你觉得这款软件最实用的功能是什么？</li><li>还想看哪些安卓创作工具推荐？</li></ol>]]></content>
    
    
    <summary type="html">Alight Motion 是一款强大的动画制作软件,本文提供最新版本下载及详细介绍。</summary>
    
    
    
    <category term="软件分享" scheme="https://www.xmdblog.com/categories/%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/"/>
    
    <category term="安卓软件" scheme="https://www.xmdblog.com/categories/%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/%E5%AE%89%E5%8D%93%E8%BD%AF%E4%BB%B6/"/>
    
    
    <category term="下载" scheme="https://www.xmdblog.com/tags/%E4%B8%8B%E8%BD%BD/"/>
    
    <category term="热门" scheme="https://www.xmdblog.com/tags/%E7%83%AD%E9%97%A8/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="安卓应用" scheme="https://www.xmdblog.com/tags/%E5%AE%89%E5%8D%93%E5%BA%94%E7%94%A8/"/>
    
    <category term="After Motion Z" scheme="https://www.xmdblog.com/tags/After-Motion-Z/"/>
    
  </entry>
  
  <entry>
    <title>👋 Hello World 与 Hexo 入门</title>
    <link href="https://www.xmdblog.com/posts/4a17b156.html"/>
    <id>https://www.xmdblog.com/posts/4a17b156.html</id>
    <published>2024-02-21T12:57:20.000Z</published>
    <updated>2026-06-05T10:06:40.114Z</updated>
    
    <content type="html"><![CDATA[<h2 id="📝-前言"><a href="#📝-前言" class="headerlink" title="📝 前言"></a>📝 前言</h2><p>如果你刚安装好 Hexo，系统通常会自动生成一篇默认的 Hello World。与其保留原始的英文示例，不如把它改造成一篇真正实用的入门说明，方便后续快速熟悉 Hexo 的基本工作流。</p><blockquote><p>[!TIP]<br>这篇文章也很适合作为你建站完成后的第一篇测试文章，用来确认文章发布、样式渲染与部署流程是否正常。</p></blockquote><hr><h2 id="🚀-快速开始"><a href="#🚀-快速开始" class="headerlink" title="🚀 快速开始"></a>🚀 快速开始</h2><h3 id="📝-新建一篇文章"><a href="#📝-新建一篇文章" class="headerlink" title="📝 新建一篇文章"></a>📝 新建一篇文章</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo new <span class="string">&quot;我的第一篇文章&quot;</span></span><br></pre></td></tr></table></figure><p>执行后，Hexo 会在 <code>source/_posts</code> 目录下生成对应的 Markdown 文件。</p><h3 id="▶️-启动本地预览"><a href="#▶️-启动本地预览" class="headerlink" title="▶️ 启动本地预览"></a>▶️ 启动本地预览</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo server</span><br></pre></td></tr></table></figure><p>默认访问地址为 <code>http://localhost:4000/</code>，可以实时查看修改效果。</p><h3 id="⚙️-生成静态文件"><a href="#⚙️-生成静态文件" class="headerlink" title="⚙️ 生成静态文件"></a>⚙️ 生成静态文件</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo generate</span><br></pre></td></tr></table></figure><p>这条命令会把文章、页面、样式等内容生成到 <code>public</code> 目录中，方便部署到服务器或静态托管平台。</p><h3 id="🌐-部署到远程站点"><a href="#🌐-部署到远程站点" class="headerlink" title="🌐 部署到远程站点"></a>🌐 部署到远程站点</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">hexo deploy</span><br></pre></td></tr></table></figure><p>执行部署前，请先在 <code>_config.yml</code> 中正确配置 <code>deploy</code> 相关参数。</p><hr><h2 id="✨-建站建议"><a href="#✨-建站建议" class="headerlink" title="✨ 建站建议"></a>✨ 建站建议</h2><h3 id="📁-养成良好的文章结构"><a href="#📁-养成良好的文章结构" class="headerlink" title="📁 养成良好的文章结构"></a>📁 养成良好的文章结构</h3><p>建议每篇文章尽量包含以下几个部分：</p><ul><li>前言</li><li>正文步骤</li><li>总结</li><li>讨论或补充说明</li></ul><p>这样不仅更利于阅读，也更方便搜索引擎理解内容结构。</p><h3 id="🖼️-统一图片与资源管理"><a href="#🖼️-统一图片与资源管理" class="headerlink" title="🖼️ 统一图片与资源管理"></a>🖼️ 统一图片与资源管理</h3><p>文章中的图片、封面和引用资源建议按固定规则整理，后续维护会轻松很多。</p><h3 id="🏷️-保持标签精简"><a href="#🏷️-保持标签精简" class="headerlink" title="🏷️ 保持标签精简"></a>🏷️ 保持标签精简</h3><p>标签不宜过多，优先保留最能代表主题、且便于检索的关键词即可。</p><hr><h2 id="📌-总结"><a href="#📌-总结" class="headerlink" title="📌 总结"></a>📌 总结</h2><p>Hexo 的核心流程并不复杂，记住下面这几步基本就够用了：</p><ol><li>新建文章</li><li>本地预览</li><li>生成静态文件</li><li>部署到站点</li></ol><p>当你熟悉这些基础命令后，就可以继续完善主题、优化 SEO、整理文章结构，慢慢搭建出属于自己的博客。</p><hr><h2 id="💬-讨论"><a href="#💬-讨论" class="headerlink" title="💬 讨论"></a>💬 讨论</h2><p>欢迎在评论区留言分享：</p><ol><li>你使用 Hexo 的第一感受如何？</li><li>你更想优先优化主题、内容还是部署流程？</li><li>还想看哪些 Hexo 入门或进阶教程？</li></ol>]]></content>
    
    
    <summary type="html">适合 Hexo 新手阅读的入门文章，介绍建站后的基础命令、发布流程与写作建议。</summary>
    
    
    
    <category term="教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Hexo教程" scheme="https://www.xmdblog.com/categories/%E6%95%99%E7%A8%8B/Hexo%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="入门" scheme="https://www.xmdblog.com/tags/%E5%85%A5%E9%97%A8/"/>
    
    <category term="建站" scheme="https://www.xmdblog.com/tags/%E5%BB%BA%E7%AB%99/"/>
    
    <category term="教程" scheme="https://www.xmdblog.com/tags/%E6%95%99%E7%A8%8B/"/>
    
    <category term="精选" scheme="https://www.xmdblog.com/tags/%E7%B2%BE%E9%80%89/"/>
    
    <category term="Hexo" scheme="https://www.xmdblog.com/tags/Hexo/"/>
    
  </entry>
  
</feed>
