<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>实践笔记 on 数字花园 | Mlosun.com</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/</link><description>Recent content in 实践笔记 on 数字花园 | Mlosun.com</description><generator>Hugo</generator><language>zh-cn</language><copyright>© 数字花园 | Mlosun.com</copyright><lastBuildDate>Wed, 15 Jul 2026 01:23:10 +0800</lastBuildDate><atom:link href="https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/index.xml" rel="self" type="application/rss+xml"/><item><title>使用 ExifTool 整理个人照片</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/%E4%BD%BF%E7%94%A8-exiftool-%E6%95%B4%E7%90%86%E4%B8%AA%E4%BA%BA%E7%85%A7%E7%89%87/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/%E4%BD%BF%E7%94%A8-exiftool-%E6%95%B4%E7%90%86%E4%B8%AA%E4%BA%BA%E7%85%A7%E7%89%87/</guid><description>&lt;blockquote&gt;
&lt;p&gt;储存了十余年的个人照片，多年来反复在多个移动硬盘、网盘、NAS、手机、电脑等设备中来回迁移，早已乱的一塌糊涂。近期想对齐进行全面整理，梳理为按时间线的结构。然而很多照片的拍摄日期早已丢失，使用 ExifTool 对它们进行修复。&lt;/p&gt;</description></item><item><title>VSCode 配置机制完整笔记</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/vscode-%E9%85%8D%E7%BD%AE%E6%9C%BA%E5%88%B6%E5%AE%8C%E6%95%B4%E7%AC%94%E8%AE%B0/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/vscode-%E9%85%8D%E7%BD%AE%E6%9C%BA%E5%88%B6%E5%AE%8C%E6%95%B4%E7%AC%94%E8%AE%B0/</guid><description>&lt;h2 id="一vscode-目录概述"&gt;一、.vscode 目录概述
&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.vscode&lt;/code&gt; 是 VS Code 的&lt;strong&gt;项目级配置目录&lt;/strong&gt;，定义&amp;quot;当 VS Code 打开这个项目时，该如何表现&amp;quot;。&lt;/p&gt;
&lt;h3 id="常见文件结构"&gt;常见文件结构
&lt;/h3&gt;
&lt;div class="td-code td-code--untitled" id="td-code-3c3c6284-fence-0" data-td-code data-td-code-auto-id
 data-td-language="text" data-td-line-count="6"&gt;
 &lt;div class="td-code__viewport" id="td-code-3c3c6284-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;.vscode/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── settings.json # 工作区设置（覆盖用户全局设置）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── extensions.json # 推荐安装的扩展列表
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── launch.json # 调试配置
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── tasks.json # 自定义任务
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── snippets/ # 代码片段目录&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="二配置层级与覆盖机制"&gt;二、配置层级与覆盖机制
&lt;/h2&gt;
&lt;h3 id="三层架构优先级由低到高"&gt;三层架构（优先级由低到高）
&lt;/h3&gt;
&lt;div class="td-code td-code--untitled" id="td-code-3c3c6284-fence-1" data-td-code data-td-code-auto-id
 data-td-language="text" data-td-line-count="5"&gt;
 &lt;div class="td-code__viewport" id="td-code-3c3c6284-fence-1-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;VS Code 默认设置
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户级设置（~/settings.json）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;工作区设置（.vscode/settings.json）← 项目级，优先级最高&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="关键区别"&gt;关键区别
&lt;/h3&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;文件&lt;/th&gt;
 &lt;th scope="col"&gt;机制&lt;/th&gt;
 &lt;th scope="col"&gt;行为&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;settings.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;增量覆盖&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;只写3项 → 继承用户级其余7项&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;extensions.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;全量清单&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;只写a,b,c → 只推荐a,b,c，不继承其他&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;launch.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;全量配置&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;只显示配置的调试方案&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tasks.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;全量配置&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;只显示定义的任务&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;snippets/*.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;全量配置&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;只提供定义的代码片段&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h3 id="示例对比"&gt;示例对比
&lt;/h3&gt;
&lt;h4 id="settingsjson增量"&gt;settings.json（增量）
&lt;/h4&gt;
&lt;div class="td-code td-code--untitled" id="td-code-3c3c6284-fence-2" data-td-code data-td-code-auto-id
 data-td-language="json" data-td-line-count="3"&gt;
 &lt;div class="td-code__viewport" id="td-code-3c3c6284-fence-2-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 用户级：a=1, b=2, c=3, d=4, e=5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 项目级写：{&amp;#34;b&amp;#34;: 20}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;//&lt;/span&gt; &lt;span class="err"&gt;结果：a=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="err"&gt;b=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="err"&gt;c=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="err"&gt;d=&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="err"&gt;e=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="err"&gt;（继承+覆盖）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id="extensionsjson全量"&gt;extensions.json（全量）
&lt;/h4&gt;
&lt;div class="td-code td-code--untitled" id="td-code-3c3c6284-fence-3" data-td-code data-td-code-auto-id
 data-td-language="json" data-td-line-count="3"&gt;
 &lt;div class="td-code__viewport" id="td-code-3c3c6284-fence-3-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 用户级：安装了 a,b,c,d
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 项目级写：{&amp;#34;recommendations&amp;#34;: [&amp;#34;a&amp;#34;,&amp;#34;b&amp;#34;]}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;//&lt;/span&gt; &lt;span class="err"&gt;结果：只推荐&lt;/span&gt; &lt;span class="err"&gt;a,b（不会推荐&lt;/span&gt; &lt;span class="err"&gt;c,d）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="三配置存储位置"&gt;三、配置存储位置
&lt;/h2&gt;
&lt;h3 id="用户级配置"&gt;用户级配置
&lt;/h3&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;类型&lt;/th&gt;
 &lt;th scope="col"&gt;路径（macOS/Linux）&lt;/th&gt;
 &lt;th scope="col"&gt;路径（Windows）&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;设置文件&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;~/.config/Code/User/settings.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;%APPDATA%\Code\User\settings.json&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;扩展目录&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;~/.vscode/extensions/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;%USERPROFILE%\.vscode\extensions\&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;快捷键&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;~/.config/Code/User/keybindings.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;同左&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;代码片段&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;~/.config/Code/User/snippets/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;同左&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h3 id="项目级配置"&gt;项目级配置
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;位置：&lt;code&gt;.vscode/&lt;/code&gt; 目录下&lt;/li&gt;
&lt;li&gt;作用范围：仅当前项目&lt;/li&gt;
&lt;li&gt;版本控制：&lt;strong&gt;应提交到 Git&lt;/strong&gt;，确保团队一致&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="四扩展管理"&gt;四、扩展管理
&lt;/h2&gt;
&lt;h3 id="用户级-vs-项目级"&gt;用户级 vs 项目级
&lt;/h3&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;级别&lt;/th&gt;
 &lt;th scope="col"&gt;存储位置&lt;/th&gt;
 &lt;th scope="col"&gt;特点&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;用户级扩展&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;~/.vscode/extensions/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;所有项目共享，物理安装在此&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;项目级推荐&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.vscode/extensions.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;仅提示安装，不自动部署&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;真正隔离&lt;/td&gt;
 &lt;td&gt;Dev Container&lt;/td&gt;
 &lt;td&gt;容器内独立安装扩展&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h3 id="扩展推荐配置"&gt;扩展推荐配置
&lt;/h3&gt;
&lt;div class="td-code td-code--untitled" id="td-code-3c3c6284-fence-4" data-td-code data-td-code-auto-id
 data-td-language="json" data-td-line-count="4"&gt;
 &lt;div class="td-code__viewport" id="td-code-3c3c6284-fence-4-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;recommendations&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dbaeumer.vscode-eslint&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;esbenp.prettier-vscode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;unwantedRecommendations&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;some.extension.to.disable&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="多项目扩展隔离方案"&gt;多项目扩展隔离方案
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;场景&lt;/strong&gt;：项目A用a,b,c，项目B用d,e,f，其他项目用a,b,c,d&lt;/p&gt;</description></item><item><title>Docker 学习笔记</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/docker-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/docker-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;
 &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;说明&lt;/span&gt;&lt;/div&gt;
 &lt;div class="td-callout__body"&gt;
&lt;p&gt;本文是根据 &lt;a href="https://www.bilibili.com/video/BV1THKyzBER6/"&gt;40分钟的Docker实战攻略，一期视频精通Docker&lt;/a&gt; 视频学习记录的笔记。
&lt;a href="https://www.bilibili.com/video/BV1THKyzBER6?comment_on=1&amp;amp;comment_root_id=270940020720&amp;amp;share_tag=s_i#reply270940020720"&gt;参考评论1&lt;/a&gt; &lt;a href="https://www.bilibili.com/video/BV1THKyzBER6?comment_on=1&amp;amp;comment_root_id=283732220368&amp;amp;comment_secondary_id=291493627440&amp;amp;share_tag=s_i#reply291493627440"&gt;参考评论2&lt;/a&gt;&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;&lt;h2 id="docker-核心概念"&gt;Docker 核心概念
&lt;/h2&gt;
&lt;h3 id="容器化技术"&gt;容器化技术
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Docker 是目前最成熟高效的软件部署技术&lt;/li&gt;
&lt;li&gt;Docker 就是用容器化技术给应用程序封装独立的运行环境&lt;/li&gt;
&lt;li&gt;每个运行环境就是一个==容器==&lt;/li&gt;
&lt;li&gt;运行容器的计算机被称为==宿主机==&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="容器与虚拟机的需求"&gt;容器与虚拟机的需求
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;容器：多个容器共用同一个系统内核&lt;/li&gt;
&lt;li&gt;虚拟机：每个虚拟机都包含操作系统的完整内核&lt;/li&gt;
&lt;li&gt;优势：Docker 容器比虚拟机更轻、更小，启动速度更快&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="镜像与容器的关系"&gt;镜像与容器的关系
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;镜像：镜像是容器的模板，可类比为软件安装包&lt;/li&gt;
&lt;li&gt;容器：由“软件安装包”安装出来的软件&lt;/li&gt;
&lt;li&gt;类比：
&lt;ul&gt;
&lt;li&gt;类比于用模具做糕点，镜像是模具，容器是做出来的糕点&lt;/li&gt;
&lt;li&gt;可以使用一个模具（镜像）做出很多个糕点（容器）&lt;/li&gt;
&lt;li&gt;也可以将模具（镜像）分享给其他人使用&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="docker-仓库"&gt;Docker 仓库
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Docker 仓库是用来存放和分享镜像的地方&lt;/li&gt;
&lt;li&gt;用户可以将镜像上传到仓库后，供其他人下载&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hub.docker.com"&gt;Docker Hub&lt;/a&gt; 是 Docker 的官方仓库，可以搜索大量镜像&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="docker-安装方式"&gt;Docker 安装方式
&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;暂略~
我日常使用 ==1Panel==、==cnb.cool==、==群晖 Nas== 这些方式管理 Docker 容器
他们都已经配置好了 Docker 环境
暂时不需要去了解 Docker 的安装&lt;/p&gt;</description></item><item><title>Markdown 语法速查</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/markdown-%E8%AF%AD%E6%B3%95%E9%80%9F%E6%9F%A5/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/markdown-%E8%AF%AD%E6%B3%95%E9%80%9F%E6%9F%A5/</guid><description>&lt;h2 id="语法速查表"&gt;语法速查表
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col" style="text-align: left"&gt;功能&lt;/th&gt;
 &lt;th scope="col" style="text-align: left"&gt;Markdown 语法&lt;/th&gt;
 &lt;th scope="col" style="text-align: left"&gt;效果预览&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;一级标题&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;# 标题内容&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;最大的标题&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;二级标题&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;## 标题内容&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;三级标题&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;### 标题内容&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;(依此类推，可到六级)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;加粗&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;**需要加粗的文字**&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;需要加粗的文字&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;斜体&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;*需要倾斜的文字*&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;需要倾斜的文字&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;&lt;strong&gt;加粗并斜体&lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;***又粗又斜的文字***&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;&lt;strong&gt;又粗又斜的文字&lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;del&gt;删除线&lt;/del&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;~~被删除的文字~~&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;del&gt;被删除的文字&lt;/del&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;无序列表&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;- 列表项&lt;/code&gt; 或 &lt;code&gt;* 列表项&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;• 列表项&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;有序列表&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;1. 列表项一&lt;/code&gt;&lt;br&gt;&lt;code&gt;2. 列表项二&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;1. 列表项一&lt;br&gt;2. 列表项二&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;任务列表&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;- [ ] 未完成&lt;/code&gt;&lt;br&gt;&lt;code&gt;- [x] 已完成&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;☐ 未完成&lt;br&gt;☑ 已完成&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;引用&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;gt; 这是一段引用的文字&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&amp;gt; 这是一段引用的文字&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;行内代码&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;`code`&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;用于突出显示变量或命令&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;代码块&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;```python&lt;/code&gt;&lt;br&gt;&lt;code&gt;print(&amp;quot;Hello&amp;quot;)&lt;/code&gt;&lt;br&gt;&lt;code&gt;```&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;用于显示多行代码&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;链接&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;[显示的文字](https://example.com)&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://example.com"&gt;显示的文字&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;图片&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;![替代文本](图片路径)&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;直接显示图片&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;水平分割线&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;---&lt;/code&gt; 或 &lt;code&gt;***&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;一条横跨页面的线&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;hr&gt;
&lt;h2 id="标题"&gt;标题
&lt;/h2&gt;
&lt;p&gt;注意：所有符号都是英文输入法下的符号。井号加空格，几个井号就是几级标题，一级标题字体最大。&lt;/p&gt;</description></item><item><title>SSH 密钥配置指南</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/ssh-%E5%AF%86%E9%92%A5%E9%85%8D%E7%BD%AE%E6%8C%87%E5%8D%97/</link><pubDate>Sat, 30 Aug 2025 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/ssh-%E5%AF%86%E9%92%A5%E9%85%8D%E7%BD%AE%E6%8C%87%E5%8D%97/</guid><description>&lt;h2 id="简介"&gt;简介
&lt;/h2&gt;
&lt;p&gt;SSH 密钥（SSH Key）是一种用于安全登录远程服务器的&amp;quot;钥匙&amp;quot;，它由一对&lt;strong&gt;公钥&lt;/strong&gt;和&lt;strong&gt;私钥&lt;/strong&gt;组成。与密码相比，SSH 密钥更安全，也更方便。&lt;/p&gt;</description></item><item><title>MacOS 系统降级流程</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/macos-%E7%B3%BB%E7%BB%9F%E9%99%8D%E7%BA%A7%E6%B5%81%E7%A8%8B/</link><pubDate>Mon, 28 Jul 2025 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/macos-%E7%B3%BB%E7%BB%9F%E9%99%8D%E7%BA%A7%E6%B5%81%E7%A8%8B/</guid><description>&lt;p&gt;本文介绍如何将 Intel 芯片的 MacOS 从 13.x 版本降级到 10.15 或 12.x 版本（已实测），其他版本仅供参考。&lt;/p&gt;
&lt;div class="td-callout td-callout--warning" role="note"&gt;
 &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;重要提示&lt;/span&gt;&lt;/div&gt;
 &lt;div class="td-callout__body"&gt;
&lt;p&gt;降级过程会格式化全部磁盘内容，请务必提前备份所有重要数据，并在多处进行备份！&lt;/p&gt;</description></item><item><title>MySQL 常用 SQL 语句速查</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/mysql-%E5%B8%B8%E7%94%A8-sql-%E8%AF%AD%E5%8F%A5%E9%80%9F%E6%9F%A5/</link><pubDate>Fri, 09 May 2025 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/mysql-%E5%B8%B8%E7%94%A8-sql-%E8%AF%AD%E5%8F%A5%E9%80%9F%E6%9F%A5/</guid><description>&lt;h2 id="数据库操作"&gt;数据库操作
&lt;/h2&gt;
&lt;div class="td-code td-code--untitled" id="td-code-b7f3e932-fence-0" data-td-code data-td-code-auto-id
 data-td-language="sql" data-td-line-count="14"&gt;
 &lt;div class="td-code__viewport" id="td-code-b7f3e932-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 创建数据库 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DATABASE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据库名称&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 删除数据库 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;DROP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DATABASE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据库名称&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 查看所有数据库 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SHOW&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DATABASES&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 查看当前数据库的字符集等信息 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SHOW&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DATABASE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据库名称&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 修改数据库的字符集等属性 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DATABASE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据库名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;CHARACTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;utf8mb4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLLATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;utf8mb4_general_ci&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="数据表操作"&gt;数据表操作
&lt;/h2&gt;
&lt;div class="td-code td-code--untitled" id="td-code-b7f3e932-fence-1" data-td-code data-td-code-auto-id
 data-td-language="sql" data-td-line-count="26"&gt;
 &lt;div class="td-code__viewport" id="td-code-b7f3e932-fence-1-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 创建数据表 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据类型&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据类型&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;...);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 删除数据表 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;DROP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 查看当前数据库中的所有数据表 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SHOW&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;TABLES&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 查看数据表的结构 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;DESCRIBE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 查看数据表的创建语句 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SHOW&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 添加新列 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ADD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLUMN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;新字段&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据类型&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 修改列的数据类型 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;MODIFY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLUMN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;新数据类型&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 重命名列 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;CHANGE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLUMN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;新字段名&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据类型&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 删除列 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DROP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLUMN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="数据行操作"&gt;数据行操作
&lt;/h2&gt;
&lt;div class="td-code td-code--untitled" id="td-code-b7f3e932-fence-2" data-td-code data-td-code-auto-id
 data-td-language="sql" data-td-line-count="11"&gt;
 &lt;div class="td-code__viewport" id="td-code-b7f3e932-fence-2-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 插入数据行 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INTO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;...)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;VALUES&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;值&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;值&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;...);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 查询数据行 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;条件值1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 更新数据行 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;UPDATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;新值1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;新值2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;条件值1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 删除数据行 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;DELETE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;条件值1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="条件与排序"&gt;条件与排序
&lt;/h2&gt;
&lt;div class="td-code td-code--untitled" id="td-code-b7f3e932-fence-3" data-td-code data-td-code-auto-id
 data-td-language="sql" data-td-line-count="13"&gt;
 &lt;div class="td-code__viewport" id="td-code-b7f3e932-fence-3-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 条件查询 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;值&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;LIKE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;%关键词%&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;AND&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;值&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 排序 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;BY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 降序 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;BY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ASC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 升序（默认） */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 分页 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;LIMIT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 取前 10 条 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;LIMIT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;OFFSET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 跳过 20 条，取 10 条 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;LIMIT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 同上，简写形式 */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="聚合与分组"&gt;聚合与分组
