<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IDZD - 乐于探索</title><link>https://www.idzd.top/</link><description>Recent content on IDZD - 乐于探索</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 30 Jul 2026 09:30:16 +0800</lastBuildDate><atom:link href="https://www.idzd.top/feed.xml" rel="self" type="application/rss+xml"/><item><title>Tauri 与 Electron 的 macOS 签名、公证配置</title><link>https://www.idzd.top/archives/2959/</link><pubDate>Thu, 30 Jul 2026 08:02:00 +0800</pubDate><guid>https://www.idzd.top/archives/2959/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2026/07/30/1785400690.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2026/07/30/1785400690.webp" src="https://www.idzd.top/img/lazy.gif" alt="小玩具"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;最近 Vibe Coding 上头，把之前买的Mac mini m4 (上车上的早，没想到成理财产品了)，又翻出来玩玩。&lt;/p&gt;&#10;&lt;p&gt;但是升级到 MacOS 26 后发现，如果不签名。进行 App 分发举步维艰。于是就有了本文。&lt;/p&gt;</description></item><item><title>代码高亮测试文档</title><link>https://www.idzd.top/archives/2722/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0800</pubDate><guid>https://www.idzd.top/archives/2722/</guid><description>&lt;p&gt;代码高亮测试文档&lt;/p&gt;&#10;&lt;p&gt;用于测试各语言代码块的语法高亮效果。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="bash"&gt;Bash&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#!/bin/bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 定义变量&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;NAME&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;World&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;COUNT&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#ff9f43"&gt;5&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 循环输出&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;for&lt;/span&gt; i in &lt;span style="color:#ff6ac1"&gt;$(&lt;/span&gt;seq &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;$COUNT&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;)&lt;/span&gt;; &lt;span style="color:#ff6ac1"&gt;do&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;echo&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;Hello, &lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$NAME&lt;/span&gt;&lt;span style="color:#5af78e"&gt;! 第 &lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$i&lt;/span&gt;&lt;span style="color:#5af78e"&gt; 次&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;done&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 函数定义&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;greet&lt;span style="color:#ff6ac1"&gt;()&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;local&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;user&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt; -z &lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$user&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;; &lt;span style="color:#ff6ac1"&gt;then&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;echo&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;用法: greet &amp;lt;用户名&amp;gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;fi&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;echo&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;你好, &lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$user&lt;/span&gt;&lt;span style="color:#5af78e"&gt;!&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;greet &lt;span style="color:#5af78e"&gt;&amp;#34;Claude&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 文件操作&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt; -f &lt;span style="color:#5af78e"&gt;&amp;#34;/etc/os-release&amp;#34;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;; &lt;span style="color:#ff6ac1"&gt;then&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;source&lt;/span&gt; /etc/os-release&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;echo&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;当前系统: &lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$NAME&lt;/span&gt;&lt;span style="color:#5af78e"&gt; &lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$VERSION_ID&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;fi&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 id="css"&gt;CSS&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;/* 全局样式重置 */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;:&lt;span style="color:#ff9f43"&gt;root&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;--primary-color&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;#3498db&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;--font-size-base&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;16&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;px&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;body&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;margin&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;padding&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;font-family&lt;/span&gt;: &lt;span style="color:#5af78e"&gt;&amp;#39;Segoe UI&amp;#39;&lt;/span&gt;, &lt;span style="color:#ff6ac1"&gt;sans-serif&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;font-size&lt;/span&gt;: &lt;span style="color:#57c7ff"&gt;var&lt;/span&gt;(&lt;span style="color:#ff6ac1"&gt;--&lt;/span&gt;font&lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt;size&lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt;base);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;background-color&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;#f5f5f5&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;/* 卡片组件 */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;.&lt;span style="color:#f3f99d"&gt;card&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;display&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;flex&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;flex-direction&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;column&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;align-items&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;center&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;width&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;300&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;px&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;padding&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;1.5&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;rem&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;border-radius&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;8&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;px&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;box-shadow&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;2&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;px&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;8&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;px&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;rgba&lt;/span&gt;(&lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;0.15&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;transition&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;transform&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;0.3&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;s&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;ease&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt;.&lt;span style="color:#f3f99d"&gt;card&lt;/span&gt;:&lt;span style="color:#ff9f43"&gt;hover&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;transform&lt;/span&gt;: &lt;span style="color:#ff5c57"&gt;translateY&lt;/span&gt;(&lt;span style="color:#ff9f43"&gt;-4&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;px&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;29&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;30&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;31&lt;/span&gt;&lt;span&gt;@&lt;span style="color:#ff6ac1"&gt;media&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;(&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;max-width&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;768px&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;)&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;32&lt;/span&gt;&lt;span&gt; .&lt;span style="color:#f3f99d"&gt;card&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;33&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;width&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;100&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;%&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;34&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;35&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 id="javascript"&gt;JavaScript&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// 异步数据获取示例&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;const&lt;/span&gt; API_URL &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;https://api.example.com&amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// 封装 fetch 请求&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;async&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;function&lt;/span&gt; fetchData(endpoint) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;try&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;const&lt;/span&gt; response &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;await&lt;/span&gt; fetch(&lt;span style="color:#5af78e"&gt;`&lt;/span&gt;&lt;span style="color:#5af78e"&gt;${&lt;/span&gt;API_URL&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;/&lt;/span&gt;&lt;span style="color:#5af78e"&gt;${&lt;/span&gt;endpoint&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;`&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (&lt;span style="color:#ff6ac1"&gt;!&lt;/span&gt;response.ok) &lt;span style="color:#ff6ac1"&gt;throw&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;new&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;Error&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;`HTTP 错误: &lt;/span&gt;&lt;span style="color:#5af78e"&gt;${&lt;/span&gt;response.status&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;`&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;await&lt;/span&gt; response.json();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; } &lt;span style="color:#ff6ac1"&gt;catch&lt;/span&gt; (err) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt; console.error(&lt;span style="color:#5af78e"&gt;&amp;#34;请求失败:&amp;#34;&lt;/span&gt;, err.message);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;null&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// 使用 Promise 链&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt;fetchData(&lt;span style="color:#5af78e"&gt;&amp;#34;users&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; .then(data =&amp;gt; data&lt;span style="color:#ff6ac1"&gt;?&lt;/span&gt;.map(user =&amp;gt; ({ id&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; user.id, name&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; user.name })))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; .then(users =&amp;gt; console.log(&lt;span style="color:#5af78e"&gt;&amp;#34;用户列表:&amp;#34;&lt;/span&gt;, users))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; .&lt;span style="color:#ff6ac1"&gt;catch&lt;/span&gt;(console.error);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// 防抖函数&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;function&lt;/span&gt; debounce(fn, delay &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;300&lt;/span&gt;) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; timer;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; (...args) =&amp;gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; clearTimeout(timer);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt; timer &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; setTimeout(() =&amp;gt; fn(...args), delay);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt; };&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;29&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;30&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;31&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;const&lt;/span&gt; handleSearch &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; debounce(query =&amp;gt; console.log(&lt;span style="color:#5af78e"&gt;&amp;#34;搜索:&amp;#34;&lt;/span&gt;, query));&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 id="java"&gt;Java&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;import&lt;/span&gt; java.util.List;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;import&lt;/span&gt; java.util.stream.Collectors;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// 泛型栈实现&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;public&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;class&lt;/span&gt; &lt;span style="color:#f3f99d"&gt;Stack&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt;T&lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;private&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;final&lt;/span&gt; List&lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt;T&lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; items &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;new&lt;/span&gt; java.&lt;span style="color:#57c7ff"&gt;util&lt;/span&gt;.&lt;span style="color:#57c7ff"&gt;ArrayList&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;&amp;gt;&lt;/span&gt;();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;public&lt;/span&gt; &lt;span style="color:#9aedfe"&gt;void&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;push&lt;/span&gt;(T item) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; items.&lt;span style="color:#57c7ff"&gt;add&lt;/span&gt;(item);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;public&lt;/span&gt; T &lt;span style="color:#57c7ff"&gt;pop&lt;/span&gt;() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (isEmpty()) &lt;span style="color:#ff6ac1"&gt;throw&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;new&lt;/span&gt; RuntimeException(&lt;span style="color:#5af78e"&gt;&amp;#34;栈为空&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; items.&lt;span style="color:#57c7ff"&gt;remove&lt;/span&gt;(items.&lt;span style="color:#57c7ff"&gt;size&lt;/span&gt;() &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt; 1);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;public&lt;/span&gt; &lt;span style="color:#9aedfe"&gt;boolean&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;isEmpty&lt;/span&gt;() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; items.&lt;span style="color:#57c7ff"&gt;isEmpty&lt;/span&gt;();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;// Stream 操作示例&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;public&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;static&lt;/span&gt; &lt;span style="color:#9aedfe"&gt;void&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;main&lt;/span&gt;(String&lt;span style="color:#ff6ac1"&gt;[]&lt;/span&gt; args) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt; List&lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt;String&lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; names &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; List.&lt;span style="color:#57c7ff"&gt;of&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;Alice&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;Bob&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;Charlie&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;Dave&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt; String result &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; names.&lt;span style="color:#57c7ff"&gt;stream&lt;/span&gt;()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; .&lt;span style="color:#57c7ff"&gt;filter&lt;/span&gt;(name &lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt; name.&lt;span style="color:#57c7ff"&gt;length&lt;/span&gt;() &lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; 3)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt; .&lt;span style="color:#57c7ff"&gt;map&lt;/span&gt;(String::toUpperCase)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt; .&lt;span style="color:#57c7ff"&gt;collect&lt;/span&gt;(Collectors.&lt;span style="color:#57c7ff"&gt;joining&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;, &amp;#34;&lt;/span&gt;));&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;29&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;30&lt;/span&gt;&lt;span&gt; System.&lt;span style="color:#57c7ff"&gt;out&lt;/span&gt;.&lt;span style="color:#57c7ff"&gt;println&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;过滤结果: &amp;#34;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt; result);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;31&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;32&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 id="c"&gt;C&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#include&lt;/span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span style="color:#78787e"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#include&lt;/span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span style="color:#78787e"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#include&lt;/span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;span style="color:#78787e"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;/* 链表节点定义 */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;typedef&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;struct&lt;/span&gt; Node {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; &lt;span style="color:#9aedfe"&gt;int&lt;/span&gt; data;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;struct&lt;/span&gt; Node &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;next;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;} Node;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;/* 创建新节点 */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;Node &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;create_node&lt;/span&gt;(&lt;span style="color:#9aedfe"&gt;int&lt;/span&gt; data) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; Node &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;node &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; (Node &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;)&lt;span style="color:#57c7ff"&gt;malloc&lt;/span&gt;(&lt;span style="color:#ff6ac1"&gt;sizeof&lt;/span&gt;(Node));&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (&lt;span style="color:#ff6ac1"&gt;!&lt;/span&gt;node) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;fprintf&lt;/span&gt;(stderr, &lt;span style="color:#5af78e"&gt;&amp;#34;内存分配失败&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\n&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;exit&lt;/span&gt;(EXIT_FAILURE);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; node&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;data &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; data;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; node&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;next &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;NULL&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; node;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;/* 打印链表 */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt;&lt;span style="color:#9aedfe"&gt;void&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;print_list&lt;/span&gt;(Node &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;head) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;for&lt;/span&gt; (Node &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;cur &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; head; cur &lt;span style="color:#ff6ac1"&gt;!=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;NULL&lt;/span&gt;; cur &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; cur&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;next) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;printf&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;%d -&amp;gt; &amp;#34;&lt;/span&gt;, cur&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;data);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;printf&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;NULL&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\n&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;29&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;30&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;31&lt;/span&gt;&lt;span&gt;&lt;span style="color:#9aedfe"&gt;int&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;main&lt;/span&gt;() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;32&lt;/span&gt;&lt;span&gt; Node &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;head &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;create_node&lt;/span&gt;(&lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;33&lt;/span&gt;&lt;span&gt; head&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;next &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;create_node&lt;/span&gt;(&lt;span style="color:#ff9f43"&gt;2&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;34&lt;/span&gt;&lt;span&gt; head&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;next&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;next &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;create_node&lt;/span&gt;(&lt;span style="color:#ff9f43"&gt;3&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;35&lt;/span&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;print_list&lt;/span&gt;(head);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;36&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;37&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 id="c-1"&gt;C++&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#include&lt;/span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#78787e"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#include&lt;/span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;vector&amp;gt;&lt;/span&gt;&lt;span style="color:#78787e"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#include&lt;/span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;algorithm&amp;gt;&lt;/span&gt;&lt;span style="color:#78787e"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// 模板函数：快速排序&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;template&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;typename&lt;/span&gt; T&lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#9aedfe"&gt;void&lt;/span&gt; quick_sort(std&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;vector&lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt;T&lt;span style="color:#ff6ac1"&gt;&amp;gt;&amp;amp;&lt;/span&gt; arr, &lt;span style="color:#9aedfe"&gt;int&lt;/span&gt; left, &lt;span style="color:#9aedfe"&gt;int&lt;/span&gt; right) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (left &lt;span style="color:#ff6ac1"&gt;&amp;gt;=&lt;/span&gt; right) &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; T pivot &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; arr[(left &lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt; right) &lt;span style="color:#ff6ac1"&gt;/&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;2&lt;/span&gt;];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; &lt;span style="color:#9aedfe"&gt;int&lt;/span&gt; i &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; left, j &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; right;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;while&lt;/span&gt; (i &lt;span style="color:#ff6ac1"&gt;&amp;lt;=&lt;/span&gt; j) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;while&lt;/span&gt; (arr[i] &lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt; pivot) i&lt;span style="color:#ff6ac1"&gt;++&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;while&lt;/span&gt; (arr[j] &lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; pivot) j&lt;span style="color:#ff6ac1"&gt;--&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (i &lt;span style="color:#ff6ac1"&gt;&amp;lt;=&lt;/span&gt; j) std&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;swap(arr[i&lt;span style="color:#ff6ac1"&gt;++&lt;/span&gt;], arr[j&lt;span style="color:#ff6ac1"&gt;--&lt;/span&gt;]);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; quick_sort(arr, left, j);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; quick_sort(arr, i, right);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;&lt;span style="color:#9aedfe"&gt;int&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;main&lt;/span&gt;() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt; std&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;vector&lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;int&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; nums &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; {&lt;span style="color:#ff9f43"&gt;5&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;3&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;8&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;9&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;2&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;7&lt;/span&gt;};&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt; quick_sort(nums, &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;, nums.size() &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; std&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;cout &lt;span style="color:#ff6ac1"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;排序结果: &amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;for&lt;/span&gt; (&lt;span style="color:#ff6ac1"&gt;const&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;auto&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;n&lt;/span&gt; : nums) std&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;cout &lt;span style="color:#ff6ac1"&gt;&amp;lt;&amp;lt;&lt;/span&gt; n &lt;span style="color:#ff6ac1"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34; &amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt; std&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;cout &lt;span style="color:#ff6ac1"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;endl;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;29&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;30&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;31&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 id="php"&gt;PHP&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;?&lt;/span&gt;php&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// 数据库连接类（PDO 封装）&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;class&lt;/span&gt; &lt;span style="color:#f3f99d"&gt;Database&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;private&lt;/span&gt; PDO &lt;span style="color:#ff5c57"&gt;$pdo&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;public&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;function&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;__construct&lt;/span&gt;(string &lt;span style="color:#ff5c57"&gt;$dsn&lt;/span&gt;, string &lt;span style="color:#ff5c57"&gt;$user&lt;/span&gt;, string &lt;span style="color:#ff5c57"&gt;$pass&lt;/span&gt;) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;$this&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;pdo&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;new&lt;/span&gt; PDO(&lt;span style="color:#ff5c57"&gt;$dsn&lt;/span&gt;, &lt;span style="color:#ff5c57"&gt;$user&lt;/span&gt;, &lt;span style="color:#ff5c57"&gt;$pass&lt;/span&gt;, [&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; PDO&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;ATTR_ERRMODE&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; PDO&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;ERRMODE_EXCEPTION&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; PDO&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;ATTR_DEFAULT_FETCH_MODE&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; PDO&lt;span style="color:#ff6ac1"&gt;::&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;FETCH_ASSOC&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt; ]);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;// 安全查询&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;public&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;function&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;query&lt;/span&gt;(string &lt;span style="color:#ff5c57"&gt;$sql&lt;/span&gt;, &lt;span style="color:#ff6ac1"&gt;array&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;$params&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; [])&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;array&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;$stmt&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;$this&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;pdo&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;prepare&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;$sql&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;$stmt&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;execute&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;$params&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;$stmt&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#57c7ff"&gt;fetchAll&lt;/span&gt;();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// 路由分发示例&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;$routes&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; [&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;GET /users&amp;#39;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; fn() &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; [&lt;span style="color:#5af78e"&gt;&amp;#39;status&amp;#39;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;ok&amp;#39;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#39;data&amp;#39;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; []],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;POST /users&amp;#39;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; fn() &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; [&lt;span style="color:#5af78e"&gt;&amp;#39;status&amp;#39;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;created&amp;#39;&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt;];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;$method&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;$_SERVER&lt;/span&gt;[&lt;span style="color:#5af78e"&gt;&amp;#39;REQUEST_METHOD&amp;#39;&lt;/span&gt;];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;29&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;$path&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; parse_url(&lt;span style="color:#ff5c57"&gt;$_SERVER&lt;/span&gt;[&lt;span style="color:#5af78e"&gt;&amp;#39;REQUEST_URI&amp;#39;&lt;/span&gt;], PHP_URL_PATH);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;30&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;$key&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;$method&lt;/span&gt;&lt;span style="color:#5af78e"&gt; &lt;/span&gt;&lt;span style="color:#5af78e"&gt;$path&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;31&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;32&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;$response&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; isset(&lt;span style="color:#ff5c57"&gt;$routes&lt;/span&gt;[&lt;span style="color:#ff5c57"&gt;$key&lt;/span&gt;]) &lt;span style="color:#ff6ac1"&gt;?&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;$routes&lt;/span&gt;[&lt;span style="color:#ff5c57"&gt;$key&lt;/span&gt;]() &lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; [&lt;span style="color:#5af78e"&gt;&amp;#39;status&amp;#39;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;404&lt;/span&gt;];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;33&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;echo&lt;/span&gt; json_encode(&lt;span style="color:#ff5c57"&gt;$response&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 id="rust"&gt;Rust&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-rust" data-lang="rust"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;use&lt;/span&gt; std::collections::HashMap;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// 枚举定义&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#[derive(Debug)]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;enum&lt;/span&gt; &lt;span style="color:#f3f99d"&gt;Shape&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt; Circle(&lt;span style="color:#9aedfe"&gt;f64&lt;/span&gt;),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; Rectangle(&lt;span style="color:#9aedfe"&gt;f64&lt;/span&gt;, &lt;span style="color:#9aedfe"&gt;f64&lt;/span&gt;),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; Triangle(&lt;span style="color:#9aedfe"&gt;f64&lt;/span&gt;, &lt;span style="color:#9aedfe"&gt;f64&lt;/span&gt;, &lt;span style="color:#9aedfe"&gt;f64&lt;/span&gt;),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;impl&lt;/span&gt; Shape {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;// 计算面积&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;fn&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;area&lt;/span&gt;(&lt;span style="color:#ff6ac1"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;self&lt;/span&gt;) -&amp;gt; &lt;span style="color:#9aedfe"&gt;f64&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;match&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;self&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; Shape::Circle(r) &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; std::&lt;span style="color:#9aedfe"&gt;f64&lt;/span&gt;::consts::&lt;span style="color:#ff9f43"&gt;PI&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; r &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; r,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; Shape::Rectangle(w, h) &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; w &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; h,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; Shape::Triangle(a, b, c) &lt;span style="color:#ff6ac1"&gt;=&amp;gt;&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; s &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; (a &lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt; b &lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt; c) &lt;span style="color:#ff6ac1"&gt;/&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;2.0&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; (s &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; (s &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt; a) &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; (s &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt; b) &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; (s &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt; c)).sqrt()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;fn&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;main&lt;/span&gt;() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; shapes: &lt;span style="color:#ff5c57"&gt;Vec&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt;Shape&lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;vec!&lt;/span&gt;[&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt; Shape::Circle(&lt;span style="color:#ff9f43"&gt;5.0&lt;/span&gt;),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt; Shape::Rectangle(&lt;span style="color:#ff9f43"&gt;4.0&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;6.0&lt;/span&gt;),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;29&lt;/span&gt;&lt;span&gt; Shape::Triangle(&lt;span style="color:#ff9f43"&gt;3.0&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;4.0&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;5.0&lt;/span&gt;),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;30&lt;/span&gt;&lt;span&gt; ];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;31&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;32&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;for&lt;/span&gt; shape &lt;span style="color:#ff6ac1"&gt;in&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;amp;&lt;/span&gt;shapes {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;33&lt;/span&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;println!&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;{:?}&lt;/span&gt;&lt;span style="color:#5af78e"&gt; 面积: &lt;/span&gt;&lt;span style="color:#5af78e"&gt;{:.2}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;, shape, shape.area());&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;34&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;35&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;36&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;// HashMap 统计词频&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;37&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; text &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;hello world hello rust world hello&amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;38&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;mut&lt;/span&gt; freq: &lt;span style="color:#f3f99d"&gt;HashMap&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;&amp;amp;&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;str&lt;/span&gt;, &lt;span style="color:#9aedfe"&gt;u32&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; HashMap::new();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;39&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;for&lt;/span&gt; word &lt;span style="color:#ff6ac1"&gt;in&lt;/span&gt; text.split_whitespace() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;40&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;freq.entry(word).or_insert(&lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;+=&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;41&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;42&lt;/span&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;println!&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;词频统计: &lt;/span&gt;&lt;span style="color:#5af78e"&gt;{:?}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;, freq);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;43&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 id="python"&gt;Python&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;from&lt;/span&gt; dataclasses &lt;span style="color:#ff6ac1"&gt;import&lt;/span&gt; dataclass, field&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;from&lt;/span&gt; typing &lt;span style="color:#ff6ac1"&gt;import&lt;/span&gt; Optional&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;import&lt;/span&gt; functools&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 数据类定义&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff9f43"&gt;@dataclass&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;class&lt;/span&gt; &lt;span style="color:#f3f99d"&gt;Student&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; name: &lt;span style="color:#ff5c57"&gt;str&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; score: &lt;span style="color:#ff5c57"&gt;float&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; grade: &lt;span style="color:#ff5c57"&gt;str&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; field(init&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;False&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;def&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;__post_init__&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;self&lt;/span&gt;):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;self&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;.&lt;/span&gt;grade &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;self&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;.&lt;/span&gt;_calc_grade()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;def&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;_calc_grade&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;self&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;str&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;match&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;self&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;.&lt;/span&gt;score:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;case&lt;/span&gt; s &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; s &lt;span style="color:#ff6ac1"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;90&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;case&lt;/span&gt; s &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; s &lt;span style="color:#ff6ac1"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;75&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;B&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;case&lt;/span&gt; s &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; s &lt;span style="color:#ff6ac1"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;60&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;C&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;case&lt;/span&gt; _: &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;F&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 装饰器：缓存计算结果&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff9f43"&gt;@functools.lru_cache&lt;/span&gt;(maxsize&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#ff9f43"&gt;128&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;def&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;fibonacci&lt;/span&gt;(n: &lt;span style="color:#ff5c57"&gt;int&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;int&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;&amp;#34;&amp;#34;递归计算斐波那契数列（带缓存）&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; n &lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;2&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; n&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; fibonacci(n &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt; fibonacci(n &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;2&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;29&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;30&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 生成器：无限素数序列&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;31&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;def&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;primes&lt;/span&gt;():&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;32&lt;/span&gt;&lt;span&gt; sieve: &lt;span style="color:#ff5c57"&gt;dict&lt;/span&gt;[&lt;span style="color:#ff5c57"&gt;int&lt;/span&gt;, &lt;span style="color:#ff5c57"&gt;int&lt;/span&gt;] &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; {}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;33&lt;/span&gt;&lt;span&gt; n &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;34&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;while&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;True&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;35&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; n &lt;span style="color:#ff6ac1"&gt;not&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;in&lt;/span&gt; sieve:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;36&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;yield&lt;/span&gt; n&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;37&lt;/span&gt;&lt;span&gt; sieve[n &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; n] &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; n&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;38&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;39&lt;/span&gt;&lt;span&gt; p &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; sieve&lt;span style="color:#ff6ac1"&gt;.&lt;/span&gt;pop(n)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;40&lt;/span&gt;&lt;span&gt; sieve[n &lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt; p] &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; p&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;41&lt;/span&gt;&lt;span&gt; n &lt;span style="color:#ff6ac1"&gt;+=&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;42&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;43&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;__name__&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;==&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;44&lt;/span&gt;&lt;span&gt; students &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; [Student(&lt;span style="color:#5af78e"&gt;&amp;#34;Alice&amp;#34;&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;92&lt;/span&gt;), Student(&lt;span style="color:#5af78e"&gt;&amp;#34;Bob&amp;#34;&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;78&lt;/span&gt;), Student(&lt;span style="color:#5af78e"&gt;&amp;#34;Carol&amp;#34;&lt;/span&gt;, &lt;span style="color:#ff9f43"&gt;55&lt;/span&gt;)]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;45&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;for&lt;/span&gt; s &lt;span style="color:#ff6ac1"&gt;in&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;sorted&lt;/span&gt;(students, key&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;lambda&lt;/span&gt; x: &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt;x&lt;span style="color:#ff6ac1"&gt;.&lt;/span&gt;score):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;46&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;print&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;f&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;{&lt;/span&gt;s&lt;span style="color:#ff6ac1"&gt;.&lt;/span&gt;name&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;: &lt;/span&gt;&lt;span style="color:#5af78e"&gt;{&lt;/span&gt;s&lt;span style="color:#ff6ac1"&gt;.&lt;/span&gt;score&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt; (&lt;/span&gt;&lt;span style="color:#5af78e"&gt;{&lt;/span&gt;s&lt;span style="color:#ff6ac1"&gt;.&lt;/span&gt;grade&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;)&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;47&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;48&lt;/span&gt;&lt;span&gt; gen &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; primes()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;49&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;print&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;前10个素数:&amp;#34;&lt;/span&gt;, [&lt;span style="color:#ff5c57"&gt;next&lt;/span&gt;(gen) &lt;span style="color:#ff6ac1"&gt;for&lt;/span&gt; _ &lt;span style="color:#ff6ac1"&gt;in&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;range&lt;/span&gt;(&lt;span style="color:#ff9f43"&gt;10&lt;/span&gt;)])&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;p&gt;&lt;em&gt;文档结束 — 共 9 种语言&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Chromium 历史版本下载器</title><link>https://www.idzd.top/archives/2940/</link><pubDate>Fri, 20 Mar 2026 02:43:34 +0800</pubDate><guid>https://www.idzd.top/archives/2940/</guid><description>&lt;!--markdown--&gt;最近因为工作需要，我得测试很多的Chromium兼容性。&#10;&lt;p&gt;但是，google官方又仅提供最新版本的。网上搜索那些第三方的网站，要不仅有最新的2个版本，要么好久没有更新了。&lt;/p&gt;</description></item><item><title>PVE扩容Mac虚拟机磁盘</title><link>https://www.idzd.top/archives/2939/</link><pubDate>Wed, 12 Nov 2025 01:41:00 +0800</pubDate><guid>https://www.idzd.top/archives/2939/</guid><description>&lt;p&gt;目前是用的 PVE 的 MacOS 的懒人包，但是虚拟机本身的磁盘不算太大，所以有了扩容的需要。&lt;/p&gt;&#10;&lt;p&gt;因为中途踩了些坑，所以简单记录下&lt;/p&gt;&#10;&lt;h3 id="1-扩容-pve-虚拟磁盘"&gt;1. 扩容 PVE 虚拟磁盘&lt;/h3&gt;&#10;&lt;p&gt;这没啥说的，关键改参数就行。&#10;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2025/11/12/1762911046.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2025/11/12/1762911046.webp" src="https://www.idzd.top/img/lazy.gif" alt="扩容PVE虚拟磁盘"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>使用pnpm10初始化Electron项目提示Electron uninstall</title><link>https://www.idzd.top/archives/2923/</link><pubDate>Tue, 08 Apr 2025 02:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/2923/</guid><description>&lt;p&gt;最近正好有些需求，需要使用Electron来开发客户端。因为最近一直在用tauri，我把我这的默认包管理换成了pnpm。&lt;/p&gt;&#10;&lt;p&gt;所以就顺手使用pnpm来初始化Electron项目。&lt;/p&gt;</description></item><item><title>Brave在中文环境下编译报错</title><link>https://www.idzd.top/archives/2917/</link><pubDate>Mon, 19 Aug 2024 15:47:14 +0800</pubDate><guid>https://www.idzd.top/archives/2917/</guid><description>&lt;p&gt;最近，突然接触到Brave这个浏览器，正好有研究源码的需求。就尝试在本地编译一个。&lt;/p&gt;&#10;&lt;p&gt;但是在编译过程中抛出报错：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;UnicodeDecodeError: &lt;span style="color:#5af78e"&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt; codec can&lt;span style="color:#ff5c57"&gt;&amp;#39;&lt;/span&gt;t decode byte 0xd2 in position 506: invalid continuation byte&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;提示在&lt;code&gt;python3\bin\Lib\subprocess.py&lt;/code&gt; 文件中1016行的问题。&lt;/p&gt;</description></item><item><title>Windows 生成的p12证书，Mac提示密码错误</title><link>https://www.idzd.top/archives/2904/</link><pubDate>Tue, 30 Apr 2024 09:18:00 +0800</pubDate><guid>https://www.idzd.top/archives/2904/</guid><description>&lt;p&gt;上篇文章说到使用客户端证书认证访问网站，但是使用证书需要安装。&lt;/p&gt;&#10;&lt;p&gt;但是我发现在Windows上生成的p12证书在MacOS上一直提示密码错误。&lt;/p&gt;&#10;&lt;p&gt;怀疑是生成时的加密算法的问题，这里记录下如何转换证书在MacOS上正常使用。&lt;/p&gt;&#10;&lt;h2 id="导入证书到系统"&gt;导入证书到系统&lt;/h2&gt;&#10;&lt;p&gt;记得勾选可以导出私钥&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2024/04/30/2024-04-30_165007.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2024/04/30/2024-04-30_165007.webp" src="https://www.idzd.top/img/lazy.gif" alt="记得勾选可以导出私钥"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;h2 id="导出证书"&gt;导出证书&lt;/h2&gt;&#10;&lt;p&gt;设置中搜索证书管理器，因为刚才的证书安装到个人区域，所以我们这里选择 &lt;strong&gt;管理用户证书&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Nginx 配置客户端证书认证</title><link>https://www.idzd.top/archives/2897/</link><pubDate>Tue, 30 Apr 2024 08:07:00 +0800</pubDate><guid>https://www.idzd.top/archives/2897/</guid><description>&lt;p&gt;最近，有个内部服务需要使用公网上，担心被暴力刷API破解。&lt;/p&gt;&#10;&lt;p&gt;正好看到有个双向证书认证的方案，挺符合需求，踩了不少坑，简单记录下&lt;/p&gt;&#10;&lt;h2 id="生成证书"&gt;生成证书&lt;/h2&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;仅需要生成自签名客户端证书即可，服务端证书就用免费的在线申请的即可，不会有信任问题&lt;/div&gt;&lt;/p&gt;&#10;&lt;p&gt;可以参考微软官方文档：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://learn.microsoft.com/zh-cn/azure/vpn-gateway/vpn-gateway-certificates-point-to-site" title="创建证书 - PowerShell"&gt;创建证书 - PowerShell&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://learn.microsoft.com/zh-cn/azure/vpn-gateway/vpn-gateway-certificates-point-to-site-makecert" title="创建证书 - MakeCert"&gt;创建证书 - MakeCert&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://learn.microsoft.com/zh-cn/azure/vpn-gateway/vpn-gateway-certificates-point-to-site-linux" title="生成证书 - Linux"&gt;生成证书 - Linux&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="生成自签名客户端证书"&gt;生成自签名客户端证书&lt;/h3&gt;&#10;&lt;p&gt;这里我就用openssl，来生成客户端证书&lt;/p&gt;</description></item><item><title>MacOS 如何调试 Chromium 代码</title><link>https://www.idzd.top/archives/2874/</link><pubDate>Sun, 14 Apr 2024 05:02:00 +0800</pubDate><guid>https://www.idzd.top/archives/2874/</guid><description>&lt;p&gt;最近在开发过程中，发现有一个bug只在MacOS上出现。没办法了，看看如何在 MacOS 上调试 Chromium 代码。&lt;/p&gt;&#10;&lt;p&gt;简单在本文章记录下过程。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt; 请确定您的 MacOS 上的 Chromium 项目编译环境和依赖都正确。可以正常编译Chromium。 &lt;/div&gt;&lt;/p&gt;&#10;&lt;h2 id="使用-gn-工具生成-xcode-的工程文件"&gt;使用 GN 工具生成 Xcode 的工程文件&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;在 Chromium 项目中使用下面的命令生成 Xcode 的工程文件。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 在./out/debug 路径生成文件&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;gn args --xcode-build-system&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;new --ide&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;xcode ./out/debug&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2024/04/14/1713071633431.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2024/04/14/1713071633431.webp" src="https://www.idzd.top/img/lazy.gif" alt="1713071633431.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>EXSI 虚拟机直连USB证书/令牌</title><link>https://www.idzd.top/archives/2865/</link><pubDate>Thu, 24 Mar 2022 13:31:00 +0800</pubDate><guid>https://www.idzd.top/archives/2865/</guid><description>&lt;p&gt;最近入手了个&lt;code&gt;Gen10 plus&lt;/code&gt;寻思安个Exsi来用。因为性能够（我入手的是个高配），准备分出一个虚拟机来进行软件打包。&lt;/p&gt;&#10;&lt;p&gt;因为打包时候需要进行代码签名，而且证书是存在USB令牌里的。所以得让它直通虚拟机，这样驱动才可以正常识别。&lt;/p&gt;&#10;&lt;p&gt;但是，直接在设置中添加，启动系统后总是莫名奇妙的消失。&lt;/p&gt;&#10;&lt;p&gt;下面是解决方案，记录一下，以防忘记。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt; 资料：&lt;a href="https://communities.vmware.com/t5/ESXi-Discussions/USB-quot-device-not-found-error-quot-when-adding-to-VM-ESXi-6-5/td-p/1405618" title="Exsi 官方论坛给出的方案"&gt;Exsi 官方论坛给出的方案&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;</description></item><item><title>GN报UnicodeEncodeError错误</title><link>https://www.idzd.top/archives/2853/</link><pubDate>Sun, 20 Mar 2022 13:04:00 +0800</pubDate><guid>https://www.idzd.top/archives/2853/</guid><description>&lt;p&gt;前两天在编译Chromium的时候，发现Gn报编码错误，具体错误如下&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;UnicodeEncodeError: &lt;span style="color:#5af78e"&gt;&amp;#39;gbk&amp;#39;&lt;/span&gt; codec can&lt;span style="color:#5af78e"&gt;&amp;#39;t encode character &amp;#39;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\u&lt;/span&gt;03a2&lt;span style="color:#ff5c57"&gt;&amp;#39;&lt;/span&gt; in position 4406: illegal multibyte sequence&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2022/03/20/816391353894835.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2022/03/20/816391353894835.webp" src="https://www.idzd.top/img/lazy.gif" alt="一个很奇怪的编码错误"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;然后尝试搜索这问题，有博主给出的解决方案是，在py写入文件哪一步指定编码为&lt;code&gt;UTF-8&lt;/code&gt;，但测试后发现&lt;code&gt;Gn&lt;/code&gt;过去了，但是后续编译仍然会报错。所以这个方案pass&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;好吧，自己来吧&lt;/p&gt;&#10;&lt;p&gt;查看报错的文件，提示返回的字符编码有问题，那追下他返回的是啥。&lt;/p&gt;</description></item><item><title>微信小程序 Canvas 在IOS下，导致无法滑动、页面卡死</title><link>https://www.idzd.top/archives/2837/</link><pubDate>Fri, 21 Jan 2022 14:11:00 +0800</pubDate><guid>https://www.idzd.top/archives/2837/</guid><description>&lt;p&gt;最近在写一个活动小程序，其中有一个抽奖组件，测试的时候发现&lt;code&gt;Canvas&lt;/code&gt;在Ios下的渲染问题。&lt;/p&gt;&#10;&lt;p&gt;如果用户使用苹果设备，按住Canvas绘制区域时滑动页面，会导致页面卡死，只有重启小程序才能恢复。&lt;/p&gt;&#10;&lt;p&gt;但是Android用户却没有任何问题。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="初步排查"&gt;初步排查&lt;/h2&gt;&#10;&lt;p&gt;初步排查怀疑是&lt;code&gt;Canvas&lt;/code&gt;这种原生组件在绘制的时候出现了问题导致的。&lt;/p&gt;&#10;&lt;p&gt;但是查询微信官方文档论坛，发现有人遇到了同样的问题。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2022/01/21/721813504414212.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2022/01/21/721813504414212.webp" src="https://www.idzd.top/img/lazy.gif" alt="原生组件渲染问题的官方回复，后续版本修复"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;但是这篇提问是在19年5月份发的，微信官方就是10月实现了原生组件同层渲染，来解决这个问题。我检查了下基础库版本，是&lt;code&gt;2.21.2&lt;/code&gt;，远超过要求。&lt;/p&gt;</description></item><item><title>基于mpvue+Vant+npm快速构建微信小程序</title><link>https://www.idzd.top/archives/2833/</link><pubDate>Thu, 13 Jan 2022 13:46:00 +0800</pubDate><guid>https://www.idzd.top/archives/2833/</guid><description>&lt;p&gt;最近要快速开发个小程序，心想着要是按微信推荐那样开发得累死，所以研究了下如何使用mpvue+Vant+npm快速构建微信小程序。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="基础架子"&gt;基础架子&lt;/h2&gt;&#10;&lt;div class="wrap_lo"&gt;项目地址：[mpvue.com](http://mpvue.com/ "mpvue.com")&lt;/div&gt;&#10;&lt;p&gt;首先用mpvue来拉一个基础的架子，这样方便我们后续集成一些其他的东西。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#安装vue-cli，有可以跳过&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;npm install -g vue-cli@2.9&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#使用vue-cli创建mpvue项目&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;vue init mpvue/mpvue-quickstart 你的项目名&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#安装依赖啥的&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;cd&lt;/span&gt; 你的项目目录&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;yran&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;yarn dev&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;注意：&#10;受微信动态增删改查 wxml 节点信息限制，某些VUE组件用不了。详细可看官方说明~&lt;/div&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="集成npm"&gt;集成npm&lt;/h2&gt;&#10;&lt;p&gt;首先在你的项目目录下，新建&lt;code&gt;lib&lt;/code&gt;目录，用处存放第三方npm包。&lt;/p&gt;</description></item><item><title>真机调试下，小程序Canvas无法绘制</title><link>https://www.idzd.top/archives/2832/</link><pubDate>Thu, 13 Jan 2022 13:00:00 +0800</pubDate><guid>https://www.idzd.top/archives/2832/</guid><description>&lt;p&gt;我在真机调试下，调试小程序Canvas，一直无法绘制，我以为是Echarts不兼容导致的。&lt;/p&gt;&#10;&lt;p&gt;实际上，这TMD的是微信开发者工具的问题，真机和模拟器都没问题。&lt;/p&gt;</description></item><item><title>Electron 实现以管理员权限自启动</title><link>https://www.idzd.top/archives/2816/</link><pubDate>Sat, 01 May 2021 12:05:00 +0800</pubDate><guid>https://www.idzd.top/archives/2816/</guid><description>&lt;p&gt;Electron 其实提供的跨平台的通用开机自启动支持。&lt;/p&gt;&#10;&lt;p&gt;但是因为Windows系统的限制，如果您的Electron在运行时要使用管理员权限的话，这样设置的自启动会失效。&lt;/p&gt;</description></item><item><title>Electron 实现部分窗体挂代理来方便调试</title><link>https://www.idzd.top/archives/2810/</link><pubDate>Mon, 05 Apr 2021 02:48:00 +0800</pubDate><guid>https://www.idzd.top/archives/2810/</guid><description>&lt;p&gt;Electron 实现部分窗体挂代理来方便调试&lt;/p&gt;&#10;&lt;p&gt;在需要挂代理的窗体中添加下面的代码：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;await&lt;/span&gt; OAuth.webContents.session.setProxy({&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;//代理地址，可用Http/Socks协议&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;&#9;proxyRules&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;http://127.0.0.1:1080&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;//代理排除的域名/地址&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8&lt;/span&gt;&lt;span&gt;&#9;proxyBypassRules&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#39;www.idzd.top&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;9&lt;/span&gt;&lt;span&gt;});&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Electron 实现第三方登录</title><link>https://www.idzd.top/archives/2804/</link><pubDate>Mon, 05 Apr 2021 02:25:00 +0800</pubDate><guid>https://www.idzd.top/archives/2804/</guid><description>&lt;p&gt;上两篇文章说了，如何在Web端实现&lt;a href="https://www.idzd.top/archives/2754/" title="Google"&gt;Google&lt;/a&gt;/&lt;a href="https://www.idzd.top/archives/2787/" title="Facebook"&gt;Facebook&lt;/a&gt;的第三方登录。&lt;/p&gt;&#10;&lt;p&gt;这就简单说下 Electron 实现第三方登录。&lt;/p&gt;&#10;&lt;p&gt;其实，整个流程中与Web版本最大区别就是，如何获取回调的参数。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="electron-监听回调url"&gt;Electron 监听回调URL&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;//注册监听事件&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;OAuth.webContents.on(&lt;span style="color:#5af78e"&gt;&amp;#39;did-navigate&amp;#39;&lt;/span&gt;, (event, url) =&amp;gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; raw_code &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;/access_token=([^&amp;amp;]*)/&lt;/span&gt;.exec(url) &lt;span style="color:#ff6ac1"&gt;||&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;null&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; access_token &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; (raw_code &lt;span style="color:#ff6ac1"&gt;&amp;amp;&amp;amp;&lt;/span&gt; raw_code.length &lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;?&lt;/span&gt; raw_code[&lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;] &lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;null&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; raw_state &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;/state=([^&amp;amp;]*)/&lt;/span&gt;.exec(url) &lt;span style="color:#ff6ac1"&gt;||&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;null&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; state &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; (raw_state &lt;span style="color:#ff6ac1"&gt;&amp;amp;&amp;amp;&lt;/span&gt; raw_state.length &lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;?&lt;/span&gt; raw_state[&lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;] &lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;null&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; raw_time &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;/data_access_expiration_time=([^&amp;amp;]*)/&lt;/span&gt;.exec(url) &lt;span style="color:#ff6ac1"&gt;||&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;null&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;let&lt;/span&gt; expiration_time &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; (raw_time &lt;span style="color:#ff6ac1"&gt;&amp;amp;&amp;amp;&lt;/span&gt; raw_time.length &lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;?&lt;/span&gt; raw_time[&lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;] &lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;null&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;// let error = /\?error=(.+)$/.exec(url);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;//获取到三个参数，即视为登录成功&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;//PS:其实还应该验证回调域名是否匹配&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (access_token &lt;span style="color:#ff6ac1"&gt;&amp;amp;&amp;amp;&lt;/span&gt; state &lt;span style="color:#ff6ac1"&gt;&amp;amp;&amp;amp;&lt;/span&gt; expiration_time) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;//向登录窗体发消息，通知器第三方登录成功，继续走原来的流程&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; AuthUI.webContents.send(&lt;span style="color:#5af78e"&gt;&amp;#39;oauth.success&amp;#39;&lt;/span&gt;, {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; access_token&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; access_token,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; state&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; state,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; expiration_time&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; expiration_time,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; type&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;facebook&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; });&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;//登录成功后销毁窗体&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt; OAuth.destroy();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt;});&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="electron-注册全局过滤器"&gt;Electron 注册全局过滤器&lt;/h2&gt;&#10;&lt;div class="alert alert--success" role="alert"&gt;当然也可以通过注册全局过滤器，来实现~&lt;/div&gt;</description></item><item><title>实现 Facebook 第三方授权登录</title><link>https://www.idzd.top/archives/2787/</link><pubDate>Sun, 04 Apr 2021 15:47:00 +0800</pubDate><guid>https://www.idzd.top/archives/2787/</guid><description>&lt;p&gt;最近做项目要实现Facebook的第三方登录，这简单的记录一下。&lt;/p&gt;&#10;&lt;p&gt;目前Facebook的第三方登录有很多方案，且官方提供SDK方便接入。但是我这个项目同时要实现网页和客户端。所以选择了 Facebook 手动构建登录流程的方案。&lt;/p&gt;&#10;&lt;p&gt;是不是听着很耳熟？对！和 &lt;a href="https://www.idzd.top/archives/2754/" title="实现Google 第三方授权登录"&gt;《实现 Google 第三方授权登录》&lt;/a&gt; 一样~&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2021/04/05/553601993546413.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2021/04/05/553601993546413.webp" src="https://www.idzd.top/img/lazy.gif" alt="Facebook 手动构建登录流程"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="配置-facebook-应用"&gt;配置 Facebook 应用&lt;/h2&gt;&#10;&lt;p&gt;访问此处：&lt;a href="https://developers.facebook.com/apps/?show_reminder=true"&gt;https://developers.facebook.com/apps/?show_reminder=true&lt;/a&gt;&lt;/p&gt;</description></item><item><title>实现 Google 第三方授权登录</title><link>https://www.idzd.top/archives/2754/</link><pubDate>Sun, 04 Apr 2021 11:27:00 +0800</pubDate><guid>https://www.idzd.top/archives/2754/</guid><description>&lt;p&gt;最近做项目要实现Google的第三方登录，这简单的记录一下。&lt;/p&gt;&#10;&lt;p&gt;目前Google的第三方登录有很多方案，且官方提供SDK方便接入。但是我这个项目同时要实现网页和客户端。所以选择了 &lt;a href="https://developers.google.com/identity/protocols/oauth2" title="OAuth 2.0"&gt;Google OAuth 2.0&lt;/a&gt; 的方案。&lt;/p&gt;&#10;&lt;p&gt;当然，也可以 &lt;a href="https://www.idzd.top/archives/2787/" title="《实现 Facebook 第三方授权登录》"&gt;《实现 Facebook 第三方授权登录》&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2021/04/04/355761090525523.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2021/04/04/355761090525523.webp" src="https://www.idzd.top/img/lazy.gif" alt="Google 的 OAuth 2.0 流程"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="配置-google-cloud-platform"&gt;配置 Google Cloud Platform&lt;/h2&gt;&#10;&lt;h3 id="首先访问-google-cloud-platform-控制台"&gt;首先访问 Google Cloud Platform 控制台&lt;/h3&gt;&#10;&lt;p&gt;地址：&lt;a href="https://console.cloud.google.com/projectselector2/home" title="Google Cloud Platform 控制台"&gt;https://console.cloud.google.com/projectselector2/home&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Waxy主题：自定义公告显示动态一言</title><link>https://www.idzd.top/archives/2748/</link><pubDate>Sun, 07 Mar 2021 14:25:00 +0800</pubDate><guid>https://www.idzd.top/archives/2748/</guid><description>&lt;p&gt;本篇文章为&lt;code&gt;Waxy主题&lt;/code&gt;设置中&lt;strong&gt;自定义CSS/JS&lt;/strong&gt;的高级应用。&lt;/p&gt;&#10;&lt;h2 id="效果"&gt;效果&lt;/h2&gt;&#10;&lt;p&gt;&lt;video src="https://www.idzd.top/usr/uploads/2021/03/07/26884686065774.mp4" autoplay loop muted playsinline title="最终效果演示"&gt;&lt;/video&gt;&lt;/p&gt;&#10;&lt;h2 id="实现方法"&gt;实现方法&lt;/h2&gt;&#10;&lt;div class="alert alert--info" role="alert"&gt;首先进入主题设置 &gt; 置顶公告/自定义CSS样式/自定义JS ,共三处中按需要填入下面的代码：&lt;/div&gt;&#10;&lt;h3 id="置顶公告"&gt;置顶公告&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;div&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;class&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;hitokoto&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;span&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;class&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;typed&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;id&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;hitokoto&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;span&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;div&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="自定义css样式"&gt;自定义CSS样式、&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;.&lt;span style="color:#f3f99d"&gt;top-text-body&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;/*设置公告栏高度，可以按需更改*/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;height&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;25&lt;/span&gt;&lt;span style="color:#9aedfe"&gt;px&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;.&lt;span style="color:#f3f99d"&gt;top-text-body&lt;/span&gt;::&lt;span style="color:#ff9f43"&gt;before&lt;/span&gt;{&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;/*删除公告栏中公告两个字*/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;content&lt;/span&gt;: &lt;span style="color:#5af78e"&gt;&amp;#34;&amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="自定义js"&gt;自定义JS&lt;/h3&gt;</description></item><item><title>Waxy主题：自定义网站背景</title><link>https://www.idzd.top/archives/2736/</link><pubDate>Thu, 04 Mar 2021 13:51:00 +0800</pubDate><guid>https://www.idzd.top/archives/2736/</guid><description>&lt;p&gt;本篇文章为&lt;code&gt;Waxy主题&lt;/code&gt;设置中&lt;strong&gt;自定义CSS/JS&lt;/strong&gt;的高级应用。&lt;/p&gt;&#10;&lt;h2 id="如何自定义网站静态背景"&gt;如何自定义网站静态背景？&lt;/h2&gt;&#10;&lt;div class="alert alert--info" role="alert"&gt;首先进入主题设置 &gt; 自定义JS ,中按需要填入下面的代码：&lt;/div&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;body&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;/*背景颜色*/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;background-color&lt;/span&gt;:&lt;span style="color:#ff9f43"&gt;#990505&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;/*背景图片url，可与上一项同时使用*/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;background-image&lt;/span&gt;: &lt;span style="color:#ff5c57"&gt;url&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;/usr/bg/5f6eeefb319ae1601105659386.jpg&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;/*背景图片重复方式，此处为不重复*/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;background-repeat&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;no-repeat&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;/*背景图片起始位置，此处为居中*/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;background-position&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;center&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;/*背景图片尺寸，此处为填充模式*/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;background-size&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;cover&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;/*背景图片是否滚动，此处为不滚动*/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;background-attachment&lt;/span&gt;: &lt;span style="color:#ff6ac1"&gt;fixed&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="alert alert--success alert--dismissible" role="alert"&gt;&lt;button type="button" class="alert__close" data-action="alert-close" aria-label="关闭"&gt;&amp;times;&lt;/button&gt;更详细关于CSS样式的说明欢迎移步此处：**[MDN Web Docs](https://developer.mozilla.org/zh-CN/docs/Web/CSS/background "MDN Web Docs")**&lt;/div&gt;</description></item><item><title>Waxy主题：自定义Canvas背景</title><link>https://www.idzd.top/archives/2728/</link><pubDate>Wed, 20 Jan 2021 14:18:00 +0800</pubDate><guid>https://www.idzd.top/archives/2728/</guid><description>&lt;p&gt;本篇文章为&lt;code&gt;Waxy主题&lt;/code&gt;设置中&lt;strong&gt;自定义CSS/JS&lt;/strong&gt;的高级应用。&lt;/p&gt;&#10;&lt;h2 id="什么是canvas"&gt;什么是Canvas？&lt;/h2&gt;&#10;&lt;div class="alert alert--info" role="alert"&gt;您看见网站动态背景了吗？它就是基于Canvas技术实现的。&lt;/div&gt;&#10;&lt;p&gt;Canvas 是 HTML5 中一个新特性，开发者绘制一系列图形。通过和JavaScript配合，可以使静态的图形动起来~&lt;/p&gt;&#10;&lt;p&gt;当然更加具体的内容，还请您自己学习，这里不做展开~&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2021/01/20/525982936040131.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2021/01/20/525982936040131.webp" src="https://www.idzd.top/img/lazy.gif" alt="后面飞扬的花瓣就是基于Canvas技术实现的"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;h2 id="如何自定义canvas背景"&gt;如何自定义Canvas背景？&lt;/h2&gt;&#10;&lt;p&gt;目前&lt;code&gt;Waxy主题&lt;/code&gt;支持&lt;strong&gt;3种&lt;/strong&gt;方式自定义Canvas背景，在文章后面，我提供了几个整理好的背景。&lt;/p&gt;</description></item><item><title>Waxy主题：短代码功能介绍</title><link>https://www.idzd.top/archives/2700/</link><pubDate>Sun, 17 Jan 2021 11:01:00 +0800</pubDate><guid>https://www.idzd.top/archives/2700/</guid><description>&lt;p&gt;短代码可以快速为你提供更多展示效果。使文章层次更丰富。&lt;/p&gt;&#10;&lt;div class="alert alert--danger" role="alert"&gt;快速导航:&#10;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.idzd.top/archives/2700/#%E5%A4%9A%E5%BD%A9%E6%8F%90%E7%A4%BA%E6%A1%86" title="多彩提示框"&gt;多彩提示框&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/2700/#%E6%96%87%E5%AD%97%E6%8F%90%E7%A4%BA" title="提示文字"&gt;提示文字&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/2700/#%E6%8F%92%E5%85%A5%E8%A7%86%E9%A2%91" title="插入视频"&gt;插入视频&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/2700/#%E6%8F%92%E5%85%A5%E9%9F%B3%E9%A2%91%EF%BC%88%E6%94%AF%E6%8C%81%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE%EF%BC%8C%E5%BE%AA%E7%8E%AF%E6%92%AD%E6%94%BE%EF%BC%89" title="插入音频"&gt;插入音频&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/2700/#%E7%AE%80%E6%98%93%E6%8F%90%E7%A4%BA%E6%A1%86" title="建议提示框"&gt;建议提示框&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/2700/#%E6%94%B6%E7%BC%A9%E6%A1%86" title="收缩框"&gt;收缩框&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/p&gt;&#10;&lt;h2 id="概览"&gt;概览&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2021/01/17/811963763005523.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2021/01/17/811963763005523.webp" src="https://www.idzd.top/img/lazy.gif" alt="短代码样式概览"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;h2 id="使用方法概览"&gt;使用方法概览&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2021/01/17/825853109897630.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2021/01/17/825853109897630.webp" src="https://www.idzd.top/img/lazy.gif" alt="短代码使用方法概览"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Manjaro 安装 VMtools 方法</title><link>https://www.idzd.top/archives/2693/</link><pubDate>Wed, 02 Dec 2020 13:45:00 +0800</pubDate><guid>https://www.idzd.top/archives/2693/</guid><description>&lt;p&gt;最近一段时间，有点嫌弃&lt;code&gt;debian&lt;/code&gt;的软件仓库更新太慢，决定试试滚动更新的&lt;code&gt;Manjaro&lt;/code&gt;。&lt;/p&gt;&#10;&lt;p&gt;因为不是很熟悉这个系统，现在虚拟机上试试。&lt;/p&gt;&#10;&lt;p&gt;如果不安装 &lt;code&gt;VMtools&lt;/code&gt; ，用起来很麻烦，比如无法快捷传文件（这个好说，文件共享就行）。&lt;/p&gt;&#10;&lt;p&gt;但是，显示分辨率这个问题，就很麻烦，因为默认都是4:3的。自定义的话，重启后会失效（感觉像我的锅）。&lt;/p&gt;&#10;&lt;p&gt;查阅网上的教程，发现问题也就解决一半，折腾半天，终于搞定了。在这记录下&lt;/p&gt;</description></item><item><title>Waxy主题：社交分享图标功能介绍</title><link>https://www.idzd.top/archives/2680/</link><pubDate>Wed, 25 Nov 2020 14:37:00 +0800</pubDate><guid>https://www.idzd.top/archives/2680/</guid><description>&lt;h2 id="如何添加"&gt;如何添加&lt;/h2&gt;&#10;&lt;div class="alert alert--info" role="alert"&gt;进入网站后台 &gt; 控制台 &gt; 外观 &gt; 设置外观 &gt; 社交/分享链接&lt;/div&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/11/25/134973440537451.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/11/25/134973440537451.webp" src="https://www.idzd.top/img/lazy.gif" alt="社交/分享图标设置"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 格式(请用半角逗号分隔)：名称,地址；&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 一行一条，不需要的图标不填写即可;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;# 可自定义顺序；&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;rss,&amp;lt;你的网站地址/feed&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;github,&amp;lt;你的GitHub主页地址&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;facebook,&amp;lt;你的脸书地址&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;twitter,&amp;lt;你的推特地址&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;telegram,&amp;lt;你的电报地址&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;email,&amp;lt;mailto:你的邮箱地址&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;weibo,&amp;lt;你的微博地址&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;wechat,&amp;lt;你的微信公众号二维码图片URL&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="如何自定义"&gt;如何自定义&lt;/h2&gt;&#10;&lt;div class="alert alert--warning" role="alert"&gt;如果没有你需要的图标怎么办？&lt;/div&gt;&#10;&lt;p&gt;因为考虑到体积的问题（主题体积越小加载越快），我们不可能内置所有的图标。&lt;/p&gt;&#10;&lt;p&gt;但是，考虑到您可能有需要，我们提供了自定义CSS样式功能。&lt;/p&gt;&#10;&lt;p&gt;以添加码云图标为例，我们来看看如何使用这项强大的功能。&lt;/p&gt;&#10;&lt;h3 id="选择你喜欢的图标"&gt;选择你喜欢的图标&lt;/h3&gt;&#10;&lt;p&gt;任何图片都可以，但是为了美观与速度，建议选择32x32大小的图片。&lt;/p&gt;&#10;&lt;p&gt;这里推荐 &lt;strong&gt;&lt;a href="https://www.iconfont.cn/" title="Iconfont-阿里巴巴矢量图标库"&gt;Iconfont-阿里巴巴矢量图标库&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Waxy主题：Sitemap/网站地图功能介绍</title><link>https://www.idzd.top/archives/2632/</link><pubDate>Sat, 17 Oct 2020 08:17:00 +0800</pubDate><guid>https://www.idzd.top/archives/2632/</guid><description>&lt;h2 id="什么是sitemap网站地图"&gt;什么是Sitemap/网站地图&lt;/h2&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;这是一种方便搜索引擎蜘蛛爬取整个网站的列表，并且还可以提供有关网站的其他信息，如上次更新日期、Sitemap文件的更新频率等，供搜索引擎参考。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;搜索引擎一般支持以下3种形式的Sitemap：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;xml格式&lt;/li&gt;&#10;&lt;li&gt;文本格式&lt;/li&gt;&#10;&lt;li&gt;Sitemap索引文件&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="alert alert--info" role="alert"&gt;当然搜索引擎也支持读取网站RSS或手动提交，但相比与Sitemap提交来讲还是有些不足之处。&lt;/div&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="xml格式"&gt;xml格式&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;&amp;lt;!-- XML文件需以utf-8编码--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;utf-8&amp;#34;?&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;&amp;lt;!--必填标签--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;urlset&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;xmlns=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;http://www.sitemaps.org/schemas/sitemap/0.9&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;&amp;lt;!--必填标签,这是具体某一个链接的定义入口，每一条数据都要用&amp;lt;url&amp;gt;和&amp;lt;/url&amp;gt;包含在里面，这是必须的 --&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;url&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;!--必填,URL链接地址,长度不得超过256字节--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;loc&amp;gt;&lt;/span&gt;http://www.example.com/yoursite.html&lt;span style="color:#ff6ac1"&gt;&amp;lt;/loc&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;!--可省略，指定该链接的最后更新时间--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;lastmod&amp;gt;&lt;/span&gt;2020-10-17T15:43:00+08:00&lt;span style="color:#ff6ac1"&gt;&amp;lt;/lastmod&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;!--可省略，指定页面更新频率，常用参数：always,hourly,daily,weekly,monthly,yearly,never --&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;changefreq&amp;gt;&lt;/span&gt;daily&lt;span style="color:#ff6ac1"&gt;&amp;lt;/changefreq&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;&amp;lt;!--可省略，指定此链接相对于其他链接的优先权比值，取值范围0.0-1.0之间--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;priority&amp;gt;&lt;/span&gt;0.8&lt;span style="color:#ff6ac1"&gt;&amp;lt;/priority&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;/url&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;url&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;loc&amp;gt;&lt;/span&gt;http://www.example.com/yoursite2.html&lt;span style="color:#ff6ac1"&gt;&amp;lt;/loc&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;lastmod&amp;gt;&lt;/span&gt;2020-10-17&lt;span style="color:#ff6ac1"&gt;&amp;lt;/lastmod&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;changefreq&amp;gt;&lt;/span&gt;daily&lt;span style="color:#ff6ac1"&gt;&amp;lt;/changefreq&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;priority&amp;gt;&lt;/span&gt;0.8&lt;span style="color:#ff6ac1"&gt;&amp;lt;/priority&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;&amp;lt;/url&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;/urlset&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Waxy主题：简易提示框&amp;收缩框演示</title><link>https://www.idzd.top/archives/2626/</link><pubDate>Sat, 17 Oct 2020 01:54:00 +0800</pubDate><guid>https://www.idzd.top/archives/2626/</guid><description>&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;如需更详细的使用方请移步 &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/2700/" title="此处"&gt;此处&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/p&gt;&#10;&lt;h2 id="简易提示框"&gt;简易提示框&lt;/h2&gt;&#10;&lt;div class="alert alert--success alert--dismissible" role="alert"&gt;&lt;button type="button" class="alert__close" data-action="alert-close" aria-label="关闭"&gt;&amp;times;&lt;/button&gt;简易提示框：success，默认样式&lt;/div&gt;&#10;&lt;div class="alert alert--info alert--dismissible" role="alert"&gt;&lt;button type="button" class="alert__close" data-action="alert-close" aria-label="关闭"&gt;&amp;times;&lt;/button&gt;简易提示框：info&lt;/div&gt;&#10;&lt;div class="alert alert--warning alert--dismissible" role="alert"&gt;&lt;button type="button" class="alert__close" data-action="alert-close" aria-label="关闭"&gt;&amp;times;&lt;/button&gt;简易提示框：warning&lt;/div&gt;</description></item><item><title>隐私政策</title><link>https://www.idzd.top/privacy-policy.html</link><pubDate>Wed, 23 Sep 2020 14:25:00 +0800</pubDate><guid>https://www.idzd.top/privacy-policy.html</guid><description>&lt;h2 id="我们是谁"&gt;我们是谁&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/11/30/3252373357.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/11/30/3252373357.webp" src="https://www.idzd.top/img/lazy.gif" alt="IDZD -乐于探索！"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;站点地址：&lt;strong&gt;&lt;a href="https://www.idzd.top"&gt;https://www.idzd.top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="我们收集何种及为何收集个人数据"&gt;我们收集何种及为何收集个人数据&lt;/h2&gt;&#10;&lt;h3 id="评论"&gt;评论&lt;/h3&gt;&#10;&lt;p&gt;当访客留下评论时，我们会收集评论表单所显示的数据，和访客的IP地址及浏览器的&lt;code&gt;User-Agent&lt;/code&gt;字符串来帮助检查垃圾评论。&lt;/p&gt;</description></item><item><title>金鹿号</title><link>https://www.idzd.top/archives/2597/</link><pubDate>Mon, 07 Sep 2020 12:27:00 +0800</pubDate><guid>https://www.idzd.top/archives/2597/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/09/07/8199866225812.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/09/07/8199866225812.webp" src="https://www.idzd.top/img/lazy.gif" alt="金鹿号"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;金鹿号是英国探险家、著名海盗德雷克，在环球航行时，为纪念通过麦哲伦海峡剩下的最后一艘船，德瑞克将之改名为金鹿号(Golden Hind)，因为此船赞助人海顿爵士的徽章盾牌上是一只金鹿。&lt;/p&gt;</description></item><item><title>Git 清理无用Commit 和 Tags</title><link>https://www.idzd.top/archives/2562/</link><pubDate>Thu, 20 Aug 2020 03:03:00 +0800</pubDate><guid>https://www.idzd.top/archives/2562/</guid><description>&lt;p&gt;因为自己手残导致Git库内添加一些奇怪的东西，还很占地方，于是就有了这篇文章。&lt;/p&gt;&#10;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;请谨慎对待每一次&lt;code&gt;Commit&lt;/code&gt;！&lt;/div&gt;&lt;/p&gt;&#10;&lt;h2 id="git清理全部commit"&gt;Git清理全部Commit&lt;/h2&gt;&#10;&lt;p&gt;缺点就是你提交记录和文件历史全没了，但是简单高效粗暴~&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#切换分支&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;git checkout --orphan latest_branch&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#添加所有文件&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;git add -A&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#提交分支&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;git commit -m &lt;span style="color:#5af78e"&gt;&amp;#34;提交说明&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#删除主分支&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;git branch -D master&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#重名当前分支为master（主分支）&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;git branch -m master&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#提交到远程仓库（强制覆盖）&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt;git push -f origin master&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="git删除指定文件及其历史记录"&gt;Git删除指定文件及其历史记录&lt;/h2&gt;&#10;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;注意：文件路径千万不要以&lt;code&gt;/&lt;/code&gt;开头！否则就不是相对路径了！&lt;/div&gt;&lt;/p&gt;&#10;&lt;div class="wrap_lo"&gt;上条警告是来自于被舍友`rm -rf /*`的某人的悲鸣~&lt;/div&gt;</description></item><item><title>Debian诞生27周年!</title><link>https://www.idzd.top/archives/2554/</link><pubDate>Mon, 17 Aug 2020 02:45:00 +0800</pubDate><guid>https://www.idzd.top/archives/2554/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/08/17/320591628412880.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/08/17/320591628412880.webp" src="https://www.idzd.top/img/lazy.gif" alt="Debian 诞生 27周年!"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;我一直在用的就是Debian，从树莓派/NanoPi到NAS再到PC。&lt;/p&gt;&#10;&lt;p&gt;回首望去，感触良多。敬自己，敬未来。&lt;/p&gt;</description></item><item><title>解决git /usr/bin/bash: line 0: exec: nc: not found 问题</title><link>https://www.idzd.top/archives/2536/</link><pubDate>Sat, 15 Aug 2020 14:13:00 +0800</pubDate><guid>https://www.idzd.top/archives/2536/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/08/15/003501720903700.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/08/15/003501720903700.webp" src="https://www.idzd.top/img/lazy.gif" alt="git错误提示截图"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;今天向GitHub push项目时候提示&lt;code&gt;/usr/bin/bash: line 0: exec: nc: not found&lt;/code&gt;错误。&lt;/p&gt;&#10;&lt;p&gt;经排查发现是SSH代理的问题。原因是Windows下的Git Bash 没有&lt;code&gt;nc&lt;/code&gt;命令（netcat命令）。&lt;/p&gt;</description></item><item><title>搭建Gitolite实现对源码仓库权限管理</title><link>https://www.idzd.top/archives/2492/</link><pubDate>Mon, 10 Aug 2020 08:39:00 +0800</pubDate><guid>https://www.idzd.top/archives/2492/</guid><description>&lt;p&gt;正巧，前一段时间主力NAS炸了（详情见&lt;a href="https://www.idzd.top/archives/2387/" title="此处"&gt;此处&lt;/a&gt;），临时把NanoPi NEO2翻出来顶上了。顺手用导热胶把散热片和外壳粘一起了，效果拔群。&lt;/p&gt;&#10;&lt;p&gt;经过这一段时间的使用，发现被动散热真是个好东西。原先的主力NAS，现在设置成冷备机，通过网络唤醒，每周自动执行备份同步，然后关机。完美，终于没有风扇的噪音了~&lt;/p&gt;&#10;&lt;p&gt;因为NanoPi上跑的东西有点多（Docker真是个好东西），所以需要一个轻量的Git权限管理工具。&lt;/p&gt;&#10;&lt;p&gt;最后我选定了Gitolite来实现对源码仓库权限管理。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="部署配置gitolite"&gt;部署&amp;amp;配置Gitolite&lt;/h2&gt;&#10;&lt;h3 id="部署"&gt;部署&lt;/h3&gt;&#10;&lt;div class="wrap_em"&gt;推荐新建个低权限用户安装运行&lt;/div&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#新建一个用户git，&amp;lt;-s&amp;gt;参数指定新用户使用的shell路径&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;sudo useradd -s /bin/bash git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#设置密码&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;sudo passwd git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#切换用户&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;su git&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;说真的，Gitolite安装非常简单。你可以直接从源来安装。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;sudo apt install gitolite3&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;当然，你也可以从仓库拉取源码安装。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;git clone https://github.com/sitaramc/gitolite&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;mkdir -p &lt;span style="color:#ff5c57"&gt;$HOME&lt;/span&gt;/bin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;gitolite/install -to &lt;span style="color:#ff5c57"&gt;$HOME&lt;/span&gt;/bin&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>修改OpenWrt编译的镜像大小</title><link>https://www.idzd.top/archives/2484/</link><pubDate>Fri, 07 Aug 2020 10:47:00 +0800</pubDate><guid>https://www.idzd.top/archives/2484/</guid><description>&lt;p&gt;在&lt;a href="https://www.idzd.top/archives/2475/" title="为NanoPi NEO2 编译OpenWrt固件"&gt;为NanoPi NEO2 编译OpenWrt固件&lt;/a&gt;文章里，编译完的img镜像只有160M，想扩展点软件都，没多少地方了。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/08/07/966363863233769.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/08/07/966363863233769.webp" src="https://www.idzd.top/img/lazy.gif" alt="根目录可用空间太小了"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>顺手为NanoPi NEO2 编译OpenWrt固件，并配置旁路由</title><link>https://www.idzd.top/archives/2475/</link><pubDate>Fri, 07 Aug 2020 07:38:00 +0800</pubDate><guid>https://www.idzd.top/archives/2475/</guid><description>&lt;p&gt;前面，说过我为&lt;a href="https://www.idzd.top/archives/2281/" title="NanoPi NEO2更新到OMV5.x版本"&gt;NanoPi NEO2更新到OMV5.x版本&lt;/a&gt;，经过这一段时间的使用，我发现我就用到个smb共享文件，实际上OpenWrt，也支持这个功能。&lt;/p&gt;&#10;&lt;p&gt;而且在家里串太多路由/交换机，有点浪费，不如直接用一个设备实现 &lt;strong&gt;ALL in&lt;/strong&gt; ，这样维护起来还是蛮方便的。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/08/07/846882917459232.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/08/07/846882917459232.webp" src="https://www.idzd.top/img/lazy.gif" alt="为NanoPi NEO2 编译的OpenWrt"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>自编译 OpenWrt（LEDE）</title><link>https://www.idzd.top/archives/2407/</link><pubDate>Wed, 05 Aug 2020 05:20:00 +0800</pubDate><guid>https://www.idzd.top/archives/2407/</guid><description>&lt;p&gt;自己手头上有个MT7620N的路由器，因为属于开源的，固件得自己折腾。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/08/05/032033806800334.jpg"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/08/05/032033806800334.jpg" src="https://www.idzd.top/img/lazy.gif" alt="我比较萌这种小东西"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/08/05/065934073646990.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/08/05/065934073646990.webp" src="https://www.idzd.top/img/lazy.gif" alt="具体的参数（和RT-N14U一样）"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;正好，因为网络的问题，需要使用最新的OpenWrt（LEDE）。&lt;/p&gt;&#10;&lt;p&gt;正好自己尝试编译一下，把需要的包一次都编译进去，省的在折腾了。&lt;/p&gt;</description></item><item><title>人生感悟：没事别手贱瞎折腾</title><link>https://www.idzd.top/archives/2387/</link><pubDate>Wed, 29 Jul 2020 14:38:00 +0800</pubDate><guid>https://www.idzd.top/archives/2387/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/07/29/32113928580725.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/07/29/32113928580725.webp" src="https://www.idzd.top/img/lazy.gif" alt="惨烈的战场"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;故事还得从一个礼拜前说起。&lt;/p&gt;</description></item><item><title>最近入手了个采集卡</title><link>https://www.idzd.top/archives/2349/</link><pubDate>Sat, 11 Jul 2020 13:39:00 +0800</pubDate><guid>https://www.idzd.top/archives/2349/</guid><description>&lt;p&gt;前几天发的&lt;a href="https://www.idzd.top/archives/2307/" title="那篇文章"&gt;那篇文章&lt;/a&gt;，好多人吐槽照片像用老年机拍的。&lt;del&gt;能怪我么，本身光线就不好，还反光，在压缩下。 ┑(￣Д ￣)┍&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;好吧，谁让我宠你们，忍痛斥巨资（四十三块五毛），买了个采集卡。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/07/11/73475188938156.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/07/11/73475188938156.webp" src="https://www.idzd.top/img/lazy.gif" alt="斥巨资购买采集卡"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;经过，3天的漫长等待&amp;hellip;&amp;hellip;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/07/11/735961831129619.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/07/11/735961831129619.webp" src="https://www.idzd.top/img/lazy.gif" alt="饱经沧桑的采集卡和赠品"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>树莓派机顶盒搭建过程记录</title><link>https://www.idzd.top/archives/2307/</link><pubDate>Tue, 07 Jul 2020 12:56:00 +0800</pubDate><guid>https://www.idzd.top/archives/2307/</guid><description>&lt;p&gt;前几天，在NAS上折腾了个媒体服务器，结果发现，自家电视并不支持这个功能。买个机顶盒吧，还得折腾。&lt;/p&gt;&#10;&lt;p&gt;然后想起来吃灰中的树莓派，发挥下余热。顺便水下文章。&lt;/p&gt;&#10;&lt;p&gt;效果镇楼，整体启动还是比较快的。（ps：&lt;a href="https://www.idzd.top/archives/2349/" title="采集卡"&gt;采集卡&lt;/a&gt;没白买，哭）&lt;/p&gt;&#10;&lt;video class="post-video" src="https://www.idzd.top/usr/uploads/2020/07/11/768743296408943.mp4" preload="metadata" width="100%" height="100%" controls&gt; 您的浏览器不支持 video 元素。&lt;/video&gt;&#10;&#10;&lt;hr&gt;&#10;&lt;h2 id="安装系统"&gt;安装系统&lt;/h2&gt;&#10;&lt;h3 id="系统选择"&gt;系统选择&lt;/h3&gt;&#10;&lt;p&gt;现在树莓派主流的家庭媒体终端，选择基本上就是kodi或是他的集成比如XMBC、LibreELEC、openELEC，之类的。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Debian + Kodi （折腾，开机慢）&lt;/li&gt;&#10;&lt;li&gt;XMBC （启动慢，Kodi版本较旧）&lt;/li&gt;&#10;&lt;li&gt;LibreELEC （轻量，Kodi版本新，社区完善）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;最后选择&lt;code&gt;LibreELEC&lt;/code&gt;来搭建树莓派家庭媒体终端。&lt;/p&gt;&#10;&lt;h3 id="安装"&gt;安装&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://libreelec.tv/" title="官网"&gt;官网&lt;/a&gt; | &lt;a href="https://libreelec.tv/downloads_new/" title="下载地址"&gt;下载地址&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;选择合适的镜像烧录&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/07/07/27914386851992.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/07/07/27914386851992.webp" src="https://www.idzd.top/img/lazy.gif" alt="下载对应的镜像文件"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="安装中文插件"&gt;安装中文插件&lt;/h2&gt;&#10;&lt;p&gt;一般情况下，直接在插件库中安装即可（&lt;code&gt;add-ons&lt;/code&gt; -&amp;gt; &lt;code&gt;look and feel&lt;/code&gt; -&amp;gt; &lt;code&gt;languages&lt;/code&gt;）。&lt;/p&gt;&#10;&lt;p&gt;如果无法在线安装，可以使用离线中文插件（&lt;a href="http://www.kodiplayer.cn/plugins/2835.html" title="原文地址"&gt;原文地址&lt;/a&gt; &amp;amp; &lt;a href="https://www.idzd.top/usr/uploads/2020/07/07/285754153907779.zip"&gt;本地下载&lt;/a&gt;）&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/07/11/749862120861484.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/07/11/749862120861484.webp" src="https://www.idzd.top/img/lazy.gif" alt="选择Add-ons的install from zip file"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Linux 终端代理加速访问</title><link>https://www.idzd.top/archives/2304/</link><pubDate>Mon, 15 Jun 2020 12:52:00 +0800</pubDate><guid>https://www.idzd.top/archives/2304/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/08/04/536771691949773.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/08/04/536771691949773.webp" src="https://www.idzd.top/img/lazy.gif" alt="可以用命令curl cip.cc检查终端是否处于代理状态"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;Git走代理的方法：&lt;a href="https://www.idzd.top/archives/1329/" title="传送门"&gt;传送门&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;</description></item><item><title>docker 镜像源地址</title><link>https://www.idzd.top/archives/2303/</link><pubDate>Mon, 15 Jun 2020 09:03:00 +0800</pubDate><guid>https://www.idzd.top/archives/2303/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;官方中国源：https://registry.docker-cn.com&lt;/li&gt;&#10;&lt;li&gt;网易源：http://hub-mirror.c.163.com&lt;/li&gt;&#10;&lt;li&gt;中科大源：https://docker.mirrors.ustc.edu.cn&lt;/li&gt;&#10;&lt;li&gt;阿里云（登陆，选择镜像加速）：https://cr.console.aliyun.com/&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="修改方法"&gt;修改方法&lt;/h2&gt;&#10;&lt;p&gt;编辑&lt;code&gt;/etc/docker/daemon.json&lt;/code&gt;文件，如果有多个参数用&lt;code&gt;,&lt;/code&gt;隔开&lt;/p&gt;</description></item><item><title>NanoPi NEO2 安装OMV5.X</title><link>https://www.idzd.top/archives/2281/</link><pubDate>Sun, 14 Jun 2020 09:24:00 +0800</pubDate><guid>https://www.idzd.top/archives/2281/</guid><description>&lt;p&gt;摘要：本文主要记录NanoPi NEO2（armbian） 安装OMV5.X 过程，和简单配置（时区、SMB……）。&lt;/p&gt;&#10;&lt;p&gt;最近看见NanoPi R2S做软路由十分火，然后我就想起来我吃灰的这货了。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/14/222512733275997.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/14/222512733275997.webp" src="https://www.idzd.top/img/lazy.gif" alt="NanoPi NEO2的一盘位NAS套件"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;看起了挺好的对吧，实际上我是这么用的……（感谢某位大佬赞助的固态）&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/14/224433836999813.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/14/224433836999813.webp" src="https://www.idzd.top/img/lazy.gif" alt="散热堪忧，尤其是夏天"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;或许是我跑的东西有点多？&lt;/p&gt;&#10;&lt;p&gt;有点跑题了，这东西的和R2s差不多，都是1G RAM（R2S是DDR4），都有一个Cortex A53（NEO2是全志H5，R1S是RK3328）直接引出的千兆LAN口，只不过，R2S把USB3.0的口转成千兆口了。而NEO2的是有2个USB2.0的引脚。&lt;/p&gt;&#10;&lt;p&gt;我这个NAS套件，把一个USB2.0口转成了个SATA3的口，虽然是3.0的芯片但受限于2.0的口很是蛋疼。还有个电池供电的时钟模块，解决的关机掉时间的问题。&lt;/p&gt;&#10;&lt;p&gt;他们都有官方移植的openWrt，做个旁路由也凑合。&lt;/p&gt;&#10;&lt;p&gt;总体来说还可以&lt;/p&gt;&#10;&lt;p&gt;但是，系统忒老了。&lt;a href="http://wiki.friendlyarm.com/wiki/index.php/1-bay_NAS_Dock_v1.2_for_NanoPi_NEO/NEO2/zh" title="官方wiki"&gt;官方wiki&lt;/a&gt;提供的是OMV3.x，现在都出到了5.x了。&lt;/p&gt;&#10;&lt;div class="wrap_lo"&gt;ps：官方wiki，国内直接访问不但慢，还动不动连接失败，真蛋疼。不过wiki东西还是比较全的&lt;/div&gt;&#10;&lt;p&gt;于是，我决定折腾下这玩意，&lt;del&gt;本来想自己编译，但太高估我自己了&lt;/del&gt;。&lt;/p&gt;</description></item><item><title>更新软件包提示 W: GPG error 没有公钥，无法验证签名</title><link>https://www.idzd.top/archives/2262/</link><pubDate>Sat, 13 Jun 2020 13:34:00 +0800</pubDate><guid>https://www.idzd.top/archives/2262/</guid><description>&lt;p&gt;今天更新NanoPi neo2 软件包的时候，突然提示&lt;code&gt;GPG error&lt;/code&gt;没有公钥，无法验证签名。具体报错如下：&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/13/549291113620271.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/13/549291113620271.webp" src="https://www.idzd.top/img/lazy.gif" alt="报错信息"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;Reading package lists... Done&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;W: GPG error: http://mirrors.ustc.edu.cn xenial InRelease: The following signatures couldn&lt;span style="color:#5af78e"&gt;&amp;#39;t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#5af78e"&gt;W: GPG error: http://mirrors.ustc.edu.cn xenial-backports InRelease: The following signatures couldn&amp;#39;&lt;/span&gt;t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;W: GPG error: http://mirrors.ustc.edu.cn xenial-proposed InRelease: The following signatures couldn&lt;span style="color:#5af78e"&gt;&amp;#39;t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#5af78e"&gt;W: GPG error: http://mirrors.ustc.edu.cn xenial-security InRelease: The following signatures couldn&amp;#39;&lt;/span&gt;t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;W: GPG error: http://mirrors.ustc.edu.cn xenial-updates InRelease: The following signatures couldn&lt;span style="color:#ff5c57"&gt;&amp;#39;&lt;/span&gt;t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;翻译过来就是&lt;code&gt;GPG&lt;/code&gt;错误，没有公钥，无法验证签名。&lt;/p&gt;</description></item><item><title>Tomcat源码架构笔记（servlet请求处理链路篇）</title><link>https://www.idzd.top/archives/2177/</link><pubDate>Wed, 10 Jun 2020 12:35:00 +0800</pubDate><guid>https://www.idzd.top/archives/2177/</guid><description>&lt;p&gt;在&lt;a href="https://www.idzd.top/archives/2111/" title="上一篇文章"&gt;上一篇文章&lt;/a&gt;中，我们在debug模式下完整的跟踪程序走了一遍，对Tomcat start启动阶段所做的操作有了大概的了解。&lt;/p&gt;&#10;&lt;p&gt;这回，我们一起看看，Tomcat服务器接受到一个请求到处理这个请求之间经历了怎样的过程。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="servlet请求处理链路分析"&gt;Servlet请求处理链路分析&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;一个servlet如何被tomcat处理的？&lt;/li&gt;&#10;&lt;li&gt;servlet请求 -&amp;gt; 可以处理当前servlet请求的servlet实例 -&amp;gt; servlet.service()&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/10/960424045846025.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/10/960424045846025.webp" src="https://www.idzd.top/img/lazy.gif" alt="Servlet请求处理链路和URL的对应关系"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;在&lt;a href="https://www.idzd.top/archives/2111/" title="上一篇文章"&gt;上一篇文章&lt;/a&gt;中我们知道Acceptor线程主要负责监听Socket嵌套字请求，并将其转给sekector（选择器）。&lt;/p&gt;&#10;&lt;p&gt;而poller线程，则负责检查sekector（选择器）中是否有数据到来的channel，如果有就进行处理。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/10/97603607436012.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/10/97603607436012.webp" src="https://www.idzd.top/img/lazy.gif" alt="NIO模型"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;所以Servlet请求处理链路中最重要的就是&lt;code&gt;poller线程&lt;/code&gt;，他负责控制这一系列的操作。&lt;/p&gt;</description></item><item><title>Tomcat源码架构笔记（start启动篇）</title><link>https://www.idzd.top/archives/2111/</link><pubDate>Tue, 09 Jun 2020 06:16:00 +0800</pubDate><guid>https://www.idzd.top/archives/2111/</guid><description>&lt;p&gt;在&lt;a href="https://www.idzd.top/archives/2074/" title="上篇文章"&gt;上篇文章&lt;/a&gt;中，我们讲到了Tomcat启动时候的两大关键阶段之一的init初始化阶段，简单的走了一下初始化的流程。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;init初始化阶段（&lt;a href="https://www.idzd.top/archives/2074/" title="传送门"&gt;传送门&lt;/a&gt;）&lt;/li&gt;&#10;&lt;li&gt;start启动阶段&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;这里我们继续探究Tomcat start启动阶段的运行过程。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="tomcat-start启动阶段"&gt;Tomcat start启动阶段&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/09/83399159259342.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/09/83399159259342.webp" src="https://www.idzd.top/img/lazy.gif" alt="Tomcat start启动阶段"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Tomcat源码架构笔记（init初始化篇）</title><link>https://www.idzd.top/archives/2074/</link><pubDate>Mon, 08 Jun 2020 13:10:00 +0800</pubDate><guid>https://www.idzd.top/archives/2074/</guid><description>&lt;p&gt;在&lt;a href="https://www.idzd.top/archives/2048/" title="上一篇文章"&gt;上一篇文章&lt;/a&gt;里，我们基本上了解到Tomcat是如何启动的，和入口函数要执行的两大关键阶段：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;init初始化阶段&lt;/li&gt;&#10;&lt;li&gt;start启动阶段（&lt;a href="https://www.idzd.top/archives/2111/" title="传送门"&gt;传送门&lt;/a&gt;）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;本篇文章详细展开在Tomcat init初始化阶段，具体干了些什么？是怎么干的？&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp" src="https://www.idzd.top/img/lazy.gif" alt="Tomcat"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="tomcat-init初始化阶段"&gt;Tomcat init初始化阶段&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/08/253022027974288.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/08/253022027974288.webp" src="https://www.idzd.top/img/lazy.gif" alt="Tomcat init初始化阶段"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Tomcat源码架构笔记（入口篇）</title><link>https://www.idzd.top/archives/2048/</link><pubDate>Mon, 08 Jun 2020 07:52:00 +0800</pubDate><guid>https://www.idzd.top/archives/2048/</guid><description>&lt;p&gt;&lt;a href="https://www.idzd.top/archives/2031/" title="上一篇"&gt;上一篇&lt;/a&gt;文章简单的梳理了下Tomcat的架构，这里我们分析跟踪下Tomcat是如何启动的？做了点什么？&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp" src="https://www.idzd.top/img/lazy.gif" alt="Tomcat"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="一点前置知识"&gt;一点前置知识&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://www.idzd.top/archives/2031/" title="上篇文章"&gt;上篇文章&lt;/a&gt;中说了，Tomcat有好多组件（server -&amp;gt; service -&amp;gt; Connector/Contaniner -&amp;gt; Engine -&amp;gt; Host -&amp;gt; Context -&amp;gt; Wrapper），一层套一层的。&lt;/p&gt;&#10;&lt;p&gt;那么Tomcat如何管理众多且复杂的组件们呢？&lt;/p&gt;&#10;&lt;p&gt;这里就来说下Tomcat组件生命周期统一管理接口——LifeCycie&lt;/p&gt;&#10;&lt;p&gt;Tomcat组件生命周期（实例创建 -&amp;gt; 销毁），为了统一规范管理组件的生命周期，Tomcat抽象出&lt;code&gt;LifeCycie&lt;/code&gt;生命周期接口。&lt;/p&gt;</description></item><item><title>Tomcat源码架构笔记（架构篇）</title><link>https://www.idzd.top/archives/2031/</link><pubDate>Mon, 08 Jun 2020 06:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/2031/</guid><description>&lt;p&gt;本片主要简单的介绍记录下Tomcat的设计架构，及其好处。&lt;/p&gt;&#10;&lt;p&gt;同时搭建一个Tomcat源码的阅读架构。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/08/965653015977026.webp" src="https://www.idzd.top/img/lazy.gif" alt="Tomcat是Apache基金会旗下的项目"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="tomcat功能需求"&gt;Tomcat功能（需求）&lt;/h2&gt;&#10;&lt;p&gt;Tomcat作为开发和调试Servlet、JSP 程序的首选JavaWeb服务器（免费、开源）。&lt;/p&gt;&#10;&lt;p&gt;其核心的功能是什么？&lt;/p&gt;&#10;&lt;p&gt;或者可是说是他需要完成些什么动作（需求）？&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/08/977574017936048.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/08/977574017936048.webp" src="https://www.idzd.top/img/lazy.gif" alt="Tomcat工作流程（简单）"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;Tomcat主要功能可以分成以下两部分：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;http服务器&#10;&lt;ul&gt;&#10;&lt;li&gt;接受解析http报文&lt;/li&gt;&#10;&lt;li&gt;socket通信（tcp/ip）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Servlet容器&#10;&lt;ul&gt;&#10;&lt;li&gt;处理具体业务逻辑&lt;/li&gt;&#10;&lt;li&gt;多个Servlet（自带+自定义）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Tomcat源码阅读环境搭建</title><link>https://www.idzd.top/archives/1993/</link><pubDate>Thu, 04 Jun 2020 06:54:00 +0800</pubDate><guid>https://www.idzd.top/archives/1993/</guid><description>&lt;p&gt;最近正在学习Tomcat架构，感觉自己懂了，其实只是感觉。学习这东西到底还是得自己动手去试试。&lt;/p&gt;&#10;&lt;p&gt;本篇文章就是记录一下我搭建Tomcat源码阅读环境的过程，和其中踩的坑。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;本文为**&lt;a href="https://www.idzd.top/archives/2031/" title="Tomcat源码架构笔记"&gt;《Tomcat源码架构笔记》&lt;/a&gt;**的配套文章。&lt;/div&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="下载tomcat源码包"&gt;下载Tomcat源码包&lt;/h2&gt;&#10;&lt;p&gt;首先访问&lt;a href="https://tomcat.apache.org/" title="Tomcat官网"&gt;Tomcat官网&lt;/a&gt;，在左侧侧边栏中选择需要的Tomcat版本，来进入下载页面。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/06/04/527282197423045.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/06/04/527282197423045.webp" src="https://www.idzd.top/img/lazy.gif" alt="选择需要下载的Tomcat版本"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Linux命令之 kill命令</title><link>https://www.idzd.top/archives/1962/</link><pubDate>Sun, 31 May 2020 03:06:00 +0800</pubDate><guid>https://www.idzd.top/archives/1962/</guid><description>&lt;p&gt;kill命令是用来向指定的进程（terminate a process）发送一个信号，来控制进程是否终止/暂停/退出。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;如果想结束指定用户所有进程可以试试&lt;code&gt;killall命令&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;kill&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-s 信号声明 | -n 信号编号 | -信号声明&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; 进程号 | 任务声明&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;kill&lt;/span&gt; -l &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;信号声明&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;常用信号&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;HUP&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;终端断线&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;INT&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;中断（同 Ctrl + C）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;QUIT&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;退出（同 Ctrl + \）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;TERM&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;15&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;终止&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;KILL&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;强制终止&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CONT&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;18&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;继续（与STOP相反， fg/bg命令）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;STOP&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;19&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;暂停（同 Ctrl + Z）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;</description></item><item><title>Linux命令之 ps命令</title><link>https://www.idzd.top/archives/1947/</link><pubDate>Thu, 21 May 2020 12:30:00 +0800</pubDate><guid>https://www.idzd.top/archives/1947/</guid><description>&lt;p&gt;ps(&lt;em&gt;Process Status&lt;/em&gt;)命令使用来罗列当前系统中正在运行进程的状态。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;&lt;code&gt;ps命令&lt;/code&gt;查看的是进程的瞬时状态，它所提供的查看结果并不动态连续的；若想动态监控进程状态应使用&lt;code&gt;top命令&lt;/code&gt;;终止进程使用&lt;code&gt;kill命令&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;linux上进程有5种状态&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;运行&lt;/strong&gt;(正在运行或在运行队列中等待)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;中断&lt;/strong&gt;(休眠中, 受阻, 在等待某个条件的形成或接受到信号)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;不可中断&lt;/strong&gt;(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;僵死&lt;/strong&gt;(进程已终止, 但进程描述符存在, 直到父进程调用&lt;code&gt;wait4()&lt;/code&gt;系统调用后释放)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;停止&lt;/strong&gt;(进程收到&lt;code&gt;SIGSTOP&lt;/code&gt;, &lt;code&gt;SIGSTP&lt;/code&gt;, &lt;code&gt;SIGTIN&lt;/code&gt;, &lt;code&gt;SIGTOU&lt;/code&gt;信号后停止运行运行)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;ps工具标识进程的5种状态码&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;R&lt;/strong&gt; 运行 runnable (on run queue)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;S&lt;/strong&gt; 中断 sleeping&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;D&lt;/strong&gt; 不可中断 uninterruptible sleep (usually IO)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Z&lt;/strong&gt; 僵死 a defunct (&amp;ldquo;zombie&amp;rdquo;) process&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;T&lt;/strong&gt; 停止 traced or stopped&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;ps &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 umask命令</title><link>https://www.idzd.top/archives/1933/</link><pubDate>Wed, 20 May 2020 14:11:00 +0800</pubDate><guid>https://www.idzd.top/archives/1933/</guid><description>&lt;p&gt;显示/修改默认的文件权限&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;umask&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-p&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-S&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;模式&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;如果使用命令时省略了&lt;strong&gt;模式选项&lt;/strong&gt;，则显示当前默认权限码&lt;/div&gt;&lt;/p&gt;</description></item><item><title>Linux命令之 mkdir命令</title><link>https://www.idzd.top/archives/1927/</link><pubDate>Wed, 20 May 2020 12:43:00 +0800</pubDate><guid>https://www.idzd.top/archives/1927/</guid><description>&lt;p&gt;mkdir命令用来新建指定名称的目录。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;mkdir &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; 目录&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;1.用户需要有当前目录的读写权限；&#10;2.不能有重名目录（区分大小写）；&lt;/div&gt;&lt;/p&gt;</description></item><item><title>正则表达式与POSIX字符</title><link>https://www.idzd.top/archives/1882/</link><pubDate>Sat, 16 May 2020 13:30:00 +0800</pubDate><guid>https://www.idzd.top/archives/1882/</guid><description>&lt;h2 id="正则表达式"&gt;正则表达式&lt;/h2&gt;&#10;&lt;div class="hint hint--warning"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--warning-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94"/&gt;&lt;path d="M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;warning:&lt;/span&gt;注意：正则匹配规则较多，此处列出部分常用的语法，请耐心等待完善！如果您发现有错误或仍需添加的部分请在评论区留言或发送邮件。&lt;/div&gt;&lt;/p&gt;&#10;&lt;h3 id="正则语法"&gt;正则语法&lt;/h3&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;正则表达式&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;说明&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;\w&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;匹配文字和数字字符，也就是[A-Za-z0-9]&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;\W&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;\w&lt;/code&gt;的反置形式，匹配一个或多个非单词字符，如点号句号等。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;\b&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;单词锁定符，如: &lt;code&gt;\bgrep\b&lt;/code&gt;只匹配grep。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;^&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;锚定行的开始 如：&lt;code&gt;^grep&lt;/code&gt;匹配所有以grep开头的行。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;$&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;锚定行的结束 如：&lt;code&gt;grep$&lt;/code&gt;匹配所有以grep结尾的行。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;.&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;匹配一个非换行符的字符 如：&lt;code&gt;gr.p&lt;/code&gt;匹配gr后接一个任意字符，然后是p。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;*&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;匹配零个或多个先前字符 如：&lt;code&gt;*grep&lt;/code&gt;匹配所有一个或多个空格后紧跟grep的行。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;.*&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;一起用代表任意字符。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;匹配一个指定范围内的字符，如&lt;code&gt;[Gg]rep&lt;/code&gt;匹配Grep和grep。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;[^]&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;匹配一个不在指定范围内的字符，如：&lt;code&gt;[^A-FH-Z]rep&lt;/code&gt;匹配不包含A-R和T-Z的一个字母开头，紧跟rep的行。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;()&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;标记匹配字符，被暂存到临时区域（最多有9个），它们可以用 \1 到\9 的符号来引用。如&lt;code&gt;(love)&lt;/code&gt;，love被标记为&lt;code&gt;\1&lt;/code&gt;。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;\&amp;lt;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;锚定单词的开始，如:&lt;code&gt;\&amp;lt;grep&lt;/code&gt;匹配包含以grep开头的单词的行。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;\&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;锚定单词的结束，如&lt;code&gt;grep\&amp;gt;&lt;/code&gt;匹配包含以grep结尾的单词的行。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;x{m}&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;重复字符x，m次，如：&lt;code&gt;o\{5\}&lt;/code&gt;匹配包含5个o的行。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;x{m,}&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;重复字符x,至少m次，如：&lt;code&gt;o\{5,\}&lt;/code&gt;匹配至少有5个o的行。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;x{m,n}&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;重复字符x，至少m次，不多于n次，如：&lt;code&gt;o\{5,10\}&lt;/code&gt;匹配5&amp;ndash;10个o的行。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;</description></item><item><title>Linux命令之 grep命令</title><link>https://www.idzd.top/archives/1881/</link><pubDate>Sat, 16 May 2020 13:29:00 +0800</pubDate><guid>https://www.idzd.top/archives/1881/</guid><description>&lt;p&gt;grep（&lt;em&gt;Global Regular Expression Print&lt;/em&gt;）命令是一种强大的文本搜索/匹配工具，它亦可使用正则表达式来作为搜索/匹配条件，并把匹配的行打印出来。&lt;/p&gt;&#10;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;&lt;strong&gt;注意：&lt;strong&gt;如果匹配条件中带有空格，请一定要用&lt;/strong&gt;引号包裹&lt;/strong&gt;起来，否则，空格后的内容会被当成文件名使用。&lt;/div&gt;&lt;/p&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;grep &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;... 模式 &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;文件&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;返回值&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;说明&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;搜索/匹配成功&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;搜索/匹配失败&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;文件不存在&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;grep命令既可以使用字符串作为查询规则/模式，也可以使用 &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/1882/#%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F" title="正则表达式"&gt;正则表达式&lt;/a&gt;&lt;/strong&gt; 和 &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/1882/#POSIX%E5%AD%97%E7%AC%A6" title="POSIX字符"&gt;POSIX字符&lt;/a&gt;&lt;/strong&gt; 作为查询规则/模式。&lt;/div&gt;&lt;/p&gt;</description></item><item><title>Linux命令之 free命令</title><link>https://www.idzd.top/archives/1871/</link><pubDate>Sat, 16 May 2020 03:41:00 +0800</pubDate><guid>https://www.idzd.top/archives/1871/</guid><description>&lt;p&gt;free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中，free命令是最经常使用的命令之一。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;total&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;used&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;free&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;shared&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;buff/cache&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;available&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;总大小&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;已用大小&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;空闲大小&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多个进程共享的内存总额&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;磁盘缓存的大小&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;可获得的&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Mem （物理）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Swap （交换区）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/05/16/004511449125595.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/05/16/004511449125595.webp" src="https://www.idzd.top/img/lazy.gif" alt="free命令"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;free &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;参数&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title> Linux命令之 df命令</title><link>https://www.idzd.top/archives/1865/</link><pubDate>Mon, 04 May 2020 15:35:00 +0800</pubDate><guid>https://www.idzd.top/archives/1865/</guid><description>&lt;p&gt;df命令是用来检查文件系统磁盘空间使用情况。&lt;/p&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;df &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;文件&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 du命令</title><link>https://www.idzd.top/archives/1853/</link><pubDate>Sun, 03 May 2020 15:13:00 +0800</pubDate><guid>https://www.idzd.top/archives/1853/</guid><description>&lt;p&gt;du命令主要用于查看使用文件/目录占用磁盘空间大小的，相似的命令还有&lt;a href="https://www.idzd.top/archives/1865/" title="df"&gt;df&lt;/a&gt;。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;du &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;][&lt;/span&gt;文件&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 xargs命令</title><link>https://www.idzd.top/archives/1841/</link><pubDate>Sat, 02 May 2020 13:33:00 +0800</pubDate><guid>https://www.idzd.top/archives/1841/</guid><description>&lt;p&gt;xargs命令类似于管道，都是将上一条命令的执行结果，传递给后一个命令当参数。&lt;/p&gt;&#10;&lt;p&gt;但是有部分命令不支持管道来传递参数，这时就需要xargs命令了。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;一般来讲xargs命令还是需要配合管道来使用的！&lt;/div&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;xargs &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;... 命令 &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;初始参数&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;xargs&lt;/code&gt;的默认命令是&lt;code&gt;echo&lt;/code&gt;，空格是默认定界符&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;xargs&lt;/code&gt;可以处理管道和标准输入，输入的内容并将其转换成命令的参数&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;xargs&lt;/code&gt;会将管道传递过来的换行和空白转换成空格&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;xargs&lt;/code&gt;当然也可实现多行/单行文本内容的互相转换&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Linux命令之 find命令</title><link>https://www.idzd.top/archives/1820/</link><pubDate>Sat, 02 May 2020 07:45:00 +0800</pubDate><guid>https://www.idzd.top/archives/1820/</guid><description>&lt;p&gt;find命令常用于在Linux文件系统中搜索文件。其提供了十分强大的条件查找功能，导致他的选项多且繁琐。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;常用文件搜索命令&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;说明&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;which&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;查看可执行文件的位置&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;whereis&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;查看文件的位置&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;locate&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;配合数据库查看文件位置&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.idzd.top/archives/1820/" title="find"&gt;find&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;实际搜寻硬盘查询文件名称&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;div class="wrap_lo"&gt;如果你需要执行一个非常消耗资源的find命令时，建议放在后台执行，因为可能会花费很长时间&lt;/div&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;find命令可以配合 &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/1820/#%E6%89%A9%E5%B1%95%EF%BC%9A%E5%85%B3%E4%BA%8Eexec%E9%80%89%E9%A1%B9" title="exec选项"&gt;exec选项&lt;/a&gt;&lt;/strong&gt; 和 &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/1841/" title="xargs命令"&gt;xargs命令&lt;/a&gt;&lt;/strong&gt; 自动化处理搜索到的文件（目录）&lt;/div&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;find &amp;lt;路径&amp;gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;参数&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;表达式&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;默认路径为当前目录；&lt;/li&gt;&#10;&lt;li&gt;默认表达式为 &lt;code&gt;-print&lt;/code&gt;；&lt;/li&gt;&#10;&lt;li&gt;表达式可能由下列成份组成：&#10;&lt;ul&gt;&#10;&lt;li&gt;操作符&lt;/li&gt;&#10;&lt;li&gt;选项&lt;/li&gt;&#10;&lt;li&gt;测试表达式&lt;/li&gt;&#10;&lt;li&gt;动作&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Linux命令之 ln命令</title><link>https://www.idzd.top/archives/1797/</link><pubDate>Fri, 01 May 2020 14:28:00 +0800</pubDate><guid>https://www.idzd.top/archives/1797/</guid><description>&lt;p&gt;ln命令可以为某一个文件在另外一个位置建立一个同步的链接。类似于 Windows 中的快捷方式，可以有效节约磁盘空间。&lt;/p&gt;&#10;&lt;div class="hint hint--warning"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--warning-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94"/&gt;&lt;path d="M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;warning:&lt;/span&gt;ln命令会保持每一处链接文件的同步性，也就是说，不论你改动了哪一处，其它的文件都会发生相同的变化；&lt;/div&gt;&lt;/p&gt;&#10;&lt;p&gt;链接又分&lt;strong&gt;软链接&lt;/strong&gt;和&lt;strong&gt;硬链接&lt;/strong&gt;两种&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;软链接(symbolic link)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;硬链接(hard link)&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;使用&lt;code&gt;ln –s 源文件 目标文件&lt;/code&gt;创建&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;使用&lt;code&gt;ln 源文件 目标文件&lt;/code&gt;创建&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;以路径的形式存在。类似于&lt;em&gt;Windows&lt;/em&gt;中的快捷方式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;以文件副本的形式存在。但不占用实际空间&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;可以跨文件系统&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;不可以跨文件系统&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;可以对一个不存在的文件名进行链接&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;只有在同一个文件系统中才能创建&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;可以对目录进行软链接&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;不允许给目录创建硬链接&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;div class="hint hint--warning"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--warning-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94"/&gt;&lt;path d="M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;warning:&lt;/span&gt;无论是软链接还是硬链接，文件都会保持同步变化。&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div class="wrap_lo"&gt;ln指令用在链接文件或目录，如同时指定两个以上的文件或目录，且最后的目的地是一个已经存在的目录，则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录，且最后的目的地并非是一个已存在的目录，则会出现错误信息。&lt;/div&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;ln &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;参数&lt;span style="color:#ff6ac1"&gt;][&lt;/span&gt;源文件或目录&lt;span style="color:#ff6ac1"&gt;][&lt;/span&gt;目标文件或目录&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>shell常用特殊符号</title><link>https://www.idzd.top/archives/1793/</link><pubDate>Fri, 01 May 2020 10:11:00 +0800</pubDate><guid>https://www.idzd.top/archives/1793/</guid><description>&lt;p&gt;!!!&lt;/p&gt;&#10;&lt;table data-line="0"&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;特殊符号&lt;/th&gt;&#10;&lt;th&gt;说明&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;&amp;lt;&lt;/code&gt; &lt;code&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;重定向输入输出符号&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt; &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;重定向输入输出符号，有追加功能&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;2&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;错误重定向输出符号，覆盖原文件内容&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;2&amp;gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;错误重定向输出符号，有文件内容追加的功能&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;*&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;匹配任意字符&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;?&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;匹配任意一个字符&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;|&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;管道符号，用前一个命令的输出作为后一个命令的输入&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;&amp;amp;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;后台进程符&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;逻辑与符号。用法：&lt;code&gt;命令1 &amp;amp;&amp;amp; 命令2&lt;/code&gt; 表示：只有命令1执行成功，才继续执行命令2&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;||&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;逻辑或符号。用法：&lt;code&gt;命令1 || 命令2&lt;/code&gt; 表示：如果命令1执行成功，则命令2不执行；反之，命令1执行失败，才执行命令2&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;!&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;逻辑非符号。排除指定范围&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;[x-y]&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;表示一定的范围&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;#&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;注释符&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;""&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;双引号表示把它所包含的内容作为普通字符，但&lt;code&gt;''&lt;/code&gt; &lt;code&gt;\&lt;/code&gt; &lt;code&gt;$&lt;/code&gt; &lt;code&gt;``&lt;/code&gt;除外&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;''&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;单引号表示把它所包含的内容作为普通字符，无特殊例外&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;$&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;变量符&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;\&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;转义字符，使特殊符号变为普通字符&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;``&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;倒引号，表示它所包含的内容&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;命令分隔符&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;()&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;表示整体执行命令&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;变量分离&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;!!!&lt;/p&gt;</description></item><item><title>Linux命令之 cat命令</title><link>https://www.idzd.top/archives/1771/</link><pubDate>Thu, 30 Apr 2020 14:10:00 +0800</pubDate><guid>https://www.idzd.top/archives/1771/</guid><description>&lt;p&gt;cat命令的用途是连接文件或标准输入并打印。&lt;/p&gt;&#10;&lt;p&gt;这个命令常用来显示文件内容，或者将几个文件连接起来显示，或者从标准输入读取内容并显示，它常与&lt;a href="https://www.idzd.top/archives/1793/" title="重定向符号"&gt;重定向符&lt;/a&gt;（&lt;code&gt;&amp;gt;&lt;/code&gt; &lt;code&gt;&amp;lt;&lt;/code&gt; &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; &lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt;）配合使用。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;cat主要有三大功能：&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;数字列表项目一次显示整个文件:&lt;code&gt;cat filename&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;从键盘创建一个文件:&lt;code&gt;cat &amp;gt; filename&lt;/code&gt; 只能创建新文件,不能编辑已有文件.&lt;/li&gt;&#10;&lt;li&gt;将几个文件合并为一个文件:&lt;code&gt;cat file1 file2 &amp;gt; file&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;&lt;strong&gt;tac命令：&lt;/strong&gt;&#10;tac 是将 cat 反写过来，所以他的功能就跟 cat 相反， cat 是由第一行到最后一行连续显示在萤幕上，而 tac 则是由最后一行到第一行反向在萤幕上显示出来！&lt;/div&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;cat &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;文件&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 wget命令</title><link>https://www.idzd.top/archives/1751/</link><pubDate>Sat, 25 Apr 2020 15:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/1751/</guid><description>&lt;p&gt;wget是linux中常用的命令行下载工具，支持HTTP，HTTPS和FTP协议，可以使用HTTP代理。部分linux发行版可能需要手动安装。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;软件源安装wget：&lt;/strong&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#Debian系的发行版&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;sudo apt-get install wget&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;编译安装wget：&lt;/strong&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;tar -zxvf wget-1.9.1.tar.gz&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;cd&lt;/span&gt; wget-1.9.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;./configure&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;make&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;make install&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;wget &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;参数&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;URL地址&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 ping命令</title><link>https://www.idzd.top/archives/1745/</link><pubDate>Sat, 25 Apr 2020 15:12:00 +0800</pubDate><guid>https://www.idzd.top/archives/1745/</guid><description>&lt;p&gt;ping命令通常用来测试与目标主机的连通性，它通过发送&lt;em&gt;ICMP ECHO_REQUEST&lt;/em&gt;数据包到网络主机（&lt;em&gt;send ICMP ECHO_REQUEST to network hosts&lt;/em&gt;），并显示响应情况，这样我们就可以根据它输出的信息来确定目标主机是否可访问（但这不是绝对的）。&lt;/p&gt;&#10;&lt;p&gt;有些服务器为了防止通过ping探测到，通过防火墙设置了禁止ping或者在内核参数中禁止ping，这样就不能通过ping确定该主机是否还处于开启状态。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;linux下ping不会&lt;strong&gt;自动终止&lt;/strong&gt;,需要按&lt;code&gt;ctrl+c&lt;/code&gt;终止或用参数&lt;code&gt;-c&lt;/code&gt;指定次数。&lt;/div&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;ping &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;参数&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;主机名或IP地址&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 tar命令</title><link>https://www.idzd.top/archives/1734/</link><pubDate>Sat, 25 Apr 2020 14:53:00 +0800</pubDate><guid>https://www.idzd.top/archives/1734/</guid><description>&lt;p&gt;tar命令用于把零散的文件打包成一个文件，方便备份和网络传输。&lt;/p&gt;&#10;&lt;p&gt;[waring]tar本身不具有压缩功能。他是调用压缩功能实现的.[/waring]&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;tar&lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;必要参数&lt;span style="color:#ff6ac1"&gt;][&lt;/span&gt;选择参数&lt;span style="color:#ff6ac1"&gt;][&lt;/span&gt;文件&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 mv命令</title><link>https://www.idzd.top/archives/1731/</link><pubDate>Sat, 25 Apr 2020 14:38:00 +0800</pubDate><guid>https://www.idzd.top/archives/1731/</guid><description>&lt;p&gt;mv命令是move的缩写，可以用来移动文件或者将文件改名（move (rename) files），是Linux系统下常用的命令，经常用来备份文件或者目录。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;若第二个参数类型是文件时，mv命令完成文件重命名，此时，源文件只能有一个（也可以是源目录名）。&lt;/li&gt;&#10;&lt;li&gt;若第二个参数是已存在的目录名称时，源文件或目录参数可以有多个，mv命令将各参数指定的源文件均移至目标目录中。&lt;/li&gt;&#10;&lt;li&gt;在跨文件系统移动文件时，mv先拷贝，再将原有文件删除，而链至该文件的链接也将丢失。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;mv &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; 源文件或目录 目标文件或目录&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 scp命令</title><link>https://www.idzd.top/archives/1716/</link><pubDate>Wed, 22 Apr 2020 12:25:00 +0800</pubDate><guid>https://www.idzd.top/archives/1716/</guid><description>&lt;p&gt;scp是 &lt;em&gt;secure copy&lt;/em&gt; 的简写，用于在Linux下进行远程拷贝文件的命令，和它类似的命令有cp。&lt;/p&gt;&#10;&lt;p&gt;不过cp只是在本机进行拷贝不能跨服务器，而且scp传输是加密的。可能会稍微影响一下速度。&lt;/p&gt;&#10;&lt;p&gt;当你服务器硬盘变为&lt;code&gt;只读(read only system)&lt;/code&gt;时，用scp可以帮你把文件移出来。&lt;/p&gt;&#10;&lt;p&gt;另外，scp还非常不占资源，不会提高多少系统负荷，在这一点上，rsync就远远不及它了。虽然 rsync比scp会快一点，但当小文件众多的情况下，rsync会导致硬盘I/O非常高，而scp基本不影响系统正常使用。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;scp &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;参数&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;原路径&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;目标路径&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 ssh-keygen命令</title><link>https://www.idzd.top/archives/1709/</link><pubDate>Wed, 22 Apr 2020 12:13:00 +0800</pubDate><guid>https://www.idzd.top/archives/1709/</guid><description>&lt;p&gt;身份验证密钥生成，管理和转换工具（一般随同OpenSSH同时安装）&lt;/p&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;ssh-keygen &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;参数&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 ssh命令</title><link>https://www.idzd.top/archives/1694/</link><pubDate>Wed, 22 Apr 2020 11:31:00 +0800</pubDate><guid>https://www.idzd.top/archives/1694/</guid><description>&lt;p&gt;SSH是一种网络协议，用于计算机之间的加密登录。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;注意：SSH只是一种协议（&lt;strong&gt;敲黑板~&lt;/strong&gt;），存在多种实现，既有商业实现，也有开源实现。这里讨论仅针对OpenSSH，它是自由软件，应用非常广泛。&lt;/div&gt;&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;配合&lt;a href="https://www.idzd.top/archives/217/" title="Linux SSH密钥登录"&gt;Linux SSH密钥登录&lt;/a&gt;，远程服务器操作就像在本机上一样&lt;/div&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;ssh &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;参数&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;user@&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;hostname &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;command&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 touch命令</title><link>https://www.idzd.top/archives/1689/</link><pubDate>Wed, 15 Apr 2020 14:42:00 +0800</pubDate><guid>https://www.idzd.top/archives/1689/</guid><description>&lt;p&gt;用来修改文件时间戳，若文件不存在，系统会则会新建一个文件。&lt;/p&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;touch &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; 文件&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 rm命令</title><link>https://www.idzd.top/archives/1686/</link><pubDate>Wed, 15 Apr 2020 14:25:00 +0800</pubDate><guid>https://www.idzd.top/archives/1686/</guid><description>&lt;p&gt;删除一个目录中的一个或多个文件或目录，如果没有使用&lt;code&gt;-r&lt;/code&gt;选项，则&lt;code&gt;rm&lt;/code&gt;不会删除目录。&lt;/p&gt;&#10;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;&lt;strong&gt;注意：&lt;strong&gt;删除命令很&lt;/strong&gt;危险&lt;/strong&gt;！Linux下没有回收站，删除文件前请三思！慎用&lt;code&gt;-r&lt;/code&gt;和&lt;code&gt;-f&lt;/code&gt;参数！ 永远不要用&lt;code&gt;rm -rf /*&lt;/code&gt; 除非你能知道并承受其带来的后果！&lt;/div&gt;&lt;/p&gt;&#10;&lt;div class="wrap_lo"&gt;如果使用`rm`来删除文件，仍可以通过磁盘数据恢复软件来恢复文件。如果想保证该文件的内容无法还原，请考虑使用`shred`。&lt;/div&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;rm &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; 文件&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title> Linux命令之 sudo命令</title><link>https://www.idzd.top/archives/1680/</link><pubDate>Wed, 15 Apr 2020 14:04:00 +0800</pubDate><guid>https://www.idzd.top/archives/1680/</guid><description>&lt;p&gt;以系统管理者的身份执行命令。而不需要切换用户。&lt;/p&gt;&#10;&lt;div class="wrap_em"&gt;仅限在`/etc/sudoers`中记录的用户使用。&lt;/div&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;sudo -h | -K | -k | -V&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;sudo -v &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-AknS&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-g group&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-h host&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-p prompt&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-u user&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;sudo -l &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-AknS&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-g group&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-h host&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-p prompt&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-U user&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-u user&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;command&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;sudo &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-AbEHknPS&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-r role&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-t type&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-C num&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-g group&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-h host&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-p prompt&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-T timeout&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-u user&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;VAR&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;value&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-i|-s&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;&amp;lt;command&amp;gt;&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;9&lt;/span&gt;&lt;span&gt;sudo -e &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-AknS&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-r role&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-t type&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-C num&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-g group&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-h host&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-p prompt&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-T timeout&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-u user&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; file ...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>时间线</title><link>https://www.idzd.top/update.html</link><pubDate>Tue, 14 Apr 2020 14:40:00 +0800</pubDate><guid>https://www.idzd.top/update.html</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;2026/07/18&lt;/strong&gt; Waxy v2026.07.18 稳定版发布了~ 估计以后更新节奏就跟着官方诈尸走。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;2025/12/14&lt;/strong&gt; Good~ React双响&amp;hellip; umami又炸了&amp;hellip;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;2025/12/05&lt;/strong&gt; React的漏洞，本以为是隔岸观火，谁曾想我就是那个赤壁&amp;hellip; 服务器的umami炸了&amp;hellip;&lt;/p&gt;</description></item><item><title>Linux命令之 cp命令</title><link>https://www.idzd.top/archives/1651/</link><pubDate>Tue, 14 Apr 2020 13:18:00 +0800</pubDate><guid>https://www.idzd.top/archives/1651/</guid><description>&lt;p&gt;将源文件复制至目标文件，或将多个源文件复制至目标目录，是 Linux 系统中最常用的命令之一。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;一般情况下，shell 会设置一个别名，在命令行下复制文件时，如果目标文件已经存在，就会询问是否覆盖，不管你是否使用&lt;code&gt;-i&lt;/code&gt;参数。&lt;/p&gt;&#10;&lt;p&gt;但是如果是在 shell 脚本中执行&lt;code&gt;cp&lt;/code&gt;时，没有&lt;code&gt;-i&lt;/code&gt;参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。&lt;/div&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;cp &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;-T&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; 源文件 目标文件&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#或：&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;cp &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; 源文件... 目录&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#或：&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;cp &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; -t 目录 源文件...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 pwd命令</title><link>https://www.idzd.top/archives/1649/</link><pubDate>Tue, 14 Apr 2020 13:11:00 +0800</pubDate><guid>https://www.idzd.top/archives/1649/</guid><description>&lt;p&gt;打印当前工作目录的完整路径。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;pwd&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;选项&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 cd命令</title><link>https://www.idzd.top/archives/1639/</link><pubDate>Tue, 14 Apr 2020 12:42:00 +0800</pubDate><guid>https://www.idzd.top/archives/1639/</guid><description>&lt;p&gt;用来改变 shell 工作目录的一个命令。&lt;/p&gt;&#10;&lt;div class="wrap_lo"&gt;PS：`~` 也表示为当前用户的主目录；`.`则是表示目前所在的目录；`..`则表示目前目录位置的上一层目录。&lt;/div&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="命令语法"&gt;命令语法&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;cd&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;参数&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;[&lt;/span&gt;目录名&lt;span style="color:#ff6ac1"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux命令之 ll命令</title><link>https://www.idzd.top/archives/1624/</link><pubDate>Mon, 13 Apr 2020 13:04:00 +0800</pubDate><guid>https://www.idzd.top/archives/1624/</guid><description>&lt;p&gt;ll 命令，用于列出当前目录下的文件和子目录。同时可以展现文件和目录的相关属性。&lt;/p&gt;&#10;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;注意：&lt;code&gt;ll&lt;/code&gt;并不是linux下的一个基本的命令，它实际上是&lt;code&gt;ls -l&lt;/code&gt;命令的一个别名。&lt;/div&gt;&lt;/p&gt;</description></item><item><title>Linux命令之 ls命令</title><link>https://www.idzd.top/archives/1621/</link><pubDate>Mon, 13 Apr 2020 12:56:00 +0800</pubDate><guid>https://www.idzd.top/archives/1621/</guid><description>&lt;p&gt;ls命令用于列出当前目录下的文件和子目录（若给出指定目录则列出指定目录下的文件和子目录）。同时可以展现文件和目录的相关属性（需加参数）。&lt;/p&gt;&#10;&lt;p&gt;PS：以&lt;code&gt;.&lt;/code&gt;开头的文件或目录为隐藏属性，默认不显示。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/04/13/822792591291221.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/04/13/822792591291221.webp" src="https://www.idzd.top/img/lazy.gif" alt="ls 命令图解"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>启用CDN后Nginx获取真实IP地址</title><link>https://www.idzd.top/archives/1600/</link><pubDate>Sat, 04 Apr 2020 12:16:00 +0800</pubDate><guid>https://www.idzd.top/archives/1600/</guid><description>&lt;p&gt;启用CDN后，网站日志记录的全是CDN的回源ip，而阿里云CDN日志是一小时一分割的，下载合并太麻烦了。&lt;/p&gt;&#10;&lt;p&gt;后来发现在Nginx配置文件中添加下面的内容，就可以正常获取访问者真实ip了。&lt;/p&gt;</description></item><item><title>Vim 简单用法总结</title><link>https://www.idzd.top/archives/1576/</link><pubDate>Fri, 03 Apr 2020 12:35:00 +0800</pubDate><guid>https://www.idzd.top/archives/1576/</guid><description>&lt;p&gt;Vim是一个十分强大且可自由定制的文本编辑器。这里简单的记录一些Vim的使用方法，方便自己日后复习。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/04/03/173241575001455.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/04/03/173241575001455.webp" src="https://www.idzd.top/img/lazy.gif" alt="Vim"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;Vim是一种工具，阅读工具的说明书可以方便你快速上手，但背诵说明书并不会让你熟练使用！&lt;/div&gt;&lt;/p&gt;</description></item><item><title>MX Linux 换国内源</title><link>https://www.idzd.top/archives/1560/</link><pubDate>Fri, 20 Mar 2020 09:49:00 +0800</pubDate><guid>https://www.idzd.top/archives/1560/</guid><description>&lt;p&gt;MX Linux 换国内源步骤记录~&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/03/18/03672749317379.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/03/18/03672749317379.webp" src="https://www.idzd.top/img/lazy.gif" alt="MX Linux &amp;#43; xfce 桌面"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;MX Linux 给我的感觉 轻量、界面调校挺好（个人比较喜欢那种方方正正又带一丝圆润的扁平界面）、自带的MXtool提供不少快捷工具、稳如老狗（毕竟 Debian Stable）。如果不想太折腾，应该挺好的。&lt;/p&gt;</description></item><item><title>MX Linux 安装搜狗输入法 （xfce桌面）</title><link>https://www.idzd.top/archives/1555/</link><pubDate>Wed, 18 Mar 2020 05:56:00 +0800</pubDate><guid>https://www.idzd.top/archives/1555/</guid><description>&lt;p&gt;在 MX Linux （xfce桌面）下安装搜狗输入法踩坑记录~&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/03/18/107763773394639.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/03/18/107763773394639.webp" src="https://www.idzd.top/img/lazy.gif" alt="MX Linux &amp;#43; 搜狗拼音输入法"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Asp.net 生成网站及Linux部署</title><link>https://www.idzd.top/archives/1540/</link><pubDate>Sat, 14 Mar 2020 14:43:00 +0800</pubDate><guid>https://www.idzd.top/archives/1540/</guid><description>&lt;p&gt;Asp.net 生成网站及Linux部署。&lt;/p&gt;&#10;&lt;p&gt;在以前的一片文章中记录了 &lt;strong&gt;&lt;a href="https://www.idzd.top/archives/208/" title="Linux 下搭建SQLserver"&gt;Linux 下搭建SQLserver&lt;/a&gt;&lt;/strong&gt; 的过程。最近正好突发奇想，试试把Asp.net 的网站部署到 linux 上试试。&lt;/p&gt;</description></item><item><title>Hexo 常用命令&amp;配置说明</title><link>https://www.idzd.top/archives/1485/</link><pubDate>Fri, 13 Mar 2020 01:51:00 +0800</pubDate><guid>https://www.idzd.top/archives/1485/</guid><description>&lt;h2 id="hexo-常用命令配置说明"&gt;Hexo 常用命令&amp;amp;配置说明&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/03/13/758473593468569.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/03/13/758473593468569.webp" src="https://www.idzd.top/img/lazy.gif" alt="Hexo"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;简单的整理一些 heox 常用命令，并对配置文件添加了中文注释。&lt;/p&gt;&#10;&lt;p&gt;查看右侧目录，快速获取相关信息！&lt;/p&gt;</description></item><item><title>Hexo搭建个人博客+切换主题+Github托管+自动构建全流程记录</title><link>https://www.idzd.top/archives/1430/</link><pubDate>Fri, 13 Mar 2020 01:46:00 +0800</pubDate><guid>https://www.idzd.top/archives/1430/</guid><description>&lt;p&gt;最近一直在折腾用Hexo搭建博客，目前暂告一段落。&lt;/p&gt;&#10;&lt;p&gt;正好把这一段时间的心得记录一下，希望可以帮助到有需要的小伙伴们。&lt;/p&gt;&#10;&lt;p&gt;本文主要记录了Hexo个人博客搭建、主题切换、Github托管、自动构建。&lt;/p&gt;&#10;&lt;p&gt;首先成果先嘚瑟一下。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/03/02/365163284216746.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/03/02/365163284216746.webp" src="https://www.idzd.top/img/lazy.gif" alt="HEXO个人博客主页"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Markdown 语法参考</title><link>https://www.idzd.top/archives/1439/</link><pubDate>Thu, 12 Mar 2020 14:33:00 +0800</pubDate><guid>https://www.idzd.top/archives/1439/</guid><description>&lt;p&gt;Typecho和hexo，都使用 Markdown 作为其内容书写语法。&lt;/p&gt;&#10;&lt;p&gt;这是因为相较于&lt;strong&gt;富文本语法&lt;/strong&gt;来说， Markdown 更加简洁，原始文件即使没有引擎解析仍然有很好的易读性。&lt;/p&gt;&#10;&lt;p&gt;最重要的是 Markdown 通过简单语法，让人们专注于文字书写。&lt;/p&gt;&#10;&lt;p&gt;Markdown 编写的文档后缀为 &lt;code&gt;.md&lt;/code&gt;或&lt;code&gt;.markdown&lt;/code&gt;。&lt;/p&gt;&#10;&lt;p&gt;下面是一些 Markdown 常用语法。&lt;/p&gt;</description></item><item><title>Github已Fork项目同步原始项目代码</title><link>https://www.idzd.top/archives/1422/</link><pubDate>Mon, 09 Mar 2020 12:00:00 +0800</pubDate><guid>https://www.idzd.top/archives/1422/</guid><description>&lt;p&gt;你在维护一个项目时候，需要时刻保持Fork的项目和原项目的代码一致，防止冲突。&lt;/p&gt;&#10;&lt;p&gt;这里简单记录一下Github如何使自己Fork的项目和原项目同步。&lt;/p&gt;&#10;&lt;p&gt;目前有两种方式。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;本地使用命令从原来项目上合并代码到本地，然后在push上去。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;直接在 github 进行一个新的&lt;code&gt;Pull request&lt;/code&gt;，然后在pull回本地。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;很显然第二种方法十分友好（图形化+chrome翻译吹爆），这里就简单记录一下步骤。&lt;/p&gt;</description></item><item><title>Github向他人项目贡献代码</title><link>https://www.idzd.top/archives/1408/</link><pubDate>Sun, 08 Mar 2020 13:06:00 +0800</pubDate><guid>https://www.idzd.top/archives/1408/</guid><description>&lt;p&gt;Github向他人项目贡献自己的代码过程简单的记录。&lt;/p&gt;&#10;&lt;p&gt;最近，我对自己喜欢的一个hexo主题，进行了修改。想把我的更改的这一部分（bug修复，功能添加）提交回去。&lt;/p&gt;&#10;&lt;h2 id="首先fork-对方代码"&gt;首先，Fork 对方代码&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/03/08/714892390407542.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/03/08/714892390407542.webp" src="https://www.idzd.top/img/lazy.gif" alt="Fork 对方代码"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Hexo 主题简单实现搜索功能</title><link>https://www.idzd.top/archives/1400/</link><pubDate>Sun, 08 Mar 2020 12:34:00 +0800</pubDate><guid>https://www.idzd.top/archives/1400/</guid><description>&lt;p&gt;最近一直在折腾Hxeo的站点，发现自带的主题吗，没有搜索功能。决定自己改一个。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;感谢 &lt;strong&gt;@bay1&lt;/strong&gt; 大佬的文章，原文链接：https://segmentfault.com/a/1190000011917419&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;下面就是在hexo主题添加本地搜索功能的过程。&lt;/p&gt;&#10;&lt;h2 id="生成搜索索引文件"&gt;生成搜索索引文件&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;hexo-generator-searchdb&lt;/code&gt;插件可以生成一个xml格式的索引文件。之后再利用jQuery的ajax函数查询并处理生成的索引文件。&lt;/p&gt;&#10;&lt;h3 id="获取-hexo-generator-searchdb-插件"&gt;获取 hexo-generator-searchdb 插件&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;npm install hexo-generator-searchdb --save&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="修改-hexo-全局配置文件"&gt;修改 hexo 全局配置文件&lt;/h3&gt;&#10;&lt;p&gt;在 hexo 全局配置文件&lt;code&gt;_config.yml&lt;/code&gt;最后添加下面的配置。&lt;/p&gt;</description></item><item><title>为OSS静态网站配置阿里云CDN</title><link>https://www.idzd.top/archives/1385/</link><pubDate>Mon, 02 Mar 2020 08:47:00 +0800</pubDate><guid>https://www.idzd.top/archives/1385/</guid><description>&lt;p&gt;为OSS静态网站配置阿里云CDN，加快网站、图片、视频、文件的访问速度。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.idzd.top/archives/1339/" title="上篇文章"&gt;上篇文章&lt;/a&gt;&lt;/strong&gt; 说了如何在阿里云OSS上部署一个静态网站（例如：Hexo）。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/03/02/365163284216746.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/03/02/365163284216746.webp" src="https://www.idzd.top/img/lazy.gif" alt="Hexo静态网站"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;因为我的OSS机房在北京，所以部分地方访问会比较慢，这时候就需要上CDN了。（OSS加速太贵，多地备份用不到，CDN是一个比较好的选择。）&lt;/p&gt;</description></item><item><title>使用阿里云OSS部署静态网站</title><link>https://www.idzd.top/archives/1339/</link><pubDate>Sun, 01 Mar 2020 14:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/1339/</guid><description>&lt;p&gt;使用阿里云的对象存储服务（Object Storage Service，简称 OSS）部署静态类网站。&lt;/p&gt;&#10;&lt;p&gt;说实话，使用OSS部署静态类Blog网站（例如：Hexo），是相当划算的一件事，相比于购买云主机，云服务器。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/03/01/774582856975947.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/03/01/774582856975947.webp" src="https://www.idzd.top/img/lazy.gif" alt="阿里云OSS一年才10块，哪怕按量付费也很便宜。"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;当然，托管在 Github 或是 Coding 、码云之类的网站也没问题。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Github 国内访问慢的一批。&lt;/li&gt;&#10;&lt;li&gt;码云要绑定自己的域名得开通 Gitee Pages Pro ，一年就99块（还不如买个空间呢）。&lt;/li&gt;&#10;&lt;li&gt;coding 可以绑定自己的域名，可以提交百度收录，5人+20个项目+50G空间，挺好的。但是，听说最近服务不是太稳定。需要在观察一下。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;但是，阿里云的OSS配合CDN，真香。（&lt;a href="https://www.idzd.top/archives/1385/" title="为OSS静态网站配置阿里云CDN"&gt;传送门：为OSS静态网站配置阿里云CDN&lt;/a&gt;）&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/03/01/73315150989603.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/03/01/73315150989603.webp" src="https://www.idzd.top/img/lazy.gif" alt="OSS&amp;#43;CDN"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;再配合着免费的SSL证书，单纯自己记录些笔记，日志之类的还是非常方便的。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/03/01/735461492362348.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/03/01/735461492362348.webp" src="https://www.idzd.top/img/lazy.gif" alt="Let&amp;rsquo;s Encrypt的证书"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;废话不多说了，下面开始了。&lt;/p&gt;</description></item><item><title>Git 设置代理 加快clone速度</title><link>https://www.idzd.top/archives/1329/</link><pubDate>Tue, 25 Feb 2020 06:35:00 +0800</pubDate><guid>https://www.idzd.top/archives/1329/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;国内访问Github本身就挺难的，但是加上长城宽带简直&lt;del&gt;男上加男&lt;/del&gt;。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/02/25/124812974498182.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/02/25/124812974498182.webp" src="https://www.idzd.top/img/lazy.gif" alt="当然直接修改~/.gitconfig文件也可以"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;Shell走代理的方法：&lt;a href="https://www.idzd.top/archives/2304/" title="传送门"&gt;传送门&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;</description></item><item><title>Git clone 报 fatal: protocol 'https' is not supported 错误</title><link>https://www.idzd.top/archives/1321/</link><pubDate>Tue, 25 Feb 2020 05:58:00 +0800</pubDate><guid>https://www.idzd.top/archives/1321/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;Git clone 报 fatal: protocol &amp;lsquo;https&amp;rsquo; is not supported 错误&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/02/25/103461850678820.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/02/25/103461850678820.webp" src="https://www.idzd.top/img/lazy.gif" alt="Git 错误提示信息"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/02/25/10405241463662.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/02/25/10405241463662.webp" src="https://www.idzd.top/img/lazy.gif" alt="Git 错误提示信息"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;看到 &lt;code&gt;fatal: repository ' ' does not exist&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;再联想到&lt;code&gt;ctrl + v&lt;/code&gt;时候 bash 不自然的错位，怀疑是不是粘贴进去些奇怪的东西。&lt;/p&gt;</description></item><item><title>IDEA 2019.3 破解激活</title><link>https://www.idzd.top/archives/1293/</link><pubDate>Sun, 23 Feb 2020 13:59:00 +0800</pubDate><guid>https://www.idzd.top/archives/1293/</guid><description>&lt;p&gt;最近IDEA 更新到2019.3 版本，&lt;a href="https://www.idzd.top/archives/913/" title="以前的激活方式"&gt;以前的激活方式&lt;/a&gt;都失效了。&lt;/p&gt;&#10;&lt;p&gt;这次重新记录一下，激活过程和期间踩的坑。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;&lt;strong&gt;文件下载地址：&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>自动生成markdown表格的网站</title><link>https://www.idzd.top/archives/1274/</link><pubDate>Sun, 23 Feb 2020 06:44:00 +0800</pubDate><guid>https://www.idzd.top/archives/1274/</guid><description>&lt;p&gt;Typecho支持表格，想想当初像傻子一样在ide里手撸 table 画表格。真是蛋疼。&lt;/p&gt;&#10;&lt;p&gt;但后来发现markdown画表格，和手撸 HTML 半斤八两，区别无外乎一个蛋疼还是一对蛋疼。&lt;/p&gt;</description></item><item><title>归档</title><link>https://www.idzd.top/custom.html</link><pubDate>Sun, 23 Feb 2020 04:17:00 +0800</pubDate><guid>https://www.idzd.top/custom.html</guid><description>&lt;p&gt;归档页面&lt;/p&gt;</description></item><item><title>NextCloud安装时数据库报错</title><link>https://www.idzd.top/archives/1247/</link><pubDate>Fri, 21 Feb 2020 13:03:00 +0800</pubDate><guid>https://www.idzd.top/archives/1247/</guid><description>&lt;p&gt;NextCloud安装时使用MySQL报错。报错日志如下：&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/02/21/90099734317485.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/02/21/90099734317485.webp" src="https://www.idzd.top/img/lazy.gif" alt="NextCloud安装时报错日志"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;错误：&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;An &lt;span style="color:#ff6ac1"&gt;exception&lt;/span&gt; occurred while executing &lt;span style="color:#5af78e"&gt;&amp;#39;SELECT `uid`, `displayname` FROM `oc_users` WHERE `uid_lower` = ?&amp;#39;&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;with&lt;/span&gt; params [&lt;span style="color:#5af78e"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;]: &lt;span style="color:#ff6ac1"&gt;SQLSTATE&lt;/span&gt;[&lt;span style="color:#ff9f43"&gt;42&lt;/span&gt;S02]: Base &lt;span style="color:#ff6ac1"&gt;table&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;or&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;view&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;not&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;found&lt;/span&gt;: &lt;span style="color:#ff9f43"&gt;1146&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;Table&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;nextcloud.oc_users&amp;#39;&lt;/span&gt; doesn&lt;span style="color:#5af78e"&gt;&amp;#39;t exist&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;起初觉得可能是因为&lt;code&gt;binlog_format&lt;/code&gt;设置问题，修改之后发现问题并没有解决。&lt;/p&gt;</description></item><item><title>推荐一个有趣的网站</title><link>https://www.idzd.top/archives/1237/</link><pubDate>Mon, 17 Feb 2020 14:08:00 +0800</pubDate><guid>https://www.idzd.top/archives/1237/</guid><description>&lt;p&gt;如果你最近老有有人问一些&lt;strong&gt;稍微&lt;/strong&gt;搜索、&lt;strong&gt;稍微&lt;/strong&gt;动点脑子、&lt;strong&gt;稍微&lt;/strong&gt;动动手就可以解决的问题时候。&lt;/p&gt;&#10;&lt;p&gt;你可以试试 &lt;strong&gt;&lt;a href="https://zh.lmgtfy.com/" title="Let Me Google That For You"&gt;lmgtfy.com&lt;/a&gt;&lt;/strong&gt; 这个网站，来教他如何使用搜索引擎解决问题。（用完都说爽！）&lt;/p&gt;</description></item><item><title>实现hitokoto打字效果</title><link>https://www.idzd.top/archives/1229/</link><pubDate>Mon, 10 Feb 2020 14:28:00 +0800</pubDate><guid>https://www.idzd.top/archives/1229/</guid><description>&lt;p&gt;使用hitokoto和typed.js，实现hitokoto的打字效果。&lt;a href="https://www.idzd.top/lead.html" title="传送门"&gt;传送门&lt;/a&gt;&lt;/p&gt;&#10;&lt;video class="post-video" src="https://www.idzd.top/usr/uploads/2020/02/10/448931824694290.mp4" poster="/usr/uploads/2020/02/10/454723057257171.webp" preload="metadata" width="100%" height="100%" controls&gt; 您的浏览器不支持 video 元素。&lt;/video&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;代码如下&lt;/strong&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;div&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;class&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;hitokoto&amp;#34;&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#ff6ac1"&gt;span&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;class&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;typed&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;id&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;hitokoto&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;span&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;div&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;src&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;//cdn.bootcss.com/jquery/3.1.1/jquery.min.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;src&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;//cdn.bootcss.com/typed.js/2.0.11/typed.min.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;$(&lt;span style="color:#ff5c57"&gt;function&lt;/span&gt; () {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; $.get(&lt;span style="color:#5af78e"&gt;&amp;#34;https://v1.hitokoto.cn/&amp;#34;&lt;/span&gt;, &lt;span style="color:#ff5c57"&gt;function&lt;/span&gt; (data) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; data &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; data;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; str &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; data.hitokoto &lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;&amp;amp;#12288;By &amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; options &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; strings&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; [&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;//str + &amp;#34;退格效果^1000&amp;#34;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; str &lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt; data.from,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; ],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt; typeSpeed&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;80&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt; startDelay&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt;&lt;span style="color:#ff9f43"&gt;300&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt; &lt;span style="color:#78787e"&gt;// loop: true,&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; typed &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;new&lt;/span&gt; Typed(&lt;span style="color:#5af78e"&gt;&amp;#34;.hitokoto .typed&amp;#34;&lt;/span&gt;, options);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; })&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt;});&amp;lt;/&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>解除网页右键限制</title><link>https://www.idzd.top/archives/1184/</link><pubDate>Sat, 08 Feb 2020 09:09:00 +0800</pubDate><guid>https://www.idzd.top/archives/1184/</guid><description>&lt;p&gt;下面代码，F12控制台运行，或是收藏到收藏夹点击运行都行&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/02/08/53465796645041.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/02/08/53465796645041.webp" src="https://www.idzd.top/img/lazy.gif" alt="控制台执行代码"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="解除网页限制"&gt;解除网页限制&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;javascript&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; alert(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.onselectstart &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.onbeforecopy &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.oncontextmenu &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.onmousedown &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.onkeydown &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;function&lt;/span&gt;() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;true&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;});&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;void&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.body.onmouseup &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;void&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.body.onselectstart &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;void&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.body.onmouseup &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;void&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.body.oncopy &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="强力版可能会矫正过度"&gt;强力版，可能会矫正过度&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;javascript&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; alert(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.onselectstart &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.onbeforecopy &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.oncontextmenu &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.onmousedown &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.onkeydown &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;function&lt;/span&gt;() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;true&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;});&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;void&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.body.onmouseup &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;void&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.body.onselectstart &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;void&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.body.onmouseup &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;void&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.body.oncopy &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;javascript&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.body.contentEditable &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;true&amp;#39;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;.designMode &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;on&amp;#39;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;void&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;p&gt;##开启网页编辑状态&lt;/p&gt;</description></item><item><title>服务器如何搭建SSR（待完善）</title><link>https://www.idzd.top/archives/1173/</link><pubDate>Sat, 08 Feb 2020 08:44:00 +0800</pubDate><guid>https://www.idzd.top/archives/1173/</guid><description>&lt;h2 id="ssr常用命令"&gt;ssr常用命令&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#启动SSR：&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;/etc/init.d/shadowsocks-r start&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#退出SSR：&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;/etc/init.d/shadowsocks-r stop&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#重启SSR：&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;/etc/init.d/shadowsocks-r restart&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#SSR状态：&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;/etc/init.d/shadowsocks-r status&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#卸载SSR：&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;./shadowsocks-all.sh uninstall&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="秋水一键ssr脚本"&gt;秋水一键ssr脚本&lt;/h2&gt;&#10;&lt;p&gt;简单只安装ssr，成功率高。&lt;/p&gt;</description></item><item><title>佳能mg3680打印机配置wifi连接记录</title><link>https://www.idzd.top/archives/1165/</link><pubDate>Fri, 07 Feb 2020 14:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/1165/</guid><description>&lt;p&gt;佳能mg3680打印机配置wifi连接路由器步骤。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;注意：我主要是用手机配置，如果使用电脑配置，请参考 &lt;strong&gt;&lt;a href="https://www.idzd.top/usr/uploads/2020/02/07/853482594801641.pdf"&gt;《佳能mg3680打印机入门指南》&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="下载安装打开-佳能打印app"&gt;下载&amp;amp;安装&amp;amp;打开 &lt;em&gt;佳能打印app&lt;/em&gt;&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/02/10/103943524628631.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/02/10/103943524628631.webp" src="https://www.idzd.top/img/lazy.gif" alt="下载app"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;点击 &lt;strong&gt;&lt;a href="https://www.idzd.top/usr/uploads/2020/02/07/86204434204518.rar"&gt;此处&lt;/a&gt;&lt;/strong&gt; 下载佳能打印app，MD5: 56DE387D9939328110C6249277F6779B&lt;/div&gt;&lt;/p&gt;&#10;&lt;p&gt;ps：这玩意我当初只能从百度应用市场下载。其他的应用商店都不是一个东西，现在是不是我就不知道了。&lt;/p&gt;&#10;&lt;p&gt;ps2：这玩意强制要定位，幸好手机有个位置穿越功能，你去大明湖畔等着吧。&lt;/p&gt;</description></item><item><title>Chrome插件离线安装包下载&amp;安装</title><link>https://www.idzd.top/archives/1164/</link><pubDate>Fri, 07 Feb 2020 14:10:00 +0800</pubDate><guid>https://www.idzd.top/archives/1164/</guid><description>&lt;p&gt;最近网不太好，下载Chrome插件老是失败。就决定用idm下。然后在安装。记录下步骤。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="下载离线安装包"&gt;下载离线安装包&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;1. 首先访问应用商店，打开你需要插件详情页。&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>推荐两个帮助调试网站的chrome插件</title><link>https://www.idzd.top/archives/1153/</link><pubDate>Fri, 07 Feb 2020 13:34:00 +0800</pubDate><guid>https://www.idzd.top/archives/1153/</guid><description>&lt;p&gt;两个对网站调试的chrome插件：wappalyzer和http-status&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="http-status--显示当前页的-http-状态"&gt;http-status —— 显示当前页的 HTTP 状态&lt;/h2&gt;&#10;&lt;p&gt;本插件用于在地址栏中显示当前页的 HTTP 状态&#10;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/02/07/823753393507264.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/02/07/823753393507264.webp" src="https://www.idzd.top/img/lazy.gif" alt="显示网站HTTP 状态"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>JS判断是否为手机浏览器</title><link>https://www.idzd.top/archives/1136/</link><pubDate>Thu, 06 Feb 2020 14:06:00 +0800</pubDate><guid>https://www.idzd.top/archives/1136/</guid><description>&lt;p&gt;JS判断访问网站的设备平台，跳转到对应优化的页面。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;//平台、设备和操作系统&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; system &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#9;win&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;false&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&#9;mac&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;false&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&#9;xll&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;false&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#9;ipad&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;false&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;};&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;//检测平台&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; p &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; navigator.platform;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;system.win &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; p.indexOf(&lt;span style="color:#5af78e"&gt;&amp;#34;Win&amp;#34;&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;==&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;system.mac &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; p.indexOf(&lt;span style="color:#5af78e"&gt;&amp;#34;Mac&amp;#34;&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;==&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;system.x11 &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; (p &lt;span style="color:#ff6ac1"&gt;==&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;X11&amp;#34;&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;||&lt;/span&gt; (p.indexOf(&lt;span style="color:#5af78e"&gt;&amp;#34;Linux&amp;#34;&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;==&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;system.ipad &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; (navigator.userAgent.match(&lt;span style="color:#5af78e"&gt;/iPad/i&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;!=&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;null&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;?&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;true&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;false&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;//跳转语句，如果是手机访问就自动跳转到手机页面&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (system.win &lt;span style="color:#ff6ac1"&gt;||&lt;/span&gt; system.mac &lt;span style="color:#ff6ac1"&gt;||&lt;/span&gt; system.xll &lt;span style="color:#ff6ac1"&gt;||&lt;/span&gt; system.ipad) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;//alert(&amp;#34;PC&amp;#34;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt;} &lt;span style="color:#ff6ac1"&gt;else&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; ua &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; navigator.userAgent.toLowerCase();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (ua.match(&lt;span style="color:#5af78e"&gt;/MicroMessenger/i&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;==&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;micromessenger&amp;#34;&lt;/span&gt;) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt;&#9;&#9;&lt;span style="color:#78787e"&gt;//alert(&amp;#34;微信浏览器&amp;#34;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;&#9;} &lt;span style="color:#ff6ac1"&gt;else&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;&#9;&#9;&lt;span style="color:#78787e"&gt;//alert(&amp;#34;手机&amp;#34;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt;&#9;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>我的世界服务器启动命令</title><link>https://www.idzd.top/archives/1134/</link><pubDate>Fri, 31 Jan 2020 07:04:00 +0800</pubDate><guid>https://www.idzd.top/archives/1134/</guid><description>&lt;h2 id="服务器启动命令"&gt;服务器启动命令&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;java -Xmx1024M -Xms1024M -jar cauldron-1.7.10-2.1403.1.54-server.jar nogui&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>服务器开放端口</title><link>https://www.idzd.top/archives/1128/</link><pubDate>Thu, 30 Jan 2020 16:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/1128/</guid><description>&lt;p&gt;有的时候服务/软件配置没有问题，就是无法访问，可能是你没有在主机上开放对应的端口。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="防火墙设置"&gt;防火墙设置&lt;/h2&gt;&#10;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;&lt;strong&gt;注意：出于安全考虑不建议关闭防火墙！&lt;/strong&gt;&lt;/div&gt;&lt;/p&gt;&#10;&lt;h3 id="centos命令"&gt;centos命令：&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#开放对应tcp端口&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;firewall-cmd --zone&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;public --add-port&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;80/tcp --permanent&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#开放对应udp端口&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;firewall-cmd --zone&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;public --add-port&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;80/udp --permanent&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#防火墙重载配置&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;firewall-cmd --reload&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#临时关闭防火墙（不推荐）&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;systemctl disable firewalld&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#禁用防火墙（不推荐）&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;systemctl stop firewalld&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="通用命令"&gt;通用命令：&lt;/h3&gt;&#10;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;&lt;strong&gt;注意：出于安全考虑不建议关闭防火墙！&lt;/strong&gt;&lt;/div&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#编辑防火墙规则&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;sudo vim /etc/sysconfig/iptables&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#添加22端口tcp协议规则&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;iptables -A INPUT -p tcp --dport &lt;span style="color:#ff9f43"&gt;22&lt;/span&gt; -j ACCEPT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;iptables -A OUTPUT -p tcp --sport &lt;span style="color:#ff9f43"&gt;22&lt;/span&gt; -j ACCEPT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#添加22端口udp协议规则&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;iptables -A INPUT -p udp --dport &lt;span style="color:#ff9f43"&gt;22&lt;/span&gt; -j ACCEPT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;iptables -A OUTPUT -p udp --sport &lt;span style="color:#ff9f43"&gt;22&lt;/span&gt; -j ACCEPT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#检查防火墙规则&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;iptables -L -n&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#保存防火墙的设置&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;serivce iptables save&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#重启防火墙&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt;service iptables restart&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#永久开启防火墙&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;chkconfig iptables on&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#永久关闭防火墙&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt;chkconfig iptables off&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#临时开启防火墙&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt;service iptables start&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#临时关闭防火墙&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt;service iptables stop&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="云服务器控制台"&gt;云服务器控制台&lt;/h2&gt;&#10;&lt;p&gt;这里以阿里云为例。&lt;/p&gt;&#10;&lt;h3 id="1-首先打开控制台"&gt;1. 首先打开控制台&lt;/h3&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/31/014342487047748.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/31/014342487047748.webp" src="https://www.idzd.top/img/lazy.gif" alt="打开控制台"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Factorio（异星工厂）自用开服脚本</title><link>https://www.idzd.top/archives/1108/</link><pubDate>Thu, 30 Jan 2020 15:43:00 +0800</pubDate><guid>https://www.idzd.top/archives/1108/</guid><description>&lt;p&gt;Factorio（异星工厂）自用开服脚本，自动初始化存档，自动载入最新的存档。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="使用说明"&gt;使用说明&lt;/h2&gt;&#10;&lt;h3 id="1-复制脚本到-startsh-文件中请勿使用记事本"&gt;1. 复制脚本到 &lt;code&gt;start.sh&lt;/code&gt; 文件中请勿使用记事本&lt;/h3&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;start.sh：&lt;a href="https://www.idzd.top/usr/uploads/2020/01/30/991461995404538.zip"&gt;下载&lt;/a&gt; | &lt;a href="https://www.idzd.top/archives/1108/#%E5%BC%80%E6%9C%8D%E8%84%9A%E6%9C%AC%E6%BA%90%E7%A0%81" title="源代码"&gt;源代码&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h3 id="2-修改-home_dir-为你实际factorio安装目录"&gt;2. 修改 &lt;code&gt;HOME_DIR&lt;/code&gt; 为你实际Factorio安装目录。&lt;/h3&gt;&#10;&lt;h3 id="3-编辑-server-settingsjson-为你需要的配置放到factorio的-data-目录下"&gt;3. 编辑 &lt;code&gt;server-settings.json&lt;/code&gt; 为你需要的配置放到Factorio的 &lt;code&gt;data&lt;/code&gt; 目录下&lt;/h3&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;你可以使用 &lt;a href="https://www.idzd.top/usr/uploads/2020/01/30/994883996643482.zip"&gt;自用配置文件&lt;/a&gt;；或 &lt;a href="https://www.idzd.top/archives/1094/" title="这里"&gt;查看详细配置文件的翻译&lt;/a&gt;。&lt;/div&gt;&lt;/p&gt;&#10;&lt;h3 id="4-为脚本添加运行权限"&gt;4. 为脚本添加运行权限&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#为脚本添加运行权限&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;sudo chmod +x start.sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5-运行脚本建议使用screen"&gt;5. 运行脚本（建议使用screen）&lt;/h3&gt;&#10;&lt;div class="hint hint--warning"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--warning-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94"/&gt;&lt;path d="M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;warning:&lt;/span&gt;如果提示需要 GLIBC_2.18 请移步**&lt;a href="https://www.idzd.top/archives/1096/" title="这里"&gt;这里&lt;/a&gt;**。&lt;/div&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#安装screen&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;sudo yum install screen -y&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#进入screen环境&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;screen&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#运行脚本&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8&lt;/span&gt;&lt;span&gt;./start.sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>解决提示需要 GLIBC_2.18 问题</title><link>https://www.idzd.top/archives/1096/</link><pubDate>Thu, 30 Jan 2020 15:12:00 +0800</pubDate><guid>https://www.idzd.top/archives/1096/</guid><description>&lt;p&gt;解决提示需要 GLIBC_2.18 问题&lt;/p&gt;&#10;&lt;p&gt;因为我这是linux，某些软件运行可能会提示需要 &lt;em&gt;GLIBC_2.18&lt;/em&gt;。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/30/94713124476931.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/30/94713124476931.webp" src="https://www.idzd.top/img/lazy.gif" alt="提示需要GLIBC_2.18"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;当然，你可以使用下面的命令查看是否有GLIBC_2.18。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;strings /usr/lib64/libc.so.6 | grep ^GLIBC_&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/30/949901010368269.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/30/949901010368269.webp" src="https://www.idzd.top/img/lazy.gif" alt="检查是否安装GLIBC"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Factorio（异星工厂）服务器配置文件翻译</title><link>https://www.idzd.top/archives/1094/</link><pubDate>Thu, 30 Jan 2020 15:09:00 +0800</pubDate><guid>https://www.idzd.top/archives/1094/</guid><description>&lt;p&gt;Factorio（异星工厂）服务器配置文件翻译。&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;在json中 &lt;code&gt;?&lt;/code&gt;， &lt;code&gt;#&lt;/code&gt; 和 &lt;code&gt;_&lt;/code&gt; 开头字段表示注释； 当然，也可以采用 &lt;code&gt;//&lt;/code&gt; 为字段名，其value就是添加的注释内容。&lt;/div&gt;&lt;/p&gt;&#10;&lt;div class="hint hint--danger"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--danger-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;Error:&lt;/span&gt;**注意：**请对照修改配置文件，不要直接复制，防中文导致的未知错误或相关选项变更问题！&lt;/div&gt;&lt;/p&gt;</description></item><item><title>Factorio（异星工厂）搭建服务器记录</title><link>https://www.idzd.top/archives/1060/</link><pubDate>Thu, 30 Jan 2020 12:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/1060/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/30/87986664066038.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/30/87986664066038.webp" src="https://www.idzd.top/img/lazy.gif" alt="Factorio（异星工厂）"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;最近闲来无事，正好Factorio又更新了，搭建个公网服务器和小伙伴们一起来玩耍。&lt;/p&gt;&#10;&lt;p&gt;顺手把搭建过程记录一下。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;&lt;a href="https://factorio.com/" title="官方网站"&gt;官方网站&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://wiki.factorio.com/Main_Page/zh" title="wiki（中文）"&gt;wiki（中文）&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://www.factorio.com/download" title="下载地址（需登录）"&gt;下载地址（需登录）&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://factorio.com/download-headless" title="无头服务器下载地址（仅支持linux）"&gt;无头服务器下载地址（仅支持linux）&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="下载安装"&gt;下载&amp;amp;安装&lt;/h2&gt;&#10;&lt;p&gt;访问 &lt;strong&gt;&lt;a href="https://www.factorio.com/download" title="下载地址（需登录）"&gt;下载地址（需登录）&lt;/a&gt;&lt;/strong&gt; 或 &lt;strong&gt;&lt;a href="https://factorio.com/download-headless" title="无头服务器下载地址（仅支持linux）"&gt;无头服务器下载地址（仅支持linux）&lt;/a&gt;&lt;/strong&gt; 获取游戏。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/30/884284277630686.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/30/884284277630686.webp" src="https://www.idzd.top/img/lazy.gif" alt="Factorio（异星工厂）版本说明"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;&lt;em&gt;什么是无头服务器？&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;这个是 &lt;em&gt;headless&lt;/em&gt; 的直译，正确来说应该是没有图形界面的服务器版。&lt;/p&gt;&#10;&lt;p&gt;相对于标准版，省去大量的资源，使其十分小巧高性能。&lt;/p&gt;&#10;&lt;p&gt;当然标准版是内置服务器的，不然本地游戏就没法运行了。（笑）&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;当然，如果你是在steam买的话直接从steam安装即可&lt;/p&gt;&#10;&lt;p&gt;选择好需要的版本下载解压安装即可（当然压缩版直接解压就OK了）&lt;/p&gt;&#10;&lt;p&gt;这里我以我的阿里云服务器为例子:&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/30/89883481470438.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/30/89883481470438.webp" src="https://www.idzd.top/img/lazy.gif" alt="解压服务器压缩包"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#解压 tar.xz 文件，请酌情修改&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;tar -xvf factorio_headless_x64_0.17.79.tar.xz&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>VEGAS Pro 17.0 设置中文</title><link>https://www.idzd.top/archives/1050/</link><pubDate>Thu, 30 Jan 2020 03:09:00 +0800</pubDate><guid>https://www.idzd.top/archives/1050/</guid><description>&lt;p&gt;VEGAS Pro 17.0 启用中文语言&lt;/p&gt;&#10;&lt;p&gt;最近准本剪个视频，系统挂了。以前的软件全没啦。正好试用一下Vegas Pro 17 ，但界面全是英文有点不适应。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/30/536951129672757.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/30/536951129672757.webp" src="https://www.idzd.top/img/lazy.gif" alt="中文vegas pro 17 界面"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;正好找到篇大佬的文章。&lt;/p&gt;</description></item><item><title>配置WinSCP和PuTTY联动</title><link>https://www.idzd.top/archives/1040/</link><pubDate>Mon, 27 Jan 2020 06:10:00 +0800</pubDate><guid>https://www.idzd.top/archives/1040/</guid><description>&lt;p&gt;配置WinSCP和PuTTY联动，在WinSCP可以直接打开PuTTY终端，免去输入用户名和密码。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/27/0419532294226.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/27/0419532294226.webp" src="https://www.idzd.top/img/lazy.gif" alt="WinSCP调用PuTTY终端"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="安装winscp及中文语言包"&gt;安装WinSCP及中文语言包&lt;/h2&gt;&#10;&lt;p&gt;首先到**&lt;a href="https://winscp.net/eng/download.php" title="下载地址（英文版）"&gt;下载地址（英文版）&lt;/a&gt;**下载对应系统版本的安装包。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/27/045752035334493.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/27/045752035334493.webp" src="https://www.idzd.top/img/lazy.gif" alt="WinSCP下载页面"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;然后访问**&lt;a href="https://winscp.net/eng/translations.php" title="翻译文件（英文页面）"&gt;翻译文件下载地址（英文页面）&lt;/a&gt;**，选择合适的语言包下载。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/27/04637663799379.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/27/04637663799379.webp" src="https://www.idzd.top/img/lazy.gif" alt="WinSCP翻译文件下载页面"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;最后，将下载的语言包解压到WinSCP安装目录。&lt;/p&gt;</description></item><item><title>PHP获取文件后缀名的7种方法</title><link>https://www.idzd.top/archives/1016/</link><pubDate>Sat, 25 Jan 2020 12:39:00 +0800</pubDate><guid>https://www.idzd.top/archives/1016/</guid><description>&lt;p&gt;PHP获取文件后缀名（扩展名）的7种方法。&lt;/p&gt;&#10;&lt;h2 id="字符串截取"&gt;&lt;strong&gt;字符串截取&lt;/strong&gt;&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/25/56916556427627.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/25/56916556427627.webp" src="https://www.idzd.top/img/lazy.gif" alt="56916556427627.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;$file_name&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;a.b.c.png&amp;#39;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;echo&lt;/span&gt; strrchr(&lt;span style="color:#ff5c57"&gt;$file_name&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;使用 &lt;code&gt;strrchr()&lt;/code&gt; 函数找到字符 &lt;code&gt;.&lt;/code&gt; 在字符串中最后出现的位置，并返回从该位置到字符串结尾的所有字符。&lt;/div&gt;&lt;/p&gt;</description></item><item><title>批量替换typecho图片附件路径</title><link>https://www.idzd.top/archives/1005/</link><pubDate>Tue, 21 Jan 2020 13:16:00 +0800</pubDate><guid>https://www.idzd.top/archives/1005/</guid><description>&lt;p&gt;mysql批量替换typecho图片附件路径。&lt;/p&gt;&#10;&lt;p&gt;在MySQL中执行下面的查询语句即可&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;update&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;`&lt;/span&gt;typecho_contents&lt;span style="color:#ff6ac1"&gt;`&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;set&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;`&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;text&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;`&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;replace&lt;/span&gt;(&lt;span style="color:#ff5c57"&gt;text&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#39;https://www.idzd.top/usr/uploads/&amp;#39;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#39;/usr/uploads/&amp;#39;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/21/2020-01-21_211545.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/21/2020-01-21_211545.webp" src="https://www.idzd.top/img/lazy.gif" alt="2020-01-21_211545.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>正式启用阿里的CDN+OSS</title><link>https://www.idzd.top/archives/999/</link><pubDate>Tue, 21 Jan 2020 12:20:00 +0800</pubDate><guid>https://www.idzd.top/archives/999/</guid><description>&lt;p&gt;网站正式启用阿里云CDN和OSS作为图床，关闭自建图床。&lt;/p&gt;&#10;&lt;p&gt;最近发现网站图片加载可慢了。图片缩小转换格式好麻烦。&lt;/p&gt;&#10;&lt;p&gt;决定使用一下CDN，看看效果如何~&lt;/p&gt;&#10;&lt;p&gt;更重要原因就是：你1m的小水管，建的图床再好也没用。&lt;/p&gt;</description></item><item><title>windows server 2008 r2 开机不自动运行服务器管理器</title><link>https://www.idzd.top/archives/987/</link><pubDate>Sat, 18 Jan 2020 11:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/987/</guid><description>&lt;p&gt;windows server 2008 r2 开机不自动运行服务器管理器。&lt;/p&gt;&#10;&lt;p&gt;为啥要禁止这个呢？主要是因为我的NAS，性能一般，没事远程桌面联机都要卡半天。（更重要的是，我都配置好了，定期看看日志就行，每次弹出来太烦了。）&lt;/p&gt;</description></item><item><title>Git报错：Could not read from remote repository.</title><link>https://www.idzd.top/archives/976/</link><pubDate>Sat, 18 Jan 2020 10:53:00 +0800</pubDate><guid>https://www.idzd.top/archives/976/</guid><description>&lt;p&gt;今天新建一个Git仓，远程提交的时候报 &lt;code&gt;Could not read from remote repository.&lt;/code&gt; 错误。&lt;/p&gt;&#10;&lt;p&gt;具体报错如下：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;$ git push -u origin master&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;ssh: Could not resolve hostname nas-pc192.168.199.102: Name or service not known&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;fatal: Could not &lt;span style="color:#ff5c57"&gt;read&lt;/span&gt; from remote repository.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;Please make sure you have the correct access rights&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;and the repository exists.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/18/3891706938.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/18/3891706938.webp" src="https://www.idzd.top/img/lazy.gif" alt="2020-01-18_183224.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>修改Win下MySQL的ROOT密码脚本</title><link>https://www.idzd.top/archives/965/</link><pubDate>Fri, 17 Jan 2020 14:20:00 +0800</pubDate><guid>https://www.idzd.top/archives/965/</guid><description>&lt;p&gt;这是一个快速修改Win下MySQL的ROOT密码脚本。仅限Windows平台（毕竟就是个批处理么）&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/17/547985354.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/17/547985354.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div class="hint hint--warning"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--warning-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94"/&gt;&lt;path d="M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;warning:&lt;/span&gt; 使用本脚本需要提前将MySQL配置到系统环境变量（mysqlpath）中！ &lt;/div&gt;&lt;/p&gt;</description></item><item><title>右键一键获取文件权限</title><link>https://www.idzd.top/archives/959/</link><pubDate>Fri, 17 Jan 2020 14:02:00 +0800</pubDate><guid>https://www.idzd.top/archives/959/</guid><description>&lt;p&gt;有的时候，需要修改文件，发现没有文件权限，很烦。&lt;/p&gt;&#10;&lt;p&gt;右键属性添加权限又太麻烦。&lt;/p&gt;&#10;&lt;p&gt;所以从以前的一键ghost系统里找到个，右键添加获取文件权限的注册表文件。&lt;/p&gt;</description></item><item><title>网站添加鼠标点击特效</title><link>https://www.idzd.top/archives/942/</link><pubDate>Mon, 13 Jan 2020 14:26:00 +0800</pubDate><guid>https://www.idzd.top/archives/942/</guid><description>&lt;p&gt;为网站添加鼠标点击特效。&lt;/p&gt;&#10;&lt;video class="post-video" src="https://www.idzd.top/usr/uploads/2020/01/15/3779780880.mp4" preload="metadata" width="100%" height="100%" controls&gt; 您的浏览器不支持 video 元素。&lt;/video&gt;&#10;&#10;&lt;p&gt;添加下面代码到js文件中即可：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;/* 鼠标特效 */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; a_idx &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;jQuery(&lt;span style="color:#ff5c57"&gt;document&lt;/span&gt;).ready(&lt;span style="color:#ff5c57"&gt;function&lt;/span&gt;($) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt; $(&lt;span style="color:#5af78e"&gt;&amp;#34;body&amp;#34;&lt;/span&gt;).click(&lt;span style="color:#ff5c57"&gt;function&lt;/span&gt;(e) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; a &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;new&lt;/span&gt; &lt;span style="color:#ff5c57"&gt;Array&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;富强&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;民主&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;文明&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;和谐&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;自由&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;平等&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;公正&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;法治&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;爱国&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;敬业&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;诚信&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;友善&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; $i &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; $(&lt;span style="color:#5af78e"&gt;&amp;#34;&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;&amp;#34;&lt;/span&gt;).text(a[a_idx]);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; a_idx &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; (a_idx &lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;1&lt;/span&gt;) &lt;span style="color:#ff6ac1"&gt;%&lt;/span&gt; a.length;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; x &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; e.pageX,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; y &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; e.pageY;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; $i.css({&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;z-index&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;999999999999999999999999999999999999999999999999999999999999999999999&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;top&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; y &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;20&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;left&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; x,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;position&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;absolute&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;font-weight&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;bold&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;color&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;rgb(&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;+~~&lt;/span&gt;(&lt;span style="color:#ff9f43"&gt;255&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;Math&lt;/span&gt;.random())&lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;,&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;+~~&lt;/span&gt;(&lt;span style="color:#ff9f43"&gt;255&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;Math&lt;/span&gt;.random())&lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;,&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;+~~&lt;/span&gt;(&lt;span style="color:#ff9f43"&gt;255&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;Math&lt;/span&gt;.random())&lt;span style="color:#ff6ac1"&gt;+&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;)&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; });&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt; $(&lt;span style="color:#5af78e"&gt;&amp;#34;body&amp;#34;&lt;/span&gt;).append($i);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt; $i.animate({&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;top&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; y &lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;180&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;opacity&amp;#34;&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;:&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;0&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt; },&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff9f43"&gt;1500&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;function&lt;/span&gt;() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt; $i.remove();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; });&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt; });&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt;});&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>网站添加音乐播放器</title><link>https://www.idzd.top/archives/938/</link><pubDate>Mon, 13 Jan 2020 13:47:00 +0800</pubDate><guid>https://www.idzd.top/archives/938/</guid><description>&lt;p&gt;看到好多博客都有一个音乐播放器，有点心动。决定添加一个&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/13/73975939.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/13/73975939.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;在主题模板恰当的位置引入下面代码即可：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;link&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;rel&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;stylesheet&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;href&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.css&amp;#34;&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;src&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;div&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;id&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;aplayer&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;class&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;aplayer&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;data-autoplay&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;false&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;data-id&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;82450138&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;data-server&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;netease&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;data-type&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;playlist&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;data-fixed&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;true&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;data-listfolded&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;true&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;data-order&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;random&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;data-theme&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;#F4645F&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;div&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;src&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;https://unpkg.com/meting@1.2.0/dist/Meting.min.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;部分参数说明：&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>再见win7（微软2020年1月14日终止Win7支持）</title><link>https://www.idzd.top/archives/937/</link><pubDate>Mon, 13 Jan 2020 13:31:39 +0800</pubDate><guid>https://www.idzd.top/archives/937/</guid><description>&lt;p&gt;微软宣布2020年1月14日终止Win7支持，除付费用户外，微软不再提供安全更新补丁。&lt;/p&gt;&#10;&lt;p&gt;然鹅，我还在用Win7。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/13/233770939.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/13/233770939.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Windows修改快捷方式图标</title><link>https://www.idzd.top/archives/930/</link><pubDate>Sun, 12 Jan 2020 06:57:00 +0800</pubDate><guid>https://www.idzd.top/archives/930/</guid><description>&lt;p&gt;&lt;a href="https://www.idzd.top/archives/921/" title="上一篇文章"&gt;上一篇文章&lt;/a&gt;，新建了个快捷方式，光秃秃的挺难看。&lt;/p&gt;&#10;&lt;p&gt;这次我们给他换个图标&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="首先在需要更换图标的快捷方式上右击属性更改图标"&gt;首先，在需要更换图标的快捷方式上右击&amp;gt;属性&amp;gt;更改图标&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/12/1232642494.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/12/1232642494.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="在查找图标输入框输入下面的地址并按下回车"&gt;在查找图标输入框输入下面的地址，并按下回车&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;C:&lt;span style="color:#5af78e"&gt;\W&lt;/span&gt;indows&lt;span style="color:#5af78e"&gt;\s&lt;/span&gt;ystem32&lt;span style="color:#5af78e"&gt;\i&lt;/span&gt;mageres.dll&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/12/2132781145.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/12/2132781145.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="选择一个喜欢的图标"&gt;选择一个喜欢的图标&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/12/1718941624.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/12/1718941624.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="ok"&gt;OK&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/12/3351641898.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/12/3351641898.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>win7熄屏快捷方式</title><link>https://www.idzd.top/archives/921/</link><pubDate>Sun, 12 Jan 2020 06:20:00 +0800</pubDate><guid>https://www.idzd.top/archives/921/</guid><description>&lt;p&gt;晚上下载东西的时候，需要快速熄灭屏幕。这次创建一个快速关闭屏幕的快捷方式。&lt;/p&gt;&#10;&lt;h2 id="首先桌面右击新建新建快捷方式"&gt;首先，桌面右击&amp;gt;新建&amp;gt;新建快捷方式&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/12/1677423157.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/12/1677423157.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="对象位置填入下面的东西"&gt;对象位置填入下面的东西&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;C:&lt;span style="color:#5af78e"&gt;\W&lt;/span&gt;indows&lt;span style="color:#5af78e"&gt;\S&lt;/span&gt;ystem32&lt;span style="color:#5af78e"&gt;\r&lt;/span&gt;undll32.exe powrprof.dll,SetSuspendState Hibemate&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/12/1097779033.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/12/1097779033.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="设置一个名字"&gt;设置一个名字&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/12/809930170.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/12/809930170.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="ok"&gt;ok&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/12/1726274854.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/12/1726274854.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>IDEA2019.2破解</title><link>https://www.idzd.top/archives/913/</link><pubDate>Sat, 11 Jan 2020 13:16:00 +0800</pubDate><guid>https://www.idzd.top/archives/913/</guid><description>&lt;div class="hint hint--warning"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--warning-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94"/&gt;&lt;path d="M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;warning:&lt;/span&gt; 此方法针对 IDEA2019.3 已失效，最新方法请移步&lt;a href="https://www.idzd.top/archives/1293/" title="此处"&gt;此处&lt;/a&gt;。&#10;&lt;strong&gt;本文不再维护！2020-02-26&lt;/strong&gt;&lt;/div&gt;&lt;/p&gt;</description></item><item><title>CSGO自用练习的cfg</title><link>https://www.idzd.top/archives/907/</link><pubDate>Fri, 10 Jan 2020 12:16:00 +0800</pubDate><guid>https://www.idzd.top/archives/907/</guid><description>&lt;div class="hint hint--info"&gt;&#10;&lt;p&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="waxy-icon hint--info-icon" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"&gt;&lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/&gt;&lt;path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/&gt;&lt;/svg&gt;&#10;&lt;span class="sr-only"&gt;info:&lt;/span&gt;&lt;strong&gt;&lt;a href="https://www.idzd.top/usr/uploads/2020/01/10/63861010.rar"&gt;点击此处下载&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;使用方法：&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;1 .解压文件，放到&lt;code&gt;steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg&lt;/code&gt;目录中。&lt;/p&gt;</description></item><item><title>Typecho 实现短代码功能</title><link>https://www.idzd.top/archives/892/</link><pubDate>Wed, 08 Jan 2020 15:15:00 +0800</pubDate><guid>https://www.idzd.top/archives/892/</guid><description>&lt;p&gt;Typecho 实现短代码功能。&lt;/p&gt;&#10;&lt;p&gt;前几天，准备对博客首页大改。在寻找灵感的途中。发现有的博客实现了一些好玩的功能。&lt;/p&gt;&#10;&lt;p&gt;这个短代码就是其中之一。&lt;/p&gt;&#10;&lt;p&gt;毕竟markdown里没有太明显的提示或警告。&lt;/p&gt;</description></item><item><title>今天要对这个主题的头部样式开刀了</title><link>https://www.idzd.top/archives/881/</link><pubDate>Mon, 06 Jan 2020 02:27:00 +0800</pubDate><guid>https://www.idzd.top/archives/881/</guid><description>&lt;p&gt;今天要对这个主题的头部样式开刀了，看的我怪怪的，但是说不出，怪在哪。反正就是不舒服。&lt;/p&gt;&#10;&lt;p&gt;感觉有点蠢。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/06/1176427464.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/06/1176427464.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;今天的活就是这个了。&lt;/p&gt;&#10;&lt;p&gt;大概齐的改改，就这样先试试&lt;/p&gt;</description></item><item><title>typecho文章内容失效提醒</title><link>https://www.idzd.top/archives/880/</link><pubDate>Mon, 06 Jan 2020 02:22:00 +0800</pubDate><guid>https://www.idzd.top/archives/880/</guid><description>&lt;p&gt;typecho文章内容失效提醒。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="提示效果"&gt;提示效果&lt;/h2&gt;&#10;&lt;p&gt;用的是&lt;a href="https://www.idzd.top/archives/892/" title="短代码提示框"&gt;上一篇文章&lt;/a&gt;的&lt;strong&gt;警告提示&lt;/strong&gt;的样式&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/06/3024457807.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/06/3024457807.webp" src="https://www.idzd.top/img/lazy.gif" alt="提示效果"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="修改方法"&gt;修改方法&lt;/h2&gt;&#10;&lt;p&gt;修改typecho主题的post.php文件，在&lt;em&gt;&lt;strong&gt;需要提醒&lt;/strong&gt;&lt;/em&gt;的位置添加以下内容.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;!--&lt;/span&gt;设置需要提醒的时间&lt;span style="color:#ff6ac1"&gt;--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;?&lt;/span&gt;php &lt;span style="color:#ff5c57"&gt;$halfyear&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;3600&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;24&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;30&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;*&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;6&lt;/span&gt;; &lt;span style="color:#78787e"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&amp;lt;!--计算文章距离上次修改的时间--&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&amp;lt;?php $lostTime = time() - $this-&amp;gt;modified; ?&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&amp;lt;!--判断是否需要提醒--&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&amp;lt;?php if ($lostTime &amp;gt; $halfyear): ?&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&#9;&amp;lt;!--提醒样式开始--&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&#9;&amp;lt;div class=&amp;#34;hint hint-warning&amp;#34;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&#9;&#9;&amp;lt;span class=&amp;#34;glyphicon glyphicon-question-sign hint-warning-icon&amp;#34; aria-hidden=&amp;#34;true&amp;#34;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;#34;sr-only&amp;#34;&amp;gt;warning:&amp;lt;/span&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&#9;&#9;这篇文章距离上次修改已过&amp;lt;?php echo floor($lostTime/86400); ?&amp;gt;天，其中的信息可能已经有所发展或是发生改变。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&#9;&amp;lt;/div&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&#9;&amp;lt;!--提醒样式结束--&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;&amp;lt;?php endif; ?&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/06/169478600.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/06/169478600.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>pom.xml 更新后自动修改jre为J2SE-1.5</title><link>https://www.idzd.top/archives/836/</link><pubDate>Sun, 05 Jan 2020 06:56:00 +0800</pubDate><guid>https://www.idzd.top/archives/836/</guid><description>&lt;p&gt;每次更新Maven的pom.xml后自动修改jre为J2SE-1.5。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/05/2811369716.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/05/2811369716.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;然后Eclipse提示“&lt;em&gt;构建路径指定执行环境 J2SE-1.5。工作空间中没有与此环境严格兼容的 JRE&lt;/em&gt;”和“The compiler compliance specified is 1.5 but a JRE 13 is used”。手动修改后。问题可以解决。但老改也不是个事。&lt;/p&gt;</description></item><item><title>Maven 项目 pom.xml 报 'Maven Configuration Problem' 错误</title><link>https://www.idzd.top/archives/834/</link><pubDate>Sun, 05 Jan 2020 06:38:00 +0800</pubDate><guid>https://www.idzd.top/archives/834/</guid><description>&lt;p&gt;解决 Eclipse 的 Maven 项目中 pom.xml 文件，报 &amp;lsquo;Maven Configuration Problem&amp;rsquo; 错误。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.idzd.top/archives/822/" title="上篇文章，说了如何新建一个Maven项目"&gt;上篇文章&lt;/a&gt;，说了如何新建一个Maven项目。&lt;/p&gt;&#10;&lt;p&gt;但是新建完成后发现pom.xml文件上有个红叉，查看提示发现第一行报 &lt;code&gt;'Maven Configuration Problem'&lt;/code&gt; 的错误。&lt;/p&gt;&#10;&lt;p&gt;虽然不影响项目，正常使用。但还是尽量解决了吧。&lt;/p&gt;</description></item><item><title>Eclipse新建Maven项目</title><link>https://www.idzd.top/archives/822/</link><pubDate>Sat, 04 Jan 2020 13:20:00 +0800</pubDate><guid>https://www.idzd.top/archives/822/</guid><description>&lt;p&gt;在Eclipse新建Maven项目&lt;/p&gt;&#10;&lt;h2 id="初始化项目"&gt;初始化项目&lt;/h2&gt;&#10;&lt;p&gt;打开文件（file）&amp;gt;新建（new）&amp;gt;其他（other）&amp;gt;搜索maven&amp;gt;选择&lt;code&gt;maven project&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/04/3817186814.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/04/3817186814.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;下一步，勾选创建一个简单项目（跳过原型选择）&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/04/3822963521.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/04/3822963521.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;下一步，填写&lt;code&gt;Group id&lt;/code&gt;和&lt;code&gt;Artifact id&lt;/code&gt;， &lt;code&gt;Version&lt;/code&gt;默认，&lt;code&gt;Packaging&lt;/code&gt;默认为jar,&lt;code&gt;Name，Description&lt;/code&gt;选填，其他的可以不填&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/04/1299932169.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/04/1299932169.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;生成的项目结构如下&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/04/3007142322.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/04/3007142322.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>设置Maven的代理</title><link>https://www.idzd.top/archives/810/</link><pubDate>Sat, 04 Jan 2020 12:36:00 +0800</pubDate><guid>https://www.idzd.top/archives/810/</guid><description>&lt;p&gt;首先打开Maven下conf目录的settings.xml文件&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/04/4292911970.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/04/4292911970.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;在96行左右，把&lt;code&gt;&amp;lt;proxy&amp;gt;&lt;/code&gt;的注释取消掉&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;proxy&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;&amp;lt;!--代理的id，选填--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;optional&lt;span style="color:#ff6ac1"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;&amp;lt;!--是否启用这个代理--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;&amp;lt;active&amp;gt;&lt;/span&gt;true&lt;span style="color:#ff6ac1"&gt;&amp;lt;/active&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;&amp;lt;!--代理的协议http https socks--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;&amp;lt;protocol&amp;gt;&lt;/span&gt;http&lt;span style="color:#ff6ac1"&gt;&amp;lt;/protocol&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;&amp;lt;!--代理的用户名密码，没有的话注释掉--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;&amp;lt;username&amp;gt;&lt;/span&gt;proxyuser&lt;span style="color:#ff6ac1"&gt;&amp;lt;/username&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;&amp;lt;password&amp;gt;&lt;/span&gt;proxypass&lt;span style="color:#ff6ac1"&gt;&amp;lt;/password&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;&amp;lt;!--代理的地址（ip或域名）--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;&amp;lt;host&amp;gt;&lt;/span&gt;proxy.host.net&lt;span style="color:#ff6ac1"&gt;&amp;lt;/host&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;&amp;lt;!--代理的端口--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;&amp;lt;port&amp;gt;&lt;/span&gt;80&lt;span style="color:#ff6ac1"&gt;&amp;lt;/port&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;&amp;lt;!--不启用代理的Hosts--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;&amp;lt;nonProxyHosts&amp;gt;&lt;/span&gt;local.net|some.host.com&lt;span style="color:#ff6ac1"&gt;&amp;lt;/nonProxyHosts&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;/proxy&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Eclipse安装Maven支持</title><link>https://www.idzd.top/archives/777/</link><pubDate>Sat, 04 Jan 2020 11:57:00 +0800</pubDate><guid>https://www.idzd.top/archives/777/</guid><description>&lt;p&gt;Eclipse安装Maven支持的教程&lt;/p&gt;&#10;&lt;h2 id="前期准备"&gt;前期准备&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;1. &lt;a href="https://www.idzd.top/archives/786/" title="下载&amp;amp;安装Eclipse"&gt;下载&amp;amp;安装Eclipse&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;2. 下载&amp;amp;安装Maven&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://maven.apache.org/download.cgi" title="Maven下载地址"&gt;Maven下载地址&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Eclipse 2019-12 安装+汉化教程</title><link>https://www.idzd.top/archives/786/</link><pubDate>Sat, 04 Jan 2020 11:21:00 +0800</pubDate><guid>https://www.idzd.top/archives/786/</guid><description>&lt;p&gt;我最近一直使用idea，但是我的学生授权到期了。。。&lt;/p&gt;&#10;&lt;p&gt;好吧，是时候回归Eclipse的怀抱了（开源真的爽，就是得折腾）&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="下载安装eclipse-2019-12"&gt;下载&amp;amp;安装Eclipse 2019-12&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://www.eclipse.org/" title="官网"&gt;官网&lt;/a&gt; | &lt;a href="https://www.eclipse.org/downloads/" title="下载页面"&gt;安装管理器下载页面&lt;/a&gt; | &lt;a href="https://www.eclipse.org/downloads/packages/" title="下载页面"&gt;多版本下载页面&lt;/a&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;请提前配置Java环境&lt;/strong&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;1. 首先打开&lt;a href="https://www.eclipse.org/" title="官网"&gt;官网&lt;/a&gt;，点击右侧橘黄的Download按钮&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/04/1437713671.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/04/1437713671.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>微信内网页debug工具</title><link>https://www.idzd.top/archives/763/</link><pubDate>Thu, 02 Jan 2020 14:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/763/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/02/2048508134.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/02/2048508134.webp" src="https://www.idzd.top/img/lazy.gif" alt="2020-01-02_224004.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;TBS腾讯浏览服务： x5.tencent.com&lt;/p&gt;&#10;&lt;p&gt;微信tbs调试页面： debugtbs.qq.com （微信内打开）&lt;/p&gt;&#10;&lt;p&gt;X5内核调试页面： debugx5.qq.com （微信内打开）&lt;/p&gt;</description></item><item><title>Typecho 添加图片灯箱</title><link>https://www.idzd.top/archives/762/</link><pubDate>Thu, 02 Jan 2020 14:00:00 +0800</pubDate><guid>https://www.idzd.top/archives/762/</guid><description>&lt;p&gt;ok，&lt;a href="https://www.idzd.top/archives/758/" title="上一篇文章"&gt;上一篇文章&lt;/a&gt;已经对img标签下手了。这次更彻底点，给图片添加上灯箱效果&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/02/117381930.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/02/117381930.webp" src="https://www.idzd.top/img/lazy.gif" alt="2020-01-02_215330.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;h2 id="首先引入相关js文件"&gt;首先，引入相关js文件&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;&amp;lt;!--在header里添加这个--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;link&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;href&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.css&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;rel&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;stylesheet&amp;#34;&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;&amp;lt;!--先加载jquery依赖--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;src&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;//cdn.bootcss.com/jquery/3.1.1/jquery.min.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;&amp;lt;!--fancybox的js，还是bootcdn--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;src&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;//cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="修改typecho"&gt;修改Typecho&lt;/h2&gt;&#10;&lt;p&gt;首先找到&lt;code&gt;HyperDown.php&lt;/code&gt;文件,在&lt;code&gt;Typecho&lt;/code&gt;下的&lt;code&gt;var&lt;/code&gt;目录里。&#10;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/03/2462054461.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/03/2462054461.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;然后搜索&lt;code&gt;img&lt;/code&gt;，一般在349行开始，修改img标签为&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;&amp;lt;&lt;/span&gt;a data&lt;span style="color:#ff6ac1"&gt;-&lt;/span&gt;fancybox&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;\&lt;span style="color:#5af78e"&gt;&amp;#34;gallery&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt; href=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;{&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$url&lt;/span&gt;&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;gt;&amp;lt;img src=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;{&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$url&lt;/span&gt;&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt; alt=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;{&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$escaped&lt;/span&gt;&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt; title=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;{&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$escaped&lt;/span&gt;&lt;span style="color:#5af78e"&gt;}&lt;/span&gt;&lt;span style="color:#5af78e"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;gt;&amp;lt;/a&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/03/2338408973.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/03/2338408973.webp" src="https://www.idzd.top/img/lazy.gif" alt="HyperDown.php文件位置"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;h2 id="正则替换与上面方案任选其一"&gt;正则替换，与上面方案任选其一&lt;/h2&gt;&#10;&lt;p&gt;~~ps：这会导致 `&lt;/p&gt;</description></item><item><title>图片懒加载（图片延迟加载）</title><link>https://www.idzd.top/archives/758/</link><pubDate>Thu, 02 Jan 2020 13:10:00 +0800</pubDate><guid>https://www.idzd.top/archives/758/</guid><description>&lt;p&gt;今天，处理站点地图的时候，发现有个&lt;a href="https://developers.google.com/speed/pagespeed/insights/" title="PageSpeed Insights"&gt;PageSpeed Insights&lt;/a&gt;工具，可以测试网站打开速度并提供改进建议。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/02/290553354.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/02/290553354.webp" src="https://www.idzd.top/img/lazy.gif" alt="2020-01-02_205807.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;我这个网站的问题主要是图片太大，加载慢。&lt;/p&gt;&#10;&lt;p&gt;我觉得最可行的就是使用延迟加载（懒加载）的方式载入图片。&lt;/p&gt;</description></item><item><title>HTTP的八种请求方法</title><link>https://www.idzd.top/archives/713/</link><pubDate>Wed, 01 Jan 2020 02:49:00 +0800</pubDate><guid>https://www.idzd.top/archives/713/</guid><description>&lt;p&gt;HTTP 使用统一资源标识符（&lt;em&gt;Uniform Resource Identifiers, URI&lt;/em&gt;）来传输数据和建立连接。&lt;/p&gt;&#10;&lt;p&gt;HTTP 请求到服务器的请求消息包括以下格式：请求行（&lt;em&gt;request line&lt;/em&gt;）、请求头部（&lt;em&gt;header&lt;/em&gt;）、空行和请求数据四个部分组成。&lt;/p&gt;</description></item><item><title>Nginx只允许Get/Post请求，快速响应Head请求</title><link>https://www.idzd.top/archives/712/</link><pubDate>Wed, 01 Jan 2020 02:47:00 +0800</pubDate><guid>https://www.idzd.top/archives/712/</guid><description>&lt;p&gt;最近网站开始有一些奇怪的请求&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2020/01/01/4205469274.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2020/01/01/4205469274.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;出于安全考虑，决定只允许Get/Post请求。&lt;/p&gt;&#10;&lt;p&gt;在Nginx配置文件中添加任意一个即可：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#方法一&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; &lt;span style="color:#5af78e"&gt;(&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$request_method&lt;/span&gt; &lt;span style="color:#5af78e"&gt;!~&lt;/span&gt; &lt;span style="color:#5af78e"&gt;^(GET|POST)&lt;/span&gt;$ &lt;span style="color:#5af78e"&gt;)&lt;/span&gt;{&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;403&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#方法二&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; &lt;span style="color:#5af78e"&gt;(&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$request_method&lt;/span&gt; &lt;span style="color:#5af78e"&gt;!~*&lt;/span&gt; &lt;span style="color:#5af78e"&gt;GET|POST)&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;403&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;9&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#快速响应Head请求&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; &lt;span style="color:#5af78e"&gt;(&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;$request_method&lt;/span&gt; ~ &lt;span style="color:#5af78e"&gt;^(HEAD)$&lt;/span&gt; &lt;span style="color:#5af78e"&gt;)&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;return&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;200&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;All&lt;/span&gt; &lt;span style="color:#5af78e"&gt;OK&amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Nginx配置网站HTTPS(ssl)</title><link>https://www.idzd.top/archives/699/</link><pubDate>Mon, 30 Dec 2019 04:46:00 +0800</pubDate><guid>https://www.idzd.top/archives/699/</guid><description>&lt;p&gt;下面是在Nginx配置网站HTTPS(ssl)的参数&lt;/p&gt;&#10;&lt;p&gt;请酌情修改使用。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;注意：TLS 1.1 协议预计将2020年3月份正式“退役”，详情点击** &lt;a href="https://tools.ietf.org/html/draft-ietf-tls-oldversions-deprecate-00" title="这里"&gt;这里&lt;/a&gt; **。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;server&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;{&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;#监听443端口、ssl、http2&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;listen&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;443&lt;/span&gt; &lt;span style="color:#5af78e"&gt;ssl&lt;/span&gt; &lt;span style="color:#5af78e"&gt;http2&lt;/span&gt; ;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&#9;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;#启用ssl&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#ff6ac1"&gt;ssl&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;on&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&#9;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;#证书配置&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;ssl_certificate&lt;/span&gt; &lt;span style="color:#5af78e"&gt;/idzd.top.pem&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;ssl_certificate_key&lt;/span&gt; &lt;span style="color:#5af78e"&gt;/idzd.top.pem&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;&#9;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;#支持的协议&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;ssl_protocols&lt;/span&gt; &lt;span style="color:#5af78e"&gt;TLSv1.1&lt;/span&gt; &lt;span style="color:#5af78e"&gt;TLSv1.2&lt;/span&gt; &lt;span style="color:#5af78e"&gt;TLSv1.3&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&#9;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;#支持的加密套件&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;ssl_ciphers&lt;/span&gt; &lt;span style="color:#5af78e"&gt;ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt;&#9;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;#依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;ssl_prefer_server_ciphers&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;on&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;&#9;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;#设置储存SSL会话的缓存类型和大小&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;23&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;ssl_session_cache&lt;/span&gt; &lt;span style="color:#5af78e"&gt;shared:SSL:10m&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;24&lt;/span&gt;&lt;span&gt;&#9;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;25&lt;/span&gt;&lt;span&gt;&#9;&lt;span style="color:#78787e"&gt;#客户端能够反复使用储存在缓存中的会话参数时间&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;26&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;ssl_session_timeout&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;10m&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;27&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;28&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>一个简单的ESP8266WiFi时钟</title><link>https://www.idzd.top/archives/692/</link><pubDate>Sun, 29 Dec 2019 12:19:00 +0800</pubDate><guid>https://www.idzd.top/archives/692/</guid><description>&lt;h2 id="首先上效果图"&gt;首先，上效果图&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/29/884152506.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/29/884152506.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="你可能需要的准备"&gt;你可能需要的准备&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/387/"&gt;配置ESP8266的Arduino IDE环境 - IDZD&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/387/#NodeMCU%E8%BF%9E%E6%8E%A5&amp;amp;%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95"&gt;NodeMCU连接&amp;amp;固件烧录 - IDZD&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/397/"&gt;半离线安装EPS8266支持到Arduino IDE&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/arduino-libraries/NTPClient"&gt;NTPClient库&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/472/#%E9%A6%96%E5%85%88%E5%AE%89%E8%A3%85WS2812%E6%94%AF%E6%8C%81%E5%BA%93"&gt;安装支持库 - IDZD&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/673/" title="ESP8266使用I2C连接OLDE屏幕"&gt;ESP8266使用I2C连接OLDE屏幕&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="连线安装ntpclient库"&gt;连线&amp;amp;安装NTPClient库&lt;/h2&gt;&#10;&lt;h3 id="安装ntpclient库"&gt;安装NTPClient库&lt;/h3&gt;&#10;&lt;p&gt;这次我们选择&lt;code&gt;NTPClient&lt;/code&gt;库，联网获取ntp时间。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/arduino-libraries/NTPClient"&gt;项目地址&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#获取UNIX时间戳&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#57c7ff"&gt;getEpochTime&lt;/span&gt;();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#获取当前时间&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#57c7ff"&gt;getFormattedTime&lt;/span&gt;()&lt;span style="color:#ff5c57"&gt;；&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#获取星期，0是星期日&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#57c7ff"&gt;getDay&lt;/span&gt;()&lt;span style="color:#ff5c57"&gt;；&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="连线"&gt;连线&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;D1 &amp;mdash; SDA&lt;/li&gt;&#10;&lt;li&gt;D2 &amp;mdash; SCL&lt;/li&gt;&#10;&lt;li&gt;3V &amp;mdash; VCC&lt;/li&gt;&#10;&lt;li&gt;G &amp;mdash; GND&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/10/2089953529.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/10/2089953529.webp" src="https://www.idzd.top/img/lazy.gif" alt="2089953529.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>ESP8266使用I2C连接OLDE屏幕</title><link>https://www.idzd.top/archives/673/</link><pubDate>Sun, 29 Dec 2019 05:30:00 +0800</pubDate><guid>https://www.idzd.top/archives/673/</guid><description>&lt;h2 id="首先上效果图"&gt;首先，上效果图&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/29/4203724870.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/29/4203724870.webp" src="https://www.idzd.top/img/lazy.gif" alt="2019-12-29_122548.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="你可能需要的前期准备"&gt;你可能需要的前期准备&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/387/"&gt;配置ESP8266的Arduino IDE环境 - IDZD&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/387/#NodeMCU%E8%BF%9E%E6%8E%A5&amp;amp;%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95"&gt;NodeMCU连接&amp;amp;固件烧录 - IDZD&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/397/"&gt;半离线安装EPS8266支持到Arduino IDE&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/olikraus/u8g2/"&gt;U8G2库&lt;/a&gt; &amp;amp; &lt;a href="https://github.com/olikraus/u8g2/wiki"&gt;帮助文档&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/472/#%E9%A6%96%E5%85%88%E5%AE%89%E8%A3%85WS2812%E6%94%AF%E6%8C%81%E5%BA%93"&gt;安装支持库 - IDZD&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/678/" title="如何选择oled构造函数"&gt;如何选择oled构造函数&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="连线安装oled驱动库"&gt;连线&amp;amp;安装OLED驱动库&lt;/h2&gt;&#10;&lt;h3 id="1-安装oled驱动库"&gt;1. 安装OLED驱动库&lt;/h3&gt;&#10;&lt;p&gt;这次我们选择&lt;code&gt;U8G2&lt;/code&gt;库，来驱动OLED屏幕。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/olikraus/u8g2/"&gt;项目地址&lt;/a&gt; | &lt;a href="https://github.com/olikraus/u8g2/wiki"&gt;wiki&lt;/a&gt; | &lt;a href="https://www.idzd.top/archives/472/#%E9%A6%96%E5%85%88%E5%AE%89%E8%A3%85WS2812%E6%94%AF%E6%8C%81%E5%BA%93"&gt;如何安装支持库&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="2-连线"&gt;2. 连线&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;D1 &amp;mdash; SDA（数据）&lt;/li&gt;&#10;&lt;li&gt;D2 &amp;mdash; SCL（时钟）&lt;/li&gt;&#10;&lt;li&gt;3V &amp;mdash; VCC&lt;/li&gt;&#10;&lt;li&gt;G &amp;mdash; GND&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/10/2089953529.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/10/2089953529.webp" src="https://www.idzd.top/img/lazy.gif" alt="2089953529.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>U8g2初始化（如何选择oled构造函数）</title><link>https://www.idzd.top/archives/678/</link><pubDate>Sun, 29 Dec 2019 05:06:00 +0800</pubDate><guid>https://www.idzd.top/archives/678/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;注意：U8g2不支持“无控制器”屏幕&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="u8g2驱动库构造函数"&gt;U8g2驱动库构造函数&lt;/h2&gt;&#10;&lt;p&gt;U8g2驱动库构造函数格式如下：&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;U8G2_ &lt;a href="https://www.idzd.top/archives/678/#%E5%B1%8F%E5%B9%95%E6%8E%A7%E5%88%B6%E5%99%A8%E5%9E%8B%E5%8F%B7" title="屏幕控制器型号"&gt;屏幕控制器型号&lt;/a&gt; _ &lt;a href="https://www.idzd.top/archives/678/#%E5%B1%8F%E5%B9%95%E5%88%86%E8%BE%A8%E7%8E%87" title="分辨率"&gt;分辨率&lt;/a&gt; _ &lt;a href="https://www.idzd.top/archives/678/#%E6%98%BE%E7%A4%BA%E5%90%8D%E7%A7%B0" title="显示名称"&gt;显示名称&lt;/a&gt; _ &lt;a href="https://www.idzd.top/archives/678/#%E7%BC%93%E5%86%B2%E6%A8%A1%E5%BC%8F" title="缓冲模式(1,2,F)"&gt;缓冲模式(1,2,F)&lt;/a&gt; _ &lt;a href="https://www.idzd.top/archives/678/#%E9%80%9A%E8%AE%AF%E6%96%B9%E5%BC%8F" title="通讯方式"&gt;通讯方式&lt;/a&gt; u8g2( &lt;a href="https://www.idzd.top/archives/678/#%E9%80%9A%E8%AE%AF%E6%96%B9%E5%BC%8F%E5%8F%82%E6%95%B0" title="此处参数和通讯方式有关"&gt;参数&lt;/a&gt; );&lt;/strong&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;例如：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;//SSD1306,128x64,全屏缓冲模式,模拟I2C,I2C,u8g2(旋转0度,时钟,数据,重置)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;U8G2_SSD1306_128X64_NONAME_F_SW_I2C &lt;span style="color:#57c7ff"&gt;u8g2&lt;/span&gt;(U8G2_R0, &lt;span style="color:#78787e"&gt;/* clock=*/&lt;/span&gt; SCL, &lt;span style="color:#78787e"&gt;/* data=*/&lt;/span&gt; SDA, &lt;span style="color:#78787e"&gt;/* reset=*/&lt;/span&gt; U8X8_PIN_NONE);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;p&gt;你可以点击这里查看&lt;a href="https://github.com/olikraus/u8g2/wiki/u8g2setupcpp#constructor-reference"&gt;已支持的显示控制器构造函数&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Arduino 的ESP8266开发板库又更新了</title><link>https://www.idzd.top/archives/669/</link><pubDate>Sat, 28 Dec 2019 13:01:00 +0800</pubDate><guid>https://www.idzd.top/archives/669/</guid><description>&lt;p&gt;是的，今天本来想开始做个ESP8266的wifi天气时钟。&lt;/p&gt;&#10;&lt;p&gt;在我打开Arduino IDE 后不久，主界面左下角弹出了万恶之源。&lt;/p&gt;&#10;&lt;p&gt;作为一个不更新就会死星人。&lt;/p&gt;&#10;&lt;p&gt;我更新它了。&lt;/p&gt;</description></item><item><title>防止恶意解析网站</title><link>https://www.idzd.top/archives/656/</link><pubDate>Fri, 27 Dec 2019 07:25:00 +0800</pubDate><guid>https://www.idzd.top/archives/656/</guid><description>&lt;p&gt;对方把自己的域名恶意解析到你网站服务器的IP上，从而达到某些目的。&lt;/p&gt;&#10;&lt;p&gt;其中最关键的前提就是 &lt;strong&gt;你的网站直接访问ip就可以显示&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;说白了，&lt;strong&gt;解决思路就是禁止ip直接访问到网站&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>Nginx 设置HTTP 301重定向到HTTPS</title><link>https://www.idzd.top/archives/652/</link><pubDate>Fri, 27 Dec 2019 07:12:00 +0800</pubDate><guid>https://www.idzd.top/archives/652/</guid><description>&lt;p&gt;前几天一直在折腾网站的HTTPS，毕竟HTTP容易被劫持。&lt;/p&gt;&#10;&lt;p&gt;但是，一般输入域名，很少有人带上&lt;code&gt;http://&lt;/code&gt;或&lt;code&gt;https://&lt;/code&gt;,而浏览器一般默认访问http站点。&lt;/p&gt;</description></item><item><title>Nginx 简单安全优化（启用HSTS、禁止嵌套、防XSS攻击、禁止自动解析资源类型）</title><link>https://www.idzd.top/archives/627/</link><pubDate>Fri, 27 Dec 2019 06:35:00 +0800</pubDate><guid>https://www.idzd.top/archives/627/</guid><description>&lt;p&gt;在Nginx配置文件中添加以下代码即可&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#开启HSTS&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;add_header&lt;/span&gt; &lt;span style="color:#5af78e"&gt;Strict-Transport-Security&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;max-age=63072000&lt;/span&gt;; &lt;span style="color:#ff6ac1"&gt;includeSubdomains&lt;/span&gt;; &lt;span style="color:#ff6ac1"&gt;preload&amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#添加 X-Frame-Options 头部，确保不会嵌入到frame 或 iframe，使得网站的内容不会嵌入到其他网站。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;add_header&lt;/span&gt; &lt;span style="color:#5af78e"&gt;X-Frame-Options&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;DENY&amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#禁止服务器自动解析资源类型&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;add_header&lt;/span&gt; &lt;span style="color:#5af78e"&gt;X-Content-Type-Options&lt;/span&gt; &lt;span style="color:#5af78e"&gt;nosniff&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#防XSS攻击,mode=block&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff6ac1"&gt;add_header&lt;/span&gt; &lt;span style="color:#5af78e"&gt;X-Xss-Protection&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;1&lt;/span&gt;; &lt;span style="color:#ff6ac1"&gt;mode=block&amp;#34;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="strict-transport-security"&gt;Strict-Transport-Security&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;Strict-Transport-Security&lt;/code&gt;，用于告诉浏览器网站启用HTTPS了，要求浏览器总是通过HTTPS来访问它。而不是通过301/302重定向到HTTPS站点。&lt;/p&gt;</description></item><item><title>小游戏之推箱子</title><link>https://www.idzd.top/archives/637/</link><pubDate>Thu, 26 Dec 2019 12:57:00 +0800</pubDate><guid>https://www.idzd.top/archives/637/</guid><description>&lt;p&gt;这次是一个推箱子小游戏，因为 &lt;a href="https://www.idzd.top/tag/java/" title="java"&gt;java&lt;/a&gt; 限制，不能直接获取按键响应，只能使用输入&lt;code&gt;wasd&lt;/code&gt;的方式来控制移动。&lt;/p&gt;&#10;&lt;p&gt;基本上和走迷宫差不对，只不过逻辑上增加了对箱子位置的判断。&lt;/p&gt;&#10;&lt;p&gt;↓简陋的界面&#10;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/26/3236210737.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/26/3236210737.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>运算符优先级与结合性</title><link>https://www.idzd.top/archives/619/</link><pubDate>Wed, 25 Dec 2019 14:55:00 +0800</pubDate><guid>https://www.idzd.top/archives/619/</guid><description>&lt;h2 id="运算符优先级与结合性"&gt;运算符优先级与结合性&lt;/h2&gt;</description></item><item><title>标识符命名规则（C语言）</title><link>https://www.idzd.top/archives/616/</link><pubDate>Wed, 25 Dec 2019 14:38:00 +0800</pubDate><guid>https://www.idzd.top/archives/616/</guid><description>&lt;p&gt;C语言标识符分三种：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;保留字（关键字）&lt;/li&gt;&#10;&lt;li&gt;预定义标识符&lt;/li&gt;&#10;&lt;li&gt;用户标识符&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="保留字关键字"&gt;保留字（关键字）&lt;/h2&gt;&#10;&lt;p&gt;C语言保留关键字（C99）：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;char&lt;/code&gt; 字符型&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;short&lt;/code&gt; 短整型&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;int&lt;/code&gt; 整形&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;unsigned&lt;/code&gt; 无符号整形&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;long&lt;/code&gt; 长整形&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;float&lt;/code&gt; 单精度浮点数&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;double&lt;/code&gt; 双精度浮点数&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;struct&lt;/code&gt; 结构体&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;union&lt;/code&gt; 共用体&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;void&lt;/code&gt; 字面意思是“无类型”，&lt;code&gt;void *&lt;/code&gt;则为“无类型指针”，&lt;code&gt;void *&lt;/code&gt;可以指向任何类型的数据。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;enum&lt;/code&gt; 枚举类型&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;signed&lt;/code&gt; 有符号整形，默认省略。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;const&lt;/code&gt; 限定一个变量不允许被改变，产生静态作用。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;volatile&lt;/code&gt; 是一个特征修饰符，作用是作为指令关键字，确保本条指令不会因编译器的优化而省略，且要求每次直接读值。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;typedef&lt;/code&gt; 在计算机编程语言中用来为复杂的声明定义简单的别名，它与宏定义有些差异。它本身是一种存储类的关键字，与&lt;code&gt;auto、extern、mutable、static、register&lt;/code&gt;等关键字不能出现在同一个表达式中。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;auto&lt;/code&gt; 是一个C/C++语言存储类型，仅在语句块内部使用，初始化可为任何表达式，其特点是当执行流程进入该语句块的时候初始化可为任何表达式。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;register&lt;/code&gt; 暗示编译程序相应的变量将被频繁地使用，如果可能的话，应将其保存在CPU的寄存器中，以加快其存储速度。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;static&lt;/code&gt; 定义一个内部函数(关键字“static”，译成中文就是“静态的”，所以内部函数又称静态函数),函数的作用域仅局限于本文件,&lt;strong&gt;与面向对象的编程语言不同作用！&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;extern&lt;/code&gt; 可置于变量或者函数前，以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时，在其它模块中寻找其定义。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;break&lt;/code&gt; 其作用大多情况下是终止所在层的循环。在 C语言 的 switch（开关语句）中，break 语句还可用来在执行完一个 case（分支）后立即跳出当前 switch 结构。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;switch&lt;/code&gt; 经常跟case一起使用，是一个判断选择代码。其功能就是控制流程流转的。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;case&lt;/code&gt; 见上条&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;default&lt;/code&gt; 在c语言中与switch语句配套使用。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;continue&lt;/code&gt; 表示结束本次循环，而不终止整个循环的执行。而是结束本次循环，进行下一次循环。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;do&lt;/code&gt; 开始一层循环，需要和while配合使用。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;if&lt;/code&gt; 分支结构的一种。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;else&lt;/code&gt; 需要和if配合使用。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;for&lt;/code&gt; 用于循环处理的语句。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;goto&lt;/code&gt; 跳转到指定标号，其中标号需要申请，在对应的过程的申请的位置写label &amp;lt;标号&amp;gt;;其中，标号必须为byte型整数。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;return&lt;/code&gt; 函数的返回值。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;while&lt;/code&gt; 一种基本循环模式。当满足条件时进入循环，进入循环后，当条件不满足时，跳出循环。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;sizeof&lt;/code&gt; 判断数据类型或者表达式长度的运算符。对 sizeof() 的处理都是在编译阶段进行。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;_Bool&lt;/code&gt; 布尔类型&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;_Complex&lt;/code&gt; 复数类型,C99提供了三种复数类型：&lt;code&gt;float_Complex&lt;/code&gt;、&lt;code&gt;double_Complex&lt;/code&gt; 和 &lt;code&gt;long double_Complex&lt;/code&gt;。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;_Imaginary&lt;/code&gt; 虚数类型,C99提供了三种虚数类型：&lt;code&gt;float_Imaginary&lt;/code&gt;，&lt;code&gt;double_Imaginary&lt;/code&gt;，以及 &lt;code&gt;long double_Imaginary&lt;/code&gt;。虚数类型只有虚部，没有实部。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;inline&lt;/code&gt; 内联函数，作用是将函数展开，把函数的源代码复制到每一个调用它的地方。在程序运行过程中可以直接执行函数代码，而不发生跳转、压栈等一般性函数操作。可以节省时间，也会提高程序的执行速度。&lt;strong&gt;注意：gcc编译器对其定义不同！&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;restrict&lt;/code&gt; 类型限定符，用于告诉编译器，对象已经被指针所引用，不能通过除该指针外所有其他直接或间接的方式修改该对象的内容。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="预定义标识符"&gt;预定义标识符&lt;/h2&gt;&#10;&lt;p&gt;预定义标识符是C语言中有特定意义的标识符。预定义标识符也可以作为用户标识符使用，但是会导致原有功能丧失。&lt;strong&gt;非常不建议占用预定义标识符！&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>小游戏之迷宫逃脱</title><link>https://www.idzd.top/archives/609/</link><pubDate>Wed, 25 Dec 2019 13:07:00 +0800</pubDate><guid>https://www.idzd.top/archives/609/</guid><description>&lt;p&gt;本来在控制台用&lt;code&gt;wasd&lt;/code&gt;键直接了就可以控制小人移动，但奈何 &lt;a href="https://www.idzd.top/tag/java/" title="ava"&gt;java&lt;/a&gt; 没有这个功能，只能退而求其次，选择输入来控制小人移动。&lt;/p&gt;&#10;&lt;p&gt;这次用&lt;code&gt;char数组&lt;/code&gt;存储迷宫，&lt;code&gt;&amp;quot;#&amp;quot;&lt;/code&gt;字代表迷宫墙壁，大写的&lt;code&gt;&amp;quot;O&amp;quot;&lt;/code&gt;代表小人位置，墙壁空缺的地方为出口。&lt;/p&gt;&#10;&lt;p&gt;首先载入存储迷宫的数组，自动判断小人和出口的坐标，存储到变量里。&lt;/p&gt;&#10;&lt;p&gt;然后根据输入的指令，判断是否可以移动？&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;不可以，不移动；&lt;/li&gt;&#10;&lt;li&gt;可以，移动；&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;在判断是否到达出口？&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;是，结束游戏；&lt;/li&gt;&#10;&lt;li&gt;否，打印迷宫，等待指令；&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;嘛，很简单的个小游戏。&lt;/p&gt;&#10;&lt;p&gt;有机会看看能不能自动生成迷宫，和自动走迷宫。&lt;/p&gt;</description></item><item><title>一点小牢骚</title><link>https://www.idzd.top/archives/604/</link><pubDate>Mon, 23 Dec 2019 01:53:00 +0800</pubDate><guid>https://www.idzd.top/archives/604/</guid><description>&lt;p&gt;昨天，电脑坏了；今天，京东把主板取走了，估计回来不会早。&lt;/p&gt;&#10;&lt;p&gt;关于网站，正经访客几乎没有（实际一个都没有），来的都是扫描器。&lt;/p&gt;&#10;&lt;p&gt;你说你扫我就算了，你换着ip扫也算了，你扫我网站后台也算了，我明明在网站底下写了 &lt;strong&gt;Powered by Typecho&lt;/strong&gt; ，还一个劲儿的扫 &lt;em&gt;worldpress&lt;/em&gt; 后台，还每隔几天来一次。&lt;/p&gt;</description></item><item><title>主板坏了，郁闷</title><link>https://www.idzd.top/archives/597/</link><pubDate>Sun, 22 Dec 2019 12:48:00 +0800</pubDate><guid>https://www.idzd.top/archives/597/</guid><description>&lt;p&gt;今天不知道咋回事，电脑开不开机了。&lt;/p&gt;&#10;&lt;p&gt;好吧，有问题搞内存！&lt;/p&gt;&#10;&lt;p&gt;把内存金手指清理了一下插回去。还是无法点亮显示器，但所有的风扇都正常转。细思问题不简单。&lt;/p&gt;&#10;&lt;p&gt;于是把所有配件都下了，只剩主板cpu内存三大件，还是老样子。&lt;/p&gt;</description></item><item><title>常用排序&amp;查找算法（C语言实现）</title><link>https://www.idzd.top/archives/592/</link><pubDate>Sat, 21 Dec 2019 03:46:00 +0800</pubDate><guid>https://www.idzd.top/archives/592/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;排序&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/592/#%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F"&gt;冒泡排序&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/592/#%E7%AE%80%E5%8D%95%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F" title="简单选择排序"&gt;简单选择排序&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/592/#%E7%9B%B4%E6%8E%A5%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F" title="直接插入排序"&gt;直接插入排序&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;查找&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/592/#%E9%A1%BA%E5%BA%8F%E6%9F%A5%E6%89%BE" title="顺序查找"&gt;顺序查找&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.idzd.top/archives/592/#%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE" title="二分查找"&gt;二分查找&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>当初学习C语言时候的一些练习</title><link>https://www.idzd.top/archives/585/</link><pubDate>Fri, 20 Dec 2019 12:02:00 +0800</pubDate><guid>https://www.idzd.top/archives/585/</guid><description>&lt;p&gt;恩，现在看看。其实，以前写的代码虽然很简陋了，但有一种莫名的成就感。或许这就是我选择编程的原因吧？&lt;/p&gt;&#10;&lt;p&gt;大概有90多个，基本没有重复，那些太简单的没放进来。点击&lt;a href="https://www.idzd.top/usr/uploads/2019/12/20/641713873.rar"&gt;此处&lt;/a&gt;打包下载全部代码。&lt;/p&gt;</description></item><item><title>linux文件属性详解</title><link>https://www.idzd.top/archives/564/</link><pubDate>Thu, 19 Dec 2019 11:40:00 +0800</pubDate><guid>https://www.idzd.top/archives/564/</guid><description>&lt;p&gt;Linux 文件或目录的属性主要包括：文件或目录的节点、种类、权限、链接数量、所归属用户和用户组、最近访问或修改时间等内容。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;ls-ali命令运行截图：&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/19/4030882416.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/19/4030882416.webp" src="https://www.idzd.top/img/lazy.gif" alt="20181104-100300.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;ls-ali命令图解：&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/19/1684994411.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/19/1684994411.webp" src="https://www.idzd.top/img/lazy.gif" alt="ls-li命令图解.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Linux用户(组)管理文件</title><link>https://www.idzd.top/archives/556/</link><pubDate>Thu, 19 Dec 2019 11:25:00 +0800</pubDate><guid>https://www.idzd.top/archives/556/</guid><description>&lt;p&gt;在Linux里 &lt;code&gt;/etc/group&lt;/code&gt; 与 &lt;code&gt;/etc/passwd&lt;/code&gt; 和 &lt;code&gt;/etc/shadow&lt;/code&gt; 还有 &lt;code&gt;/etc/gshadow&lt;/code&gt; 文件都是有关于系统管理员对用户和用户组管理时相关的文件。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="用户组group管理文件"&gt;用户组（Group）管理文件&lt;/h2&gt;&#10;&lt;p&gt;用户组（Group）配置文件主要有 &lt;code&gt;/etc/group&lt;/code&gt; 和 &lt;code&gt;/etc/gshadow&lt;/code&gt; ，其中 &lt;code&gt;/etc/gshadow&lt;/code&gt; 是的加密信息文件。&lt;/p&gt;</description></item><item><title>Linux命令别名</title><link>https://www.idzd.top/archives/545/</link><pubDate>Thu, 19 Dec 2019 11:05:00 +0800</pubDate><guid>https://www.idzd.top/archives/545/</guid><description>&lt;p&gt;在用 linux 有些时候，会经常用到一些特别长的命令。但每次使用都很烦，这时候可以给它设个别名，方便使用。（懒人福利功能&lt;/p&gt;&#10;&lt;p&gt;例如： &lt;code&gt;ll&lt;/code&gt; 命令是 linux 下最常用命令之一，但他实际上并不算是 linux 的命令，而是 &lt;code&gt;ls -l&lt;/code&gt; 命令 的别名。&lt;/p&gt;</description></item><item><title>网站自动备份脚本+上传百度云</title><link>https://www.idzd.top/archives/542/</link><pubDate>Wed, 18 Dec 2019 13:48:00 +0800</pubDate><guid>https://www.idzd.top/archives/542/</guid><description>&lt;p&gt;运行脚本的时候将网站与数据库打包为&lt;code&gt;web_dump_时间.7z&lt;/code&gt;,之后使用**&lt;a href="https://github.com/oott123/bpcs_uploader" title="百度pcs上传脚本"&gt;百度pcs上传脚本&lt;/a&gt;**上传到pcs目录&lt;/p&gt;&#10;&lt;p&gt;好处，pcs目录与文件隔离使用独立的验证方式，可以保证一定得隐私。&lt;/p&gt;</description></item><item><title>遍历二叉树(BiTree)</title><link>https://www.idzd.top/archives/537/</link><pubDate>Tue, 17 Dec 2019 12:16:00 +0800</pubDate><guid>https://www.idzd.top/archives/537/</guid><description>&lt;h2 id="设计思想"&gt;设计思想&lt;/h2&gt;&#10;&lt;h3 id="递归"&gt;&lt;strong&gt;递归&lt;/strong&gt;    &lt;/h3&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;定义一个二叉树结点类型的结构体，创建一个二叉树，定义一个输入的数是字符型的，当ch为空时，T就为空值，否则的话就分配空间给T，T就指向它的结点，然后左指针域指向左孩子，右指针指向右孩子，若还有，继续调用,依次循环下去，直到ch遇到空时，结束。最后要返回建立的二叉树T。注：此程序按先序递归创建二叉树。&lt;/li&gt;&#10;&lt;li&gt;先序遍历规则：当T为非空时，先访问根节点，之后访问左子树，再访问右子树，依次进行下去直到遍历结束。&lt;/li&gt;&#10;&lt;li&gt;中序遍历规则：当T为非空时，先左指针指向左孩子数据，然后输出结点处的数据，再右指针指向右孩子，依次进行下去直到遍历结束。&lt;/li&gt;&#10;&lt;li&gt;后序遍历规则：当T为非空时，先左指针指向左孩子，然后右指针指向右孩子，最后输出结点处的数据，依次进行下去直到遍历结束。  &lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="非递归"&gt;&lt;strong&gt;非递归&lt;/strong&gt;  &lt;/h3&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;跟递归遍历二叉树的前提一样，首先应该创建一个二叉树，同样使用先序递归的方式创建二叉树。&lt;/li&gt;&#10;&lt;li&gt;然后是中序，先序，后序非递归遍历二叉树。&lt;/li&gt;&#10;&lt;li&gt;先序非递归遍历二叉树的思想是：首先建立一个栈，P是遍历指针指向根节点，当栈不空或者p不空时循环，当P不为空的时候，入栈访问根节点，遍历左子树，否则将栈顶元素出栈，然后访问右子树。重复操作，直到栈为空。&lt;/li&gt;&#10;&lt;li&gt;中序非递归遍历二叉树的思想是：首先是根节点压栈，当根节点的左子树不是空的时候，左子树压栈。直到左子树为空的时候，不再压栈。将栈顶元素出栈，访问栈顶元素，并将栈顶的右子树进栈。当右子树的左子树不是空的时候，左子树一直进栈，直到左子树为空，则不再进栈。重复上面的操作，直到栈空的时候。&lt;/li&gt;&#10;&lt;li&gt;后序非递归遍历二叉树的思想：首先是根节点进栈，当根节点的左子树不为空的时候，左子树进栈，直到左为空的时候，左子树不再进栈。指针指向的是右子树，当右子树为空的时候，直接访问根节点。当右子树不为空的时候，则右子树的指针进栈，当右子树的左子树不为空的时候，则左也进栈，直到左为空。重复上面的操作，直到栈为空的时候，则遍历树完成。&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>使用栈计算表达式</title><link>https://www.idzd.top/archives/523/</link><pubDate>Tue, 17 Dec 2019 11:56:00 +0800</pubDate><guid>https://www.idzd.top/archives/523/</guid><description>&lt;h2 id="设计思想"&gt;设计思想&lt;/h2&gt;&#10;&lt;p&gt;本题中规定的功能涉及的算法有：中缀表达式求值、将中缀表达式转换为后缀表达式、后缀表达式求值。&lt;/p&gt;&#10;&lt;h3 id="1-中缀表达式求值"&gt;1. 中缀表达式求值&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;首先定义两个栈，分别用于存取运算符和运算数。&lt;/li&gt;&#10;&lt;li&gt;然后依次读取表达式的一个字符ch，如果ch是数值，入数值栈&lt;/li&gt;&#10;&lt;li&gt;如果ch是运算符，把它与符号栈的栈顶元素的优先级比较：&#10;&lt;ul&gt;&#10;&lt;li&gt;若“&amp;lt;”即优先级低:该运算符进栈，读入下一个字符；&lt;/li&gt;&#10;&lt;li&gt;若“&amp;gt;”即优先级高，从运算符栈退出一个运算符，从运算数栈里退出两个运算数进行运算，并将结果入运算数栈。&lt;/li&gt;&#10;&lt;li&gt;若“=”即优先级相等(一般用于“（）”的判定):运算符退栈，消去一个括号读入下一个字符;&lt;/li&gt;&#10;&lt;li&gt;这时需用到比较运算符优先级的函数：precede(w,ch)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;重复上述过程，直至整个表达式求值完毕（即符号栈的栈顶元素和当前读入的字符均为”#”），操作数栈的栈顶元素为计算结果。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="2-将中缀表达式转换为后缀表达式"&gt;2. 将中缀表达式转换为后缀表达式&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;从左向右读取表达式，读到运算数把它输出；&lt;/li&gt;&#10;&lt;li&gt;读到运算符f，则把符号栈的栈顶元素的算符和f进行优先级比较：&#10;&lt;ul&gt;&#10;&lt;li&gt;若优先级高:该运算符入运算符栈；&lt;/li&gt;&#10;&lt;li&gt;若优先级相等:从运算符栈退出一个运算符，不输出;&lt;/li&gt;&#10;&lt;li&gt;若优先级低，从运算符栈退出一个运算符，从运算数栈里输出所有比f优先级高的运算符，直至栈顶算符优先级小于f，f入运算符栈。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;重复以上流程，一直到最终输出后缀表达式为止。&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>我要开始倒腾我以前的博客备份了</title><link>https://www.idzd.top/archives/513/</link><pubDate>Mon, 16 Dec 2019 12:14:00 +0800</pubDate><guid>https://www.idzd.top/archives/513/</guid><description>&lt;p&gt;今天收拾硬盘。&lt;/p&gt;&#10;&lt;p&gt;发现自己以前写一些零零散散的代码，和笔记。&lt;/p&gt;&#10;&lt;p&gt;寻思着，要不慢慢整理发上来？&lt;/p&gt;&#10;&lt;p&gt;以前杂七杂八用过好多blog，比如大名鼎鼎的Worldpress，zblog，hexo，织梦，帝国，菊花wiki（mediawiki），dokuwiki。&lt;/p&gt;&#10;&lt;p&gt;结果，Worldpress在空间上带的费劲，&lt;/p&gt;&#10;&lt;p&gt;zblog，恩，综合体验不错，迷之原因放弃了。&lt;del&gt;好像是因为忘给空间续费？&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;hexo操作感觉不是很友好，github也比空间好不到哪。&lt;/p&gt;&#10;&lt;p&gt;织梦和帝国自己写主题忒麻烦（审美老被吐糟），&lt;/p&gt;&#10;&lt;p&gt;最后用的的是dokuwiki，你敢信？那玩意一次性吧所有的js都压缩缓存在本地。我的天，打开一次得3秒，这还是本地。而且官网断断续续的连不上。&lt;/p&gt;&#10;&lt;p&gt;而且，wiki的通病，主题丑到天际。&lt;/p&gt;&#10;&lt;p&gt;毕竟wiki语法写习惯了，考虑试试markdown语法的Typecho博客，不过排版依然感人。&lt;/p&gt;&#10;&lt;p&gt;嘛，简简单单就好。也不纠结这个了&lt;/p&gt;&#10;&lt;p&gt;那么，我这几天应该就是以倒腾以前的东西为主了。&lt;/p&gt;</description></item><item><title>对CPU内部电路实现加减乘运算简单模拟</title><link>https://www.idzd.top/archives/489/</link><pubDate>Mon, 16 Dec 2019 11:51:00 +0800</pubDate><guid>https://www.idzd.top/archives/489/</guid><description>&lt;p&gt;ps：这是我以前的一个课程设计，今天正好学妹问这个，顺手发上来吧。&lt;/p&gt;&#10;&lt;p&gt;源码点击&lt;a href="https://www.idzd.top/usr/uploads/2019/12/16/2913882164.zip"&gt;此处下载&lt;/a&gt;（别问我为啥不用github，学校网忒蛋疼，这是我本地的Git仓）&lt;/p&gt;&#10;&lt;p&gt;&lt;del&gt;改天有空好好重写下，这个看的我难受。&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;如果有建议或意见，欢迎与我交流！&lt;/p&gt;&#10;&lt;h2 id="概述"&gt;概述&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;实验目的：编写一个程序，模拟CPU内部的加、减、乘、除功能尽量还原真实CPU的运算过程。&lt;/li&gt;&#10;&lt;li&gt;实验要求：本程序按照老师的指导和要求实现了模拟CPU的加法、减法及乘法运算。有半加器，全加器，多位全加器，移位器，并设有与门、或门、非们、与非门、或非门、异或门辅助运算，还用程序模拟了零标志位、负标志位、溢出标志位、进位或错位标志位，并设有溢出警告和输入非法数值警告，尽量还原了真实CPU的运算过程。&lt;/li&gt;&#10;&lt;li&gt;实现语言：Java&lt;/li&gt;&#10;&lt;li&gt;开发环境：JDK 1.8.0 + Eclipse Java EE v4.7.2&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>intellij idea 汉化包</title><link>https://www.idzd.top/archives/486/</link><pubDate>Sun, 15 Dec 2019 11:40:00 +0800</pubDate><guid>https://www.idzd.top/archives/486/</guid><description>&lt;p&gt;idea 是一个十分强大的编程工具。本人转到他下面也有一段时间了。奈何英文不好，许多好用的功能都不知道。&lt;/p&gt;&#10;&lt;p&gt;决定去汉化一下。&lt;/p&gt;&#10;&lt;p&gt;在GitHub上找到了这样一个项目&lt;a href="https://github.com/pingfangx/TranslatorX"&gt;JetBrains 系列软件汉化包&lt;/a&gt;&lt;/p&gt;</description></item><item><title>解决Linux下java中文方块问题</title><link>https://www.idzd.top/archives/477/</link><pubDate>Sun, 15 Dec 2019 11:12:00 +0800</pubDate><guid>https://www.idzd.top/archives/477/</guid><description>&lt;h2 id="原因"&gt;原因：&lt;/h2&gt;&#10;&lt;p&gt;jdk缺少中文字体&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="解决方法"&gt;解决方法：&lt;/h2&gt;&#10;&lt;p&gt;OracleJDK 与 OpenJDK 通用&lt;/p&gt;&#10;&lt;h3 id="1确定jre目录"&gt;1.确定JRE目录&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#确定JRE目录&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;update-alternatives --config java&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/15/4194871298.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/15/4194871298.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;我这里jre目录为 &lt;code&gt;/usr/lib/jvm/java-8-openjdk-amd64/jre&lt;/code&gt;&lt;/p&gt;&#10;&lt;h3 id="2补充字体"&gt;2.补充字体&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#进入jre的字体目录&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;cd&lt;/span&gt; /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/fonts&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#新建文件夹&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;mkdir fallback&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#复制文泉驿字体到fallback下&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8&lt;/span&gt;&lt;span&gt;cp /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc fallback/wqy-zenhei.ttc&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;复制字体这一步基本上中文字库都可以，如果实在无法找到可以使用&lt;a href="https://www.idzd.top/usr/uploads/2019/12/15/2510855623.zip"&gt;gbsn00lp.ttf&lt;/a&gt;字体，也可以尝试使用命令 &lt;code&gt;ttf-wqy-zenhei&lt;/code&gt; 安装文泉驿字体。&lt;/p&gt;</description></item><item><title>ESP01s WS2812 RGB LED 模块</title><link>https://www.idzd.top/archives/472/</link><pubDate>Fri, 13 Dec 2019 07:39:00 +0800</pubDate><guid>https://www.idzd.top/archives/472/</guid><description>&lt;p&gt;ESP01s小玩具里我最喜欢的一个，为啥？别问，帅就完事了。（3/3）&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/13/2265828778.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/13/2265828778.webp" src="https://www.idzd.top/img/lazy.gif" alt="2019-12-13_152206.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;什么是性能的象征？ R！G！B！&#10;什么是男人的信仰？ R！G！B！&#10;你会选择女人还是RGB？ 当然！R！G！B！&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;演示视频&lt;/strong&gt;&lt;/p&gt;&#10;&lt;video class="post-video" src="https://www.idzd.top/usr/uploads/2020/01/10/1452169217.mp4" preload="metadata" width="100%" height="100%" muted controls&gt; 您的浏览器不支持 video 元素。&lt;/video&gt;</description></item><item><title>ESP01s WebSocket 实现友好交互</title><link>https://www.idzd.top/archives/465/</link><pubDate>Fri, 13 Dec 2019 06:48:00 +0800</pubDate><guid>https://www.idzd.top/archives/465/</guid><description>&lt;p&gt;YES! 又是ESP01s Relay 继电器模块。（2.5/3）&lt;/p&gt;&#10;&lt;p&gt;好吧，其实是在翻店家给的小礼物里看见了一个好玩的东西。&lt;/p&gt;&#10;&lt;p&gt;用ESP01s实现一个WebSocket，最终效果如下。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/13/866520059.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/13/866520059.webp" src="https://www.idzd.top/img/lazy.gif" alt="2019-12-13_143436.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;del&gt;请叫我补丁小能手&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;ps：这代码撸的真头疼。&lt;/p&gt;</description></item><item><title>ESP01s Relay 继电器模块</title><link>https://www.idzd.top/archives/458/</link><pubDate>Fri, 13 Dec 2019 05:03:00 +0800</pubDate><guid>https://www.idzd.top/archives/458/</guid><description>&lt;p&gt;恩，这是ESP01s小玩具系列的第二集（2/3）&lt;/p&gt;&#10;&lt;p&gt;这次，我们做一个基于ESP01s和继电器模块的智(yao)能(kong)开关。&lt;/p&gt;&#10;&lt;p&gt;它长这样子滴↓&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/13/1412813707.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/13/1412813707.webp" src="https://www.idzd.top/img/lazy.gif" alt="2019-12-13_115638.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;和上次的DHT11一样，这回也是用lua来写。&lt;/p&gt;&#10;&lt;p&gt;PS：手动拼接html简直要死。&lt;/p&gt;&#10;&lt;p&gt;OK，下面开始咯。&lt;/p&gt;</description></item><item><title>ESP01s DHT11 温度湿度传感器</title><link>https://www.idzd.top/archives/441/</link><pubDate>Thu, 12 Dec 2019 13:51:00 +0800</pubDate><guid>https://www.idzd.top/archives/441/</guid><description>&lt;p&gt;前面说到了如何烧录ESP01s的固件&lt;/p&gt;&#10;&lt;p&gt;这回我们试试做个小玩具（1/3）&lt;/p&gt;&#10;&lt;p&gt;基于ESP01s和DHT11物联网传感器节点&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/12/3178983763.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/12/3178983763.webp" src="https://www.idzd.top/img/lazy.gif" alt="359436538.jpg"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;其实本来应该定时发送数据到指定的API那里。比如 thingspeak。&lt;/p&gt;&#10;&lt;p&gt;但是，奈何网络不稳定。&lt;/p&gt;&#10;&lt;p&gt;所以这回这里采用的是向ESP01s发送请求，ESP01s把温湿度以json格式返回。我们也不需要在局域网内配置一个接收服务了。&lt;/p&gt;&#10;&lt;p&gt;如果还希望随时随地的查看这些信息的话，还得配置内网穿透。&lt;/p&gt;&#10;&lt;p&gt;&lt;del&gt;其实主要还是懒&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;当然，如果希望记录温度、湿度变化曲线的话，还是别偷懒了。&lt;/p&gt;&#10;&lt;p&gt;好的，那我们开始吧！&lt;/p&gt;</description></item><item><title>ESP-01/01s 连接&amp;烧录固件</title><link>https://www.idzd.top/archives/438/</link><pubDate>Thu, 12 Dec 2019 07:38:00 +0800</pubDate><guid>https://www.idzd.top/archives/438/</guid><description>&lt;p&gt;&lt;del&gt;恩，这是填坑的。&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/12/2470493028.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/12/2470493028.webp" src="https://www.idzd.top/img/lazy.gif" alt="2024920580.jpg"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;关于EPS01和ESP01s有啥区别，我也不是很清楚，因为我手头上只有ESP-01s。&lt;/p&gt;&#10;&lt;p&gt;从网上查的资料发现主要有三点区别：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;外部外观&#10;&lt;ul&gt;&#10;&lt;li&gt;01比01s在天线附近多一个LED灯；&lt;/li&gt;&#10;&lt;li&gt;01s后面有引脚说明，01没有；&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;内部电路&#10;&lt;ul&gt;&#10;&lt;li&gt;01s的内部电路与01相比做了一定的优化；&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;我估计，现在网上能买到到基本上都是ESP-01s了，基本上不用太头疼这个事了。&lt;/p&gt;&#10;&lt;p&gt;OK，下面开始干货吧&lt;/p&gt;</description></item><item><title>半离线安装EPS8266支持到Arduino IDE</title><link>https://www.idzd.top/archives/397/</link><pubDate>Wed, 11 Dec 2019 14:25:00 +0800</pubDate><guid>https://www.idzd.top/archives/397/</guid><description>&lt;p&gt;唉，我快被在线安装EPS8266开发板支持逼疯了。&lt;/p&gt;&#10;&lt;p&gt;不是下载失败，就是取消不了。&lt;/p&gt;&#10;&lt;p&gt;没办法了，只能离线安装试试了。&lt;/p&gt;&#10;&lt;p&gt;然鹅，网上的方法是：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;下载&lt;code&gt;esp8266-2.6.2.zip&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;解压到&lt;code&gt;\arduino\hardware&lt;/code&gt;下新建的&lt;code&gt;esp8266com&lt;/code&gt;的目录里。&lt;/li&gt;&#10;&lt;li&gt;然后在运行&lt;code&gt;\arduino\hardware\esp8266com\tools&lt;/code&gt;下的&lt;code&gt;get.py&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;等待运行完毕就好了。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;但是，我是说但是，&lt;code&gt;get.py&lt;/code&gt;是python2编写的。（ps：到现在我这python环境炸的一塌糊涂）&lt;/p&gt;&#10;&lt;p&gt;只能来点其他的方法了&lt;/p&gt;&#10;&lt;p&gt;先说解决方案吧&lt;/p&gt;</description></item><item><title>配置ESP8266的Arduino IDE环境</title><link>https://www.idzd.top/archives/387/</link><pubDate>Wed, 11 Dec 2019 14:20:00 +0800</pubDate><guid>https://www.idzd.top/archives/387/</guid><description>&lt;p&gt;首先说点题外话。ESP8266是乐鑫开发的用于物联网设备的低功耗、高集成度的 Wi-Fi 芯片。&lt;/p&gt;&#10;&lt;p&gt;下图中红框圈住的是两个比较常见的ESP8266的封装&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/11/1422064999.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/11/1422064999.webp" src="https://www.idzd.top/img/lazy.gif" alt="2034826.jpg"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;EPS8266 可以支持&lt;code&gt;lua&lt;/code&gt;语言、AT指令、Arduino IDE编译固件。可玩性比较高，可以制作一些简单“小玩具”。&lt;/p&gt;&#10;&lt;p&gt;这次，我们主要讲如何配置Arduino IDE支持编译烧录ESP8266的固件。&lt;/p&gt;&#10;&lt;p&gt;那么不多说废话了，让我们开始吧&lt;/p&gt;</description></item><item><title>Tpyecho 支持html</title><link>https://www.idzd.top/archives/367/</link><pubDate>Tue, 10 Dec 2019 16:08:00 +0800</pubDate><guid>https://www.idzd.top/archives/367/</guid><description>&lt;p&gt;只需要用三个感叹号就可以强制启用html了&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;!!!&lt;/p&gt;&#10;&lt;script&gt;&#10;function myFunction()&#10;{&#10; alert("你好，我是一个警告框！");&#10;}&#10;&lt;/script&gt;&#10;&lt;center&gt;&lt;input type="button" onclick="myFunction()" value="显示警告框"&gt;&lt;/center&gt;&#10;&lt;p&gt;!!!&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;!!!&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;function&lt;/span&gt; myFunction()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;{&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt; alert(&lt;span style="color:#5af78e"&gt;&amp;#34;你好，我是一个警告框！&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;script&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;center&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style="color:#ff6ac1"&gt;input&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;type&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;button&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;onclick&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;myFunction()&amp;#34;&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;value&lt;/span&gt;&lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#5af78e"&gt;&amp;#34;显示警告框&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#ff6ac1"&gt;center&lt;/span&gt;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;!!!&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>ESP8266 Wi-Fi deauther</title><link>https://www.idzd.top/archives/336/</link><pubDate>Tue, 10 Dec 2019 15:32:00 +0800</pubDate><guid>https://www.idzd.top/archives/336/</guid><description>&lt;p&gt;前一段时间，淘宝推我一个ESP8266 NodeMCU V3，就是下图这货。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/10/2100267347.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/10/2100267347.webp" src="https://www.idzd.top/img/lazy.gif" alt="2019-12-10_190438.jpg"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;看店家描述 自带串口转usb、自动下载模式、自带下载复位按钮、众多的I/O口引出。再看看手头的ESP01s,眼泪不争气的就流下来了。&lt;/p&gt;&#10;&lt;p&gt;然后没忍住，就买了两个外带一个OLED屏幕。&lt;/p&gt;&#10;&lt;video class="post-video" src="https://www.idzd.top/usr/uploads/2020/01/10/4112567575.mp4" preload="metadata" width="100%" height="100%" muted controls&gt; 您的浏览器不支持 video 元素。&lt;/video&gt;&#10;&#10;&lt;p&gt;正好鼓捣一下ESP8266 Wi-Fi deauther ,俗称wifi干扰器。&lt;del&gt;求生欲还是很强的&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;下面正式开始&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;PS：其实烧录bin文件是最省事的，奈何我的是v3版本，固件都是v2，只能编译安装了。 ┑(￣Д ￣)┍&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>HTTP状态码（HTTP Status Code）</title><link>https://www.idzd.top/archives/314/</link><pubDate>Mon, 09 Dec 2019 07:27:00 +0800</pubDate><guid>https://www.idzd.top/archives/314/</guid><description>&lt;h2 id="一些常见的状态码为"&gt;一些常见的状态码为：&lt;/h2&gt;&#10;&lt;p&gt;200 - 服务器成功返回网页&#10;301 - 临时重定向&#10;302 - 永久重定向&#10;404 - 请求的网页不存在&#10;503 - 服务不可用&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="所有状态解释"&gt;所有状态解释：&lt;/h2&gt;</description></item><item><title>CSDN阅读全文自动展开</title><link>https://www.idzd.top/archives/312/</link><pubDate>Sun, 08 Dec 2019 10:49:59 +0800</pubDate><guid>https://www.idzd.top/archives/312/</guid><description>&lt;p&gt;CSDN最近越来越恶心人了&lt;/p&gt;&#10;&lt;p&gt;原来展开阅读全文，需要登录。行，很正常，我登录。&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/08/3708847521.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/08/3708847521.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;现在竟然得关注微信。呵呵&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;TampermonKey脚本 修改自&lt;a href="https://gitee.com/scgywx/autoexpandcsdn#note_1714539" title="永夜"&gt;永夜&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// ==UserScript==&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// @name CSDN&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// @namespace http://tampermonkey.net/&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// @version 0.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// @description CSDN 博客解除阅读更多限制&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// @author You&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// @match https://blog.csdn.net/*&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// @grant none&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;// ==/UserScript==&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;(&lt;span style="color:#ff5c57"&gt;function&lt;/span&gt; () {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &lt;span style="color:#5af78e"&gt;&amp;#39;use strict&amp;#39;&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &lt;span style="color:#ff5c57"&gt;var&lt;/span&gt; articleBox &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; $(&lt;span style="color:#5af78e"&gt;&amp;#34;div.article_content&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt; articleBox.removeAttr(&lt;span style="color:#5af78e"&gt;&amp;#34;style&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt; $(&lt;span style="color:#5af78e"&gt;&amp;#34;.btn-readmore&amp;#34;&lt;/span&gt;).parent().remove();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;})();&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;效果&#10;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/08/2008334608.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/08/2008334608.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Piwigo 导入(同步)工具无法正确识别中文件名问题</title><link>https://www.idzd.top/archives/302/</link><pubDate>Sun, 08 Dec 2019 07:21:00 +0800</pubDate><guid>https://www.idzd.top/archives/302/</guid><description>&lt;p&gt;&lt;strong&gt;Piwigo 导入(同步)工具无法识别中文字符&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>功能强大性能优秀的相册&amp;图床——Pieigo</title><link>https://www.idzd.top/archives/277/</link><pubDate>Sun, 08 Dec 2019 06:56:00 +0800</pubDate><guid>https://www.idzd.top/archives/277/</guid><description>&lt;p&gt;&lt;a href="https://cn.piwigo.org/"&gt;官方网站&lt;/a&gt; | &lt;a href="https://github.com/Piwigo/Piwigo"&gt;GitHub&lt;/a&gt; | &lt;a href="https://cn.piwigo.org/what-is-piwigo"&gt;Piwigo 是什么？&lt;/a&gt; | &lt;a href="https://cn.piwigo.org/get-piwigo"&gt;获得 Piwigo&lt;/a&gt; | &lt;a href="https://cn.piwigo.org/doc/doku.php"&gt;Wiki&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Piwigo 是网络端的开源相册程序。 专为组织、团队与个人设计。&lt;/p&gt;</description></item><item><title>简约但不简单的图床&amp;相册——Lychee</title><link>https://www.idzd.top/archives/250/</link><pubDate>Sat, 07 Dec 2019 13:59:00 +0800</pubDate><guid>https://www.idzd.top/archives/250/</guid><description>&lt;p&gt;&lt;a href="https://lycheeorg.github.io/"&gt;官方主页&lt;/a&gt; | &lt;a href="https://github.com/LycheeOrg/Lychee"&gt;GitHub&lt;/a&gt; | &lt;a href="https://hub.docker.com/search?q=Lychee&amp;amp;type=image" title="Docker"&gt;Docker&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Lychee是一个简约但是很强大的相册&amp;amp;图床，而且还可以支持视频上传分享。&lt;/p&gt;</description></item><item><title>OneNote 无法正常登陆账户</title><link>https://www.idzd.top/archives/247/</link><pubDate>Fri, 06 Dec 2019 12:28:00 +0800</pubDate><guid>https://www.idzd.top/archives/247/</guid><description>&lt;p&gt;今天心血来潮把自己遗忘许久的office 2016下载了下了&lt;/p&gt;&#10;&lt;p&gt;结果发现死活登陆不上去微软账号&lt;/p&gt;&#10;&lt;p&gt;不是打不开登陆页面，就是登陆了之后没反应。&lt;/p&gt;&#10;&lt;p&gt;后来，查看了一下知识库，发现是因为八竿子打不着的IE的问题&lt;/p&gt;</description></item><item><title>Linux SSH密钥登录</title><link>https://www.idzd.top/archives/217/</link><pubDate>Thu, 05 Dec 2019 14:55:00 +0800</pubDate><guid>https://www.idzd.top/archives/217/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;本次实验环境为：阿里云 CentOS_7.4_x64 已开放22端口&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="编辑-sshd-配置文件"&gt;编辑 sshd 配置文件&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#编辑 /etc/ssh/sshd_config 文件&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;vim /etc/ssh/sshd_config&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#设置是否使用RSA算法进行安全验证&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;RSAAuthentication yes&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#允许客户端通过 public-key authentication来登陆&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;PubkeyAuthentication yes&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#root用户能否通过 SSH 登录&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;PermitRootLogin yes&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#禁用密码登录，建议确认完成全部设置，并可以使用密钥方式登录成功后再修改。&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;PasswordAuthentication no&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#重启 SSH 服务&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt;service sshd restart&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;更多关于 &lt;code&gt;sshd_config&lt;/code&gt; 文件说明请&lt;a href="#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6_sshd_config"&gt;点击这里&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="检查是否已经生成过ssh密钥"&gt;检查是否已经生成过ssh密钥&lt;/h2&gt;</description></item><item><title>Linux 下搭建SQLserver</title><link>https://www.idzd.top/archives/208/</link><pubDate>Thu, 05 Dec 2019 14:30:00 +0800</pubDate><guid>https://www.idzd.top/archives/208/</guid><description>&lt;p&gt;&lt;em&gt;本次实验环境为：阿里云 CentOS_7.4_x64 已开放1433端口&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-overview?view=sql-server-2017" title="https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-overview?view=sql-server-2017"&gt;官方说明文档&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="安装前准备"&gt;安装前准备&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;请以root用户账号安装&lt;/li&gt;&#10;&lt;li&gt;RHEL 7.3 或 7.4 或更高版本&lt;/li&gt;&#10;&lt;li&gt;在Linux上运行SQL Server需要至少3.25GB的内存（&lt;a href="#5.%E8%A7%A3%E5%86%B3%E5%B0%8F%E5%86%85%E5%AD%98%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85"&gt;解决小内存无法安装&lt;/a&gt;）&lt;/li&gt;&#10;&lt;li&gt;SQL Server引擎目前仅测试了高达256GB的内存。&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>Linux下为什么目录的大小总是4096？</title><link>https://www.idzd.top/archives/207/</link><pubDate>Thu, 05 Dec 2019 14:18:00 +0800</pubDate><guid>https://www.idzd.top/archives/207/</guid><description>&lt;p&gt;&lt;strong&gt;在Linux下一切皆文件，因此目录也是文件。所以，通过 &lt;code&gt;ls -al&lt;/code&gt; 命令显示的目录大小并非常规意义上包含其子文件的总大小，而是单纯指的是目录的大小。这一点和Windows并不一样。&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>修改 Linux 终端欢迎文字（布告栏）</title><link>https://www.idzd.top/archives/198/</link><pubDate>Thu, 05 Dec 2019 14:07:00 +0800</pubDate><guid>https://www.idzd.top/archives/198/</guid><description>&lt;hr&gt;&#10;&lt;h2 id="etcmotd-文件"&gt;&lt;strong&gt;/etc/motd 文件&lt;/strong&gt;&lt;/h2&gt;&#10;&lt;p&gt;motd即messageoftoday（布告栏信息），每次用户登录时,&lt;code&gt;/etc/motd&lt;/code&gt;文件的内容会显示在用户的终端.&lt;/p&gt;&#10;&lt;p&gt;系统管理员可以在文件中编辑系统活动消息,例如：&lt;/p&gt;</description></item><item><title>CCMP 安装&amp;体验</title><link>https://www.idzd.top/archives/179/</link><pubDate>Mon, 02 Dec 2019 11:29:00 +0800</pubDate><guid>https://www.idzd.top/archives/179/</guid><description>&lt;p&gt;&lt;a href="https://ccmp.clustertech.com/index.php/zh/"&gt;官方网站&lt;/a&gt; | &lt;a href="https://ccmp.clustertech.com/index.php/zh/quick-start-zh/"&gt;快速入门&lt;/a&gt; | &lt;a href="https://ccmp.clustertech.com/index.php/zh/installation-zh/"&gt;官方安装文档&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="ccmp是什么"&gt;CCMP是什么？&lt;/h2&gt;&#10;&lt;p&gt;CCMP(联科云管理平台）是一个用Go语言、QEMU实现的精简私有云系统。 它为管理员和一般用户提供网页管理界面，支持多用户虚拟机自助申请和使用。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;免费-如需使用32g以上内存需要授权&lt;/li&gt;&#10;&lt;li&gt;可安装在64位Ubuntu16.4系统上，不限服务器或桌面版本（限制系统版本）&lt;/li&gt;&#10;&lt;li&gt;可以使用计算机集群&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="安装"&gt;安装&lt;/h2&gt;</description></item><item><title>Ubuntu16.4 虚拟机安装报 无法安装busybox-initramft 错误导致无法安装</title><link>https://www.idzd.top/archives/171/</link><pubDate>Mon, 02 Dec 2019 09:21:00 +0800</pubDate><guid>https://www.idzd.top/archives/171/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/12/02/1880449395.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/12/02/1880449395.webp" src="https://www.idzd.top/img/lazy.gif" alt=""&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;在VM中安装Ubuntu16.4时，选择中文时候 报 无法安装busybox-initramft 错误，导致安装终止。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;在Ubuntu16.4的桌面和服务器版均出现此问题，高版本（Ubuntu 19）并未出现。&#10;怀疑安装向导可能有问题&lt;/p&gt;</description></item><item><title>配置VNC远程连接</title><link>https://www.idzd.top/archives/165/</link><pubDate>Sat, 30 Nov 2019 12:46:00 +0800</pubDate><guid>https://www.idzd.top/archives/165/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;&lt;em&gt;&lt;strong&gt;注：请以 root 用户身份配置！可以省好多事，普通用户请加 sudo 命令&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="安装vnc-server"&gt;安装VNC Server&lt;/h2&gt;&#10;&lt;p&gt;这里我们选择 tigervnc&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#安装tigervnc-server&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;yum install -y tigervnc-server&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Docker常用命令</title><link>https://www.idzd.top/archives/141/</link><pubDate>Thu, 28 Nov 2019 08:14:00 +0800</pubDate><guid>https://www.idzd.top/archives/141/</guid><description>&lt;h2 id="启动重启停止docker"&gt;启动|重启|停止Docker&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#开机自动启动docker&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;systemctl &lt;span style="color:#ff5c57"&gt;enable&lt;/span&gt; docker&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#启动docker&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;systemctl start docker &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#重启dokcer&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;systemctl restart docker &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#停止dokcer&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;systemctl stop docker &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#守护进程重启&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;sudo systemctl daemon-reload&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="查找docker镜像"&gt;查找Docker镜像&lt;/h2&gt;&#10;&lt;h3 id="在dockerhub搜索需要的镜像"&gt;在DockerHub搜索需要的镜像&lt;/h3&gt;&#10;&lt;p&gt;&lt;strong&gt;1.访问&lt;a href="https://hub.docker.com/"&gt;Docker Hub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;2.搜索mysql&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>docker pull 提示了login</title><link>https://www.idzd.top/archives/139/</link><pubDate>Thu, 28 Nov 2019 07:46:00 +0800</pubDate><guid>https://www.idzd.top/archives/139/</guid><description>&lt;p&gt;今天尝试下载docker镜像时候提示&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;Error response from daemon: pull access denied &lt;span style="color:#ff6ac1"&gt;for&lt;/span&gt; gitea, repository does not exist or may require &lt;span style="color:#5af78e"&gt;&amp;#39;docker login&amp;#39;&lt;/span&gt;: denied: requested access to the resource is denied&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;大概意思就是不登录，不让下载镜像，或是你的镜像文件名不对。&#10;好吧，注册一个吧。&lt;/p&gt;</description></item><item><title>Docker 安装 for Linux</title><link>https://www.idzd.top/archives/134/</link><pubDate>Thu, 28 Nov 2019 06:10:00 +0800</pubDate><guid>https://www.idzd.top/archives/134/</guid><description>&lt;h2 id="快速安装脚本快速搭建测试环境用"&gt;快速安装脚本（快速搭建测试环境用）&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#快速安装脚本（快速搭建测试环境用）&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;curl -sSL https://get.docker.com/ | sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="非root用户安装注意"&gt;非root用户安装注意:&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#（建议）添加当前用户到docker用户组&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;sudo gpasswd -a &lt;span style="color:#5af78e"&gt;${&lt;/span&gt;&lt;span style="color:#ff5c57"&gt;USER&lt;/span&gt;&lt;span style="color:#5af78e"&gt;}&lt;/span&gt; docker&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#如果有集群，请执行&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;sudo apt-get install docker-compose&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;docker-compose up -d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#或执行命令时加sudo&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8&lt;/span&gt;&lt;span&gt;sudo docker ps&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="卸载旧版本"&gt;卸载旧版本&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;##CentOS&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;sudo yum remove docker &lt;span style="color:#5af78e"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt; docker-client &lt;span style="color:#5af78e"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt; docker-client-latest &lt;span style="color:#5af78e"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt; docker-common &lt;span style="color:#5af78e"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt; docker-latest &lt;span style="color:#5af78e"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; docker-latest-logrotate &lt;span style="color:#5af78e"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt; docker-logrotate &lt;span style="color:#5af78e"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; docker-selinux &lt;span style="color:#5af78e"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; docker-engine-selinux &lt;span style="color:#5af78e"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt; docker-engine&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;##Debian&amp;amp;Ubuntu&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;sudo apt-get remove docker docker-engine docker.io containerd runc&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 id="使用包管理工具安装"&gt;使用包管理工具安装&lt;/h2&gt;&#10;&lt;h3 id="debianubuntu"&gt;Debian&amp;amp;Ubuntu&lt;/h3&gt;&#10;&lt;h4 id="设置安装源"&gt;设置安装源&lt;/h4&gt;</description></item><item><title>Centos 7 修改阿里镜像源</title><link>https://www.idzd.top/archives/133/</link><pubDate>Thu, 28 Nov 2019 06:08:46 +0800</pubDate><guid>https://www.idzd.top/archives/133/</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#备份原有镜像源配置文件&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#安装curl&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;sudo yum install -y curl&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#下载并应用阿里源&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#或&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#清理缓存&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt;sudo yum clean all&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#重建缓存&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;sudo yum makecache&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;18&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#更软件包列表&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;19&lt;/span&gt;&lt;span&gt;sudo yum update&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;20&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;21&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#安装常用软件（选择）&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;22&lt;/span&gt;&lt;span&gt;sudo yum install -y curl screen unzip zip vim wget&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Git基础教程</title><link>https://www.idzd.top/archives/111/</link><pubDate>Wed, 27 Nov 2019 08:53:00 +0800</pubDate><guid>https://www.idzd.top/archives/111/</guid><description>&lt;h2 id="git是什么"&gt;Git是什么?&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/11/27/2874494734.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/11/27/2874494734.webp" src="https://www.idzd.top/img/lazy.gif" alt="git"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;Git是一个分布式版本控制系统。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;版本控制是一种记录一个或若干文件内容变化，以便将来查阅特定版本修订情况的系统。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;特点&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;速度&lt;/li&gt;&#10;&lt;li&gt;简单的设计&lt;/li&gt;&#10;&lt;li&gt;对非线性开发模式的强力支持（允许成千上万个并行开发的分支）&lt;/li&gt;&#10;&lt;li&gt;完全分布式&lt;/li&gt;&#10;&lt;li&gt;有能力高效管理类似 Linux 内核一样的超大规模项目（速度和数据量）&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>关于WordPress支持的文件格式</title><link>https://www.idzd.top/archives/102/</link><pubDate>Mon, 25 Nov 2019 14:18:00 +0800</pubDate><guid>https://www.idzd.top/archives/102/</guid><description>&lt;hr&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;图片类型:&lt;/strong&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;.jpg&lt;/li&gt;&#10;&lt;li&gt;.jpeg&lt;/li&gt;&#10;&lt;li&gt;.png&lt;/li&gt;&#10;&lt;li&gt;.gif&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;文档类型:&lt;/strong&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;.pdf (Portable Document Format; Adobe Acrobat)&lt;/li&gt;&#10;&lt;li&gt;.doc, .docx (Microsoft Word Document)&lt;/li&gt;&#10;&lt;li&gt;.ppt, .pptx, .pps, .ppsx (Microsoft PowerPoint Presentation)&lt;/li&gt;&#10;&lt;li&gt;.odt (OpenDocument Text Document)&lt;/li&gt;&#10;&lt;li&gt;.xls, .xlsx (Microsoft Excel Document)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;音频格式:&lt;/strong&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;.mp3&lt;/li&gt;&#10;&lt;li&gt;.m4a&lt;/li&gt;&#10;&lt;li&gt;.ogg&lt;/li&gt;&#10;&lt;li&gt;.wav&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;视频格式:&lt;/strong&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;.mp4, .m4v (MPEG-4)&lt;/li&gt;&#10;&lt;li&gt;.mov (QuickTime)&lt;/li&gt;&#10;&lt;li&gt;.wmv (Windows Media Video)&lt;/li&gt;&#10;&lt;li&gt;.avi&lt;/li&gt;&#10;&lt;li&gt;.mpg&lt;/li&gt;&#10;&lt;li&gt;.ogv (Ogg)&lt;/li&gt;&#10;&lt;li&gt;.3gp (3GPP)&lt;/li&gt;&#10;&lt;li&gt;.3g2 (3GPP2)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;*&lt;em&gt;如果以上文件在上传过程中也会出现错误提示，很可能是你的主机环境做了文件类型限制，最好联系您的主机服务商处理。&lt;/em&gt;&lt;/p&gt;</description></item><item><title>PHP关于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本选择的问题（这是个巨坑）</title><link>https://www.idzd.top/archives/100/</link><pubDate>Mon, 25 Nov 2019 14:16:00 +0800</pubDate><guid>https://www.idzd.top/archives/100/</guid><description>&lt;html&gt;&#10;&lt;p style="padding-left: 30px;"&gt;&lt;strong&gt;有的，小伙伴，第一次打开php官方下载页面时不是所措&lt;span style="color: #808080;"&gt;&lt;span style="text-decoration: line-through;"&gt;被水淹没&lt;/span&gt;&lt;/span&gt;了&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p style="padding-left: 30px;"&gt;&lt;strong&gt;我滴天那该下哪一个啊？&lt;/strong&gt;&lt;/p&gt;&#10;&lt;hr /&gt;&#10;&lt;h2&gt;官网上的php安装包有VC11或VC9到底是啥意思啊？&lt;/h2&gt;&#10;&lt;span style="color: #ff00ff;"&gt;其实VC11或VC9是指编译器的版本&lt;/span&gt;&#10;&lt;ul&gt;&#10; &#9;&lt;li&gt;VC6版本是使用Visual Studio 6编译器编译的，如果你的PHP是用Apache来架设的，那你就选择VC6版本。（现在PHP已经没有VC6了）。&lt;/li&gt;&#10; &#9;&lt;li&gt;VC9意思就是该版本PHP是用VisualStudio2008编译的，而VC11则是用VisualStudio2012编译的。这意味着&lt;/li&gt;&#10; &#9;&lt;li&gt;如果你下载的是VC9版本的，就需要先安VisualC++RedistributableforVisualStudio2008SP1，&lt;/li&gt;&#10; &#9;&lt;li&gt;如果你下载的是VC11版本的，就需要先安VisualC++RedistributableforVisualStudio2012.&lt;/li&gt;&#10; &#9;&lt;li&gt;搭建php首先看操作系统的版本，如果是Windows的在这里下：&lt;span style="color: #3366ff;"&gt;&lt;a style="color: #3366ff;" href="http://windows.php.net/download/" target="_blank" rel="noopener"&gt;http://windows.php.net/download/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr /&gt;&#10;&lt;h2&gt;选择32位还是64位？&lt;/h2&gt;&#10;如果是32位的，就选择带“x86”的版本，如果是64位的，就选择带“x64”的版本。&lt;span style="color: #999999;"&gt;一般32位只能用32位，64位可以用32位或64位，但建议用64位。&lt;/span&gt;&#10;&lt;p&gt;看到这里一定又有小伙伴会问了我咋知道是用32位还是64位？&lt;/p&gt;&#10;&lt;ul&gt;&#10; &#9;&lt;li&gt;主要看系统版本想XP就是32位的，至于其他的系统 在计算机上右击属性，你会看到你的系统是多少位的。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr /&gt;&#10;&lt;h2&gt;是“Non Thread Safe”还是“Thread Safe”？&lt;/h2&gt;&#10;“Non Thread Safe”中文翻译是&lt;span style="color: #ff00ff;"&gt;非线程安全&lt;/span&gt;，“Thread Safe”中文翻译是&lt;span style="color: #ff00ff;"&gt;线程安全&lt;/span&gt;，当然并不是“Thread Safe”的版本更好更安全。</description></item><item><title>MPC-HC 倍数播放音频不失真</title><link>https://www.idzd.top/archives/97/</link><pubDate>Mon, 25 Nov 2019 14:14:00 +0800</pubDate><guid>https://www.idzd.top/archives/97/</guid><description>&lt;ol&gt;&#10;&lt;li&gt;查看&amp;gt;选项&lt;/li&gt;&#10;&lt;li&gt;输出&amp;gt;音频渲染器改为内部音频渲染器&#10;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/11/25/2568757556.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/11/25/2568757556.webp" src="https://www.idzd.top/img/lazy.gif" alt="20181023-131915.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/li&gt;&#10;&lt;li&gt;内部滤镜&amp;gt;音频渲染器勾选允许比特流（谨慎勾选）列表项目&#10;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/11/25/3017847565.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/11/25/3017847565.webp" src="https://www.idzd.top/img/lazy.gif" alt="20181023-132227.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>KMS激活命令</title><link>https://www.idzd.top/archives/95/</link><pubDate>Mon, 25 Nov 2019 14:09:00 +0800</pubDate><guid>https://www.idzd.top/archives/95/</guid><description>&lt;p&gt;KMS(Key Management Service ),即微软Windows密钥管理服务，可以快捷高效自动化的为同局域网下vol版提供激活服务。（默认激活有效时长：180天，自动续期）&lt;/p&gt;</description></item><item><title>Windows创建恢复分区</title><link>https://www.idzd.top/archives/93/</link><pubDate>Mon, 25 Nov 2019 14:08:00 +0800</pubDate><guid>https://www.idzd.top/archives/93/</guid><description>&lt;p&gt;只有在你电脑上目前还没有恢复分区的情况下，才应该创建一个恢复分区。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;以管理员身份运行‘命令提示符’。&lt;/li&gt;&#10;&lt;li&gt;若要为恢复分区创建一个文件夹，请输入&lt;code&gt;mkdir C:\RefreshImage&lt;/code&gt;，然后按 &lt;code&gt;Enter&lt;/code&gt; 键。&lt;/li&gt;&#10;&lt;li&gt;若要在刚才创建的文件夹中创建新的映像，请输入&lt;code&gt;recimg -CreateImage C:\RefreshImage&lt;/code&gt;，然后按 &lt;code&gt;Enter&lt;/code&gt; 键。&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>调整PHP上传附件限制</title><link>https://www.idzd.top/archives/88/</link><pubDate>Mon, 25 Nov 2019 14:00:00 +0800</pubDate><guid>https://www.idzd.top/archives/88/</guid><description>&lt;ol&gt;&#10;&lt;li&gt;首先你是服务器的管理员 这不废话么&lt;/li&gt;&#10;&lt;li&gt;然后打开你的php的php.ini (php 配置文件)修改下面的信息&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;post_max_size &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#ff9f43"&gt;10&lt;/span&gt;M &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#是否允许上传文件,如果为OFF您将不能上传文件.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;file_uploads &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; On&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;upload_tmp_dir &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; &lt;span style="color:#5af78e"&gt;&amp;#34;D:/APM/PHP/uploadtemp/&amp;#34;&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#最大上传文件大小,此项针对上传文件时单个文件的大小.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12&lt;/span&gt;&lt;span&gt;upload_max_filesize &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt;&lt;span style="color:#ff9f43"&gt;2&lt;/span&gt;M &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13&lt;/span&gt;&lt;span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#在论坛发表贴子时,您post_max_size 设为10M&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#而upload_max_filesize设成了2M&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;16&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#那么您只能上传最大为2M的附件&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;17&lt;/span&gt;&lt;span&gt;&lt;span style="color:#78787e"&gt;#且可以同时上传5个.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>配置php+apache服务器</title><link>https://www.idzd.top/archives/86/</link><pubDate>Mon, 25 Nov 2019 13:58:00 +0800</pubDate><guid>https://www.idzd.top/archives/86/</guid><description>&lt;html&gt;&#10;最近&lt;del&gt;闲的没事干&lt;/del&gt;决定搭建一个服务器玩(zuo)玩(si)。&#10;&lt;p&gt;这次搭建的环境是window,&lt;del&gt;废话你linux只会开关机！&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;&lt;span style="color: #ff00ff;"&gt;*如果你想偷懒请选择wampp或appservice&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;下面就开始了&lt;/strong&gt;&lt;/p&gt;&#10;&lt;hr /&gt;&#10;&lt;h2&gt;准备相关的软件&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&#9;&lt;li&gt;【运行库】VC11             网址：&lt;span style="text-decoration: underline; color: #3366ff;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a style="color: #3366ff; text-decoration: underline;" href="http://www.microsoft.com/en-us/download/details.aspx?id=30679" target="_blank"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=30679&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&#10;&#9;&lt;li&gt;【数据库】mysql 5.7.9  网址：&lt;span style="text-decoration: underline; color: #3366ff;"&gt;&lt;a style="color: #3366ff; text-decoration: underline;" href="http://dev.mysql.com/downloads/installer/" target="_blank"&gt;http://dev.mysql.com/downloads/installer/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&#10;&#9;&lt;li&gt;【阿帕奇】apache 2.4   网址：&lt;span style="text-decoration: underline; color: #3366ff;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a style="color: #3366ff; text-decoration: underline;" href="http://www.apachelounge.com/download/" target="_blank"&gt;http://www.apachelounge.com/download/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&#10;&#9;&lt;li&gt;【php】 php 5.6             网址：&lt;span style="text-decoration: underline; color: #3366ff;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a style="color: #3366ff; text-decoration: underline;" href="http://windows.php.net/download/" target="_blank"&gt;http://windows.php.net/download/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h6&gt;&lt;span style="color: #ff0000;"&gt;*php选择‘VC11 x64 Thread Safe’或是‘VC11 x86 Thread Safe’，Thread Safe是线程安全版，关于线程安全版与非线程安全版的区别后面我会说明的  &lt;del&gt;喂，明明是你百度的！&lt;/del&gt;&lt;/span&gt;&lt;/h6&gt;&#10;&lt;h6&gt;&lt;span style="color: #ff0000;"&gt;*请注意软件的版本要一致，64位就都是64位  &lt;del&gt;别问我怎么知道的，我想静静&lt;/del&gt;&lt;/span&gt;&lt;/h6&gt;</description></item><item><title>apache服务启动失败的解决方案</title><link>https://www.idzd.top/archives/76/</link><pubDate>Mon, 25 Nov 2019 09:02:00 +0800</pubDate><guid>https://www.idzd.top/archives/76/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;一般在cmd中直接运行httpd会有详细的错误提示！&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>极路由GO 刷Openwrt教程</title><link>https://www.idzd.top/archives/70/</link><pubDate>Mon, 25 Nov 2019 08:47:00 +0800</pubDate><guid>https://www.idzd.top/archives/70/</guid><description>&lt;hr&gt;&#10;&lt;p&gt;#&lt;strong&gt;1.上传固件到路由器上&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.idzd.top/usr/uploads/2019/11/25/731571296.7z"&gt;固件下载地址&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;scp -P &lt;span style="color:#ff9f43"&gt;1022&lt;/span&gt; openwrt-ramips-mt76x8-hc5611-squashfs-sysupgrade.bin root@192.168.199.1:/tmp&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>本地搭建Gogs</title><link>https://www.idzd.top/archives/24/</link><pubDate>Sun, 24 Nov 2019 14:05:00 +0800</pubDate><guid>https://www.idzd.top/archives/24/</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/11/24/3230076026.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/11/24/3230076026.webp" src="https://www.idzd.top/img/lazy.gif" alt="favicon.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Gogs是一款极易搭建的自助 Git 服务。安装简单，资源占用少（官方说甚至可以运行在树莓派上），文档完善，还是国人开发。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;a href="https://gogs.io/"&gt;官方网站&lt;/a&gt; | &lt;a href="https://gogs.io/docs"&gt;说明文档&lt;/a&gt; | &lt;a href="https://github.com/gogs/gogs"&gt;GitHub&lt;/a&gt;&lt;/p&gt;</description></item><item><title>dokuwiki静态化配置</title><link>https://www.idzd.top/archives/20/</link><pubDate>Sun, 24 Nov 2019 13:45:00 +0800</pubDate><guid>https://www.idzd.top/archives/20/</guid><description>&lt;p&gt;&lt;strong&gt;Apache&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;修改DokuWiki的根目录下的.htaccess文件，删除“#”注释即可启用&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-apache" data-lang="apache"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;RewriteEngine&lt;/span&gt; o&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;RewriteRule&lt;/span&gt; ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;RewriteRule&lt;/span&gt; ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;RewriteRule&lt;/span&gt; ^_export/([^/]+)/(.*) doku.php?do=export_$1&amp;amp;id=$2 [QSA,L]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;RewriteRule&lt;/span&gt; ^$ doku.php [L]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;RewriteCond&lt;/span&gt; %{REQUEST_FILENAME} !-f&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;RewriteCond&lt;/span&gt; %{REQUEST_FILENAME} !-d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;RewriteRule&lt;/span&gt; (.*) doku.php?id=$1 [QSA,L]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff5c57"&gt;RewriteRule&lt;/span&gt; ^index.php$ doku.php&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;Nginx&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Hello World</title><link>https://www.idzd.top/archives/3/</link><pubDate>Sat, 23 Nov 2019 12:12:00 +0800</pubDate><guid>https://www.idzd.top/archives/3/</guid><description>&lt;p&gt;嘛，你看标题就知道博主是干啥的了（笑&lt;/p&gt;</description></item><item><title>关于</title><link>https://www.idzd.top/about.html</link><pubDate>Sat, 23 Nov 2019 05:55:00 +0800</pubDate><guid>https://www.idzd.top/about.html</guid><description>&lt;p&gt;&lt;center&gt;&lt;a data-lightbox="gallery" href="https://www.idzd.top/usr/uploads/2019/11/30/3252373357.webp"&gt;&lt;img data-src="https://www.idzd.top/usr/uploads/2019/11/30/3252373357.webp" src="https://www.idzd.top/img/lazy.gif" alt="IDZD -乐于探索！"&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;本站为个人博客，属于非营利性个人网站，依靠博主一己之力建设并维护。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.idzd.top/update.html" title="时间线"&gt;时间线&lt;/a&gt; | &lt;a href="https://www.idzd.top/privacy-policy.html" title="隐私政策"&gt;隐私政策&lt;/a&gt; | &lt;a href="https://www.idzd.top/sitemap.xml" title="网站地图"&gt;网站地图&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;除特别说明外，本站内容均采用 &lt;strong&gt;&lt;a href="https://creativecommons.org/licenses/by-nc/4.0/deed.zh" title="知识共享署名-非商业性使用 4.0 国际许可协议"&gt;CC BY-NC 4.0&lt;/a&gt;&lt;/strong&gt; 进行许可，您可自由分发和演绎本站内容，只需保留本站署名且非商业使用。&lt;/p&gt;</description></item><item><title>欢迎使用 Typecho</title><link>https://www.idzd.top/archives/1/</link><pubDate>Sat, 23 Nov 2019 05:55:00 +0800</pubDate><guid>https://www.idzd.top/archives/1/</guid><description>&lt;p&gt;如果您看到这篇文章,表示您的 blog 已经安装成功.&lt;/p&gt;</description></item><item><title>搜索</title><link>https://www.idzd.top/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.idzd.top/search/</guid><description/></item></channel></rss>