<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://rynhow.pages.dev/</id>
  <title type="text">rynhowの部屋</title>
  <subtitle type="text">Demo site</subtitle>
  <updated>2026-09-13T00:00:00.000Z</updated>
  <author><name>rynhow</name></author>
  <link rel="alternate" href="https://rynhow.pages.dev/"/>
  <link rel="self" href="https://rynhow.pages.dev/atom.xml"/>
  <generator uri="https://github.com/CuteLeaf/Firefly">Firefly v6.16.8</generator>
    <entry>
      <id>https://rynhow.pages.dev/posts/vs-code-%E4%BC%98%E5%8C%96%E5%92%8C%E8%AE%BE%E7%BD%AE/</id>
      <title type="text">VS Code 优化和设置</title>
      <published>2026-09-13T00:00:00.000Z</published>
      <updated>2026-09-13T00:00:00.000Z</updated>
      <author><name>rynhow</name></author>
      <link rel="alternate" href="https://rynhow.pages.dev/posts/vs-code-%E4%BC%98%E5%8C%96%E5%92%8C%E8%AE%BE%E7%BD%AE/"/>
      <summary type="text">整理 VS Code 的常用设置和插件，按类别列出来，方便按需挑选。</summary>
      <content type="html"><![CDATA[<section><h1>VS Code 设置和插件整理<a href="#vs-code-设置和插件整理"><span>#</span></a></h1><p>这份是整理，不是使用心得。我没法告诉你哪个插件“用起来多爽”，只能把常见的设置和插件按类别列出来，你自己判断需不需要。</p><section><h2>为什么用它<a href="#为什么用它"><span>#</span></a></h2><p>免费，跨平台，插件多，内置终端和 Git，这几条是客观事实，也是大多数人选它的原因。</p><p>设置同步是个实用功能。登录账号后，换电脑不用重新配一遍。我换电脑的时候用了这个。</p></section><section><h2>设置<a href="#设置"><span>#</span></a></h2><p>加到 <code>settings.json</code> 里：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>{</span></div></div><div><div><div>2</div></div><div><span>  </span><span>"files.autoSave"</span><span>: </span><span>"afterDelay"</span><span>,</span></div></div><div><div><div>3</div></div><div><span>  </span><span>"files.autoGuessEncoding"</span><span>: </span><span>true</span><span>,</span></div></div><div><div><div>4</div></div><div><span>  </span><span>"editor.formatOnSave"</span><span>: </span><span>true</span><span>,</span></div></div><div><div><div>5</div></div><div><span>  </span><span>"editor.wordWrap"</span><span>: </span><span>"on"</span><span>,</span></div></div><div><div><div>6</div></div><div><span>  </span><span>"editor.guides.bracketPairs"</span><span>: </span><span>true</span><span>,</span></div></div><div><div><div>7</div></div><div><span>  </span><span>"editor.mouseWheelZoom"</span><span>: </span><span>true</span><span>,</span></div></div><div><div><div>8</div></div><div><span>  </span><span>"editor.cursorSmoothCaretAnimation"</span><span>: </span><span>"on"</span><span>,</span></div></div><div><div><div>9</div></div><div><span>  </span><span>"workbench.list.smoothScrolling"</span><span>: </span><span>true</span><span>,</span></div></div><div><div><div>10</div></div><div><span>  </span><span>"editor.suggestSelection"</span><span>: </span><span>"recentlyUsed"</span></div></div><div><div><div>11</div></div><div><span>}</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>各项作用：</p><ul>
<li><code>files.autoSave</code>：自动保存，不用按 Ctrl+S</li>
<li><code>files.autoGuessEncoding</code>：自动猜文件编码，处理中文文件有用</li>
<li><code>editor.formatOnSave</code>：保存时格式化</li>
<li><code>editor.wordWrap</code>：长代码自动换行</li>
<li><code>editor.guides.bracketPairs</code>：括号加引导线</li>
<li><code>editor.mouseWheelZoom</code>：Ctrl+滚轮缩放字号</li>
<li><code>editor.cursorSmoothCaretAnimation</code>：光标移动加动画</li>
<li><code>workbench.list.smoothScrolling</code>：列表滚动更顺</li>
<li><code>editor.suggestSelection</code>：补全时默认选中最近用过的</li>
</ul></section><section><h2>字体<a href="#字体"><span>#</span></a></h2><p>想换字体的话，JetBrains Mono 是比较常用的选择，装完在 <code>settings.json</code> 里配：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>{</span></div></div><div><div><div>2</div></div><div><span>  </span><span>"editor.fontFamily"</span><span>: </span><span>"'JetBrains Mono', 'Microsoft YaHei', monospace"</span><span>,</span></div></div><div><div><div>3</div></div><div><span>  </span><span>"editor.fontLigatures"</span><span>: </span><span>true</span><span>,</span></div></div><div><div><div>4</div></div><div><span>  </span><span>"editor.fontSize"</span><span>: </span><span>15</span><span>,</span></div></div><div><div><div>5</div></div><div><span>  </span><span>"editor.lineHeight"</span><span>: </span><span>24</span></div></div><div><div><div>6</div></div><div><span>}</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>Fira Code 的连字更丰富，中文注释多的话 Maple Mono NF CN 中英文等宽，对得比较齐。</p></section><section><h2>主题<a href="#主题"><span>#</span></a></h2><ul>
<li>One Dark Pro：暗色主题，用的人多</li>
<li>GitHub Theme：GitHub 配色</li>
<li>Dracula Official：配色鲜明</li>
<li>Material Icon Theme：文件图标</li>
</ul><p>主题这块纯看个人喜好，装几个切着看，留一个顺眼的。</p></section><section><h2>基础插件<a href="#基础插件"><span>#</span></a></h2><ul>
<li>Chinese (Simplified)：中文语言包</li>
<li>Error Lens：报错直接显示在代码行尾</li>
<li>Path Intellisense：路径补全</li>
<li>Image preview：在代码里预览图片</li>
<li>Prettier：代码格式化</li>
<li>ESLint：检查 JS/TS 代码问题</li>
<li>GitLens：看某行代码是谁什么时候改的</li>
<li>Git Graph：可视化查看分支和提交历史</li>
</ul><p>Prettier 和 ESLint 建议配合用，一个管格式，一个管代码问题。团队项目里最好统一配置。</p></section><section><h2>AI 插件<a href="#ai-插件"><span>#</span></a></h2><p>这类插件近两年更新很快，我用过 Fitten Code 和 Copilot。</p><ul>
<li>Fitten Code：免费，补全速度很快，中文注释理解不错。基础版够个人用，专业版目前限时免费</li>
<li>GitHub Copilot：补全质量高，学生和教师可以免费申请 Pro。普通用户有每月 2000 次补全的免费额度</li>
<li>通义灵码：阿里云出品，个人版免费，中文环境友好</li>
<li>Cline：开源，可以接入自己的 API</li>
</ul><p>不建议同时开两个，补全提示会重叠，反而干扰。</p></section><section><h2>按需装<a href="#按需装"><span>#</span></a></h2><ul>
<li>Remote - SSH：连服务器开发</li>
<li>Thunder Client：测 API</li>
<li>Code Runner：一键跑代码片段，刷题方便</li>
<li>Todo Tree：集中查看 TODO 和 FIXME</li>
<li>Bookmarks：代码书签</li>
</ul></section><section><h2>关于插件数量<a href="#关于插件数量"><span>#</span></a></h2><p>装太多会拖慢启动速度，这个是真的。我一开始什么都装，后来砍掉一批，启动快了些。具体多少个合适没有标准，看电脑配置和实际用得到多少。</p><p>设置也一样，挑需要的加，不用照搬别人的完整配置。</p></section></section>]]></content>
    </entry>
    <entry>
      <id>https://rynhow.pages.dev/posts/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%9B%86/</id>
      <title type="text">git常用命令集</title>
      <published>2026-09-11T00:00:00.000Z</published>
      <updated>2026-09-11T00:00:00.000Z</updated>
      <author><name>rynhow</name></author>
      <link rel="alternate" href="https://rynhow.pages.dev/posts/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%9B%86/"/>
      <summary type="text">涵盖日常开发使用的 Git 常用命令，包括提交、推送、分支、撤销、SSH 与令牌等操作。</summary>
      <content type="html"><![CDATA[<section><h1>Git 常用命令完整版<a href="#git-常用命令完整版"><span>#</span></a></h1><blockquote><p>覆盖日常开发 95% 以上场景，包含基础操作、团队协作、冲突处理、SSH 与令牌、误操作恢复等。</p></blockquote><section><h2>目录<a href="#目录"><span>#</span></a></h2><ol>
<li>配置</li>
<li>创建与克隆仓库</li>
<li>日常提交</li>
<li>查看差异与历史</li>
<li>分支操作</li>
<li>远程仓库</li>
<li>SSH 密钥配置</li>
<li>Personal Access Token</li>
<li>凭证管理</li>
<li>撤销与回退</li>
<li>标签</li>
<li>暂存工作区 stash</li>
<li>清理工作区</li>
<li>.gitignore 相关</li>
<li>子模块</li>
<li>常见工作流</li>
<li>冲突解决</li>
<li>高级操作</li>
<li>安全与恢复</li>
<li>帮助命令</li>
</ol><hr /></section><section><h2>1. 配置<a href="#1-配置"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 设置用户名和邮箱</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>user.name</span><span> </span><span>"Your Name"</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>user.email</span><span> </span><span>"you@example.com"</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 查看配置</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--list</span></div></div><div><div><div>7</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>--list</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--local</span><span> </span><span>--list</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 设置默认编辑器</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>core.editor</span><span> </span><span>"vim"</span></div></div><div><div><div>12</div></div><div>
</div></div><div><div><div>13</div></div><div><span># 设置默认分支名为 main</span></div></div><div><div><div>14</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>init.defaultBranch</span><span> </span><span>main</span></div></div><div><div><div>15</div></div><div>
</div></div><div><div><div>16</div></div><div><span># 设置快捷别名</span></div></div><div><div><div>17</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>alias.st</span><span> </span><span>status</span></div></div><div><div><div>18</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>alias.co</span><span> </span><span>checkout</span></div></div><div><div><div>19</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>alias.br</span><span> </span><span>branch</span></div></div><div><div><div>20</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>alias.ci</span><span> </span><span>commit</span></div></div><div><div><div>21</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>alias.lg</span><span> </span><span>"log --oneline --graph --decorate --all"</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>2. 创建与克隆仓库<a href="#2-创建与克隆仓库"><span>#</span></a></h2><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 在当前目录初始化一个新仓库</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>init</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 克隆远程仓库到本地</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>&lt;url&gt;</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 克隆指定分支</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>-b</span><span> </span><span>&lt;branch&gt;</span><span> </span><span>&lt;url&gt;</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 浅克隆（只拉取最近一次提交，速度快）</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>--depth</span><span> </span><span>1</span><span> </span><span>&lt;url&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure></div><hr /></section><section><h2>3. 日常提交<a href="#3-日常提交"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 查看当前状态</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>status</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>status</span><span> </span><span>-s</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 把文件添加到暂存区</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>7</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>.</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>-A</span></div></div><div><div><div>9</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>-p</span><span>                     </span><span># 交互式选择要提交的修改片段</span></div></div><div><div><div>10</div></div><div>
</div></div><div><div><div>11</div></div><div><span># 提交</span></div></div><div><div><div>12</div></div><div><span>git</span><span> </span><span>commit</span><span> </span><span>-m</span><span> </span><span>"message"</span></div></div><div><div><div>13</div></div><div><span>git</span><span> </span><span>commit</span><span> </span><span>-am</span><span> </span><span>"message"</span><span>       </span><span># 只对已经跟踪过的文件有效（新文件要先 add）</span></div></div><div><div><div>14</div></div><div><span>git</span><span> </span><span>commit</span><span> </span><span>--amend</span><span>             </span><span># 修改上一次提交</span></div></div><div><div><div>15</div></div><div><span>git</span><span> </span><span>commit</span><span> </span><span>--amend</span><span> </span><span>--no-edit</span><span>   </span><span># 修改上一次提交但不改提交信息</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>4. 查看差异与历史<a href="#4-查看差异与历史"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 查看差异</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>diff</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>diff</span><span> </span><span>--staged</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>diff</span><span> </span><span>&lt;branch1&gt;..&lt;branch2&gt;</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>diff</span><span> </span><span>&lt;commit1&gt;</span><span> </span><span>&lt;commit2&gt;</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 查看历史</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>log</span></div></div><div><div><div>9</div></div><div><span>git</span><span> </span><span>log</span><span> </span><span>--oneline</span></div></div><div><div><div>10</div></div><div><span>git</span><span> </span><span>log</span><span> </span><span>--oneline</span><span> </span><span>--graph</span><span> </span><span>--decorate</span><span> </span><span>--all</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>log</span><span> </span><span>-p</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>12</div></div><div><span>git</span><span> </span><span>show</span><span> </span><span>&lt;commit&gt;</span></div></div><div><div><div>13</div></div><div><span>git</span><span> </span><span>blame</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>14</div></div><div><span>git</span><span> </span><span>blame</span><span> </span><span>-L</span><span> </span><span>10,20</span><span> </span><span>&lt;file&gt;</span><span>      </span><span># 查看指定行范围</span></div></div><div><div><div>15</div></div><div>
</div></div><div><div><div>16</div></div><div><span># 搜索提交</span></div></div><div><div><div>17</div></div><div><span>git</span><span> </span><span>log</span><span> </span><span>-S</span><span> </span><span>"text"</span><span>              </span><span># 查找添加或删除该字符串的提交</span></div></div><div><div><div>18</div></div><div><span>git</span><span> </span><span>log</span><span> </span><span>-G</span><span> </span><span>"regex"</span><span>             </span><span># 查找匹配正则的提交</span></div></div><div><div><div>19</div></div><div>
</div></div><div><div><div>20</div></div><div><span># 搜索代码</span></div></div><div><div><div>21</div></div><div><span>git</span><span> </span><span>grep</span><span> </span><span>"keyword"</span></div></div><div><div><div>22</div></div><div>
</div></div><div><div><div>23</div></div><div><span># 查看所有操作记录（包括提交、重置等）</span></div></div><div><div><div>24</div></div><div><span>git</span><span> </span><span>reflog</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>5. 分支操作<a href="#5-分支操作"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 查看分支</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>branch</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>-a</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>-vv</span></div></div><div><div><div>5</div></div><div>
</div></div><div><div><div>6</div></div><div><span># 创建分支</span></div></div><div><div><div>7</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>&lt;name&gt;</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span># 切换分支</span></div></div><div><div><div>10</div></div><div><span>git</span><span> </span><span>switch</span><span> </span><span>&lt;branch&gt;</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>checkout</span><span> </span><span>&lt;branch&gt;</span></div></div><div><div><div>12</div></div><div><span>git</span><span> </span><span>switch</span><span> </span><span>-</span><span>                   </span><span># 切换到上一个分支</span></div></div><div><div><div>13</div></div><div><span>git</span><span> </span><span>checkout</span><span> </span><span>-</span><span>                 </span><span># 旧写法</span></div></div><div><div><div>14</div></div><div>
</div></div><div><div><div>15</div></div><div><span># 创建并切换分支</span></div></div><div><div><div>16</div></div><div><span>git</span><span> </span><span>switch</span><span> </span><span>-c</span><span> </span><span>&lt;new-branch&gt;</span></div></div><div><div><div>17</div></div><div><span>git</span><span> </span><span>checkout</span><span> </span><span>-b</span><span> </span><span>&lt;new-branch&gt;</span></div></div><div><div><div>18</div></div><div>
</div></div><div><div><div>19</div></div><div><span># 删除分支</span></div></div><div><div><div>20</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>-d</span><span> </span><span>&lt;branch&gt;</span></div></div><div><div><div>21</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>-D</span><span> </span><span>&lt;branch&gt;</span><span>         </span><span># 强制删除（即使未合并）</span></div></div><div><div><div>22</div></div><div>
</div></div><div><div><div>23</div></div><div><span># 重命名分支</span></div></div><div><div><div>24</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>-m</span><span> </span><span>&lt;old&gt;</span><span> </span><span>&lt;new&gt;</span></div></div><div><div><div>25</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>-M</span><span> </span><span>main</span><span>             </span><span># 强制把当前分支重命名为 main</span></div></div><div><div><div>26</div></div><div>
</div></div><div><div><div>27</div></div><div><span># 合并分支</span></div></div><div><div><div>28</div></div><div><span>git</span><span> </span><span>merge</span><span> </span><span>&lt;branch&gt;</span></div></div><div><div><div>29</div></div><div><span>git</span><span> </span><span>merge</span><span> </span><span>--no-ff</span><span> </span><span>&lt;branch&gt;</span></div></div><div><div><div>30</div></div><div>
</div></div><div><div><div>31</div></div><div><span># 变基</span></div></div><div><div><div>32</div></div><div><span>git</span><span> </span><span>rebase</span><span> </span><span>&lt;branch&gt;</span></div></div><div><div><div>33</div></div><div><span>git</span><span> </span><span>rebase</span><span> </span><span>-i</span><span> </span><span>HEAD~3</span></div></div><div><div><div>34</div></div><div>
</div></div><div><div><div>35</div></div><div><span># 拣选某个提交</span></div></div><div><div><div>36</div></div><div><span>git</span><span> </span><span>cherry-pick</span><span> </span><span>&lt;commit&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>6. 远程仓库<a href="#6-远程仓库"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 查看远程仓库</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>-v</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>show</span><span> </span><span>origin</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 添加远程仓库</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>add</span><span> </span><span>origin</span><span> </span><span>&lt;url&gt;</span></div></div><div><div><div>7</div></div><div>
</div></div><div><div><div>8</div></div><div><span># 修改远程仓库地址</span></div></div><div><div><div>9</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>set-url</span><span> </span><span>origin</span><span> </span><span>&lt;url&gt;</span></div></div><div><div><div>10</div></div><div>
</div></div><div><div><div>11</div></div><div><span># 删除远程仓库</span></div></div><div><div><div>12</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>remove</span><span> </span><span>origin</span></div></div><div><div><div>13</div></div><div>
</div></div><div><div><div>14</div></div><div><span># 拉取</span></div></div><div><div><div>15</div></div><div><span>git</span><span> </span><span>fetch</span></div></div><div><div><div>16</div></div><div><span>git</span><span> </span><span>fetch</span><span> </span><span>--all</span><span> </span><span>--prune</span></div></div><div><div><div>17</div></div><div><span>git</span><span> </span><span>pull</span></div></div><div><div><div>18</div></div><div><span>git</span><span> </span><span>pull</span><span> </span><span>--rebase</span></div></div><div><div><div>19</div></div><div>
</div></div><div><div><div>20</div></div><div><span># 推送</span></div></div><div><div><div>21</div></div><div><span>git</span><span> </span><span>push</span></div></div><div><div><div>22</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>-u</span><span> </span><span>origin</span><span> </span><span>&lt;branch&gt;</span></div></div><div><div><div>23</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>origin</span><span> </span><span>&lt;branch&gt;</span></div></div><div><div><div>24</div></div><div>
</div></div><div><div><div>25</div></div><div><span># 安全强制推送（推荐，避免覆盖别人提交）</span></div></div><div><div><div>26</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>--force-with-lease</span></div></div><div><div><div>27</div></div><div>
</div></div><div><div><div>28</div></div><div><span># 强制推送（慎用，会覆盖远程）</span></div></div><div><div><div>29</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>--force</span></div></div><div><div><div>30</div></div><div>
</div></div><div><div><div>31</div></div><div><span># 删除远程分支</span></div></div><div><div><div>32</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>origin</span><span> </span><span>--delete</span><span> </span><span>&lt;branch&gt;</span></div></div><div><div><div>33</div></div><div>
</div></div><div><div><div>34</div></div><div><span># 推送标签</span></div></div><div><div><div>35</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>--tags</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>7. SSH 密钥配置<a href="#7-ssh-密钥配置"><span>#</span></a></h2><blockquote><p>用 SSH 方式连接，不用每次输入账号密码。</p></blockquote><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 1. 查看是否已有 SSH 密钥</span></div></div><div><div><div>2</div></div><div><span>ls</span><span> </span><span>-al</span><span> </span><span>~/.ssh</span></div></div><div><div><div>3</div></div><div><span># 常见文件名：id_rsa、id_ed25519</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 2. 生成新的 SSH 密钥（推荐用 ed25519 算法）</span></div></div><div><div><div>6</div></div><div><span>ssh-keygen</span><span> </span><span>-t</span><span> </span><span>ed25519</span><span> </span><span>-C</span><span> </span><span>"your_email@example.com"</span></div></div><div><div><div>7</div></div><div><span># 一路回车就行，也可以设置密码短语</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span># 3. 启动 ssh-agent（Linux/macOS）</span></div></div><div><div><div>10</div></div><div><span>eval</span><span> </span><span>"$(</span><span>ssh-agent</span><span> </span><span>-s</span><span>)"</span></div></div><div><div><div>11</div></div><div><span>ssh-add</span><span> </span><span>~/.ssh/id_ed25519</span></div></div><div><div><div>12</div></div><div>
</div></div><div><div><div>13</div></div><div><span># Windows PowerShell 启动 ssh-agent</span></div></div><div><div><div>14</div></div><div><span>Start-Service</span><span> </span><span>ssh-agent</span></div></div><div><div><div>15</div></div><div><span>ssh-add</span><span> </span><span>$env</span><span>:USERPROFILE</span><span>\.</span><span>ssh</span><span>\i</span><span>d_ed25519</span></div></div><div><div><div>16</div></div><div>
</div></div><div><div><div>17</div></div><div><span># 4. 查看公钥内容</span></div></div><div><div><div>18</div></div><div><span>cat</span><span> </span><span>~/.ssh/id_ed25519.pub</span></div></div><div><div><div>19</div></div><div><span># Windows</span></div></div><div><div><div>20</div></div><div><span>type</span><span> </span><span>$env</span><span>:USERPROFILE</span><span>\.</span><span>ssh</span><span>\i</span><span>d_ed25519.pub</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>把公钥内容复制到 GitHub → <strong>Settings → SSH and GPG keys → New SSH key</strong>。</p><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 5. 测试连接</span></div></div><div><div><div>2</div></div><div><span>ssh</span><span> </span><span>-T</span><span> </span><span>git@github.com</span></div></div><div><div><div>3</div></div><div><span># 成功会显示：Hi &lt;username&gt;! You've successfully authenticated...</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 6. 把远程仓库地址改成 SSH 格式</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>set-url</span><span> </span><span>origin</span><span> </span><span>git@github.com:&lt;user&gt;/&lt;repo&gt;.git</span></div></div><div><div><div>7</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>-v</span><span>                  </span><span># 确认已切换</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span># 7. 多个账号时：配置 ~/.ssh/config</span></div></div><div><div><div>10</div></div><div><span># Host github-work</span></div></div><div><div><div>11</div></div><div><span>#   HostName github.com</span></div></div><div><div><div>12</div></div><div><span>#   User git</span></div></div><div><div><div>13</div></div><div><span>#   IdentityFile ~/.ssh/id_ed25519_work</span></div></div><div><div><div>14</div></div><div>
</div></div><div><div><div>15</div></div><div><span># 8. 临时指定某次提交使用的密钥</span></div></div><div><div><div>16</div></div><div><span>GIT_SSH_COMMAND</span><span>=</span><span>"ssh -i ~/.ssh/id_ed25519"</span><span> </span><span>git</span><span> </span><span>clone</span><span> </span><span>git@github.com:...</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>8. Personal Access Token<a href="#8-personal-access-token"><span>#</span></a></h2><blockquote><p>用 HTTPS 推送时，GitHub 已不再支持密码，需要用 Token 代替。</p></blockquote><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 1. 生成 Token</span></div></div><div><div><div>2</div></div><div><span># GitHub → Settings → Developer settings</span></div></div><div><div><div>3</div></div><div><span>#       → Personal access tokens → Tokens (classic)</span></div></div><div><div><div>4</div></div><div><span># 勾选 repo 权限（如果需要 workflow 再勾 workflow）</span></div></div><div><div><div>5</div></div><div>
</div></div><div><div><div>6</div></div><div><span># 2. 用 Token 来推送</span></div></div><div><div><div>7</div></div><div><span># 用户名：GitHub 用户名</span></div></div><div><div><div>8</div></div><div><span># 密码：粘贴 Token（不是登录密码）</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 3. 把 Token 缓存起来，不用每次都输入</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>credential.helper</span><span> </span><span>store</span></div></div><div><div><div>12</div></div><div><span># Linux 也可以用：</span></div></div><div><div><div>13</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>credential.helper</span><span> </span><span>cache</span></div></div><div><div><div>14</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>credential.helper</span><span> </span><span>'cache --timeout=3600'</span></div></div><div><div><div>15</div></div><div>
</div></div><div><div><div>16</div></div><div><span># Windows 下用 Git Credential Manager</span></div></div><div><div><div>17</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>credential.helper</span><span> </span><span>manager</span></div></div><div><div><div>18</div></div><div>
</div></div><div><div><div>19</div></div><div><span># 4. 查看或清除已保存的凭证</span></div></div><div><div><div>20</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>--get</span><span> </span><span>credential.helper</span></div></div><div><div><div>21</div></div><div><span># Windows</span></div></div><div><div><div>22</div></div><div><span>cmdkey</span><span> </span><span>/list</span><span> | </span><span>findstr</span><span> </span><span>git</span></div></div><div><div><div>23</div></div><div><span>cmdkey</span><span> </span><span>/delete:git:https://github.com</span></div></div><div><div><div>24</div></div><div>
</div></div><div><div><div>25</div></div><div><span># 5. 临时把 Token 写在 URL 里（不推荐长期用）</span></div></div><div><div><div>26</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>https://&lt;token&gt;@github.com/&lt;user&gt;/&lt;repo&gt;.git</span></div></div><div><div><div>27</div></div><div>
</div></div><div><div><div>28</div></div><div><span># 6. 细粒度 Token（Fine-grained tokens，权限更细）</span></div></div><div><div><div>29</div></div><div><span># Settings → Developer settings → Fine-grained tokens</span></div></div><div><div><div>30</div></div><div><span># 可以只授权某个仓库、某类权限，更安全</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>9. 凭证管理<a href="#9-凭证管理"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 查看当前使用的凭证助手</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>credential.helper</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 列出已保存的凭证</span></div></div><div><div><div>5</div></div><div><span># macOS</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>credential-osxkeychain</span><span> </span><span>get</span></div></div><div><div><div>7</div></div><div><span># Linux</span></div></div><div><div><div>8</div></div><div><span>cat</span><span> </span><span>~/.git-credentials</span></div></div><div><div><div>9</div></div><div><span># Windows</span></div></div><div><div><div>10</div></div><div><span>cmdkey</span><span> </span><span>/list</span></div></div><div><div><div>11</div></div><div>
</div></div><div><div><div>12</div></div><div><span># 删除已保存的凭证（换账号或 Token 失效时）</span></div></div><div><div><div>13</div></div><div><span># Linux</span></div></div><div><div><div>14</div></div><div><span>rm</span><span> </span><span>~/.git-credentials</span></div></div><div><div><div>15</div></div><div><span># macOS</span></div></div><div><div><div>16</div></div><div><span>git</span><span> </span><span>credential-osxkeychain</span><span> </span><span>erase</span></div></div><div><div><div>17</div></div><div><span># Windows</span></div></div><div><div><div>18</div></div><div><span>cmdkey</span><span> </span><span>/delete:git:https://github.com</span></div></div><div><div><div>19</div></div><div>
</div></div><div><div><div>20</div></div><div><span># 建议统一使用一种认证方式，避免混乱</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>10. 撤销与回退<a href="#10-撤销与回退"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 丢弃工作区里还没暂存的修改</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>restore</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>checkout</span><span> </span><span>--</span><span> </span><span>&lt;file&gt;</span><span>          </span><span># 旧写法</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 把文件从暂存区撤回到工作区</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>restore</span><span> </span><span>--staged</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>7</div></div><div><span>git</span><span> </span><span>reset</span><span> </span><span>HEAD</span><span> </span><span>&lt;file&gt;</span><span>           </span><span># 旧写法</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span># 从指定提交恢复文件</span></div></div><div><div><div>10</div></div><div><span>git</span><span> </span><span>restore</span><span> </span><span>--source=&lt;commit&gt;</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>11</div></div><div>
</div></div><div><div><div>12</div></div><div><span># 回退提交</span></div></div><div><div><div>13</div></div><div><span>git</span><span> </span><span>reset</span><span> </span><span>--soft</span><span> </span><span>HEAD~1</span><span>         </span><span># 回退一次提交，保留修改和暂存</span></div></div><div><div><div>14</div></div><div><span>git</span><span> </span><span>reset</span><span> </span><span>--mixed</span><span> </span><span>HEAD~1</span><span>        </span><span># 回退一次提交，保留修改但取消暂存（默认）</span></div></div><div><div><div>15</div></div><div><span>git</span><span> </span><span>reset</span><span> </span><span>--hard</span><span> </span><span>HEAD~1</span><span>         </span><span># 回退一次提交，丢弃所有修改（慎用）</span></div></div><div><div><div>16</div></div><div>
</div></div><div><div><div>17</div></div><div><span># 生成一个新提交来撤销某次提交的改动</span></div></div><div><div><div>18</div></div><div><span>git</span><span> </span><span>revert</span><span> </span><span>&lt;commit&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>11. 标签<a href="#11-标签"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 查看标签</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>tag</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 创建带说明的标签</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>tag</span><span> </span><span>-a</span><span> </span><span>v1.0.0</span><span> </span><span>-m</span><span> </span><span>"release v1.0.0"</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 查看标签详情</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>show</span><span> </span><span>v1.0.0</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 推送标签</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>origin</span><span> </span><span>v1.0.0</span></div></div><div><div><div>12</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>origin</span><span> </span><span>--tags</span></div></div><div><div><div>13</div></div><div>
</div></div><div><div><div>14</div></div><div><span># 删除本地标签</span></div></div><div><div><div>15</div></div><div><span>git</span><span> </span><span>tag</span><span> </span><span>-d</span><span> </span><span>v1.0.0</span></div></div><div><div><div>16</div></div><div>
</div></div><div><div><div>17</div></div><div><span># 删除远程标签</span></div></div><div><div><div>18</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>origin</span><span> </span><span>--delete</span><span> </span><span>tag</span><span> </span><span>v1.0.0</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>12. 暂存工作区 stash<a href="#12-暂存工作区-stash"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 保存当前修改到暂存区，并加说明</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>stash</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>push</span><span> </span><span>-m</span><span> </span><span>"message"</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>save</span><span> </span><span>"message"</span></div></div><div><div><div>5</div></div><div>
</div></div><div><div><div>6</div></div><div><span># 查看 stash 列表</span></div></div><div><div><div>7</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>list</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>show</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 恢复</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>apply</span></div></div><div><div><div>12</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>pop</span></div></div><div><div><div>13</div></div><div>
</div></div><div><div><div>14</div></div><div><span># 删除</span></div></div><div><div><div>15</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>drop</span><span> </span><span>stash@{</span><span>0</span><span>}</span></div></div><div><div><div>16</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>clear</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><hr /></section><section><h2>13. 清理工作区<a href="#13-清理工作区"><span>#</span></a></h2><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 预览会删除哪些未跟踪文件</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>clean</span><span> </span><span>-n</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 删除未跟踪的文件</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>clean</span><span> </span><span>-f</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 删除未跟踪的文件和目录</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>clean</span><span> </span><span>-fd</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 连 .gitignore 忽略的文件也删除（慎用）</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>clean</span><span> </span><span>-fdx</span></div></div></code></pre><div><div></div><div></div></div></figure></div><blockquote><p><code>git clean -fdx</code> 和 <code>git reset --hard</code> 会丢失数据，慎用。</p></blockquote><hr /></section><section><h2>14. .gitignore 相关<a href="#14-gitignore-相关"><span>#</span></a></h2><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 创建 .gitignore</span></div></div><div><div><div>2</div></div><div><span>echo</span><span> </span><span>"node_modules/"</span><span> &gt;&gt; </span><span>.gitignore</span></div></div><div><div><div>3</div></div><div><span>echo</span><span> </span><span>"dist/"</span><span> &gt;&gt; </span><span>.gitignore</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 停止跟踪已提交的文件，但保留本地文件</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>rm</span><span> </span><span>-r</span><span> </span><span>--cached</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>7</div></div><div><span>git</span><span> </span><span>rm</span><span> </span><span>-r</span><span> </span><span>--cached</span><span> </span><span>.</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>.</span></div></div><div><div><div>10</div></div><div><span>git</span><span> </span><span>commit</span><span> </span><span>-m</span><span> </span><span>"update .gitignore"</span></div></div></code></pre><div><div></div><div></div></div></figure></div><hr /></section><section><h2>15. 子模块<a href="#15-子模块"><span>#</span></a></h2><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 添加子模块</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>submodule</span><span> </span><span>add</span><span> </span><span>&lt;url&gt;</span><span> </span><span>&lt;path&gt;</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 查看子模块状态</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>submodule</span><span> </span><span>status</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 初始化并递归更新子模块</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>submodule</span><span> </span><span>update</span><span> </span><span>--init</span><span> </span><span>--recursive</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 更新子模块到远程最新</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>submodule</span><span> </span><span>update</span><span> </span><span>--remote</span></div></div></code></pre><div><div></div><div></div></div></figure></div><hr /></section><section><h2>16. 常见工作流<a href="#16-常见工作流"><span>#</span></a></h2><section><h3>初始化并推送到远程<a href="#初始化并推送到远程"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>init</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>.</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>commit</span><span> </span><span>-m</span><span> </span><span>"init"</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>-M</span><span> </span><span>main</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>add</span><span> </span><span>origin</span><span> </span><span>&lt;url&gt;</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>-u</span><span> </span><span>origin</span><span> </span><span>main</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>同步远程主分支<a href="#同步远程主分支"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>fetch</span><span> </span><span>--all</span><span> </span><span>--prune</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>switch</span><span> </span><span>main</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>pull</span><span> </span><span>--rebase</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>合并远程主分支到当前分支<a href="#合并远程主分支到当前分支"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>fetch</span><span> </span><span>origin</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>merge</span><span> </span><span>origin/main</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 或者</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>rebase</span><span> </span><span>origin/main</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>临时保存当前修改<a href="#临时保存当前修改"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>push</span><span> </span><span>-m</span><span> </span><span>"wip"</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>switch</span><span> </span><span>main</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>pull</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>switch</span><span> </span><span>-</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>stash</span><span> </span><span>pop</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>安全强制推送<a href="#安全强制推送"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>--force-with-lease</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>首次用 SSH 推送<a href="#首次用-ssh-推送"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>init</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>.</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>commit</span><span> </span><span>-m</span><span> </span><span>"init"</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>-M</span><span> </span><span>main</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>add</span><span> </span><span>origin</span><span> </span><span>git@github.com:&lt;user&gt;/&lt;repo&gt;.git</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>-u</span><span> </span><span>origin</span><span> </span><span>main</span></div></div></code></pre><div><div></div><div></div></div></figure></div><hr /></section></section><section><h2>17. 冲突解决<a href="#17-冲突解决"><span>#</span></a></h2><section><h3>合并冲突<a href="#合并冲突"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>status</span><span>                     </span><span># 查看冲突文件</span></div></div><div><div><div>2</div></div><div><span># 手动编辑冲突文件，保留需要的代码</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>merge</span><span> </span><span>--continue</span></div></div><div><div><div>5</div></div><div><span># 或者</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>commit</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>变基冲突<a href="#变基冲突"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>status</span></div></div><div><div><div>2</div></div><div><span># 手动编辑冲突文件</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>rebase</span><span> </span><span>--continue</span></div></div><div><div><div>5</div></div><div><span># 跳过当前提交</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>rebase</span><span> </span><span>--skip</span></div></div><div><div><div>7</div></div><div><span># 中止变基</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>rebase</span><span> </span><span>--abort</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>拣选冲突<a href="#拣选冲突"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>status</span></div></div><div><div><div>2</div></div><div><span># 手动编辑冲突文件</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>&lt;file&gt;</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>cherry-pick</span><span> </span><span>--continue</span></div></div><div><div><div>5</div></div><div><span># 中止</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>cherry-pick</span><span> </span><span>--abort</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>中止合并<a href="#中止合并"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>merge</span><span> </span><span>--abort</span></div></div></code></pre><div><div></div><div></div></div></figure></div><hr /></section></section><section><h2>18. 高级操作<a href="#18-高级操作"><span>#</span></a></h2><section><h3>交互式 rebase<a href="#交互式-rebase"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>rebase</span><span> </span><span>-i</span><span> </span><span>HEAD~n</span></div></div><div><div><div>2</div></div><div><span># 常用操作：</span></div></div><div><div><div>3</div></div><div><span># pick   保留提交</span></div></div><div><div><div>4</div></div><div><span># reword 修改提交信息</span></div></div><div><div><div>5</div></div><div><span># edit   修改提交内容</span></div></div><div><div><div>6</div></div><div><span># squash 合并到上一个提交并保留信息</span></div></div><div><div><div>7</div></div><div><span># fixup  合并到上一个提交并丢弃信息</span></div></div><div><div><div>8</div></div><div><span># drop   删除提交</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>修复旧提交<a href="#修复旧提交"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>commit</span><span> </span><span>--fixup</span><span> </span><span>&lt;commit&gt;</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>rebase</span><span> </span><span>-i</span><span> </span><span>--autosquash</span><span> </span><span>&lt;commit&gt;~1</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>二分查找问题提交<a href="#二分查找问题提交"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>bisect</span><span> </span><span>start</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>bisect</span><span> </span><span>bad</span><span>                  </span><span># 当前版本有问题</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>bisect</span><span> </span><span>good</span><span> </span><span>&lt;commit&gt;</span><span>        </span><span># 已知正常版本</span></div></div><div><div><div>4</div></div><div><span># Git 会自动切换到中间提交，测试后标记</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>bisect</span><span> </span><span>good</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>bisect</span><span> </span><span>bad</span></div></div><div><div><div>7</div></div><div><span># 找到后重置</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>bisect</span><span> </span><span>reset</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>多工作区<a href="#多工作区"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>worktree</span><span> </span><span>add</span><span> </span><span>../hotfix</span><span> </span><span>main</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>worktree</span><span> </span><span>list</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>worktree</span><span> </span><span>remove</span><span> </span><span>../hotfix</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>补丁协作<a href="#补丁协作"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 生成补丁</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>format-patch</span><span> </span><span>-1</span><span> </span><span>&lt;commit&gt;</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>format-patch</span><span> </span><span>&lt;commit1&gt;..&lt;commit2&gt;</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 应用补丁</span></div></div><div><div><div>6</div></div><div><span>git</span><span> </span><span>am</span><span> &lt; </span><span>patch-file</span></div></div><div><div><div>7</div></div><div><span>git</span><span> </span><span>apply</span><span> &lt; </span><span>patch-file</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>大文件 LFS<a href="#大文件-lfs"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>lfs</span><span> </span><span>install</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>lfs</span><span> </span><span>track</span><span> </span><span>"*.psd"</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>.gitattributes</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>仓库维护<a href="#仓库维护"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>gc</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>fsck</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>count-objects</span><span> </span><span>-vH</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>钩子与规范<a href="#钩子与规范"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 本地钩子目录</span></div></div><div><div><div>2</div></div><div><span>.git/hooks</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 常用工具</span></div></div><div><div><div>5</div></div><div><span>pre-commit</span></div></div><div><div><div>6</div></div><div><span>husky</span></div></div><div><div><div>7</div></div><div><span>commitlint</span></div></div></code></pre><div><div></div><div></div></div></figure></div><hr /></section></section><section><h2>19. 安全与恢复<a href="#19-安全与恢复"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 查看所有操作记录</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>reflog</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 恢复到某个操作之前</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>reset</span><span> </span><span>--hard</span><span> </span><span>HEAD@{</span><span>1</span><span>}</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 为某次提交创建救援分支</span></div></div><div><div><div>8</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>rescue</span><span> </span><span>&lt;commit&gt;</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 安全强制推送</span></div></div><div><div><div>11</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>--force-with-lease</span></div></div><div><div><div>12</div></div><div>
</div></div><div><div><div>13</div></div><div><span># SSH 相关排查</span></div></div><div><div><div>14</div></div><div><span>ssh</span><span> </span><span>-vT</span><span> </span><span>git@github.com</span><span>         </span><span># 查看详细连接过程</span></div></div><div><div><div>15</div></div><div><span>ssh-add</span><span> </span><span>-l</span><span>                     </span><span># 列出已加载的密钥</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><blockquote><p>误操作别着急，先 <code>git reflog</code>，大多数提交都能找回。</p></blockquote><hr /></section><section><h2>20. 帮助命令<a href="#20-帮助命令"><span>#</span></a></h2><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>help</span><span> </span><span>&lt;command&gt;</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>&lt;command&gt;</span><span> </span><span>-h</span></div></div></code></pre><div><div></div><div></div></div></figure></div><hr /></section><section><h2>慎用命令<a href="#慎用命令"><span>#</span></a></h2><ul>
<li><code>git reset --hard</code></li>
<li><code>git clean -fdx</code></li>
<li><code>git push --force</code></li>
<li><code>git rebase</code> 已经推送到远端的公共分支</li>
</ul><blockquote><p>建议：提交前先 <code>git status</code>，推送前先 <code>git pull --rebase</code>，强制推送优先用 <code>--force-with-lease</code>。</p></blockquote></section></section>]]></content>
    </entry>
    <entry>
      <id>https://rynhow.pages.dev/posts/vmware%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98/</id>
      <title type="text">VMware的使用问题</title>
      <published>2026-09-11T00:00:00.000Z</published>
      <updated>2026-09-11T00:00:00.000Z</updated>
      <author><name>rynhow</name></author>
      <link rel="alternate" href="https://rynhow.pages.dev/posts/vmware%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98/"/>
      <summary type="text"></summary>
      <content type="html"><![CDATA[<p>对于<strong>Pro版本</strong>（包括Workstation Pro和Fusion Pro），免费是一个逐步推进的过程：</p>
<ul>
<li><strong>个人免费</strong>：自 <strong>2024年5月14日</strong>（版本17.5.2）起，Workstation Pro和Fusion Pro开始对<strong>个人用户</strong>免费。</li>
<li><strong>全面免费</strong>：自 <strong>2024年11月11日</strong>（版本17.6.2）起，免费范围扩大至<strong>所有用户</strong>，包括商业、教育和个人用途，且无需许可证密钥。同时，原有的Player版本宣布停产。</li>
</ul>
<hr />
<div></div>
<section><h2>关于下载<a href="#关于下载"><span>#</span></a></h2><p>看到很多同学找不到下载链接，下载链接为<a href="https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion" target="_blank">VMware</a></p><p>点击下载后需要注册账户，最好是Gmail或者outlook，实测163和qq邮箱不能接收验证码</p><p><img alt="" loading="lazy" width="1947" height="1027" src="/_astro/VMware1.DkU3Mtzn_Z1Ytu51.webp" /></p><p>之后向下滑动就能找到，选择需要的版本就可以下载，进入后需要点击这个</p><p><img alt="" loading="lazy" width="2440" height="1164" src="/_astro/VMware2.BXNXAeZB_5C8G8.webp" /></p><p>点击一下关掉就行，这时候就可以勾选然后下载了</p><hr /><div></div></section>
<section><h2>关于无权限的问题<a href="#关于无权限的问题"><span>#</span></a></h2><p>这个需要自己打命令，他不像windows那样直观，需要自己去提权</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>su</span></div></div></code></pre><div><div></div><div></div></div></figure></div><hr /><div></div></section>
<section><h2>主机和虚拟机复制粘贴不互通<a href="#主机和虚拟机复制粘贴不互通"><span>#</span></a></h2><p>这个情况是因为没有安装vm-tools-desktop这个工具</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>update</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>install</span><span> </span><span>open-vm-tools</span><span> </span><span>open-vm-tools-desktop</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>安装完成后需要重启才能用</p><hr /></section>]]></content>
    </entry>
    <entry>
      <id>https://rynhow.pages.dev/posts/%E5%8D%9A%E5%AE%A2%E4%B8%BB%E9%A2%98/</id>
      <title type="text">一些使用过的博客主题推荐</title>
      <published>2026-04-16T00:00:00.000Z</published>
      <updated>2026-04-16T00:00:00.000Z</updated>
      <author><name>rynhow</name></author>
      <link rel="alternate" href="https://rynhow.pages.dev/posts/%E5%8D%9A%E5%AE%A2%E4%B8%BB%E9%A2%98/"/>
      <summary type="text">ssg静态博客的主题</summary>
      <content type="html"><![CDATA[<p>以下都是个人观点，有不同看法就按你的来。主题这东西本来就是萝卜白菜各有所爱。</p>
<hr />
<section><h2>Astro 主题<a href="#astro-主题"><span>#</span></a></h2><section><h3>AstroPaper<a href="#astropaper"><span>#</span></a></h3><p>Astro 官方推荐的主题，性能是它最大的卖点，跑起来很流畅。响应式布局做得不错，不用特意写移动端适配。</p><p>对我来说太简约了。没有 TOC，这个我比较在意。也不支持一键汉化，想汉化只能改组件。</p><p>官方链接：<a href="https://github.com/satnaing/astro-paper" target="_blank">https://github.com/satnaing/astro-paper</a></p></section><section><h3>Firefly<a href="#firefly"><span>#</span></a></h3><p>基于 fuwari 模板二次开发的主题，也就是本站现在用的这个。</p><p>组件给得比较全，自带 TOC 和音乐播放器。i18n 支持得不错，改改语言文件就能切换。页面过渡动画做得比较平滑。</p><p>暂时没发现什么明显的缺点。</p><p>官方链接：<a href="https://github.com/CuteLeaf/Firefly" target="_blank">https://github.com/CuteLeaf/Firefly</a></p></section><section><h3>Mizuki<a href="#mizuki"><span>#</span></a></h3><p>同样是基于 fuwari 的二改主题，但和 Firefly 的侧重点不太一样。</p><p>自带多种字体，组件比 Firefly 还多，日记、相册这些都有。我平时用不到那么多，如果喜欢折腾组件可以试试。</p><p>组件多也意味着更重，加载速度会比 Firefly 慢一些。</p><p>官方链接：<a href="https://github.com/LyraVoid/Mizuki" target="_blank">https://github.com/LyraVoid/Mizuki</a></p><hr /></section></section>
<section><h2>Hexo 主题<a href="#hexo-主题"><span>#</span></a></h2><section><h3>Butterfly<a href="#butterfly"><span>#</span></a></h3><p>Hexo 生态里最主流、最活跃的主题，GitHub 星标 8000+，社区支持完善。</p><p>功能覆盖得很全，暗色模式、多语言、评论系统、站内搜索都有，基本你能想到的博客功能它都自带。中文文档和社区都比较活跃，遇到问题好搜到答案。支持通过 npm 装插件扩展功能。</p><p>功能多也带来了配置复杂，新手需要花点时间学习。主题体积偏大，默认配置下加载速度一般，想快得自己手动优化。部分高级定制需要改 Stylus/CSS 源码，对不懂前端的用户不太友好。</p><p>适合那种希望一站式解决所有博客需求、愿意花时间配置、准备长期维护的作者。</p><p>官方链接：<a href="https://github.com/jerryc127/hexo-theme-butterfly" target="_blank">https://github.com/jerryc127/hexo-theme-butterfly</a></p></section><section><h3>Next<a href="#next"><span>#</span></a></h3><p>Hexo 里的经典老主题，迭代了很多年，稳定性和兼容性都很好。</p><p>和 Hexo 各版本兼容性都不错，不太会遇到兼容问题。配置简单，新手容易上手。支持单栏/双栏布局，评论系统也支持多种。SEO 默认配置就比较友好。</p><p>设计风格偏传统，视觉上没有现代主题那么有冲击力。功能更新比较慢，部分新特性比如暗色模式需要手动配。定制化程度不如 Butterfly。</p><p>适合追求稳定、不喜欢频繁折腾、主要写技术文章的人。</p><p>官方链接：<a href="https://github.com/next-theme/hexo-theme-next" target="_blank">https://github.com/next-theme/hexo-theme-next</a></p></section><section><h3>Lime<a href="#lime"><span>#</span></a></h3><p>某位大佬深度魔改 Solitude 出来的主题，偶然刷到的。我还没实际用过，就不多评价了，效果看下图。</p><p><img alt="" loading="lazy" width="2457" height="1599" src="/_astro/Lime.NX86h0G5_Z2vkDLf.webp" /></p><p>大佬链接：<a href="https://github.com/LimeBlogs/Lime-Hexo" target="_blank">https://github.com/LimeBlogs/Lime-Hexo</a></p><p>大佬的博客：<a href="https://sudachi.top/" target="_blank">https://sudachi.top/</a></p></section></section>]]></content>
    </entry>
    <entry>
      <id>https://rynhow.pages.dev/posts/0%E6%88%90%E6%9C%AC%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B/</id>
      <title type="text">0成本搭建博客教程</title>
      <published>2026-04-07T00:00:00.000Z</published>
      <updated>2026-04-07T00:00:00.000Z</updated>
      <author><name>rynhow</name></author>
      <link rel="alternate" href="https://rynhow.pages.dev/posts/0%E6%88%90%E6%9C%AC%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B/"/>
      <summary type="text">从零开始，用免费工具搭建一个属于自己的静态博客</summary>
      <content type="html"><![CDATA[<section><h1>0成本搭建博客教程<a href="#0成本搭建博客教程"><span>#</span></a></h1><p>这篇教程面向零基础，从框架选择到部署上线，全程用免费工具。看完你应该能搭出一个能正常访问的博客。</p><section><h2>一、先选博客框架<a href="#一先选博客框架"><span>#</span></a></h2><p>博客框架决定了网站的骨架。新手不用纠结太多，选一个上手快、主题多、维护简单的就行。</p><section><h3>静态博客（推荐）<a href="#静态博客推荐"><span>#</span></a></h3><p>不需要服务器和数据库，生成一堆 HTML 文件，部署到免费托管平台就能跑。速度快、安全、基本不花钱。</p>

<table><thead><tr><th>框架</th><th>推荐度</th><th>特点</th><th>适合谁</th></tr></thead><tbody><tr><td><strong>Astro</strong></td><td>★★★★★</td><td>新一代静态框架，性能强，支持 Vue/React 组件</td><td>想升级博客、做高性能静态站</td></tr><tr><td><strong>Hexo</strong></td><td>★★★★★</td><td>上手最简单，主题极多，一键部署</td><td>只想快速搭好、长期稳定用</td></tr><tr><td><strong>Hugo</strong></td><td>★★★★☆</td><td>Go 编写，生成速度极快，千篇文章秒生成</td><td>文章很多、追求极致速度</td></tr><tr><td><strong>VitePress</strong></td><td>★★★★</td><td>Vue 官方出品，极轻极快，界面清爽</td><td>技术笔记、文档型博客</td></tr></tbody></table><blockquote><p>本站用的是 Astro。如果你不想折腾，Hexo 是最省心的选择。</p></blockquote></section><section><h3>动态博客（需要服务器）<a href="#动态博客需要服务器"><span>#</span></a></h3><p>需要买服务器和域名，要维护数据库，成本和门槛都更高。</p><ul>
<li><strong>WordPress</strong>：插件和主题海量，后台可视化，不用写代码。缺点是重、需要服务器、容易被攻击。</li>
<li><strong>Typecho</strong>：超轻量 PHP 博客，简洁快速。</li>
<li><strong>Halo</strong>：Java 写的现代博客，界面好看，自带后台。</li>
</ul><p>新手入门建议先用静态博客，等有明确需求了再考虑动态。</p></section></section><section><h2>二、CSS 和前端框架（可选）<a href="#二css-和前端框架可选"><span>#</span></a></h2><p>这部分是做自定义网页时会用到的，搭博客可以跳过。</p><section><h3>CSS 框架<a href="#css-框架"><span>#</span></a></h3><ul>
<li><strong>Tailwind CSS</strong>：原子化 CSS，灵活、体积小、性能好。适合改主题、做自定义网页。</li>
<li><strong>Bootstrap 5</strong>：老牌全能，组件多，兼容性强，新手零门槛。适合快速做官网和后台页面。</li>
</ul></section><section><h3>前端框架<a href="#前端框架"><span>#</span></a></h3><ul>
<li><strong>Vue 3 + Vite</strong>：上手容易，生态强，文档全。适合个人站、工具站、中小后台。</li>
<li><strong>React + Next.js</strong>：支持 SSR，SEO 强。适合复杂网站、电商、大型项目。</li>
</ul></section></section><section><h2>三、开始搭建<a href="#三开始搭建"><span>#</span></a></h2><section><h3>1. 安装必备工具<a href="#1-安装必备工具"><span>#</span></a></h3><p>先装这三个，安装时一路默认下一步就行。</p><ul>
<li><a href="https://git-scm.com/" target="_blank">Git</a></li>
<li><a href="https://nodejs.org/zh-cn" target="_blank">Node.js（LTS 版本）</a></li>
<li><a href="https://github.com/" target="_blank">注册 GitHub 账号</a></li>
</ul><p>装完后打开命令行，依次输入下面的命令，能显示版本号就说明装好了。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>node</span><span> </span><span>-v</span></div></div><div><div><div>2</div></div><div><span>npm</span><span> </span><span>-v</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>-v</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>2. 创建 GitHub 仓库<a href="#2-创建-github-仓库"><span>#</span></a></h3><ol>
<li>点右上角 <strong>+ → New repository</strong></li>
<li>仓库名填 <code>你的GitHub用户名.github.io</code>，必须严格一致</li>
<li>描述可以随便填，比如“我的博客”</li>
<li>勾选 <strong>Add a README file</strong></li>
<li>点 <strong>Create repository</strong></li>
</ol></section><section><h3>3. 配置 SSH 密钥<a href="#3-配置-ssh-密钥"><span>#</span></a></h3><p>SSH 用于免密码推送代码到 GitHub，配一次以后都不用输密码。</p><p>打开 Git Bash，输入：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>ssh-keygen</span><span> </span><span>-t</span><span> </span><span>rsa</span><span> </span><span>-C</span><span> </span><span>"你的邮箱"</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>然后连按四次回车。</p><p>接着进入 <code>C:\Users\你的用户名\.ssh</code>，用记事本打开 <code>id_rsa.pub</code>，全选复制里面的内容。</p><p>回到 GitHub，进入 <strong>Settings → SSH and GPG keys → New SSH key</strong>，名称随便填，把刚才复制的内容粘贴到 Key 里，保存。</p><p>测试一下：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>ssh</span><span> </span><span>-T</span><span> </span><span>git@github.com</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>提示确认时输入 <code>yes</code>，看到 “successfully authenticated” 就说明配好了。</p><blockquote><p>这一步两个博客通用，做完再往下走。</p></blockquote></section><section><h3>4. 搭建 Astro 博客<a href="#4-搭建-astro-博客"><span>#</span></a></h3><p>如果你用的是现成的 Astro 主题，下载主题压缩包，解压到博客文件夹，然后装依赖就行。不需要执行 <code>npm create astro</code>。</p><p>如果你有一定前端基础，想从零开始：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>npm</span><span> </span><span>create</span><span> </span><span>astro@latest</span><span>   </span><span># 创建 Astro 项目</span></div></div><div><div><div>2</div></div><div><span>npm</span><span> </span><span>install</span><span>               </span><span># 安装依赖</span></div></div><div><div><div>3</div></div><div><span>npm</span><span> </span><span>run</span><span> </span><span>dev</span><span>               </span><span># 本地启动</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>运行后终端会显示一个本地地址，类似 <code>http://localhost:4321</code>，浏览器打开就能看到效果。</p></section><section><h3>5. 推送到 GitHub<a href="#5-推送到-github"><span>#</span></a></h3><p>在博客文件夹里右键，选 <strong>Git Bash Here</strong>，依次执行：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>add</span><span> </span><span>.</span><span>                          </span><span># 添加所有文件</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>commit</span><span> </span><span>-m</span><span> </span><span>"初始化博客"</span><span>          </span><span># 提交，描述随便填</span></div></div><div><div><div>3</div></div><div><span>git</span><span> </span><span>branch</span><span> </span><span>-M</span><span> </span><span>main</span><span>                 </span><span># 把分支名改成 main</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>remote</span><span> </span><span>add</span><span> </span><span>origin</span><span> </span><span>git@github.com:你的用户名/你的用户名.github.io.git</span></div></div><div><div><div>5</div></div><div><span>git</span><span> </span><span>push</span><span> </span><span>-u</span><span> </span><span>origin</span><span> </span><span>main</span><span>            </span><span># 推送到远程</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>等一会儿，访问 <code>你的用户名.github.io</code> 就能看到博客了。</p></section><section><h3>6. 搭建 Hexo 博客<a href="#6-搭建-hexo-博客"><span>#</span></a></h3><p>Hexo 的教程网上很多，流程和上面基本一样。区别主要在命令上，可以参考这个视频：<a href="https://www.bilibili.com/video/BV1Ju4m1c7WR/" target="_blank">Hexo 博客搭建教程</a>。</p></section></section><section><h2>四、部署到免费平台<a href="#四部署到免费平台"><span>#</span></a></h2><p>GitHub Pages 可以跑，但访问速度一般。推荐部署到 Cloudflare Pages，免费且不限带宽。</p><section><h3>Cloudflare Pages<a href="#cloudflare-pages"><span>#</span></a></h3><ol>
<li>登录 <a href="https://dash.cloudflare.com/" target="_blank">Cloudflare</a></li>
<li>进入 <strong>Workers &amp; Pages</strong> → <strong>Create application</strong> → <strong>Pages</strong> → <strong>Connect to Git</strong></li>
<li>选择你的博客仓库</li>
<li>构建设置：
<ul>
<li>构建命令：<code>pnpm run build</code>（或 <code>npm run build</code>）</li>
<li>输出目录：<code>dist</code></li>
</ul>
</li>
<li>点部署，完成后会给你一个 <code>xxx.pages.dev</code> 的域名</li>
</ol></section><section><h3>其他选择<a href="#其他选择"><span>#</span></a></h3><ul>
<li><strong>Netlify</strong>：老牌平台，功能全面，但 2026 年调整了定价，免费版有带宽限制。</li>
<li><strong>Vercel</strong>：适合 Next.js 项目，免费版仅限非商业用途。</li>
<li><strong>GitHub Pages</strong>：最省事，和仓库直接绑定，但国内访问速度一般。</li>
</ul></section></section><section><h2>五、写文章用什么工具<a href="#五写文章用什么工具"><span>#</span></a></h2><p>博客文章都是 Markdown 格式，<code>.md</code> 后缀。推荐两个编辑器：</p><ul>
<li><strong>VS Code</strong>：免费，插件多，适合一边写一边调格式。</li>
<li><strong>Typora</strong>：所见即所得，写起来更直观，89 元永久授权。</li>
</ul><blockquote><p>有能力请支持正版。</p></blockquote></section><section><h2>总结<a href="#总结"><span>#</span></a></h2><p>整个流程其实就四步：装工具 → 配 SSH → 搭框架 → 推送到 GitHub。搭好之后你可以再绑定 Cloudflare Pages，访问速度会更好。</p><p>遇到问题优先看命令行报错，大部分错误都有明确提示。实在解决不了，去框架的官方文档或者 GitHub Issues 搜一下，基本都能找到答案。</p></section></section>]]></content>
    </entry>
    <entry>
      <id>https://rynhow.pages.dev/posts/kali/</id>
      <title type="text">Kali基础</title>
      <published>2026-04-06T00:00:00.000Z</published>
      <updated>2026-04-06T00:00:00.000Z</updated>
      <author><name>rynhow</name></author>
      <link rel="alternate" href="https://rynhow.pages.dev/posts/kali/"/>
      <summary type="text">常用工具、资源、端口速查</summary>
      <content type="html"><![CDATA[<section><h1>Kali Linux<a href="#kali-linux"><span>#</span></a></h1><p>Kali 是一个预装了安全测试工具的 Linux 发行版，用来做渗透测试、CTF、安全学习。不要装在主力电脑上，用虚拟机或专用设备跑。</p><section><h2>安装方式<a href="#安装方式"><span>#</span></a></h2><ul>
<li><strong>虚拟机</strong>：VMware 或 VirtualBox 装镜像，最推荐，方便拍快照</li>
<li><strong>物理机</strong>：可以装双系统，但风险较高，谨慎操作</li>
<li><strong>WSL</strong>：Windows 上跑，部分工具受限，不太适合做完整测试</li>
<li><strong>Live USB</strong>：U 盘启动，不留痕迹，适合临时用</li>
</ul><p>官方镜像下载：<a href="https://www.kali.org/get-kali/" target="_blank">https://www.kali.org/get-kali/</a></p></section><section><h2>常用工具<a href="#常用工具"><span>#</span></a></h2>

<table><thead><tr><th>工具</th><th>用途</th></tr></thead><tbody><tr><td><strong>nmap</strong></td><td>端口扫描、服务识别、操作系统识别</td></tr><tr><td><strong>msfconsole</strong></td><td>Metasploit 框架，漏洞利用和渗透测试</td></tr><tr><td><strong>hydra</strong></td><td>在线密码爆破，支持 SSH、FTP、HTTP 等</td></tr><tr><td><strong>wireshark</strong></td><td>抓包和分析网络流量</td></tr><tr><td><strong>burpsuite</strong></td><td>Web 抓包、改包、重放</td></tr><tr><td><strong>dirsearch</strong></td><td>网站目录扫描</td></tr><tr><td><strong>sqlmap</strong></td><td>SQL 注入自动化工具</td></tr><tr><td><strong>john / hashcat</strong></td><td>密码哈希破解</td></tr><tr><td><strong>aircrack-ng</strong></td><td>WiFi 密码破解</td></tr><tr><td><strong>netdiscover</strong></td><td>局域网设备发现</td></tr><tr><td><strong>gobuster</strong></td><td>目录和子域名爆破</td></tr><tr><td><strong>nikto</strong></td><td>Web 服务器漏洞扫描</td></tr></tbody></table><p>安装工具：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>apt</span><span> </span><span>update</span></div></div><div><div><div>2</div></div><div><span>apt</span><span> </span><span>install</span><span> </span><span>&lt;工具名&gt;</span><span> </span><span>-y</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>查看某工具用法：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>&lt;工具名&gt;</span><span> </span><span>-h</span></div></div><div><div><div>2</div></div><div><span>man</span><span> </span><span>&lt;工具名&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h2>推荐资源<a href="#推荐资源"><span>#</span></a></h2><ul>
<li>Kali 官网：<a href="https://www.kali.org/" target="_blank">https://www.kali.org/</a></li>
<li>Kali 官方文档：<a href="https://www.kali.org/docs/" target="_blank">https://www.kali.org/docs/</a></li>
<li>Kali 工具列表：<a href="https://www.kali.org/tools/" target="_blank">https://www.kali.org/tools/</a></li>
<li>VMware Workstation：<a href="https://github.com/201853910/VMwareWorkstation" target="_blank">https://github.com/201853910/VMwareWorkstation</a></li>
</ul><blockquote><p>自 2024 年 11 月 11 日（版本 17.6.2）起，VMware Workstation Pro 对所有用户免费。</p></blockquote><p>其他常用资源：</p><ul>
<li>靶场平台：<a href="https://www.hackthebox.com/" target="_blank">HackTheBox</a>、<a href="https://tryhackme.com/" target="_blank">TryHackMe</a>、<a href="https://www.vulnhub.com/" target="_blank">VulnHub</a></li>
<li>Web 靶场：DVWA、Pikachu、SQLi-Labs</li>
<li>在线练习：<a href="https://portswigger.net/web-security" target="_blank">PortSwigger Web Security Academy</a></li>
</ul></section><section><h2>必背端口<a href="#必背端口"><span>#</span></a></h2><p>下面这 8 个端口，日常渗透测试出现频率最高：</p>

<table><thead><tr><th>端口</th><th>服务</th><th>说明</th></tr></thead><tbody><tr><td>21</td><td>FTP</td><td>文件传输</td></tr><tr><td>22</td><td>SSH</td><td>连接 Linux 服务器</td></tr><tr><td>53</td><td>DNS</td><td>域名解析，扫内网经常见</td></tr><tr><td>80</td><td>HTTP</td><td>普通网站</td></tr><tr><td>443</td><td>HTTPS</td><td>加密网站</td></tr><tr><td>445</td><td>SMB</td><td>Windows 文件共享，漏洞较多</td></tr><tr><td>3306</td><td>MySQL</td><td>数据库，网站常开</td></tr><tr><td>3389</td><td>RDP</td><td>Windows 远程桌面</td></tr></tbody></table><p>补充几个常见的：</p>

<table><thead><tr><th>端口</th><th>服务</th><th>说明</th></tr></thead><tbody><tr><td>23</td><td>Telnet</td><td>明文远程登录，已很少用</td></tr><tr><td>25</td><td>SMTP</td><td>邮件发送</td></tr><tr><td>110</td><td>POP3</td><td>邮件接收</td></tr><tr><td>143</td><td>IMAP</td><td>邮件接收</td></tr><tr><td>1433</td><td>MSSQL</td><td>微软 SQL 数据库</td></tr><tr><td>1521</td><td>Oracle</td><td>Oracle 数据库</td></tr><tr><td>5432</td><td>PostgreSQL</td><td>PostgreSQL 数据库</td></tr><tr><td>6379</td><td>Redis</td><td>键值数据库，未授权访问常见</td></tr><tr><td>8080</td><td>HTTP 代理</td><td>Tomcat、Jenkins 等常用</td></tr><tr><td>27017</td><td>MongoDB</td><td>文档数据库，未授权访问常见</td></tr></tbody></table></section><section><h2>记忆口诀<a href="#记忆口诀"><span>#</span></a></h2><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>传文件：21</span></div></div><div><div><div>2</div></div><div><span>连 Linux：22</span></div></div><div><div><div>3</div></div><div><span>找网址：53</span></div></div><div><div><div>4</div></div><div><span>看网页：80、443</span></div></div><div><div><div>5</div></div><div><span>网站数据库：3306</span></div></div><div><div><div>6</div></div><div><span>Windows 共享：445</span></div></div><div><div><div>7</div></div><div><span>Windows 远程：3389</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h2>常用命令速查<a href="#常用命令速查"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 系统信息</span></div></div><div><div><div>2</div></div><div><span>uname</span><span> </span><span>-a</span><span>                    </span><span># 查看内核版本</span></div></div><div><div><div>3</div></div><div><span>cat</span><span> </span><span>/etc/os-release</span><span>         </span><span># 查看系统版本</span></div></div><div><div><div>4</div></div><div><span>whoami</span><span>                      </span><span># 当前用户</span></div></div><div><div><div>5</div></div><div><span>id</span><span>                          </span><span># 当前用户和组</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 网络</span></div></div><div><div><div>8</div></div><div><span>ip</span><span> </span><span>a</span><span>                        </span><span># 查看 IP</span></div></div><div><div><div>9</div></div><div><span>ifconfig</span><span>                    </span><span># 旧写法，需要 net-tools</span></div></div><div><div><div>10</div></div><div><span>netstat</span><span> </span><span>-tuln</span><span>               </span><span># 查看监听端口</span></div></div><div><div><div>11</div></div><div><span>ss</span><span> </span><span>-tuln</span><span>                    </span><span># 更现代的写法</span></div></div><div><div><div>12</div></div><div><span>ping</span><span> </span><span>&lt;目标&gt;</span><span>                 </span><span># 测试连通性</span></div></div><div><div><div>13</div></div><div><span>traceroute</span><span> </span><span>&lt;目标&gt;</span><span>           </span><span># 路由追踪</span></div></div><div><div><div>14</div></div><div>
</div></div><div><div><div>15</div></div><div><span># 文件与目录</span></div></div><div><div><div>16</div></div><div><span>ls</span><span> </span><span>-la</span><span>                      </span><span># 列出所有文件</span></div></div><div><div><div>17</div></div><div><span>cd</span><span> </span><span>&lt;目录&gt;</span><span>                   </span><span># 切换目录</span></div></div><div><div><div>18</div></div><div><span>pwd</span><span>                         </span><span># 当前路径</span></div></div><div><div><div>19</div></div><div><span>find</span><span> </span><span>/</span><span> </span><span>-name</span><span> </span><span>"*.txt"</span><span>        </span><span># 查找文件</span></div></div><div><div><div>20</div></div><div><span>grep</span><span> </span><span>-r</span><span> </span><span>"关键词"</span><span> </span><span>&lt;目录&gt;</span><span>     </span><span># 搜索内容</span></div></div><div><div><div>21</div></div><div>
</div></div><div><div><div>22</div></div><div><span># 权限</span></div></div><div><div><div>23</div></div><div><span>chmod</span><span> </span><span>755</span><span> </span><span>&lt;文件&gt;</span><span>            </span><span># 修改权限</span></div></div><div><div><div>24</div></div><div><span>chown</span><span> </span><span>user:group</span><span> </span><span>&lt;文件&gt;</span><span>     </span><span># 修改所有者</span></div></div><div><div><div>25</div></div><div>
</div></div><div><div><div>26</div></div><div><span># 服务</span></div></div><div><div><div>27</div></div><div><span>systemctl</span><span> </span><span>start</span><span> </span><span>&lt;服务&gt;</span><span>      </span><span># 启动</span></div></div><div><div><div>28</div></div><div><span>systemctl</span><span> </span><span>stop</span><span> </span><span>&lt;服务&gt;</span><span>       </span><span># 停止</span></div></div><div><div><div>29</div></div><div><span>systemctl</span><span> </span><span>status</span><span> </span><span>&lt;服务&gt;</span><span>     </span><span># 查看状态</span></div></div><div><div><div>30</div></div><div>
</div></div><div><div><div>31</div></div><div><span># 压缩与解压</span></div></div><div><div><div>32</div></div><div><span>tar</span><span> </span><span>-czvf</span><span> </span><span>a.tar.gz</span><span> </span><span>&lt;目录&gt;</span><span>   </span><span># 打包压缩</span></div></div><div><div><div>33</div></div><div><span>tar</span><span> </span><span>-xzvf</span><span> </span><span>a.tar.gz</span><span>          </span><span># 解压</span></div></div><div><div><div>34</div></div><div><span>unzip</span><span> </span><span>a.zip</span><span>                 </span><span># 解压 zip</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div></section><section><h2>日常维护<a href="#日常维护"><span>#</span></a></h2><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 更新系统</span></div></div><div><div><div>2</div></div><div><span>apt</span><span> </span><span>update</span><span> &amp;&amp; </span><span>apt</span><span> </span><span>upgrade</span><span> </span><span>-y</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 清理不需要的包</span></div></div><div><div><div>5</div></div><div><span>apt</span><span> </span><span>autoremove</span><span> </span><span>-y</span></div></div><div><div><div>6</div></div><div><span>apt</span><span> </span><span>autoclean</span></div></div><div><div><div>7</div></div><div>
</div></div><div><div><div>8</div></div><div><span># 查看磁盘占用</span></div></div><div><div><div>9</div></div><div><span>df</span><span> </span><span>-h</span></div></div><div><div><div>10</div></div><div><span>du</span><span> </span><span>-sh</span><span> </span><span>&lt;目录&gt;</span></div></div><div><div><div>11</div></div><div>
</div></div><div><div><div>12</div></div><div><span># 查看内存和进程</span></div></div><div><div><div>13</div></div><div><span>free</span><span> </span><span>-h</span></div></div><div><div><div>14</div></div><div><span>top</span></div></div><div><div><div>15</div></div><div><span>htop</span><span>                        </span><span># 需要先安装</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div></section><section><h2>安全提醒<a href="#安全提醒"><span>#</span></a></h2><ul>
<li>只在本地虚拟机或授权靶场练习</li>
<li>不要扫描、攻击任何不属于你的设备</li>
<li>不要传播恶意工具，不要入侵他人系统</li>
<li>学安全是为了防御，不是为了搞破坏</li>
</ul></section></section>]]></content>
    </entry>
    <entry>
      <id>https://rynhow.pages.dev/posts/kali%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/</id>
      <title type="text">Kali 30 天入门计划：零基础每日实操</title>
      <published>2026-04-06T00:00:00.000Z</published>
      <updated>2026-04-06T00:00:00.000Z</updated>
      <author><name>rynhow</name></author>
      <link rel="alternate" href="https://rynhow.pages.dev/posts/kali%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/"/>
      <summary type="text"></summary>
      <content type="html"><![CDATA[<section><h1>Kali 30 天入门计划：零基础每日实操<a href="#kali-30-天入门计划零基础每日实操"><span>#</span></a></h1><p>这份计划面向零基础，把 Kali 实操和网络、Web、Linux 的基础知识放在一起学。每天的内容拆成三部分：命令和用途、配套知识点、当天目标。不看视频，纯动手，目的是学完能独立完成一些基础操作，而不是只会照着抄命令。</p><p>需要提前说明：本计划偏实操，理论部分不会讲得太深。</p><hr /><section><h2>第 1 周：Linux 基础 + 网络常识<a href="#第-1-周linux-基础--网络常识"><span>#</span></a></h2><section><h3>第 1 天<a href="#第-1-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>whoami</span><span>          </span><span># 查看当前登录用户</span></div></div><div><div><div>2</div></div><div><span>pwd</span><span>             </span><span># 查看当前所在目录</span></div></div><div><div><div>3</div></div><div><span>ls</span><span>              </span><span># 列出当前目录下的文件</span></div></div><div><div><div>4</div></div><div><span>ls</span><span> </span><span>-la</span><span>          </span><span># 列出所有文件，包括隐藏文件</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>IP 地址是设备在网络里的地址，比如 <code>192.168.1.10</code>。局域网就是同一个 WiFi 或同一个虚拟机网段里的设备，彼此之间可以互相访问。</p><p><strong>今日目标</strong>：看懂自己的身份和位置，知道 IP 是设备地址。</p></section><section><h3>第 2 天<a href="#第-2-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>mkdir</span><span> </span><span>test_dir</span><span>          </span><span># 新建文件夹</span></div></div><div><div><div>2</div></div><div><span>touch</span><span> </span><span>test.txt</span><span>          </span><span># 新建空文本文件</span></div></div><div><div><div>3</div></div><div><span>nano</span><span> </span><span>test.txt</span><span>           </span><span># 编辑文件，Ctrl+O 保存，Ctrl+X 退出</span></div></div><div><div><div>4</div></div><div><span>cat</span><span> </span><span>test.txt</span><span>            </span><span># 查看文件内容</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>常见端口要记住：</p>

<table><thead><tr><th>端口</th><th>用途</th></tr></thead><tbody><tr><td>80 / 443</td><td>网站服务</td></tr><tr><td>22</td><td>SSH 远程登录</td></tr><tr><td>3389</td><td>Windows 远程桌面</td></tr><tr><td>445</td><td>Windows 文件共享</td></tr></tbody></table><p>端口可以理解为设备的服务入口。</p><p><strong>今日目标</strong>：会创建、编辑、查看文件，知道端口是什么。</p></section><section><h3>第 3 天<a href="#第-3-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>rm</span><span> </span><span>test.txt</span><span>             </span><span># 删除文件</span></div></div><div><div><div>2</div></div><div><span>rm</span><span> </span><span>-rf</span><span> </span><span>test_dir</span><span>         </span><span># 强制删除文件夹，不提示</span></div></div><div><div><div>3</div></div><div><span>cd</span><span> </span><span>/</span><span>                    </span><span># 进入系统根目录</span></div></div><div><div><div>4</div></div><div><span>cd</span><span> </span><span>~</span><span>                    </span><span># 回到 root 家目录</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p><code>ping</code> 是发一个数据包给目标，看有没有回复，用来判断设备是否开机、网络是否通。<code>arp</code> 是通过 IP 找设备的物理地址，内网扫描会用到。</p><p><strong>今日目标</strong>：熟练删文件和切目录，理解 ping 和 arp 的作用。</p></section><section><h3>第 4 天<a href="#第-4-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>ip</span><span> </span><span>a</span><span>                    </span><span># 查看本机 IP，看 inet 后面的地址</span></div></div><div><div><div>2</div></div><div><span>ping</span><span> </span><span>baidu.com</span><span> </span><span>-c</span><span> </span><span>3</span><span>     </span><span># 测试联网，只发 3 个包</span></div></div><div><div><div>3</div></div><div><span>netstat</span><span> </span><span>-tuln</span><span>           </span><span># 查看本机开了哪些端口</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>HTTP 是浏览器和网站服务器之间交流用的协议。你打开网页，就是发了一个 HTTP 请求；服务器返回页面内容，就是 HTTP 响应。</p><p><strong>今日目标</strong>：会查 IP、测网络，明白上网就是收发 HTTP 数据。</p></section><section><h3>第 5 天<a href="#第-5-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>apt</span><span> </span><span>update</span><span>              </span><span># 刷新软件源列表</span></div></div><div><div><div>2</div></div><div><span>apt</span><span> </span><span>install</span><span> </span><span>tree</span><span> </span><span>-y</span><span>     </span><span># 安装 tree 工具</span></div></div><div><div><div>3</div></div><div><span>tree</span><span>                    </span><span># 显示文件夹层级结构</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>Linux 权限分三种：<code>r</code> 读、<code>w</code> 写、<code>x</code> 执行。root 拥有所有权限，普通用户受限制。</p><p><strong>今日目标</strong>：会用 apt 装软件，理解 Linux 的权限分级。</p></section><section><h3>第 6 天<a href="#第-6-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>apt</span><span> </span><span>autoremove</span><span> </span><span>-y</span><span>               </span><span># 卸载没用的依赖包</span></div></div><div><div><div>2</div></div><div><span>apt</span><span> </span><span>autoclean</span><span>                   </span><span># 清理安装包缓存</span></div></div><div><div><div>3</div></div><div><span>systemctl</span><span> </span><span>status</span><span> </span><span>apache2</span><span>        </span><span># 查看 Apache 服务状态</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>常见的服务器服务有：Apache 和 Nginx 是网页服务器，MySQL 和 MariaDB 是数据库，SSH 是远程命令控制。</p><p><strong>今日目标</strong>：会清理系统，知道网站、数据库、远程登录分别是什么服务。</p></section><section><h3>第 7 天<a href="#第-7-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>在 VMware 里给虚拟机拍一个快照，命名“第 7 天基础状态”。然后故意删错一个文件，用快照恢复。</p><p><strong>配套知识</strong></p><p>安全红线，必须记住：</p><ul>
<li>只在本地虚拟机或靶场练习</li>
<li>不扫描、不攻击任何外网设备</li>
<li>不传播工具，不入侵他人设备</li>
</ul><p><strong>今日目标</strong>：养成拍快照的习惯，记住法律底线。</p><hr /></section></section><section><h2>第 2 周：信息收集 + 服务识别<a href="#第-2-周信息收集--服务识别"><span>#</span></a></h2><section><h3>第 8 天<a href="#第-8-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>netdiscover</span><span> </span><span>-r</span><span> </span><span>192.168.x.0/24</span><span>   </span><span># 扫描局域网内所有在线设备</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p><code>192.168.1.0/24</code> 表示从 <code>192.168.1.1</code> 到 <code>192.168.1.255</code> 这个范围。能 ping 通、能扫描到的设备就是在线设备。</p><p><strong>今日目标</strong>：会找靶机 IP。</p></section><section><h3>第 9 天<a href="#第-9-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>nmap</span><span> </span><span>靶机IP</span><span>          </span><span># 扫描常见端口</span></div></div><div><div><div>2</div></div><div><span>nmap</span><span> </span><span>-p-</span><span> </span><span>靶机IP</span><span>      </span><span># 扫描全部 65535 个端口</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>开放端口越多，暴露的入口越多。开放端口可以访问，关闭端口无法连接。</p><p><strong>今日目标</strong>：会做基础端口扫描。</p></section><section><h3>第 10 天<a href="#第-10-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>nmap</span><span> </span><span>-A</span><span> </span><span>-p-</span><span> </span><span>靶机IP</span><span>   </span><span># 扫全端口 + 系统版本 + 服务版本</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>服务版本识别可以看出版本新旧，比如 Apache 2.4.41，版本越旧漏洞越多。nmap 也能判断对方是 Windows 还是 Linux。</p><p><strong>今日目标</strong>：能看懂 nmap 的报告。</p></section><section><h3>第 11 天<a href="#第-11-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>apt</span><span> </span><span>install</span><span> </span><span>dirsearch</span><span> </span><span>-y</span><span>    </span><span># 安装网站目录扫描工具</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>网站后台常见路径有 <code>/admin</code>、<code>/login</code>、<code>/upload</code>、<code>/phpmyadmin</code>。</p><p><strong>今日目标</strong>：装好目录扫描工具。</p></section><section><h3>第 12 天<a href="#第-12-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>dirsearch</span><span> </span><span>-u</span><span> </span><span>http://靶机IP</span><span>   </span><span># 扫描网站隐藏路径和后台</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p><code>robots.txt</code> 是网站告诉爬虫哪些路径不要看，反而会泄露一些敏感路径。</p><p><strong>今日目标</strong>：会扫网站隐藏目录。</p><hr /></section></section><section><h2>第 3 周：DVWA 漏洞 + Web 原理<a href="#第-3-周dvwa-漏洞--web-原理"><span>#</span></a></h2><section><h3>第 13 天<a href="#第-13-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>apt</span><span> </span><span>install</span><span> </span><span>apache2</span><span> </span><span>mariadb-server</span><span> </span><span>php</span><span> </span><span>php-mysqli</span><span> </span><span>-y</span></div></div><div><div><div>2</div></div><div><span>systemctl</span><span> </span><span>start</span><span> </span><span>apache2</span><span> </span><span>mariadb</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>网站运行流程：浏览器 → Apache → PHP → MySQL。</p><p><strong>今日目标</strong>：搭好 Web 运行环境。</p></section><section><h3>第 14 天<a href="#第-14-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>cd</span><span> </span><span>/var/www/html</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>https://github.com/digininja/DVWA.git</span></div></div><div><div><div>3</div></div><div><span>chmod</span><span> </span><span>-R</span><span> </span><span>777</span><span> </span><span>DVWA</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>DVWA 有四个难度：Low 无防护，Medium 简单过滤，High 较强防护，Impossible 基本打不动。入门从 Low 开始。</p><p><strong>今日目标</strong>：搭好 DVWA 靶场。</p></section><section><h3>第 15 天<a href="#第-15-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>在 DVWA 的 SQL 注入页面输入：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>' or 1=1#</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>SQL 是数据库查询语言。<code>'</code> 用来打断原本的语句，<code>or 1=1</code> 让条件永远成立，<code>#</code> 注释掉后面内容。这样就能绕过账号密码登录。</p><p><strong>今日目标</strong>：理解 SQL 注入的基本逻辑。</p></section><section><h3>第 16 天<a href="#第-16-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>重复练习 SQL 注入，尝试查看数据表。</p><p><strong>配套知识</strong></p><p>用户密码存在数据库里，SQL 注入就是想办法把这些数据查出来。</p><p><strong>今日目标</strong>：熟练手工注入。</p></section><section><h3>第 17 天<a href="#第-17-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>在 XSS 页面输入：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>&lt;</span><span>script</span><span>&gt;</span><span>alert</span><span>(</span><span>1</span><span>)&lt;/</span><span>script</span><span>&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>JS 是在浏览器上运行的脚本。XSS 就是往页面里插入恶意 JS，让其他用户访问时执行。</p><p><strong>今日目标</strong>：会测试 XSS 漏洞。</p></section><section><h3>第 18 天<a href="#第-18-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>在命令执行页面输入：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>127.0.0.1; id</span></div></div><div><div><div>2</div></div><div><span>127.0.0.1; cat /etc/passwd</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p><code>;</code>、<code>|</code>、<code>&amp;&amp;</code> 这些符号可以让服务器连续执行多条命令。如果程序没过滤这些符号，就能让服务器执行任意命令。</p><p><strong>今日目标</strong>：理解命令执行的原理。</p></section><section><h3>第 19 天<a href="#第-19-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>在文件上传模块上传一张图片，查看上传后的路径。</p><p><strong>配套知识</strong></p><p>如果上传功能没做限制，可以上传木马文件，进而控制整个网站。</p><p><strong>今日目标</strong>：理解上传漏洞的原理。</p></section><section><h3>第 20 天<a href="#第-20-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>把 SQL 注入、XSS、命令执行各练一遍。</p><p><strong>配套知识</strong></p><p>这些简单漏洞的本质都是同一个：服务器没有过滤用户的输入。</p><p><strong>今日目标</strong>：把漏洞操作流程练熟。</p><hr /></section></section><section><h2>第 4 周：Burp + 靶机渗透 + 提权<a href="#第-4-周burp--靶机渗透--提权"><span>#</span></a></h2><section><h3>第 21 天<a href="#第-21-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>浏览器设置代理 <code>127.0.0.1:8080</code>，打开 Burp Suite，开启拦截。</p><p><strong>配套知识</strong></p><p>Burp 位于浏览器和服务器之间，能截获所有请求。</p><p><strong>今日目标</strong>：会抓包。</p></section><section><h3>第 22 天<a href="#第-22-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>抓 DVWA 的登录包，修改账号密码，重放请求。</p><p><strong>配套知识</strong></p><p>GET 请求参数在网址里，POST 请求参数在请求体里，相对隐蔽一些。</p><p><strong>今日目标</strong>：会改包和重放。</p></section><section><h3>第 23 天<a href="#第-23-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>netdiscover</span><span> </span><span>-r</span><span> </span><span>192.168.x.0/24</span></div></div><div><div><div>2</div></div><div><span>nmap</span><span> </span><span>-A</span><span> </span><span>-p-</span><span> </span><span>靶机IP</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>渗透工作中，信息收集占很大比重。信息越全，越容易找到漏洞。</p><p><strong>今日目标</strong>：完成前期信息收集。</p></section><section><h3>第 24 天<a href="#第-24-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>dirsearch</span><span> </span><span>-u</span><span> </span><span>http://靶机IP</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>webshell 是一个网页后门，通过它可以控制网站。</p><p><strong>今日目标</strong>：找到漏洞入口。</p></section><section><h3>第 25 天<a href="#第-25-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>利用漏洞拿到 webshell，执行 <code>whoami</code> 查看当前权限。</p><p><strong>配套知识</strong></p><p>普通用户只能看自己的文件，root 能控制整个服务器。</p><p><strong>今日目标</strong>：拿到网站权限。</p></section><section><h3>第 26 天<a href="#第-26-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>find</span><span> </span><span>/</span><span> </span><span>-perm</span><span> </span><span>-u+s</span><span> </span><span>-type</span><span> </span><span>f</span><span> 2&gt;</span><span>/dev/null</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>SUID 提权原理：程序自带 root 权限，普通用户运行它就能以 root 身份执行。</p><p><strong>今日目标</strong>：学会 SUID 提权。</p></section><section><h3>第 27 天<a href="#第-27-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>-l</span><span>                      </span><span># 查看能免密执行的 root 命令</span></div></div><div><div><div>2</div></div><div><span>cat</span><span> </span><span>/root/flag.txt</span><span>           </span><span># 提权后读取 flag</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>sudo 配置错误时，管理员可能不小心给了普通用户直接提权的路径。</p><p><strong>今日目标</strong>：完整拿下一台靶机。</p><hr /></section></section><section><h2>收尾：MSF + 复盘<a href="#收尾msf--复盘"><span>#</span></a></h2><section><h3>第 28 天<a href="#第-28-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>msfconsole</span><span>              </span><span># 启动 Metasploit</span></div></div><div><div><div>2</div></div><div><span>search</span><span> </span><span>mysql</span><span>            </span><span># 搜索相关漏洞模块</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>Metasploit 集成了大量漏洞利用工具，是渗透测试中常用的框架。</p><p><strong>今日目标</strong>：熟悉 MSF 的界面和基本用法。</p></section><section><h3>第 29 天<a href="#第-29-天"><span>#</span></a></h3><p><strong>实操</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>use</span><span> </span><span>exploit/multi/handler</span></div></div><div><div><div>2</div></div><div><span>set</span><span> </span><span>lhost</span><span> </span><span>你的KaliIP</span></div></div><div><div><div>3</div></div><div><span>run</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>配套知识</strong></p><p>反弹 shell 是让服务器主动连接你，这样可以绕过防火墙对入站连接的拦截。</p><p><strong>今日目标</strong>：会监听反弹 shell。</p></section><section><h3>第 30 天<a href="#第-30-天"><span>#</span></a></h3><p><strong>实操</strong></p><p>不看教程，独立完成一遍完整流程：扫 IP → 扫端口 → 扫目录 → 拿 shell → 提权 → 拿 flag。</p><p><strong>配套知识</strong></p><p>整理自己的笔记，包括命令、payload、流程。后续方向可以考虑：多练靶机、学 Python、学绕过防护。</p><p><strong>今日目标</strong>：达到入门水平。</p><hr /></section></section><section><h2>总结<a href="#总结"><span>#</span></a></h2><p>这 30 天里，你不只是在练 Kali，同时也把网络、Web、Linux、权限、漏洞原理过了一遍。学完之后，应该能独立完成一些基础操作，遇到问题也知道该往哪个方向查。</p><p>需要提醒的是，这份计划只是入门。真正的安全学习是长期的过程，靶场和真实环境的差距也很大。先把基础打牢，再考虑深入。</p><p>最后再说一次：只在本地虚拟机或授权靶场练习，不要碰任何不属于你的设备。</p></section></section>]]></content>
    </entry>
</feed>
