<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Untitled Publication]]></title><description><![CDATA[Untitled Publication]]></description><link>https://blog.jvmkit.com</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1683784712404/jGi1HOr-Z.png</url><title>Untitled Publication</title><link>https://blog.jvmkit.com</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 20:46:10 GMT</lastBuildDate><atom:link href="https://blog.jvmkit.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[容器的日志路径]]></title><description><![CDATA[在大多数情况下，容器的日志路径.在/var/lib/docker/containers/[container_ID]/[container_ID]-json.log。
可以通过以下命令查看容器的日志路径：
docker inspect [container_name_or_ID] | grep LogPath

可以通过以下命令查看容器的日志：
docker logs [container_name_or_ID]

也可以将容器的日志输出到指定文件中：
docker logs [containe...]]></description><link>https://blog.jvmkit.com/5a655zmo55qe5pel5bx6lev5b6e</link><guid isPermaLink="true">https://blog.jvmkit.com/5a655zmo55qe5pel5bx6lev5b6e</guid><category><![CDATA[Docker]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Thu, 11 May 2023 09:01:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/f5pTwLHCsAg/upload/9cd9750dd0a4454422a59238a7a48733.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>在大多数情况下，容器的日志路径.在/var/lib/docker/containers/[container_ID]/[container_ID]-json.log。</p>
<p>可以通过以下命令查看容器的日志路径：</p>
<pre><code class="lang-bash">docker inspect [container_name_or_ID] | grep LogPath
</code></pre>
<p>可以通过以下命令查看容器的日志：</p>
<pre><code class="lang-bash">docker logs [container_name_or_ID]
</code></pre>
<p>也可以将容器的日志输出到指定文件中：</p>
<pre><code class="lang-bash">docker logs [container_name_or_ID] &gt; /path/to/<span class="hljs-built_in">log</span>/file
</code></pre>
]]></content:encoded></item><item><title><![CDATA[常用的 Linux 控制台文本编辑器]]></title><description><![CDATA[以下是几个常用的 Linux 控制台文本编辑器：

Vim：Vi IMproved 是 Unix 和 Linux 系统中最受欢迎的文本编辑器之一。通过使用一些快捷键，用户可以在不离开键盘的情况下快速编辑文本。

Nano：Nano 是一个简单易用的文本编辑器，适合于新手。它的界面比 Vim 更加友好一些，很容易上手。

Emacs：Emacs 是一个强大的文本编辑器，它不仅可以编辑文本，还可以用于编程和其他任务。使用 Emacs 需要一些学习成本，但一旦熟悉它，它可以成为你的得力助手。

Joe...]]></description><link>https://blog.jvmkit.com/linux-notepad</link><guid isPermaLink="true">https://blog.jvmkit.com/linux-notepad</guid><category><![CDATA[Linux]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Thu, 11 May 2023 06:56:39 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/_SgRNwAVNKw/upload/88fd6b7260bba0165978e75d73f05403.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>以下是几个常用的 Linux 控制台文本编辑器：</p>
<ol>
<li><p>Vim：Vi IMproved 是 Unix 和 Linux 系统中最受欢迎的文本编辑器之一。通过使用一些快捷键，用户可以在不离开键盘的情况下快速编辑文本。</p>
</li>
<li><p>Nano：Nano 是一个简单易用的文本编辑器，适合于新手。它的界面比 Vim 更加友好一些，很容易上手。</p>
</li>
<li><p>Emacs：Emacs 是一个强大的文本编辑器，它不仅可以编辑文本，还可以用于编程和其他任务。使用 Emacs 需要一些学习成本，但一旦熟悉它，它可以成为你的得力助手。</p>
</li>
<li><p>Joe：Joe 是一个类似于 Nano 的文本编辑器，易于使用，并支持基本的文本操作和编辑功能。它的界面相对较简单，适合于那些喜欢简单工具的人。</p>
</li>
<li><p>Pico：Pico 是 Nano 的前身，仍然是一个受欢迎的文本编辑器，特别适合于那些只需要进行基本文本编辑的用户。 Pico 的主要优点是它的简单性和易用性。</p>
</li>
<li><p>Sed：Sed 是一种流编辑器，它可以从输入流中读取文本，对其进行编辑和转换，然后将结果发送到输出流。Sed 的主要用途是对大量的文本进行自动化处理。</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[yum配置http代理]]></title><description><![CDATA[本文将介绍如何配置yum使用http代理。
配置yum使用http代理的步骤

打开yum配置文件。
 $ sudo vi /etc/yum.conf


在文件末尾添加以下内容：
 proxy=http://proxy.example.com:port/

 其中，proxy.example.com是代理服务器的地址，port是代理服务器的端口号。
 如果需要输入用户名和密码才能访问代理服务器，则可以将上述内容改为：
 proxy=http://username:password@proxy....]]></description><link>https://blog.jvmkit.com/yumhttp</link><guid isPermaLink="true">https://blog.jvmkit.com/yumhttp</guid><category><![CDATA[Linux]]></category><category><![CDATA[yum]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Thu, 11 May 2023 06:27:16 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/VH_L_H4w7U8/upload/0b1f0a0af0f4bf020fc7d3cf370baa51.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>本文将介绍如何配置yum使用http代理。</p>
<h2 id="heading-yumhttp">配置yum使用http代理的步骤</h2>
<ol>
<li><p>打开yum配置文件。</p>
<pre><code class="lang-bash"> $ sudo vi /etc/yum.conf
</code></pre>
</li>
<li><p>在文件末尾添加以下内容：</p>
<pre><code class="lang-bash"> proxy=http://proxy.example.com:port/
</code></pre>
<p> 其中，proxy.example.com是代理服务器的地址，port是代理服务器的端口号。</p>
<p> 如果需要输入用户名和密码才能访问代理服务器，则可以将上述内容改为：</p>
<pre><code class="lang-bash"> proxy=http://username:password@proxy.example.com:port/
</code></pre>
<p> 其中，username和password是你在代理服务器上的用户名和密码。</p>
</li>
<li><p>保存并退出文件。</p>
</li>
<li><p>测试是否成功。</p>
<pre><code class="lang-bash"> $ sudo yum update
</code></pre>
<p> 如果能够顺利更新软件包，则说明代理配置成功了。</p>
</li>
</ol>
<h2 id="heading-5oc757ut">总结</h2>
<p>配置yum使用http代理可以让你在无法直接连接互联网的情况下也能方便地管理系统软件包。只需按照上述步骤进行配置，就可以轻松完成。</p>
]]></content:encoded></item><item><title><![CDATA[Docker指定容器image存储路径]]></title><description><![CDATA[以下是如何指定容器image存储路径的步骤：

停止Docker服务：
 sudo systemctl stop docker


备份默认的Docker image存储路径：
 sudo mv /var/lib/docker /var/lib/docker.bak


创建新的Docker image存储路径：
 sudo mkdir -p /new/docker/path


将新路径添加到Docker配置文件中：
 sudo vim /etc/docker/daemon.json

 在文...]]></description><link>https://blog.jvmkit.com/dockerimage</link><guid isPermaLink="true">https://blog.jvmkit.com/dockerimage</guid><category><![CDATA[Docker]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Thu, 11 May 2023 06:24:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/HSACbYjZsqQ/upload/8aadb1054c913b8474bbd9da3dd944ff.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>以下是如何指定容器image存储路径的步骤：</p>