&lt;/h2&gt;
&lt;div class="td-code td-code--untitled" id="td-code-b7f3e932-fence-4" data-td-code data-td-code-auto-id
 data-td-language="sql" data-td-line-count="10"&gt;
 &lt;div class="td-code__viewport" id="td-code-b7f3e932-fence-4-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 聚合函数 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 统计行数 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;金额字段&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 求和 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;价格字段&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 平均值 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;MAX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;年龄字段&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 最大值 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;MIN&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;年龄字段&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 最小值 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 分组统计 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;分类字段&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;GROUP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;BY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;分类字段&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;分类字段&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;金额&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;GROUP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;BY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;分类字段&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;HAVING&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;金额&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="索引"&gt;索引
&lt;/h2&gt;
&lt;div class="td-code td-code--untitled" id="td-code-b7f3e932-fence-5" data-td-code data-td-code-auto-id
 data-td-language="sql" data-td-line-count="9"&gt;
 &lt;div class="td-code__viewport" id="td-code-b7f3e932-fence-5-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 创建索引 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INDEX&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;索引名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INDEX&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;索引名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;字段&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 联合索引 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 删除索引 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;DROP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INDEX&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;索引名称&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 查看索引 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SHOW&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INDEX&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据表&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="用户管理"&gt;用户管理
