<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Jta</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://fcmmm.github.io/</id>
  <link href="https://fcmmm.github.io/" rel="alternate"/>
  <link href="https://fcmmm.github.io/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Jta</rights>
  <subtitle>分享技术与生活</subtitle>
  <title>My Blog</title>
  <updated>2026-05-28T07:52:53.946Z</updated>
  <entry>
    <author>
      <name>Jta</name>
    </author>
    <category term="Linux" scheme="https://fcmmm.github.io/categories/Linux/"/>
    <category term="Linux" scheme="https://fcmmm.github.io/tags/Linux/"/>
    <category term="命令" scheme="https://fcmmm.github.io/tags/%E5%91%BD%E4%BB%A4/"/>
    <category term="Shell" scheme="https://fcmmm.github.io/tags/Shell/"/>
    <category term="Debian" scheme="https://fcmmm.github.io/tags/Debian/"/>
    <content>
      <![CDATA[<h2 id="Linux-常用命令速查"><a href="#Linux-常用命令速查" class="headerlink" title="Linux 常用命令速查"></a>Linux 常用命令速查</h2><p>日常使用 Linux 时最常用的命令合集。</p><h3 id="文件与目录"><a href="#文件与目录" class="headerlink" title="文件与目录"></a>文件与目录</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 列出文件</span></span><br><span class="line"><span class="built_in">ls</span> -la              <span class="comment"># 详细信息</span></span><br><span class="line"><span class="built_in">ls</span> -lh              <span class="comment"># 人类可读的大小</span></span><br><span class="line"><span class="built_in">ls</span> *.txt            <span class="comment"># 通配符</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 目录操作</span></span><br><span class="line"><span class="built_in">mkdir</span> -p a/b/c      <span class="comment"># 递归创建</span></span><br><span class="line"><span class="built_in">rmdir</span> empty_dir     <span class="comment"># 删除空目录</span></span><br><span class="line"><span class="built_in">rm</span> -rf <span class="built_in">dir</span>/         <span class="comment"># 强制递归删除（慎用！）</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 文件操作</span></span><br><span class="line"><span class="built_in">cp</span> -r src/ dst/     <span class="comment"># 递归复制</span></span><br><span class="line"><span class="built_in">mv</span> old new          <span class="comment"># 移动/重命名</span></span><br><span class="line"><span class="built_in">ln</span> -s target <span class="built_in">link</span>   <span class="comment"># 创建软链接</span></span><br></pre></td></tr></table></figure><h3 id="权限管理"><a href="#权限管理" class="headerlink" title="权限管理"></a>权限管理</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> 755 file      <span class="comment"># rwxr-xr-x</span></span><br><span class="line"><span class="built_in">chmod</span> +x script.sh  <span class="comment"># 添加执行权限</span></span><br><span class="line"><span class="built_in">chown</span> user:group file</span><br></pre></td></tr></table></figure><h3 id="进程管理"><a href="#进程管理" class="headerlink" title="进程管理"></a>进程管理</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">ps aux              <span class="comment"># 所有进程</span></span><br><span class="line">top                 <span class="comment"># 实时进程监控</span></span><br><span class="line">htop                <span class="comment"># 更好看的 top</span></span><br><span class="line"><span class="built_in">kill</span> -9 PID         <span class="comment"># 强制终止进程</span></span><br><span class="line">killall name        <span class="comment"># 按名称终止</span></span><br></pre></td></tr></table></figure><h3 id="网络"><a href="#网络" class="headerlink" title="网络"></a>网络</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">curl http://example.com</span><br><span class="line">wget http://example.com/file.tar.gz</span><br><span class="line">ss -tlnp            <span class="comment"># 查看监听端口</span></span><br><span class="line">ping example.com</span><br></pre></td></tr></table></figure><h3 id="磁盘与内存"><a href="#磁盘与内存" class="headerlink" title="磁盘与内存"></a>磁盘与内存</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">df</span> -h               <span class="comment"># 磁盘使用</span></span><br><span class="line"><span class="built_in">du</span> -sh <span class="built_in">dir</span>/         <span class="comment"># 目录大小</span></span><br><span class="line">free -h             <span class="comment"># 内存使用</span></span><br></pre></td></tr></table></figure><h3 id="搜索"><a href="#搜索" class="headerlink" title="搜索"></a>搜索</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">grep -r <span class="string">&quot;pattern&quot;</span> ./</span><br><span class="line">find . -name <span class="string">&quot;*.txt&quot;</span></span><br><span class="line"><span class="built_in">which</span> <span class="built_in">command</span>       <span class="comment"># 命令位置</span></span><br></pre></td></tr></table></figure><h3 id="压缩"><a href="#压缩" class="headerlink" title="压缩"></a>压缩</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">tar -czvf archive.tar.gz <span class="built_in">dir</span>/</span><br><span class="line">tar -xzvf archive.tar.gz</span><br><span class="line">zip -r archive.zip <span class="built_in">dir</span>/</span><br><span class="line">unzip archive.zip</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://fcmmm.github.io/p/2956639621/</id>
    <link href="https://fcmmm.github.io/p/2956639621/"/>
    <published>2026-05-28T01:10:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="Linux-常用命令速查"><a href="#Linux-常用命令速查" class="headerlink" title="Linux 常用命令速查"></a>Linux 常用命令速查</h2><p>日常使用 Linux 时最常用的命令合集。</p>
<h3]]>
    </summary>
    <title>Linux 常用命令整理</title>
    <updated>2026-05-28T07:52:53.946Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jta</name>
    </author>
    <category term="后端开发" scheme="https://fcmmm.github.io/categories/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91/"/>
    <category term="Python" scheme="https://fcmmm.github.io/tags/Python/"/>
    <category term="数据分析" scheme="https://fcmmm.github.io/tags/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/"/>
    <category term="Pandas" scheme="https://fcmmm.github.io/tags/Pandas/"/>
    <category term="Matplotlib" scheme="https://fcmmm.github.io/tags/Matplotlib/"/>
    <content>
      <![CDATA[<h2 id="Python-数据分析工具链"><a href="#Python-数据分析工具链" class="headerlink" title="Python 数据分析工具链"></a>Python 数据分析工具链</h2><p>Python 拥有丰富的数据分析生态系统。本文介绍最核心的库和常见用法。</p><h3 id="NumPy"><a href="#NumPy" class="headerlink" title="NumPy"></a>NumPy</h3><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"></span><br><span class="line"><span class="comment"># 创建数组</span></span><br><span class="line">arr = np.array([<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>])</span><br><span class="line">zeros = np.zeros((<span class="number">3</span>, <span class="number">4</span>))</span><br><span class="line">random_arr = np.random.randn(<span class="number">100</span>)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 基本运算</span></span><br><span class="line"><span class="built_in">print</span>(arr.mean())    <span class="comment"># 平均值</span></span><br><span class="line"><span class="built_in">print</span>(arr.std())     <span class="comment"># 标准差</span></span><br><span class="line"><span class="built_in">print</span>(arr.<span class="built_in">sum</span>())     <span class="comment"># 求和</span></span><br></pre></td></tr></table></figure><h3 id="Pandas"><a href="#Pandas" class="headerlink" title="Pandas"></a>Pandas</h3><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> pandas <span class="keyword">as</span> pd</span><br><span class="line"></span><br><span class="line"><span class="comment"># 读取数据</span></span><br><span class="line">df = pd.read_csv(<span class="string">&#x27;data.csv&#x27;</span>)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 数据概览</span></span><br><span class="line"><span class="built_in">print</span>(df.head())</span><br><span class="line"><span class="built_in">print</span>(df.info())</span><br><span class="line"><span class="built_in">print</span>(df.describe())</span><br><span class="line"></span><br><span class="line"><span class="comment"># 数据筛选</span></span><br><span class="line">filtered = df[df[<span class="string">&#x27;age&#x27;</span>] &gt; <span class="number">25</span>]</span><br><span class="line">grouped = df.groupby(<span class="string">&#x27;category&#x27;</span>).mean()</span><br><span class="line"></span><br><span class="line"><span class="comment"># 处理缺失值</span></span><br><span class="line">df.dropna(inplace=<span class="literal">True</span>)</span><br><span class="line">df.fillna(<span class="number">0</span>, inplace=<span class="literal">True</span>)</span><br></pre></td></tr></table></figure><h3 id="Matplotlib"><a href="#Matplotlib" class="headerlink" title="Matplotlib"></a>Matplotlib</h3><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt</span><br><span class="line"></span><br><span class="line"><span class="comment"># 折线图</span></span><br><span class="line">plt.plot(df[<span class="string">&#x27;date&#x27;</span>], df[<span class="string">&#x27;value&#x27;</span>])</span><br><span class="line">plt.title(<span class="string">&#x27;Trend Over Time&#x27;</span>)</span><br><span class="line">plt.xlabel(<span class="string">&#x27;Date&#x27;</span>)</span><br><span class="line">plt.ylabel(<span class="string">&#x27;Value&#x27;</span>)</span><br><span class="line">plt.show()</span><br><span class="line"></span><br><span class="line"><span class="comment"># 柱状图</span></span><br><span class="line">df[<span class="string">&#x27;category&#x27;</span>].value_counts().plot(kind=<span class="string">&#x27;bar&#x27;</span>)</span><br><span class="line">plt.show()</span><br></pre></td></tr></table></figure><h3 id="简单分析流程"><a href="#简单分析流程" class="headerlink" title="简单分析流程"></a>简单分析流程</h3><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> pandas <span class="keyword">as</span> pd</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt</span><br><span class="line"></span><br><span class="line"><span class="comment"># 1. 加载数据</span></span><br><span class="line">df = pd.read_csv(<span class="string">&#x27;sales.csv&#x27;</span>)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 2. 数据清洗</span></span><br><span class="line">df[<span class="string">&#x27;date&#x27;</span>] = pd.to_datetime(df[<span class="string">&#x27;date&#x27;</span>])</span><br><span class="line">df = df.dropna()</span><br><span class="line"></span><br><span class="line"><span class="comment"># 3. 分析</span></span><br><span class="line">monthly = df.groupby(df[<span class="string">&#x27;date&#x27;</span>].dt.month)[<span class="string">&#x27;revenue&#x27;</span>].<span class="built_in">sum</span>()</span><br><span class="line"></span><br><span class="line"><span class="comment"># 4. 可视化</span></span><br><span class="line">monthly.plot(kind=<span class="string">&#x27;bar&#x27;</span>, title=<span class="string">&#x27;Monthly Revenue&#x27;</span>)</span><br><span class="line">plt.show()</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://fcmmm.github.io/p/335312452/</id>
    <link href="https://fcmmm.github.io/p/335312452/"/>
    <published>2026-05-28T01:00:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="Python-数据分析工具链"><a href="#Python-数据分析工具链" class="headerlink" title="Python 数据分析工具链"></a>Python 数据分析工具链</h2><p>Python]]>
    </summary>
    <title>Python 数据分析入门</title>
    <updated>2026-05-28T07:52:52.913Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jta</name>
    </author>
    <category term="前端开发" scheme="https://fcmmm.github.io/categories/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/"/>
    <category term="CSS" scheme="https://fcmmm.github.io/tags/CSS/"/>
    <category term="布局" scheme="https://fcmmm.github.io/tags/%E5%B8%83%E5%B1%80/"/>
    <category term="Grid" scheme="https://fcmmm.github.io/tags/Grid/"/>
    <category term="教程" scheme="https://fcmmm.github.io/tags/%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="CSS-Grid-简介"><a href="#CSS-Grid-简介" class="headerlink" title="CSS Grid 简介"></a>CSS Grid 简介</h2><p>CSS Grid 布局是 CSS 中最强大的布局系统。它是一个二维布局系统，可以同时处理列和行。</p><h2 id="核心概念"><a href="#核心概念" class="headerlink" title="核心概念"></a>核心概念</h2><h3 id="网格容器"><a href="#网格容器" class="headerlink" title="网格容器"></a>网格容器</h3><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.container</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: grid;</span><br><span class="line">  <span class="attribute">grid-template-columns</span>: <span class="built_in">repeat</span>(<span class="number">3</span>, <span class="number">1</span>fr);</span><br><span class="line">  <span class="attribute">grid-template-rows</span>: auto;</span><br><span class="line">  <span class="attribute">gap</span>: <span class="number">20px</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="网格项"><a href="#网格项" class="headerlink" title="网格项"></a>网格项</h3><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.item-1</span> &#123;</span><br><span class="line">  <span class="attribute">grid-column</span>: <span class="number">1</span> / <span class="number">3</span>;  <span class="comment">/* 从第1列到第3列 */</span></span><br><span class="line">  <span class="attribute">grid-row</span>: <span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.item-2</span> &#123;</span><br><span class="line">  <span class="attribute">grid-column</span>: <span class="number">3</span>;</span><br><span class="line">  <span class="attribute">grid-row</span>: <span class="number">1</span> / <span class="number">3</span>;  <span class="comment">/* 从第1行到第3行 */</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="常用布局示例"><a href="#常用布局示例" class="headerlink" title="常用布局示例"></a>常用布局示例</h2><h3 id="圣杯布局"><a href="#圣杯布局" class="headerlink" title="圣杯布局"></a>圣杯布局</h3><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.layout</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: grid;</span><br><span class="line">  <span class="attribute">grid-template-columns</span>: <span class="number">200px</span> <span class="number">1</span>fr <span class="number">200px</span>;</span><br><span class="line">  <span class="attribute">grid-template-rows</span>: <span class="number">60px</span> <span class="number">1</span>fr <span class="number">60px</span>;</span><br><span class="line">  <span class="attribute">min-height</span>: <span class="number">100vh</span>;</span><br><span class="line">  <span class="attribute">grid-template-areas</span>:</span><br><span class="line">    <span class="string">&quot;header header header&quot;</span></span><br><span class="line">    <span class="string">&quot;nav    main   aside&quot;</span></span><br><span class="line">    <span class="string">&quot;footer footer footer&quot;</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.header</span> &#123; <span class="attribute">grid-area</span>: header; &#125;</span><br><span class="line"><span class="selector-class">.nav</span>    &#123; <span class="attribute">grid-area</span>: nav; &#125;</span><br><span class="line"><span class="selector-class">.main</span>   &#123; <span class="attribute">grid-area</span>: main; &#125;</span><br><span class="line"><span class="selector-class">.aside</span>  &#123; <span class="attribute">grid-area</span>: aside; &#125;</span><br><span class="line"><span class="selector-class">.footer</span> &#123; <span class="attribute">grid-area</span>: footer; &#125;</span><br></pre></td></tr></table></figure><h3 id="响应式网格"><a href="#响应式网格" class="headerlink" title="响应式网格"></a>响应式网格</h3><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.card-grid</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: grid;</span><br><span class="line">  <span class="attribute">grid-template-columns</span>: <span class="built_in">repeat</span>(auto-fill, <span class="built_in">minmax</span>(<span class="number">280px</span>, <span class="number">1</span>fr));</span><br><span class="line">  <span class="attribute">gap</span>: <span class="number">24px</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="居中对齐"><a href="#居中对齐" class="headerlink" title="居中对齐"></a>居中对齐</h3><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.center-container</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: grid;</span><br><span class="line">  <span class="attribute">place-items</span>: center;</span><br><span class="line">  <span class="attribute">min-height</span>: <span class="number">100vh</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="Grid-vs-Flexbox"><a href="#Grid-vs-Flexbox" class="headerlink" title="Grid vs Flexbox"></a>Grid vs Flexbox</h2><table><thead><tr><th>Grid</th><th>Flexbox</th></tr></thead><tbody><tr><td>二维布局</td><td>一维布局</td></tr><tr><td>同时控制行列</td><td>控制行或列</td></tr><tr><td>布局优先</td><td>内容优先</td></tr><tr><td>适合页面布局</td><td>适合组件布局</td></tr></tbody></table>]]>
    </content>
    <id>https://fcmmm.github.io/p/466982809/</id>
    <link href="https://fcmmm.github.io/p/466982809/"/>
    <published>2026-05-28T00:50:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="CSS-Grid-简介"><a href="#CSS-Grid-简介" class="headerlink" title="CSS Grid 简介"></a>CSS Grid 简介</h2><p>CSS Grid 布局是 CSS]]>
    </summary>
    <title>CSS Grid 布局完全指南</title>
    <updated>2026-05-28T07:52:51.845Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jta</name>
    </author>
    <category term="前端开发" scheme="https://fcmmm.github.io/categories/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/"/>
    <category term="JavaScript" scheme="https://fcmmm.github.io/tags/JavaScript/"/>
    <category term="异步编程" scheme="https://fcmmm.github.io/tags/%E5%BC%82%E6%AD%A5%E7%BC%96%E7%A8%8B/"/>
    <category term="Promise" scheme="https://fcmmm.github.io/tags/Promise/"/>
    <category term="async/await" scheme="https://fcmmm.github.io/tags/async-await/"/>
    <content>
      <![CDATA[<h2 id="从回调到-async-await"><a href="#从回调到-async-await" class="headerlink" title="从回调到 async&#x2F;await"></a>从回调到 async&#x2F;await</h2><p>JavaScript 异步编程模型经历了巨大的演进。本文从基础概念出发，逐步深入讲解各种异步模式。</p><h3 id="1-回调函数"><a href="#1-回调函数" class="headerlink" title="1. 回调函数"></a>1. 回调函数</h3><p>最基础的异步模式：</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span> <span class="title function_">fetchData</span>(<span class="params">callback</span>) &#123;</span><br><span class="line">  <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">    <span class="keyword">const</span> data = &#123; <span class="attr">id</span>: <span class="number">1</span>, <span class="attr">name</span>: <span class="string">&#x27;example&#x27;</span> &#125;;</span><br><span class="line">    <span class="title function_">callback</span>(<span class="literal">null</span>, data);</span><br><span class="line">  &#125;, <span class="number">1000</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="title function_">fetchData</span>(<span class="function">(<span class="params">err, data</span>) =&gt;</span> &#123;</span><br><span class="line">  <span class="keyword">if</span> (err) &#123;</span><br><span class="line">    <span class="variable language_">console</span>.<span class="title function_">error</span>(err);</span><br><span class="line">    <span class="keyword">return</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="variable language_">console</span>.<span class="title function_">log</span>(data);</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><h3 id="2-Promise"><a href="#2-Promise" class="headerlink" title="2. Promise"></a>2. Promise</h3><p>Promise 提供了更优雅的异步处理方式：</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span> <span class="title function_">fetchData</span>(<span class="params"></span>) &#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">new</span> <span class="title class_">Promise</span>(<span class="function">(<span class="params">resolve, reject</span>) =&gt;</span> &#123;</span><br><span class="line">    <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">      <span class="keyword">const</span> data = &#123; <span class="attr">id</span>: <span class="number">1</span>, <span class="attr">name</span>: <span class="string">&#x27;example&#x27;</span> &#125;;</span><br><span class="line">      <span class="title function_">resolve</span>(data);</span><br><span class="line">    &#125;, <span class="number">1000</span>);</span><br><span class="line">  &#125;);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="title function_">fetchData</span>()</span><br><span class="line">  .<span class="title function_">then</span>(<span class="function"><span class="params">data</span> =&gt;</span> <span class="variable language_">console</span>.<span class="title function_">log</span>(data))</span><br><span class="line">  .<span class="title function_">catch</span>(<span class="function"><span class="params">err</span> =&gt;</span> <span class="variable language_">console</span>.<span class="title function_">error</span>(err));</span><br></pre></td></tr></table></figure><h3 id="3-async-await"><a href="#3-async-await" class="headerlink" title="3. async&#x2F;await"></a>3. async&#x2F;await</h3><p>让异步代码看起来像同步代码：</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">async</span> <span class="keyword">function</span> <span class="title function_">getData</span>(<span class="params"></span>) &#123;</span><br><span class="line">  <span class="keyword">try</span> &#123;</span><br><span class="line">    <span class="keyword">const</span> data = <span class="keyword">await</span> <span class="title function_">fetchData</span>();</span><br><span class="line">    <span class="variable language_">console</span>.<span class="title function_">log</span>(data);</span><br><span class="line">  &#125; <span class="keyword">catch</span> (err) &#123;</span><br><span class="line">    <span class="variable language_">console</span>.<span class="title function_">error</span>(err);</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="title function_">getData</span>();</span><br></pre></td></tr></table></figure><h3 id="Promise-工具方法"><a href="#Promise-工具方法" class="headerlink" title="Promise 工具方法"></a>Promise 工具方法</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 并发请求</span></span><br><span class="line"><span class="keyword">const</span> [user, posts] = <span class="keyword">await</span> <span class="title class_">Promise</span>.<span class="title function_">all</span>([</span><br><span class="line">  <span class="title function_">fetch</span>(<span class="string">&#x27;/api/user&#x27;</span>),</span><br><span class="line">  <span class="title function_">fetch</span>(<span class="string">&#x27;/api/posts&#x27;</span>)</span><br><span class="line">]);</span><br><span class="line"></span><br><span class="line"><span class="comment">// 竞速</span></span><br><span class="line"><span class="keyword">const</span> result = <span class="keyword">await</span> <span class="title class_">Promise</span>.<span class="title function_">race</span>([</span><br><span class="line">  <span class="title function_">fetch</span>(<span class="string">&#x27;/api/fast&#x27;</span>),</span><br><span class="line">  <span class="title function_">timeout</span>(<span class="number">5000</span>)</span><br><span class="line">]);</span><br><span class="line"></span><br><span class="line"><span class="comment">// 所有结果（不管成功失败）</span></span><br><span class="line"><span class="keyword">const</span> results = <span class="keyword">await</span> <span class="title class_">Promise</span>.<span class="title function_">allSettled</span>([</span><br><span class="line">  <span class="title function_">fetch</span>(<span class="string">&#x27;/api/a&#x27;</span>),</span><br><span class="line">  <span class="title function_">fetch</span>(<span class="string">&#x27;/api/b&#x27;</span>),</span><br><span class="line">  <span class="title function_">fetch</span>(<span class="string">&#x27;/api/c&#x27;</span>)</span><br><span class="line">]);</span><br></pre></td></tr></table></figure><h3 id="错误处理"><a href="#错误处理" class="headerlink" title="错误处理"></a>错误处理</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">async</span> <span class="keyword">function</span> <span class="title function_">safeFetch</span>(<span class="params">url</span>) &#123;</span><br><span class="line">  <span class="keyword">try</span> &#123;</span><br><span class="line">    <span class="keyword">const</span> res = <span class="keyword">await</span> <span class="title function_">fetch</span>(url);</span><br><span class="line">    <span class="keyword">if</span> (!res.<span class="property">ok</span>) <span class="keyword">throw</span> <span class="keyword">new</span> <span class="title class_">Error</span>(<span class="string">`HTTP <span class="subst">$&#123;res.status&#125;</span>`</span>);</span><br><span class="line">    <span class="keyword">return</span> <span class="keyword">await</span> res.<span class="title function_">json</span>();</span><br><span class="line">  &#125; <span class="keyword">catch</span> (err) &#123;</span><br><span class="line">    <span class="variable language_">console</span>.<span class="title function_">error</span>(<span class="string">&#x27;Fetch failed:&#x27;</span>, err);</span><br><span class="line">    <span class="keyword">return</span> <span class="literal">null</span>;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://fcmmm.github.io/p/433671610/</id>
    <link href="https://fcmmm.github.io/p/433671610/"/>
    <published>2026-05-28T00:40:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="从回调到-async-await"><a href="#从回调到-async-await" class="headerlink" title="从回调到 async&#x2F;await"></a>从回调到]]>
    </summary>
    <title>JavaScript 异步编程详解</title>
    <updated>2026-05-28T07:52:50.803Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jta</name>
    </author>
    <category term="开发工具" scheme="https://fcmmm.github.io/categories/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/"/>
    <category term="教程" scheme="https://fcmmm.github.io/tags/%E6%95%99%E7%A8%8B/"/>
    <category term="Git" scheme="https://fcmmm.github.io/tags/Git/"/>
    <category term="版本控制" scheme="https://fcmmm.github.io/tags/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6/"/>
    <content>
      <![CDATA[<h2 id="为什么需要-Git-工作流？"><a href="#为什么需要-Git-工作流？" class="headerlink" title="为什么需要 Git 工作流？"></a>为什么需要 Git 工作流？</h2><p>Git 是当今最流行的分布式版本控制系统。了解并遵循 Git 工作流程最佳实践，可以帮助团队更好地协作，减少合并冲突，保持提交历史的清晰。</p><h2 id="常见-Git-工作流"><a href="#常见-Git-工作流" class="headerlink" title="常见 Git 工作流"></a>常见 Git 工作流</h2><h3 id="1-Git-Flow"><a href="#1-Git-Flow" class="headerlink" title="1. Git Flow"></a>1. Git Flow</h3><p>Git Flow 是最经典的 Git 工作流，由 Vincent Driessen 提出。</p><p>核心分支：</p><ul><li><strong>main</strong>：生产环境代码</li><li><strong>develop</strong>：开发分支，集成所有功能</li><li><strong>feature&#x2F;xxx</strong>：功能分支</li><li><strong>release&#x2F;xxx</strong>：发布分支</li><li><strong>hotfix&#x2F;xxx</strong>：热修复分支</li></ul><h3 id="2-GitHub-Flow"><a href="#2-GitHub-Flow" class="headerlink" title="2. GitHub Flow"></a>2. GitHub Flow</h3><p>更加简单的工作流，适合持续部署：</p><ul><li><strong>main</strong>：始终可部署</li><li><strong>feature&#x2F;xxx</strong>：从 main 创建，完成后发起 PR</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 创建功能分支</span></span><br><span class="line">git checkout -b feature/my-feature</span><br><span class="line"></span><br><span class="line"><span class="comment"># 开发并提交</span></span><br><span class="line">git add .</span><br><span class="line">git commit -m <span class="string">&quot;feat: add new feature&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 推送到远程</span></span><br><span class="line">git push origin feature/my-feature</span><br></pre></td></tr></table></figure><h3 id="3-GitLab-Flow"><a href="#3-GitLab-Flow" class="headerlink" title="3. GitLab Flow"></a>3. GitLab Flow</h3><p>结合了 Git Flow 和 GitHub Flow 的优点。</p><h2 id="最佳实践"><a href="#最佳实践" class="headerlink" title="最佳实践"></a>最佳实践</h2><h3 id="Commit-规范"><a href="#Commit-规范" class="headerlink" title="Commit 规范"></a>Commit 规范</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">feat: 新功能</span><br><span class="line">fix: 修复 bug</span><br><span class="line">docs: 文档更新</span><br><span class="line">style: 代码格式（不影响运行）</span><br><span class="line">refactor: 重构</span><br><span class="line"><span class="built_in">test</span>: 测试相关</span><br><span class="line">chore: 构建/工具变更</span><br></pre></td></tr></table></figure><h3 id="提交频率"><a href="#提交频率" class="headerlink" title="提交频率"></a>提交频率</h3><ul><li>小步提交，频繁推送</li><li>每个 commit 只做一件事</li><li>写清晰的 commit message</li></ul><h3 id="分支管理"><a href="#分支管理" class="headerlink" title="分支管理"></a>分支管理</h3><ul><li>及时删除已合并的分支</li><li>保持分支命名规范</li><li>定期同步主分支</li></ul>]]>
    </content>
    <id>https://fcmmm.github.io/p/129012965/</id>
    <link href="https://fcmmm.github.io/p/129012965/"/>
    <published>2026-05-28T00:30:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="为什么需要-Git-工作流？"><a href="#为什么需要-Git-工作流？" class="headerlink" title="为什么需要 Git 工作流？"></a>为什么需要 Git 工作流？</h2><p>Git]]>
    </summary>
    <title>Git 工作流程最佳实践</title>
    <updated>2026-05-28T07:52:49.734Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jta</name>
    </author>
    <category term="DevOps" scheme="https://fcmmm.github.io/categories/DevOps/"/>
    <category term="Docker" scheme="https://fcmmm.github.io/tags/Docker/"/>
    <category term="Docker Compose" scheme="https://fcmmm.github.io/tags/Docker-Compose/"/>
    <category term="容器管理" scheme="https://fcmmm.github.io/tags/%E5%AE%B9%E5%99%A8%E7%AE%A1%E7%90%86/"/>
    <category term="Commands" scheme="https://fcmmm.github.io/tags/Commands/"/>
    <content>
      <![CDATA[<h2 id="核心命令速查"><a href="#核心命令速查" class="headerlink" title="核心命令速查"></a>核心命令速查</h2><p>Docker Compose 几乎完全兼容 docker-compose，日常开发直接当 Docker Compose 用就行。</p><h3 id="常用命令一览"><a href="#常用命令一览" class="headerlink" title="常用命令一览"></a>常用命令一览</h3><table><thead><tr><th>命令</th><th>说明</th><th>频率</th></tr></thead><tbody><tr><td><code>docker compose up -d</code></td><td>后台启动</td><td>★★★★★</td></tr><tr><td><code>docker compose down</code></td><td>停止并删除容器</td><td>★★★★★</td></tr><tr><td><code>docker compose down -v</code></td><td>连卷一起删（彻底重置）</td><td>★★★★</td></tr><tr><td><code>docker compose ps</code></td><td>查看运行状态</td><td>★★★★★</td></tr><tr><td><code>docker compose logs -f</code></td><td>实时看所有日志</td><td>★★★★</td></tr><tr><td><code>docker compose logs -f 服务名</code></td><td>跟踪某个服务日志</td><td>★★★★★</td></tr><tr><td><code>docker compose build</code></td><td>重新构建镜像</td><td>★★★★</td></tr><tr><td><code>docker compose pull</code></td><td>拉取最新镜像</td><td>★★★</td></tr><tr><td><code>docker compose restart</code></td><td>重启所有服务</td><td>★★★</td></tr><tr><td><code>docker compose exec 服务名 bash</code></td><td>进容器</td><td>★★★★★</td></tr></tbody></table><h3 id="使用示例"><a href="#使用示例" class="headerlink" title="使用示例"></a>使用示例</h3><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># docker-compose.yml</span></span><br><span class="line"><span class="attr">version:</span> <span class="string">&#x27;3.8&#x27;</span></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">web:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">nginx:alpine</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;80:80&quot;</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">./html:/usr/share/nginx/html</span></span><br><span class="line">  </span><br><span class="line">  <span class="attr">db:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">postgres:15</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="attr">POSTGRES_PASSWORD:</span> <span class="string">example</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">pgdata:/var/lib/postgresql/data</span></span><br><span class="line"></span><br><span class="line"><span class="attr">volumes:</span></span><br><span class="line">  <span class="attr">pgdata:</span></span><br></pre></td></tr></table></figure><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 启动所有服务</span></span><br><span class="line">docker compose up -d</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看运行状态</span></span><br><span class="line">docker compose ps</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看 web 服务日志</span></span><br><span class="line">docker compose logs -f web</span><br><span class="line"></span><br><span class="line"><span class="comment"># 进入 web 容器</span></span><br><span class="line">docker compose <span class="built_in">exec</span> web sh</span><br><span class="line"></span><br><span class="line"><span class="comment"># 停止所有</span></span><br><span class="line">docker compose down</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://fcmmm.github.io/p/96872778/</id>
    <link href="https://fcmmm.github.io/p/96872778/"/>
    <published>2026-05-28T00:20:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="核心命令速查"><a href="#核心命令速查" class="headerlink" title="核心命令速查"></a>核心命令速查</h2><p>Docker Compose 几乎完全兼容 docker-compose，日常开发直接当 Docker]]>
    </summary>
    <title>Docker Compose 常用命令速查</title>
    <updated>2026-05-28T07:52:48.697Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jta</name>
    </author>
    <category term="信息技术" scheme="https://fcmmm.github.io/categories/%E4%BF%A1%E6%81%AF%E6%8A%80%E6%9C%AF/"/>
    <category term="开源软件" scheme="https://fcmmm.github.io/tags/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6/"/>
    <category term="技术论坛" scheme="https://fcmmm.github.io/tags/%E6%8A%80%E6%9C%AF%E8%AE%BA%E5%9D%9B/"/>
    <category term="提问技巧" scheme="https://fcmmm.github.io/tags/%E6%8F%90%E9%97%AE%E6%8A%80%E5%B7%A7/"/>
    <content>
      <![CDATA[<h2 id="转载声明"><a href="#转载声明" class="headerlink" title="转载声明"></a>转载声明</h2><p>以下内容转自 How-To-Ask-Questions-The-Smart-Way，纯作用于中国大陆境内加速访问，侵联删！</p><h2 id="提问的智慧"><a href="#提问的智慧" class="headerlink" title="提问的智慧"></a>提问的智慧</h2><p><strong>How To Ask Questions The Smart Way</strong></p><p>Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen</p><h3 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h3><p>在技术社区中，如何提出一个有效的问题是一门艺术。好的问题能更快地得到解答，也能让帮助你的人更加愉快。</p><h3 id="提问前"><a href="#提问前" class="headerlink" title="提问前"></a>提问前</h3><p>在提问之前，请先尝试：</p><ol><li>阅读文档和手册</li><li>搜索互联网（Google、Stack Overflow 等）</li><li>阅读 FAQ（常见问题解答）</li><li>自己检查和实验</li><li>阅读源代码</li></ol><h3 id="提问时"><a href="#提问时" class="headerlink" title="提问时"></a>提问时</h3><p>一个好的问题应该包含：</p><ul><li><strong>清晰描述问题</strong>：发生了什么？你期望发生什么？</li><li><strong>提供上下文</strong>：你正在使用的环境、版本信息</li><li><strong>展示你已尝试的解决方案</strong>：这显示了你的努力</li><li><strong>最小复现用例</strong>：让别人能快速理解你的问题</li></ul><h3 id="如何解读回答"><a href="#如何解读回答" class="headerlink" title="如何解读回答"></a>如何解读回答</h3><p>当别人回答你的问题时：</p><ul><li>仔细阅读并思考</li><li>如果回答不清晰，礼貌地请求澄清</li><li>如果解决了问题，请感谢并标记为已解决</li></ul><blockquote><p>记住：回答你问题的人是自愿花费时间的，请尊重他们。</p></blockquote>]]>
    </content>
    <id>https://fcmmm.github.io/p/4214764277/</id>
    <link href="https://fcmmm.github.io/p/4214764277/"/>
    <published>2026-05-28T00:10:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="转载声明"><a href="#转载声明" class="headerlink" title="转载声明"></a>转载声明</h2><p>以下内容转自]]>
    </summary>
    <title>提问的智慧</title>
    <updated>2026-05-28T07:52:47.650Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jta</name>
    </author>
    <category term="技术文档" scheme="https://fcmmm.github.io/categories/%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3/"/>
    <category term="教程" scheme="https://fcmmm.github.io/tags/%E6%95%99%E7%A8%8B/"/>
    <category term="Markdown" scheme="https://fcmmm.github.io/tags/Markdown/"/>
    <category term="Hexo" scheme="https://fcmmm.github.io/tags/Hexo/"/>
    <category term="代码块" scheme="https://fcmmm.github.io/tags/%E4%BB%A3%E7%A0%81%E5%9D%97/"/>
    <content>
      <![CDATA[<h2 id="Markdown-语法自带格式"><a href="#Markdown-语法自带格式" class="headerlink" title="Markdown 语法自带格式"></a>Markdown 语法自带格式</h2><p>参考：<a href="https://www.example.com/">Markdown 语法图文全面详解(10 分钟学会)</a></p><blockquote><p>注意：此页面偶尔会存在 CSS 冲突问题!</p></blockquote><h3 id="代码块"><a href="#代码块" class="headerlink" title="代码块"></a>代码块</h3><p><strong>示例源码渲染演示：</strong></p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># VSCode终端</span></span><br><span class="line">hexo clean; hexo s</span><br><span class="line">hexo clean; hexo g; hexo d</span><br><span class="line">git add .; git commit -m <span class="string">&quot;npm publish&quot;</span>; npm version patch; git push</span><br><span class="line"></span><br><span class="line"><span class="comment"># Cmder终端</span></span><br><span class="line">hexo clean &amp;&amp; hexo s</span><br><span class="line">hexo clean &amp;&amp; hexo g &amp;&amp; hexo d</span><br><span class="line">git add . &amp;&amp; git commit -m <span class="string">&quot;npm publish&quot;</span> &amp;&amp; npm version patch</span><br></pre></td></tr></table></figure><h3 id="标题"><a href="#标题" class="headerlink" title="标题"></a>标题</h3><h1 id="一级标题"><a href="#一级标题" class="headerlink" title="一级标题"></a>一级标题</h1><h2 id="二级标题"><a href="#二级标题" class="headerlink" title="二级标题"></a>二级标题</h2><h3 id="三级标题"><a href="#三级标题" class="headerlink" title="三级标题"></a>三级标题</h3><h4 id="四级标题"><a href="#四级标题" class="headerlink" title="四级标题"></a>四级标题</h4><h5 id="五级标题"><a href="#五级标题" class="headerlink" title="五级标题"></a>五级标题</h5><h6 id="六级标题"><a href="#六级标题" class="headerlink" title="六级标题"></a>六级标题</h6><h3 id="文本样式"><a href="#文本样式" class="headerlink" title="文本样式"></a>文本样式</h3><p><em>这是斜体文字</em></p><p><strong>这是粗体文字</strong></p><p><del>这是删除线文字</del></p><p><code>这是行内代码</code></p><h3 id="列表"><a href="#列表" class="headerlink" title="列表"></a>列表</h3><h4 id="无序列表"><a href="#无序列表" class="headerlink" title="无序列表"></a>无序列表</h4><ul><li>项目一</li><li>项目二<ul><li>嵌套项目</li><li>嵌套项目二</li></ul></li><li>项目三</li></ul><h4 id="有序列表"><a href="#有序列表" class="headerlink" title="有序列表"></a>有序列表</h4><ol><li>第一步</li><li>第二步</li><li>第三步</li></ol><h3 id="链接与图片"><a href="#链接与图片" class="headerlink" title="链接与图片"></a>链接与图片</h3><p><a href="https://hexo.io/">这是一个链接</a></p><h3 id="引用"><a href="#引用" class="headerlink" title="引用"></a>引用</h3><blockquote><p>这是一段引用文字<br>可以多行显示</p></blockquote><h3 id="表格"><a href="#表格" class="headerlink" title="表格"></a>表格</h3><table><thead><tr><th align="left">左对齐</th><th align="center">居中</th><th align="right">右对齐</th></tr></thead><tbody><tr><td align="left">内容A</td><td align="center">内容B</td><td align="right">内容C</td></tr><tr><td align="left">内容D</td><td align="center">内容E</td><td align="right">内容F</td></tr></tbody></table><hr><p>以上就是常用的 Markdown 语法汇总，日常写作时可以参考使用。</p>]]>
    </content>
    <id>https://fcmmm.github.io/p/455384546/</id>
    <link href="https://fcmmm.github.io/p/455384546/"/>
    <published>2026-05-28T00:00:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="Markdown-语法自带格式"><a href="#Markdown-语法自带格式" class="headerlink" title="Markdown 语法自带格式"></a>Markdown 语法自带格式</h2><p>参考：<a]]>
    </summary>
    <title>Markdown 语法与外置标签写法汇总</title>
    <updated>2026-05-28T00:00:00.000Z</updated>
  </entry>
</feed>