<ol>
<li><p>停止Docker服务：</p>
<pre><code class="lang-bash"> sudo systemctl stop docker
</code></pre>
</li>
<li><p>备份默认的Docker image存储路径：</p>
<pre><code class="lang-bash"> sudo mv /var/lib/docker /var/lib/docker.bak
</code></pre>
</li>
<li><p>创建新的Docker image存储路径：</p>
<pre><code class="lang-bash"> sudo mkdir -p /new/docker/path
</code></pre>
</li>
<li><p>将新路径添加到Docker配置文件中：</p>
<pre><code class="lang-bash"> sudo vim /etc/docker/daemon.json
</code></pre>
<p> 在文件中添加以下内容：</p>
<pre><code class="lang-bash"> {
    <span class="hljs-string">"graph"</span>: <span class="hljs-string">"/new/docker/path"</span>
 }
</code></pre>
</li>
<li><p>启动Docker服务：</p>
<pre><code class="lang-bash"> sudo systemctl start docker
</code></pre>
</li>
</ol>
<p>现在，Docker中所有的容器image都将存储在新的路径中。</p>
]]></content:encoded></item><item><title><![CDATA[Java8 快速建立线程并执行]]></title><description><![CDATA[在Java8中，可以使用lambda表达式来快速地建立线程并执行。
例如，以下代码可以新建一个线程并在其中执行一个简单的任务：
new Thread(() -> {
    // 简单的任务代码
}).start();

使用lambda表达式比传统的线程创建方式更加简洁和易读。
是的，除了lambda表达式，Java8还提供了另一种快速建立线程并执行的方式，即使用CompletableFuture类。使用CompletableFuture可以更加方便地进行异步编程，使用起来也比较简单。
以下是...]]></description><link>https://blog.jvmkit.com/java8-thread</link><guid isPermaLink="true">https://blog.jvmkit.com/java8-thread</guid><category><![CDATA[Java]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Thu, 11 May 2023 06:19:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/95YRwf6CNw8/upload/50d31177565d15d4b1f8c9f414407313.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>在Java8中，可以使用lambda表达式来快速地建立线程并执行。</p>
<p>例如，以下代码可以新建一个线程并在其中执行一个简单的任务：</p>
<pre><code class="lang-java"><span class="hljs-keyword">new</span> Thread(() -&gt; {
    <span class="hljs-comment">// 简单的任务代码</span>
}).start();
</code></pre>
<p>使用lambda表达式比传统的线程创建方式更加简洁和易读。</p>
<p>是的，除了lambda表达式，Java8还提供了另一种快速建立线程并执行的方式，即使用CompletableFuture类。使用CompletableFuture可以更加方便地进行异步编程，使用起来也比较简单。</p>
<p>以下是使用CompletableFuture类进行线程创建和执行的示例代码：</p>
<pre><code class="lang-java">CompletableFuture&lt;Void&gt; future1 = CompletableFuture.runAsync(() -&gt; {
    <span class="hljs-comment">// 任务1代码</span>
});

CompletableFuture&lt;Void&gt; future2 = CompletableFuture.runAsync(() -&gt; {
    <span class="hljs-comment">// 任务2代码</span>
});