&lt;/h2&gt;
&lt;div class="td-code td-code--untitled" id="td-code-b7f3e932-fence-6" data-td-code data-td-code-auto-id
 data-td-language="sql" data-td-line-count="19"&gt;
 &lt;div class="td-code__viewport" id="td-code-b7f3e932-fence-6-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 创建用户 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;USER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;用户名&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;IDENTIFIED&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;BY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;密码&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;USER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;用户名&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;%&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;IDENTIFIED&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;BY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;密码&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cm"&gt;/* 允许远程登录 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 授权 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;GRANT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ALL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;PRIVILEGES&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据库名&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;用户名&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;GRANT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;UPDATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;数据库名&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;用户名&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;%&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 刷新权限 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;FLUSH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;PRIVILEGES&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 查看用户 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;User&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mysql&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;user&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 修改密码 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;USER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;用户名&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;IDENTIFIED&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;BY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;新密码&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 删除用户 */&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;DROP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;USER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;用户名&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="常用数据类型"&gt;常用数据类型
&lt;/h2&gt;
&lt;h3 id="数值类型"&gt;数值类型
&lt;/h3&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;数据类型&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;th scope="col"&gt;取值范围&lt;/th&gt;
 &lt;th scope="col"&gt;适用场景&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;INT&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;普通整数&lt;/td&gt;
 &lt;td&gt;−21亿 ～ 21亿&lt;/td&gt;
 &lt;td&gt;用户ID、文章数量、年份&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;BIGINT&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;大整数&lt;/td&gt;
 &lt;td&gt;−922亿亿 ～ 922亿亿&lt;/td&gt;
 &lt;td&gt;订单号、日志ID、超大数据量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;FLOAT&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;单精度浮点数&lt;/td&gt;
 &lt;td&gt;约 7 位有效数字&lt;/td&gt;
 &lt;td&gt;科学计算、百分比&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;DOUBLE&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;双精度浮点数&lt;/td&gt;
 &lt;td&gt;约 15 位有效数字&lt;/td&gt;
 &lt;td&gt;科学计算、高精度要求&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;DECIMAL&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;定点数（精确）&lt;/td&gt;
 &lt;td&gt;取决于定义&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;金额、价格&lt;/strong&gt;（必须用这个，避免精度丢失）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;FLOAT(M,D)&lt;/code&gt; / &lt;code&gt;DOUBLE(M,D)&lt;/code&gt; / &lt;code&gt;DECIMAL(M,D)&lt;/code&gt; 中的 &lt;code&gt;(M,D)&lt;/code&gt; 表示总长度 M 位，其中 D 位是小数。例如 &lt;code&gt;DECIMAL(10,2)&lt;/code&gt; 总长 10 位，小数 2 位，整数 8 位。&lt;/p&gt;</description></item><item><title>Docker 常用命令速查</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/docker-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%80%9F%E6%9F%A5/</link><pubDate>Sun, 01 Dec 2024 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/docker-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%80%9F%E6%9F%A5/</guid><description>&lt;blockquote&gt;