CompletableFuture.allOf(future1, future2).join();
</code></pre>
<p>这段代码会创建两个线程，分别执行任务1和任务2，并等待这两个线程执行完成后再继续执行后面的代码。也可以使用<code>anyOf</code>方法，让多个任务中的任意一个完成即可。</p>
<p>除了<code>runAsync</code>方法，<code>CompletableFuture</code>还提供了其他方法，例如<code>supplyAsync</code>和<code>thenApply</code>，可以用于更加复杂的异步编程。</p>
]]></content:encoded></item><item><title><![CDATA[以文生图的几个站点]]></title><description><![CDATA[以下是以文生图的几个站点的中文介绍：

fusionbrain.ai：这是一个来自俄罗斯的网站，提供了很多不同的人工智能服务，非常好用。

Bing Image Creator：这个网站可以帮助你创建各种各样的图片，非常实用。

Playground AI：这是一个在线的人工智能模拟器，让你可以轻松地测试和开发各种 AI 应用。

DreamStudio：这个网站提供了各种各样的图形设计工具，非常适合那些需要制作海报、宣传册等等的人。

Pixlr：这是一个在线的图像编辑工具，可以帮助你轻松地对...]]></description><link>https://blog.jvmkit.com/5lul5pah55sf5zu55qe5yeg5liq56uz54k5</link><guid isPermaLink="true">https://blog.jvmkit.com/5lul5pah55sf5zu55qe5yeg5liq56uz54k5</guid><category><![CDATA[#ai-tools]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Thu, 11 May 2023 06:15:05 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/mNa_V4J-GGY/upload/00924346fd273e3e7f5e466d99655df2.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>以下是以文生图的几个站点的中文介绍：</p>
<ul>
<li><p><a target="_blank" href="http://fusionbrain.ai">fusionbrain.ai</a>：这是一个来自俄罗斯的网站，提供了很多不同的人工智能服务，非常好用。</p>
</li>
<li><p>Bing Image Creator：这个网站可以帮助你创建各种各样的图片，非常实用。</p>
</li>
<li><p>Playground AI：这是一个在线的人工智能模拟器，让你可以轻松地测试和开发各种 AI 应用。</p>
</li>
<li><p>DreamStudio：这个网站提供了各种各样的图形设计工具，非常适合那些需要制作海报、宣传册等等的人。</p>
</li>
<li><p>Pixlr：这是一个在线的图像编辑工具，可以帮助你轻松地对图片进行各种修改和调整。</p>
</li>
<li><p>Leonardo AI：这个网站提供了各种各样的 AI 工具，可以帮助你完成各种各样的任务，非常方便。</p>
</li>
<li><p>Craiyon：这是一个在线的图形设计工具，非常适合那些需要制作海报、宣传册等等的人。</p>
</li>
<li><p><a target="_blank" href="http://catbird.ai">catbird.ai</a></p>
</li>
<li><p><a target="_blank" href="https://www.aiimagegenerator.art/">Ai image generator | Ai Imagination Unleashed</a></p>
</li>
<li><p><a target="_blank" href="https://getimg.ai/">https://getimg.ai/</a></p>
</li>
<li><p><a target="_blank" href="https://app.prodia.com/">https://app.prodia.com/</a></p>
</li>
<li><p><a target="_blank" href="https://lexica.art/">Lexica</a></p>
</li>
<li><p><a target="_blank" href="https://dreamlike.art/">https://dreamlike.art/</a></p>
</li>
<li><p><a target="_blank" href="https://www.catbird.ai/">https://www.catbird.ai/</a></p>
</li>
<li><p><a target="_blank" href="https://app.prodia.com/#/art-ai">https://app.prodia.com/#/art-ai</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[update-alternatives命令]]></title><description><![CDATA[update-alternatives 命令是一个用于管理 Linux 系统中可替代性命令的命令行工具。通过使用 update-alternatives 命令，你可以在多个命令之间进行切换。
在使用 update-alternatives 命令之前，你需要先安装相应的软件包。软件包通常会包含多个可替代的命令，并使用 update-alternatives 命令为每个命令设置优先级，以便在需要的时候切换到适当的命令。
下面是一些 update-alternatives 常用的命令：

-insta...]]></description><link>https://blog.jvmkit.com/update-alternatives</link><guid isPermaLink="true">https://blog.jvmkit.com/update-alternatives</guid><category><![CDATA[Linux]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Thu, 11 May 2023 06:12:56 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/4Mw7nkQDByk/upload/7b5cb3eebd2c10aeeb9ff49c622743e6.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><code>update-alternatives</code> 命令是一个用于管理 Linux 系统中可替代性命令的命令行工具。通过使用 <code>update-alternatives</code> 命令，你可以在多个命令之间进行切换。</p>
<p>在使用 <code>update-alternatives</code> 命令之前，你需要先安装相应的软件包。软件包通常会包含多个可替代的命令，并使用 <code>update-alternatives</code> 命令为每个命令设置优先级，以便在需要的时候切换到适当的命令。</p>
<p>下面是一些 <code>update-alternatives</code> 常用的命令：</p>
<ul>
<li><p><code>-install</code>：用于将一个新的可替代命令添加到系统中。该命令需要指定命令的名称、关联的链接以及优先级。</p>
</li>
<li><p><code>-remove</code>：用于从系统中移除一个可替代命令。</p>
</li>
<li><p><code>-config</code>：用于交互式地选择当前的可替代命令。</p>
</li>
<li><p><code>-display</code>：用于显示已安装的可替代命令的列表。</p>
</li>
</ul>
<p>以下是一个使用 <code>update-alternatives</code> 命令的示例：</p>
<p>假设你希望在系统中使用 <code>java</code> 命令。首先，你需要安装一个支持 <code>java</code> 的软件包，如 OpenJDK。</p>
<pre><code class="lang-bash">sudo apt-get install openjdk-8-jdk
</code></pre>
<p>安装完成后，你需要使用 <code>update-alternatives</code> 命令为 <code>java</code> 命令设置优先级：</p>
<pre><code class="lang-bash">sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 100
</code></pre>
<p>其中 <code>/usr/bin/java</code> 是链接的位置，<code>java</code> 是替代命令的名称，<code>/usr/lib/jvm/java-8-openjdk-amd64/bin/java</code> 是要关联的可替代命令的路径，<code>100</code> 是该命令的优先级。</p>
<p>完成配置后，你可以使用 <code>--config</code> 命令来选择当前的可替代命令，并查看当前使用的命令：</p>
<pre><code class="lang-bash">sudo update-alternatives --config java
</code></pre>
<p>输出结果将列出所有可用的 <code>java</code> 命令，以及它们的优先级和路径。你需要键入关联到所选命令的数字，并按 Enter 键确认更改。</p>
]]></content:encoded></item><item><title><![CDATA[iptables端口转发]]></title><description><![CDATA[启动IP转发
通过sysctl可以开启ipv4的转发功能 (无需重启)：sysctl -w net.ipv4.ip_forward=1

或者echo 1 > /proc/sys/net/ipv4/ip_forward

清除natiptables -F -t nat

列出natiptables -L -t nat

转发本地端口iptables -t nat -A PREROUTING -p tcp --dport 8008 -j DNAT --to-destination
192.168....]]></description><link>https://blog.jvmkit.com/iptables</link><guid isPermaLink="true">https://blog.jvmkit.com/iptables</guid><category><![CDATA[Linux]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Wed, 14 Sep 2022 08:25:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1663143861845/Z5w5kXT9J.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul>
<li>启动IP转发</li>
<li>通过sysctl可以开启ipv4的转发功能 (无需重启)：<pre><code>sysctl <span class="hljs-operator">-</span>w net.ipv4.ip_forward=<span class="hljs-number">1</span>
</code></pre></li>
<li>或者<pre><code>echo <span class="hljs-number">1</span> <span class="hljs-operator">&gt;</span> <span class="hljs-operator">/</span>proc<span class="hljs-operator">/</span>sys<span class="hljs-operator">/</span>net<span class="hljs-operator">/</span>ipv4<span class="hljs-operator">/</span>ip_forward
</code></pre></li>
<li>清除nat<pre><code>iptables <span class="hljs-operator">-</span>F <span class="hljs-operator">-</span>t nat
</code></pre></li>
<li>列出nat<pre><code>iptables <span class="hljs-operator">-</span>L <span class="hljs-operator">-</span>t nat
</code></pre></li>
<li>转发本地端口<pre><code>iptables <span class="hljs-operator">-</span>t nat <span class="hljs-operator">-</span>A PREROUTING <span class="hljs-operator">-</span>p tcp <span class="hljs-operator">-</span><span class="hljs-operator">-</span>dport <span class="hljs-number">8008</span> <span class="hljs-operator">-</span>j DNAT <span class="hljs-operator">-</span><span class="hljs-operator">-</span>to<span class="hljs-operator">-</span>destination
<span class="hljs-number">192.168</span><span class="hljs-number">.2</span><span class="hljs-number">.1</span>:<span class="hljs-number">8001</span>
</code></pre></li>
<li>转发远程端口<pre><code>iptables <span class="hljs-operator">-</span>t nat <span class="hljs-operator">-</span>A PREROUTING <span class="hljs-operator">-</span>p tcp <span class="hljs-operator">-</span><span class="hljs-operator">-</span>dport <span class="hljs-number">5000</span> <span class="hljs-operator">-</span>j DNAT <span class="hljs-operator">-</span><span class="hljs-operator">-</span>to<span class="hljs-operator">-</span>destination <span class="hljs-number">192.168</span><span class="hljs-number">.2</span><span class="hljs-number">.246</span>:<span class="hljs-number">5000</span>
iptables <span class="hljs-operator">-</span>t nat <span class="hljs-operator">-</span>A POSTROUTING <span class="hljs-operator">-</span>p tcp <span class="hljs-operator">-</span>d <span class="hljs-number">192.168</span><span class="hljs-number">.2</span><span class="hljs-number">.246</span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span>dport <span class="hljs-number">5000</span> <span class="hljs-operator">-</span>j SNAT <span class="hljs-operator">-</span><span class="hljs-operator">-</span>to<span class="hljs-operator">-</span>source <span class="hljs-number">192.168</span><span class="hljs-number">.2</span><span class="hljs-number">.1</span>
</code></pre></li>
<li>放开端口<pre><code>iptables <span class="hljs-operator">-</span>A INPUT <span class="hljs-operator">-</span>p tcp <span class="hljs-operator">-</span><span class="hljs-operator">-</span>dport <span class="hljs-number">5000</span> <span class="hljs-operator">-</span>j ACCEPT
iptables <span class="hljs-operator">-</span>A OUTPUT <span class="hljs-operator">-</span>p tcp <span class="hljs-operator">-</span><span class="hljs-operator">-</span>sport <span class="hljs-number">5000</span> <span class="hljs-operator">-</span>j ACCEPT
</code></pre></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Pve设置硬盘直通]]></title><description><![CDATA[查看你现在的存储设备的序列号:ll /dev/disk/by-id

然后就能看到所有存储设备的序列号lrwxrwxrwx 1 root root  9  2月  6 11:47 ata-KINGSTON_SA400S37240G_XXXXX -> ../../sda

然后输入以下代码(请把硬盘序列号换成你硬盘的,100换成你LEDE的虚拟机ID)qm set 100 -sata1 /dev/disk/by-id/ata-KINGSTON_SA400S37240G_XXXXX

如果返回以下信...]]></description><link>https://blog.jvmkit.com/pve</link><guid isPermaLink="true">https://blog.jvmkit.com/pve</guid><category><![CDATA[Linux]]></category><category><![CDATA[shell]]></category><category><![CDATA[pve]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Mon, 20 Jun 2022 02:25:03 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1663289389006/vSu7OH7Ml.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ol>
<li>查看你现在的存储设备的序列号:<pre><code>ll <span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>disk<span class="hljs-operator">/</span>by<span class="hljs-operator">-</span>id
</code></pre></li>
<li>然后就能看到所有存储设备的序列号<pre><code><span class="hljs-attribute">lrwxrwxrwx</span> <span class="hljs-number">1</span> root root  <span class="hljs-number">9</span>  <span class="hljs-number">2</span>月  <span class="hljs-number">6</span> <span class="hljs-number">11</span>:<span class="hljs-number">47</span> ata-KINGSTON_SA<span class="hljs-number">400</span>S<span class="hljs-number">37240</span>G_XXXXX -&gt; ../../sda
</code></pre></li>
<li>然后输入以下代码(请把硬盘序列号换成你硬盘的,100换成你LEDE的虚拟机ID)<pre><code>qm set <span class="hljs-number">100</span> <span class="hljs-operator">-</span>sata1 <span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>disk<span class="hljs-operator">/</span>by<span class="hljs-operator">-</span>id<span class="hljs-operator">/</span>ata<span class="hljs-operator">-</span>KINGSTON_SA400S37240G_XXXXX
</code></pre></li>
<li>如果返回以下信息,说明已成功挂载<pre><code>update VM <span class="hljs-number">100</span>: <span class="hljs-operator">-</span>sata1 <span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>disk<span class="hljs-operator">/</span>by<span class="hljs-operator">-</span>id<span class="hljs-operator">/</span>ata<span class="hljs-operator">-</span>KINGSTON_SA400S37240G_XXXXX
</code></pre></li>
<li>然后可以进入PVE管理网页,查看是否真的挂载成功.如果看到LEDE虚拟机硬件设备里有这个,就说明成功.</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[SSHpass用法]]></title><description><![CDATA[shpass用处
当将ssh、scp等命令做成自动化脚本时，可能需要非交互式的登录过程，此时可以用sshpass。
sshpass 免输密码执行命令，安装

Ubuntu/Debian:apt-get install sshpass

Fedora/CentOS:yum install sshpass

Arch:pacman -S sshpass



选项有
 -p:跟明文密码；
 -f 跟明文密码文件；
 -e 通过设置密码变量SSHPASS

忽略RSA Key检查信息
第一次认证时，一...]]></description><link>https://blog.jvmkit.com/sshpass</link><guid isPermaLink="true">https://blog.jvmkit.com/sshpass</guid><category><![CDATA[Linux]]></category><category><![CDATA[ssh]]></category><category><![CDATA[shell]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Mon, 20 Jun 2022 02:13:17 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1655691135607/FpTeQPLZi.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-shpass">shpass用处</h3>
<p>当将ssh、scp等命令做成自动化脚本时，可能需要非交互式的登录过程，此时可以用sshpass。
sshpass 免输密码执行命令，安装</p>
<ul>
<li>Ubuntu/Debian:<pre><code>apt-<span class="hljs-keyword">get</span> install sshpass
</code></pre></li>
<li>Fedora/CentOS:<pre><code><span class="hljs-attribute">yum</span> install sshpass
</code></pre></li>
<li>Arch:<pre><code><span class="hljs-attribute">pacman</span> -S sshpass
</code></pre></li>
</ul>
<blockquote>
<p>选项有
 -p:跟明文密码；
 -f 跟明文密码文件；
 -e 通过设置密码变量SSHPASS</p>