&lt;p&gt;列出日常使用频率最高的命令。更多可参考 &lt;a href="https://www.runoob.com/docker/docker-command-manual.html"&gt;Docker 命令大全 | 菜鸟教程&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="容器管理"&gt;容器管理
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker ps&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出运行中的容器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker ps -a&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出所有容器（含已停止的）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker start &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;启动已停止的容器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker stop &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;停止运行中的容器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker restart &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;重启容器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker rm &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除已停止的容器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker rm -f &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;强制删除运行中的容器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker rename &amp;lt;容器&amp;gt; &amp;lt;新名称&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;重命名容器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="镜像管理"&gt;镜像管理
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker images&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出本地镜像&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker pull &amp;lt;镜像名&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;从仓库拉取镜像，如 &lt;code&gt;docker pull nginx&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker rmi &amp;lt;镜像名&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除本地镜像&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker build -t &amp;lt;标签&amp;gt; .&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;构建镜像，&lt;code&gt;-t&lt;/code&gt; 指定名称和标签&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker tag &amp;lt;镜像&amp;gt; &amp;lt;新标签&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;给镜像打标签&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker push &amp;lt;镜像名&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;推送镜像到远程仓库&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="日志与调试"&gt;日志与调试
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker logs &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看容器日志&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker logs -f --tail 100 &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;实时查看最近 100 条日志&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker exec -it &amp;lt;容器&amp;gt; bash&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;进入容器内部（交互式 Shell）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker inspect &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看容器的详细信息（JSON）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker stats&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;实时显示容器资源占用（CPU/内存）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker top &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看容器内运行的进程&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="docker-compose"&gt;Docker Compose
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker compose up -d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;后台启动所有服务&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker compose down&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;停止并移除所有容器和网络&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker compose ps&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出项目中的容器状态&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker compose logs -f&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;实时查看所有服务的日志&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker compose restart&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;重启所有服务&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker compose pull&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;拉取所有服务的最新镜像&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="系统维护"&gt;系统维护
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker system df&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看磁盘使用情况&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker system prune&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;清理未使用的容器、镜像、网络&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker system prune -a&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;清理所有未使用的资源（含未使用的镜像）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docker info&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看 Docker 系统信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Linux 常用命令速查</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/linux-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%80%9F%E6%9F%A5/</link><pubDate>Sun, 01 Dec 2024 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/linux-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%80%9F%E6%9F%A5/</guid><description>&lt;blockquote&gt;
&lt;p&gt;列出日常使用频率最高的命令。更多可参考 &lt;a href="https://www.runoob.com/linux/linux-command-manual.html"&gt;Linux 命令大全 | 菜鸟教程&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="系统信息"&gt;系统信息
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;uname -a&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示操作系统名称、内核版本、主机名等详细信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;who -b&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示系统上次启动时间&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;uptime&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示系统运行时长和负载&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;hostnamectl&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看或修改主机名&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;shutdown -h now&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;立即关机&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;shutdown -h 10&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;10 分钟后关机&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;reboot&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;重启服务器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="文件与目录"&gt;文件与目录
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示当前工作目录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;cd &amp;lt;路径&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;切换目录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出当前目录的文件和子目录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ls -la&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出所有文件（含隐藏文件）及详细信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;mkdir &amp;lt;目录名&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;创建目录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;rmdir &amp;lt;目录名&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除空目录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;cp &amp;lt;源&amp;gt; &amp;lt;目标&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;复制文件或目录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;mv &amp;lt;源&amp;gt; &amp;lt;目标&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;移动或重命名&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;rm &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;rm -rf &amp;lt;目录&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;强制递归删除目录（慎用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;touch &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;创建空文件或更新文件时间戳&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;cat &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看文件全部内容&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;less &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;分页查看文件内容（按 q 退出）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;head -n 20 &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看文件前 20 行&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tail -n 20 &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看文件最后 20 行&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tail -f &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;实时追踪文件新增内容（如日志）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="文件查找与内容搜索"&gt;文件查找与内容搜索
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;find &amp;lt;目录&amp;gt; -name &amp;quot;*.py&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;按文件名递归查找&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;grep &amp;quot;关键词&amp;quot; &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;在文件中搜索文本&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;grep -r &amp;quot;关键词&amp;quot; &amp;lt;目录&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;递归搜索目录下所有文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;wc &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;统计文件行数、单词数、字节数&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;wc -l &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;仅统计文件行数&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;sort &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;对文件内容排序&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="进程管理"&gt;进程管理
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ps aux&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看所有运行中的进程&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ps -ef&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看所有进程（另一格式）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;top&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;实时显示进程和系统资源占用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;htop&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;top 的增强版（需安装）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;kill &amp;lt;PID&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;终止指定进程&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;kill -9 &amp;lt;PID&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;强制终止进程&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nohup &amp;lt;命令&amp;gt; &amp;amp;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;后台运行命令（退出终端后继续）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="磁盘与内存"&gt;磁盘与内存
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;df -h&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看磁盘分区使用情况（人类可读）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;du -sh &amp;lt;目录&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看目录总大小&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;free -h&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看内存使用情况&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;free -m&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;以 MB 为单位显示内存&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="网络"&gt;网络
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ping &amp;lt;地址&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;测试网络连通性&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;curl &amp;lt;URL&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;发送 HTTP 请求&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;wget &amp;lt;URL&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;下载文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ss -tlnp&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看监听端口和对应进程&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;netstat -tlnp&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看监听端口（ss 的替代）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ip addr&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看网络接口和 IP 地址&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ifconfig&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看网络配置（需安装 net-tools）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="文件权限"&gt;文件权限
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;chmod 755 &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;设置文件权限&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;chmod +x &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;给文件添加可执行权限&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;chown &amp;lt;用户&amp;gt;:&amp;lt;组&amp;gt; &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;修改文件所属用户和组&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="压缩与归档"&gt;压缩与归档
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tar -czf 包名.tar.gz &amp;lt;目录&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;打包并压缩为 tar.gz&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tar -xzf 包名.tar.gz&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;解压 tar.gz&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;unzip &amp;lt;文件&amp;gt;.zip&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;解压 zip 文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;zip -r 包名.zip &amp;lt;目录&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;压缩为 zip&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="包管理debianubuntu"&gt;包管理（Debian/Ubuntu）
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;apt update&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;更新软件包索引&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;apt upgrade&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;升级所有可升级的软件包&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;apt install &amp;lt;包名&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;安装软件包&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;apt remove &amp;lt;包名&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;卸载软件包&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;apt search &amp;lt;关键词&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;搜索软件包&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Docker 重启策略详解</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/docker-%E9%87%8D%E5%90%AF%E7%AD%96%E7%95%A5%E8%AF%A6%E8%A7%A3/</link><pubDate>Fri, 29 Nov 2024 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/docker-%E9%87%8D%E5%90%AF%E7%AD%96%E7%95%A5%E8%AF%A6%E8%A7%A3/</guid><description>&lt;p&gt;Docker 容器的重启策略有四种：&lt;code&gt;no&lt;/code&gt;、&lt;code&gt;always&lt;/code&gt;、&lt;code&gt;on-failure&lt;/code&gt;、&lt;code&gt;unless-stopped&lt;/code&gt;。&lt;/p&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;情况&lt;/th&gt;
 &lt;th scope="col"&gt;no&lt;/th&gt;
 &lt;th scope="col"&gt;always&lt;/th&gt;
 &lt;th scope="col"&gt;on-failure&lt;/th&gt;
 &lt;th scope="col"&gt;unless-stopped&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;容器正常退出 (0 状态)&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;td&gt;重启&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;td&gt;重启&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;容器非正常退出 (非 0 状态)&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;td&gt;重启&lt;/td&gt;
 &lt;td&gt;重启&lt;/td&gt;
 &lt;td&gt;重启&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;手动停止 (&lt;code&gt;docker stop&lt;/code&gt;)&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Docker 服务重启 (如系统重启)&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;td&gt;重启&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;td&gt;不重启&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;下面通过一个 demo 来演示它们的区别。&lt;/p&gt;</description></item><item><title>Git 常用命令速查</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/git-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%80%9F%E6%9F%A5/</link><pubDate>Sun, 27 Oct 2024 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/git-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%80%9F%E6%9F%A5/</guid><description>&lt;blockquote&gt;