</blockquote>
<h3 id="heading-rsa-key">忽略RSA Key检查信息</h3>
<p>第一次认证时，一般会有RSA key检查的提示：
可以使用 -o StrictHostKeychecking=no选项来忽略key检查信息。</p>
<pre><code>sshpass <span class="hljs-operator">-</span>e ssh root@<span class="hljs-number">192.168</span><span class="hljs-number">.0</span><span class="hljs-number">.123</span> <span class="hljs-operator">-</span>o StrictHostKeyChecking<span class="hljs-operator">=</span>no <span class="hljs-string">"$@"</span> <span class="hljs-number">2</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null
</code></pre><p><strong><em>或</em></strong></p>
<pre><code><span class="hljs-attribute">sshpass</span> -e ssh root@<span class="hljs-number">192.168.0.122</span> -o StrictHostKeyChecking=<span class="hljs-literal">no</span>
</code></pre><h3 id="heading-sshpass">sshpass支持从文件中导入密码或者从环境变量中导入密码</h3>
<p>使用举例：</p>
<p><strong><em>从文件读取密码</em></strong></p>
<pre><code><span class="hljs-attribute">echo</span> <span class="hljs-string">"password"</span> &gt; userpasswd
sshpass -f userpasswd ssh username<span class="hljs-variable">@x</span>.x.x.x
</code></pre><p><strong><em>从环境变量获取密码</em></strong></p>
<pre><code><span class="hljs-keyword">export</span> SSHPASS=<span class="hljs-string">"password"</span>
sshpass -e ssh username<span class="hljs-meta">@x</span>.x.x.x
</code></pre>]]></content:encoded></item><item><title><![CDATA[Intellij IDEA快捷键大全]]></title><description><![CDATA[Ctrl快捷键介绍



Ctrl + F在当前文件进行文本查找 （必备）

Ctrl + F在当前文件进行文本查找 （必备）

Ctrl + R在当前文件进行文本替换 （必备）

Ctrl + Z撤销 （必备）

Ctrl + Y删除光标所在行 或 删除选中的行 （必备）

Ctrl + X剪切光标所在行 或 剪切选择内容

Ctrl + C复制光标所在行 或 复制选择内容

Ctrl + D复制光标所在行 或 复制选择内容，并把复制内容插入光标位置下面 （必备）

Ctrl + W递进式选择...]]></description><link>https://blog.jvmkit.com/intellij-idea</link><guid isPermaLink="true">https://blog.jvmkit.com/intellij-idea</guid><category><![CDATA[Java]]></category><category><![CDATA[idea]]></category><dc:creator><![CDATA[攒一口袋星星]]></dc:creator><pubDate>Mon, 20 Jun 2022 01:49:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1655689716114/h40NtXZSQ.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="hn-table">
<table>
<thead>
<tr>
<td>Ctrl快捷键</td><td>介绍</td></tr>
</thead>
<tbody>
<tr>
<td>Ctrl + F</td><td>在当前文件进行文本查找 （必备）</td></tr>
<tr>
<td>Ctrl + F</td><td>在当前文件进行文本查找 （必备）</td></tr>
<tr>
<td>Ctrl + R</td><td>在当前文件进行文本替换 （必备）</td></tr>
<tr>
<td>Ctrl + Z</td><td>撤销 （必备）</td></tr>
<tr>
<td>Ctrl + Y</td><td>删除光标所在行 或 删除选中的行 （必备）</td></tr>
<tr>
<td>Ctrl + X</td><td>剪切光标所在行 或 剪切选择内容</td></tr>
<tr>
<td>Ctrl + C</td><td>复制光标所在行 或 复制选择内容</td></tr>
<tr>
<td>Ctrl + D</td><td>复制光标所在行 或 复制选择内容，并把复制内容插入光标位置下面 （必备）</td></tr>
<tr>
<td>Ctrl + W</td><td>递进式选择代码块。可选中光标所在的单词或段落，连续按会在原有选中的基础上再扩展选中范围 （必备）</td></tr>
<tr>
<td>Ctrl + E</td><td>显示最近打开的文件记录列表</td></tr>
<tr>
<td>Ctrl + N</td><td>根据输入的 类名 查找类文件</td></tr>
<tr>
<td>Ctrl + G</td><td>在当前文件跳转到指定行处</td></tr>
<tr>
<td>Ctrl + J</td><td>插入自定义动态代码模板</td></tr>
<tr>
<td>Ctrl + P</td><td>方法参数提示显示</td></tr>
<tr>
<td>Ctrl + Q</td><td>光标所在的变量 / 类名 / 方法名等上面（也可以在提示补充的时候按），显示文档内容</td></tr>
<tr>
<td>Ctrl + U</td><td>前往当前光标所在的方法的父类的方法 / 接口定义</td></tr>
<tr>
<td>Ctrl + B</td><td>进入光标所在的方法/变量的接口或是定义出，等效于 Ctrl + 左键单击</td></tr>
<tr>
<td>Ctrl + K</td><td>版本控制提交项目，需要此项目有加入到版本控制才可用</td></tr>
<tr>
<td>Ctrl + T</td><td>版本控制更新项目，需要此项目有加入到版本控制才可用</td></tr>
<tr>
<td>Ctrl + H</td><td>显示当前类的层次结构</td></tr>
<tr>
<td>Ctrl + O</td><td>选择可重写的方法</td></tr>
<tr>
<td>Ctrl + I</td><td>选择可继承的方法</td></tr>
<tr>
<td>Ctrl + +</td><td>展开代码</td></tr>
<tr>
<td>Ctrl + -</td><td>折叠代码</td></tr>
<tr>
<td>Ctrl + /</td><td>注释光标所在行代码，会根据当前不同文件类型使用不同的注释符号 （必备）</td></tr>
<tr>
<td>Ctrl + [</td><td>移动光标到当前所在代码的花括号开始位置</td></tr>
<tr>
<td>Ctrl + ]</td><td>移动光标到当前所在代码的花括号结束位置</td></tr>
<tr>
<td>Ctrl + F1</td><td>在光标所在的错误代码出显示错误信息</td></tr>
<tr>
<td>Ctrl + F3</td><td>调转到所选中的词的下一个引用位置</td></tr>
<tr>
<td>Ctrl + F4</td><td>关闭当前编辑文件</td></tr>
<tr>
<td>Ctrl + F8</td><td>在 Debug 模式下，设置光标当前行为断点，如果当前已经是断点则去掉断点</td></tr>
<tr>
<td>Ctrl + F9</td><td>执行 Make Project 操作</td></tr>
<tr>
<td>Ctrl + F11</td><td>选中文件 / 文件夹，使用助记符设定 / 取消书签</td></tr>
<tr>
<td>Ctrl + F12</td><td>弹出当前文件结构层，可以在弹出的层上直接输入，进行筛选</td></tr>
<tr>
<td>Ctrl + Tab</td><td>编辑窗口切换，如果在切换的过程又加按上delete，则是关闭对应选中的窗口</td></tr>
<tr>
<td>Ctrl + Enter</td><td>智能分隔行</td></tr>
<tr>
<td>Ctrl + End</td><td>跳到文件尾</td></tr>
<tr>
<td>Ctrl + Home</td><td>跳到文件头</td></tr>
<tr>
<td>Ctrl + Space</td><td>基础代码补全，默认在 Windows 系统上被输入法占用，需要进行修改，建议修改为 Ctrl + 逗号 （必备）</td></tr>
<tr>
<td>Ctrl + Delete</td><td>删除光标后面的单词或是中文句</td></tr>
<tr>
<td>Ctrl + BackSpace</td><td>删除光标前面的单词或是中文句</td></tr>
<tr>
<td>Ctrl + 1,2,3...9</td><td>定位到对应数值的书签位置</td></tr>
<tr>
<td>Ctrl + 左键单击</td><td>在打开的文件标题上，弹出该文件路径</td></tr>
<tr>
<td>Ctrl + 光标定位</td><td>按 Ctrl 不要松开，会显示光标所在的类信息摘要</td></tr>
<tr>
<td>Ctrl + 左方向键</td><td>光标跳转到当前单词 / 中文句的左侧开头位置</td></tr>
<tr>
<td>Ctrl + 右方向键</td><td>光标跳转到当前单词 / 中文句的右侧开头位置</td></tr>
<tr>
<td>Ctrl + 前方向键</td><td>等效于鼠标滚轮向前效果</td></tr>
<tr>
<td>Ctrl + 后方向键</td><td>等效于鼠标滚轮向后效果</td></tr>
</tbody>
</table>
</div><div class="hn-table">
<table>
<thead>
<tr>
<td>Alt快捷键</td><td>介绍</td></tr>
</thead>
<tbody>
<tr>
<td>Alt + `</td><td>显示版本控制常用操作菜单弹出层</td></tr>
<tr>
<td>Alt + Q</td><td>弹出一个提示，显示当前类的声明 / 上下文信息</td></tr>
<tr>
<td>Alt + F1</td><td>显示当前文件选择目标弹出层，弹出层中有很多目标可以进行选择</td></tr>
<tr>
<td>Alt + F2</td><td>对于前面页面，显示各类浏览器打开目标选择弹出层</td></tr>
<tr>
<td>Alt + F3</td><td>选中文本，逐个往下查找相同文本，并高亮显示</td></tr>
<tr>
<td>Alt + F7</td><td>查找光标所在的方法 / 变量 / 类被调用的地方</td></tr>
<tr>
<td>Alt + F8</td><td>在 Debug 的状态下，选中对象，弹出可输入计算表达式调试框，查看该输入内容的调试结果</td></tr>
<tr>
<td>Alt + Home</td><td>定位 / 显示到当前文件的 Navigation Bar</td></tr>
<tr>
<td>Alt + Enter</td><td>IntelliJ IDEA 根据光标所在问题，提供快速修复选择，光标放在的位置不同提示的结果也不同 （必备）</td></tr>
<tr>
<td>Alt + Insert</td><td>代码自动生成，如生成对象的 set / get 方法，构造函数，toString() 等</td></tr>
<tr>
<td>Alt + 左方向键</td><td>按左方向切换当前已打开的文件视图</td></tr>
<tr>
<td>Alt + 右方向键</td><td>按右方向切换当前已打开的文件视图</td></tr>
<tr>
<td>Alt + 前方向键</td><td>当前光标跳转到当前文件的前一个方法名位置</td></tr>
<tr>
<td>Alt + 后方向键</td><td>当前光标跳转到当前文件的后一个方法名位置</td></tr>
<tr>
<td>Alt + 1,2,3...9</td><td>显示对应数值的选项卡，其中 1 是 Project 用得最多</td></tr>
</tbody>
</table>
</div><div class="hn-table">
<table>
<thead>
<tr>
<td>Shift快捷键</td><td>介绍</td></tr>
</thead>
<tbody>
<tr>
<td>Shift + F1</td><td>如果有外部文档可以连接外部文档</td></tr>
<tr>
<td>Shift + F2</td><td>跳转到上一个高亮错误 或 警告位置</td></tr>
<tr>
<td>Shift + F3</td><td>在查找模式下，查找匹配上一个</td></tr>
<tr>
<td>Shift + F4</td><td>对当前打开的文件，使用新Windows窗口打开，旧窗口保留</td></tr>
<tr>
<td>Shift + F6</td><td>对文件 / 文件夹 重命名</td></tr>
<tr>
<td>Shift + F7</td><td>在 Debug 模式下，智能步入。断点所在行上有多个方法调用，会弹出进入哪个方法</td></tr>
<tr>
<td>Shift + F8</td><td>在 Debug 模式下，跳出，表现出来的效果跟 F9 一样</td></tr>
<tr>
<td>Shift + F9</td><td>等效于点击工具栏的 Debug 按钮</td></tr>
<tr>
<td>Shift + F10</td><td>等效于点击工具栏的 Run 按钮</td></tr>
<tr>
<td>Shift + F11</td><td>弹出书签显示层</td></tr>
<tr>
<td>Shift + Tab</td><td>取消缩进</td></tr>
<tr>
<td>Shift + ESC</td><td>隐藏当前 或 最后一个激活的工具窗口</td></tr>
<tr>
<td>Shift + End</td><td>选中光标到当前行尾位置</td></tr>
<tr>
<td>Shift + Home</td><td>选中光标到当前行头位置</td></tr>
<tr>
<td>Shift + Enter</td><td>开始新一行。光标所在行下空出一行，光标定位到新行位置</td></tr>
<tr>
<td>Shift + 左键单击</td><td>在打开的文件名上按此快捷键，可以关闭当前打开文件</td></tr>
<tr>
<td>Shift + 滚轮前后滚动</td><td>当前文件的横向滚动轴滚动</td></tr>
<tr>
<td>Ctrl + Alt快捷键</td><td>介绍</td></tr>
<tr>
<td>Ctrl + Alt + L</td><td>格式化代码，可以对当前文件和整个包目录使用 （必备）</td></tr>
<tr>
<td>Ctrl + Alt + O</td><td>优化导入的类，可以对当前文件和整个包目录使用 （必备）</td></tr>
<tr>
<td>Ctrl + Alt + I</td><td>光标所在行 或 选中部分进行自动代码缩进，有点类似格式化</td></tr>
<tr>
<td>Ctrl + Alt + T</td><td>对选中的代码弹出环绕选项弹出层</td></tr>
<tr>
<td>Ctrl + Alt + J</td><td>弹出模板选择窗口，讲选定的代码加入动态模板中</td></tr>
<tr>
<td>Ctrl + Alt + H</td><td>调用层次</td></tr>
<tr>
<td>Ctrl + Alt + B</td><td>在某个调用的方法名上使用会跳到具体的实现处，可以跳过接口</td></tr>
<tr>
<td>Ctrl + Alt + V</td><td>快速引进变量</td></tr>
<tr>
<td>Ctrl + Alt + Y</td><td>同步、刷新</td></tr>
<tr>
<td>Ctrl + Alt + S</td><td>打开 IntelliJ IDEA 系统设置</td></tr>
<tr>
<td>Ctrl + Alt + F7</td><td>显示使用的地方。寻找被该类或是变量被调用的地方，用弹出框的方式找出来</td></tr>
<tr>
<td>Ctrl + Alt + F11</td><td>切换全屏模式</td></tr>
<tr>
<td>Ctrl + Alt + Enter</td><td>光标所在行上空出一行，光标定位到新行</td></tr>
<tr>
<td>Ctrl + Alt + Home</td><td>弹出跟当前文件有关联的文件弹出层</td></tr>
<tr>
<td>Ctrl + Alt + Space</td><td>类名自动完成</td></tr>
<tr>
<td>Ctrl + Alt + 左方向键</td><td>退回到上一个操作的地方 （必备）（注意与其他软件快捷键冲突）</td></tr>
<tr>
<td>Ctrl + Alt + 右方向键</td><td>前进到上一个操作的地方 （必备）（注意与其他软件快捷键冲突）</td></tr>
<tr>
<td>Ctrl + Alt + 前方向键</td><td>在查找模式下，跳到上个查找的文件</td></tr>
<tr>
<td>Ctrl + Alt + 后方向键</td><td>在查找模式下，跳到下个查找的文件</td></tr>
</tbody>
</table>
</div><div class="hn-table">
<table>
<thead>
<tr>
<td>Ctrl + Shift快捷键</td><td>介绍</td></tr>
</thead>
<tbody>
<tr>
<td>Ctrl + Shift + F</td><td>根据输入内容查找整个项目 或 指定目录内文件 （必备）</td></tr>
<tr>
<td>Ctrl + Shift + R</td><td>根据输入内容替换对应内容，范围为整个项目 或 指定目录内文件 （必备）</td></tr>
<tr>
<td>Ctrl + Shift + J</td><td>自动将下一行合并到当前行末尾 （必备）</td></tr>
<tr>
<td>Ctrl + Shift + Z</td><td>取消撤销 （必备）</td></tr>
<tr>
<td>Ctrl + Shift + W</td><td>递进式取消选择代码块。可选中光标所在的单词或段落，连续按会在原有选中的基础上再扩展取消选中范围 （必备）</td></tr>
<tr>
<td>Ctrl + Shift + N</td><td>通过文件名定位 / 打开文件 / 目录，打开目录需要在输入的内容后面多加一个正斜杠 （必备）</td></tr>
<tr>
<td>Ctrl + Shift + U</td><td>对选中的代码进行大 / 小写轮流转换 （必备）</td></tr>
<tr>
<td>Ctrl + Shift + T</td><td>对当前类生成单元测试类，如果已经存在的单元测试类则可以进行选择</td></tr>
<tr>
<td>Ctrl + Shift + C</td><td>复制当前文件磁盘路径到剪贴板</td></tr>
<tr>
<td>Ctrl + Shift + V</td><td>弹出缓存的最近拷贝的内容管理器弹出层</td></tr>
<tr>
<td>Ctrl + Shift + E</td><td>显示最近修改的文件列表的弹出层</td></tr>
<tr>
<td>Ctrl + Shift + H</td><td>显示方法层次结构</td></tr>
<tr>
<td>Ctrl + Shift + B</td><td>跳转到类型声明处</td></tr>
<tr>
<td>Ctrl + Shift + I</td><td>快速查看光标所在的方法 或 类的定义</td></tr>
<tr>
<td>Ctrl + Shift + A</td><td>查找动作 / 设置</td></tr>
<tr>
<td>Ctrl + Shift + /</td><td>代码块注释 （必备）</td></tr>
<tr>
<td>Ctrl + Shift + [</td><td>选中从光标所在位置到它的顶部中括号位置</td></tr>
<tr>
<td>Ctrl + Shift + ]</td><td>选中从光标所在位置到它的底部中括号位置</td></tr>
<tr>
<td>Ctrl + Shift + +</td><td>展开所有代码</td></tr>
<tr>
<td>Ctrl + Shift + -</td><td>折叠所有代码</td></tr>
<tr>
<td>Ctrl + Shift + F7</td><td>高亮显示所有该选中文本，按Esc高亮消失</td></tr>
<tr>
<td>Ctrl + Shift + F8</td><td>在 Debug 模式下，指定断点进入条件</td></tr>
<tr>
<td>Ctrl + Shift + F9</td><td>编译选中的文件 / 包 / Module</td></tr>
<tr>
<td>Ctrl + Shift + F12</td><td>编辑器最大化</td></tr>
<tr>
<td>Ctrl + Shift + Space</td><td>智能代码提示</td></tr>
<tr>
<td>Ctrl + Shift + Enter</td><td>自动结束代码，行末自动添加分号 （必备）</td></tr>
<tr>
<td>Ctrl + Shift + Backspace</td><td>退回到上次修改的地方</td></tr>
<tr>
<td>Ctrl + Shift + 1,2,3...9</td><td>快速添加指定数值的书签</td></tr>
<tr>
<td>Ctrl + Shift + 左方向键</td><td>在代码文件上，光标跳转到当前单词 / 中文句的左侧开头位置，同时选中该单词 / 中文句</td></tr>
<tr>
<td>Ctrl + Shift + 右方向键</td><td>在代码文件上，光标跳转到当前单词 / 中文句的右侧开头位置，同时选中该单词 / 中文句</td></tr>
<tr>
<td>Ctrl + Shift + 左方向键</td><td>在光标焦点是在工具选项卡上，缩小选项卡区域</td></tr>
<tr>
<td>Ctrl + Shift + 右方向键</td><td>在光标焦点是在工具选项卡上，扩大选项卡区域</td></tr>
<tr>
<td>Ctrl + Shift + 前方向键</td><td>光标放在方法名上，将方法移动到上一个方法前面，调整方法排序</td></tr>
<tr>
<td>Ctrl + Shift + 后方向键</td><td>光标放在方法名上，将方法移动到下一个方法前面，调整方法排序</td></tr>
</tbody>
</table>
</div><div class="hn-table">
<table>
<thead>
<tr>
<td>Alt + Shift快捷键</td><td>介绍</td></tr>
</thead>
<tbody>
<tr>
<td>Alt + Shift + N</td><td>选择 / 添加 task</td></tr>
<tr>
<td>Alt + Shift + F</td><td>显示添加到收藏夹弹出层</td></tr>
<tr>
<td>Alt + Shift + C</td><td>查看最近操作项目的变化情况列表</td></tr>
<tr>
<td>Alt + Shift + F</td><td>添加到收藏夹</td></tr>
<tr>
<td>Alt + Shift + I</td><td>查看项目当前文件</td></tr>
<tr>
<td>Alt + Shift + F7</td><td>在 Debug 模式下，下一步，进入当前方法体内，如果方法体还有方法，则会进入该内嵌的方法中，依此循环进入</td></tr>
<tr>
<td>Alt + Shift + F9</td><td>弹出 Debug 的可选择菜单</td></tr>
<tr>
<td>Alt + Shift + F10</td><td>弹出 Run 的可选择菜单</td></tr>
<tr>
<td>Alt + Shift + 左键双击</td><td>选择被双击的单词 / 中文句，按住不放，可以同时选择其他单词 / 中文句</td></tr>
<tr>
<td>Alt + Shift + 前方向键</td><td>移动光标所在行向上移动</td></tr>
<tr>
<td>Alt + Shift + 后方向键</td><td>移动光标所在行向下移动</td></tr>
<tr>
<td>Ctrl + Shift + Alt快捷键</td><td>介绍</td></tr>
<tr>
<td>Ctrl + Shift + Alt + V</td><td>无格式黏贴</td></tr>
<tr>
<td>Ctrl + Shift + Alt + N</td><td>前往指定的变量 / 方法</td></tr>
<tr>
<td>Ctrl + Shift + Alt + S</td><td>打开当前项目设置</td></tr>
<tr>
<td>Ctrl + Shift + Alt + C</td><td>复制参考信息</td></tr>
</tbody>
</table>
</div><div class="hn-table">
<table>
<thead>
<tr>
<td>其他快捷键</td><td>介绍</td></tr>
</thead>
<tbody>
<tr>
<td>F2</td><td>跳转到下一个高亮错误 或 警告位置 （必备）</td></tr>
<tr>
<td>F3</td><td>在查找模式下，定位到下一个匹配处</td></tr>
<tr>
<td>F4</td><td>编辑源</td></tr>
<tr>
<td>F7</td><td>在 Debug 模式下，进入下一步，如果当前行断点是一个方法，则进入当前方法体内，如果该方法体还有方法，则不会进入该内嵌的方法中</td></tr>
<tr>
<td>F8</td><td>在 Debug 模式下，进入下一步，如果当前行断点是一个方法，则不进入当前方法体内</td></tr>
<tr>
<td>F9</td><td>在 Debug 模式下，恢复程序运行，但是如果该断点下面代码还有断点则停在下一个断点上</td></tr>
<tr>
<td>F11</td><td>添加书签</td></tr>
<tr>
<td>F12</td><td>回到前一个工具窗口</td></tr>
<tr>
<td>Tab</td><td>缩进</td></tr>
<tr>
<td>ESC</td><td>从工具窗口进入代码文件窗口</td></tr>
<tr>
<td>连按两次Shift</td><td>弹出 Search Everywh</td></tr>
</tbody>
</table>
</div>]]></content:encoded></item></channel></rss>