&lt;p&gt;本文基于 Git 2.46.0，日常使用中如有更多需求可查看 &lt;code&gt;git help&lt;/code&gt; 或官方文档。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="基本操作"&gt;基本操作
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;在当前目录初始化一个新的 Git 仓库&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git clone &amp;lt;地址&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;克隆远程仓库到本地&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;暂存所有修改过的文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git add &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;暂存指定文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git commit -m &amp;quot;说明&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;提交暂存区的内容&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git commit -am &amp;quot;说明&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;暂存所有已跟踪文件并提交（跳过 &lt;code&gt;git add&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看当前工作区状态&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="分支管理"&gt;分支管理
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git branch&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出本地分支（当前分支前有 &lt;code&gt;*&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git branch -a&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出所有分支（含远程分支）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git branch &amp;lt;名称&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;创建新分支&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git branch -d &amp;lt;名称&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除已合并的分支&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git branch -D &amp;lt;名称&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;强制删除分支（即使未合并）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git switch &amp;lt;名称&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;切换到已有分支&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git switch -c &amp;lt;名称&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;创建并切换到新分支&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git merge &amp;lt;分支&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将指定分支合并到当前分支&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git rebase &amp;lt;分支&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将当前分支变基到指定分支&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="查看历史"&gt;查看历史
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git log&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看提交历史&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git log --oneline&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;单行显示提交历史&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git log --oneline --graph&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;以图形方式显示分支历史&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git log -p&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示每次提交的 diff&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;比较工作区和暂存区的差异&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git diff --staged&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;比较暂存区和上次提交的差异&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git show&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看最新提交的详细信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git show &amp;lt;commit-id&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看指定提交的详细信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="撤销与暂存"&gt;撤销与暂存
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git restore &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;撤销工作区的修改（未暂存的文件）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git restore --staged &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;取消暂存（文件回到工作区）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git reset --soft HEAD~1&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;撤销上次提交，保留修改&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git reset --hard HEAD~1&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;撤销上次提交，丢弃修改（慎用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git stash&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;暂存当前工作区的修改&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git stash pop&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;恢复最近一次暂存并删除它&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git stash list&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看暂存列表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="远程协作"&gt;远程协作
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git remote -v&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看远程仓库地址&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git remote add origin &amp;lt;地址&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;添加远程仓库&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git push origin &amp;lt;分支&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;推送代码到远程&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git push -u origin &amp;lt;分支&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;首次推送并建立 upstream 关联&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;拉取远程代码并合并&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git fetch&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;拉取远程代码但不合并&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git clone &amp;lt;地址&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;克隆远程仓库&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="配置"&gt;配置
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git config --list&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看当前所有配置&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git config --global user.name &amp;quot;名称&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;设置全局用户名&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git config --global user.email &amp;quot;邮箱&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;设置全局邮箱&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git config user.name &amp;quot;名称&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;设置当前仓库的用户名&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git config user.email &amp;quot;邮箱&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;设置当前仓库的邮箱&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git config --global http.proxy &amp;lt;地址&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;设置 HTTP 代理&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git config --global --unset http.proxy&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;取消 HTTP 代理&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id="其他"&gt;其他
&lt;/h2&gt;
&lt;div class="td-table-scroll td-table-scroll--static"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th scope="col"&gt;命令&lt;/th&gt;
 &lt;th scope="col"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git tag&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出所有标签&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git tag &amp;lt;名称&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;创建轻量标签&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git mv &amp;lt;旧文件&amp;gt; &amp;lt;新文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;重命名或移动文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git rm &amp;lt;文件&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;从仓库中删除文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git clean -df&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除未跟踪的文件和目录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git help&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看 Git 帮助信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;git -v&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看 Git 版本&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Docker 远程管理 Portainer</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/docker-%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86-portainer/</link><pubDate>Mon, 07 Oct 2024 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/docker-%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86-portainer/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;
 &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;2024-10-08 update 安全提醒&lt;/span&gt;&lt;/div&gt;
 &lt;div class="td-callout__body"&gt;
&lt;p&gt;直接暴露 Docker API 端口（2375）到公网没有任何加密和认证。配置完成后务必限制防火墙来源 IP，或配置 TLS 加密。否则可能被加密劫持蠕虫盯上。&lt;/p&gt;</description></item><item><title>Git 清理远端仓库全部提交历史</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/git-%E6%B8%85%E7%90%86%E8%BF%9C%E7%AB%AF%E4%BB%93%E5%BA%93%E5%85%A8%E9%83%A8%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2/</link><pubDate>Wed, 11 Sep 2024 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/git-%E6%B8%85%E7%90%86%E8%BF%9C%E7%AB%AF%E4%BB%93%E5%BA%93%E5%85%A8%E9%83%A8%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;
 &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;注意&lt;/span&gt;&lt;/div&gt;
 &lt;div class="td-callout__body"&gt;
&lt;p&gt;此操作不可逆，会永久删除仓库的所有提交历史，请提前做好备份。&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;&lt;h2 id="背景"&gt;背景
&lt;/h2&gt;
&lt;p&gt;当提交记录中包含隐私信息（如密钥、密码），或仓库因上传大量文件导致体积过大、拉取频繁出错时，可以通过清除全部提交历史来&amp;quot;瘦身&amp;quot;仓库，同时保留仓库本身（Star、Issues 等不受影响）。&lt;/p&gt;</description></item><item><title>Git 多仓库身份配置</title><link>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/git-%E5%A4%9A%E4%BB%93%E5%BA%93%E8%BA%AB%E4%BB%BD%E9%85%8D%E7%BD%AE/</link><pubDate>Mon, 12 Aug 2024 00:00:00 +0800</pubDate><guid>https://mlosun.com/docs/%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0/git-%E5%A4%9A%E4%BB%93%E5%BA%93%E8%BA%AB%E4%BB%BD%E9%85%8D%E7%BD%AE/</guid><description>&lt;p&gt;工作电脑上同时有个人项目和公司项目时，如果不做配置，所有提交都会使用同一个用户名和邮箱。这篇文章教你如何让 Git 根据仓库自动切换身份。&lt;/p&gt;
&lt;h2 id="配置优先级"&gt;配置优先级
&lt;/h2&gt;
&lt;p&gt;Git 采用三层配置覆盖，优先级&lt;strong&gt;从低到高&lt;/strong&gt;：&lt;/p&gt;</description></item></channel></rss>