<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Note on Hxysayhi</title>
    <link>https://hxysayhi.github.io/tags/note/</link>
    <description>Recent content in Note on Hxysayhi</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 19 Feb 2022 11:49:09 +0000</lastBuildDate>
    <atom:link href="https://hxysayhi.github.io/tags/note/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>学海拾贝-20220214-20220219</title>
      <link>https://hxysayhi.github.io/posts/1551f6df/</link>
      <pubDate>Sat, 19 Feb 2022 11:49:09 +0000</pubDate>
      <guid>https://hxysayhi.github.io/posts/1551f6df/</guid>
      <description>&lt;h1 id=&#34;note-20220214-20220219&#34;&gt;note-20220214-20220219&lt;/h1&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;mac 输入法异常，出现两个输入候选框&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;kubectl&lt;/code&gt; 查看指定pod的最新n行日志&lt;/li&gt;&#xA;&lt;li&gt;一个nginx配置实验网站&lt;/li&gt;&#xA;&lt;li&gt;base64 编码后字符串长度变化&lt;/li&gt;&#xA;&lt;li&gt;version 输出内容通过stderr 输出&lt;/li&gt;&#xA;&lt;li&gt;强大的代码阅读工具source insight&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;mac-输入法异常出现两个输入候选框&#34;&gt;mac 输入法异常，出现两个输入候选框&lt;/h2&gt;&#xA;&lt;p&gt;杀掉进程，然后重启进程啥的都不行，在&lt;a href=&#34;https://www.v2ex.com/t/526071&#34;&gt;v2ex&lt;/a&gt; 找到问题原因和&lt;strong&gt;解决方案&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;原因：&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;出现这个问题是因为输入文字时 launchpad 同步输入了搜索框，打开 launchpad 会发现搜索框里有一样的文字。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;解决：&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;打开 terminal，输入  &lt;code&gt;killall Dock&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;重启所有的 Dock 和 launchpad 即可解决&lt;/p&gt;&#xA;&lt;p&gt;亲测，在 terminal 输入 &lt;code&gt;killall Dock&lt;/code&gt; 后，问题得到解决。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;查看指定pod的最新n行日志&#34;&gt;查看指定pod的最新n行日志&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://stackoverflow.com/questions/51835066/tailing-few-lines-from-huge-logs-of-kubectl-logs-f&#34;&gt;Tailing few lines from huge logs of kubectl logs -f&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Display only the most recent 20 lines of output in pod nginx&#xA;kubectl logs --tail=20 nginx&#xA;&#xA;# Show all logs from pod nginx written in the last hour&#xA;kubectl logs --since=1h nginx&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;一个nginx配置实验网站&#34;&gt;一个nginx配置实验网站&lt;/h2&gt;&#xA;&lt;p&gt;可以在网页上填写 nginx 配置文件，然后在线启动一个 nginx 实例。接着，你输入各种 curl 命令，与这个实例互动。&lt;/p&gt;</description>
    </item>
    <item>
      <title>学海拾贝20220211</title>
      <link>https://hxysayhi.github.io/posts/7af892d2/</link>
      <pubDate>Mon, 14 Feb 2022 09:39:53 +0000</pubDate>
      <guid>https://hxysayhi.github.io/posts/7af892d2/</guid>
      <description>&lt;h1 id=&#34;20220124-20220214&#34;&gt;20220124-20220214&lt;/h1&gt;&#xA;&lt;h2 id=&#34;问题目录&#34;&gt;问题目录：&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;shell script 中echo 变量时，换行丢失问题&lt;/li&gt;&#xA;&lt;li&gt;vim 中粘贴代码，缩进错误&lt;/li&gt;&#xA;&lt;li&gt;linux 文件拷贝，保留时间属性&lt;/li&gt;&#xA;&lt;li&gt;umask 的作用&lt;/li&gt;&#xA;&lt;li&gt;dlv 进行golang 调试传参数问题&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;shell-script-中echo-变量时换行丢失问题&#34;&gt;shell script 中echo 变量时，换行丢失问题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;问题描述&#34;&gt;问题描述&lt;/h3&gt;&#xA;&lt;p&gt;在shell script中，将命令执行的结果复制给一个变量，供后续使用，命令执行的结果是多行输出，但是在后续对变量使用时，通过echo 输出变量时，没有换行。例如：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TEST&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;ls -l /&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;TEST&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;ls -l /&lt;/code&gt; 输出结果为：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;total &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxrwxr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;40&lt;/span&gt; root  admin  &lt;span style=&#34;color:#ae81ff&#34;&gt;1280&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;25&lt;/span&gt; 09:29 Applications&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;67&lt;/span&gt; root  wheel  &lt;span style=&#34;color:#ae81ff&#34;&gt;2144&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;23&lt;/span&gt; 15:58 Library&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x@  &lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt; root  wheel   &lt;span style=&#34;color:#ae81ff&#34;&gt;288&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 07:39 System&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x   &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; root  admin   &lt;span style=&#34;color:#ae81ff&#34;&gt;160&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 07:39 Users&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x   &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; root  wheel    &lt;span style=&#34;color:#ae81ff&#34;&gt;96&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;25&lt;/span&gt; 11:35 Volumes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x@ &lt;span style=&#34;color:#ae81ff&#34;&gt;38&lt;/span&gt; root  wheel  &lt;span style=&#34;color:#ae81ff&#34;&gt;1216&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 07:39 bin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x   &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; root  wheel    &lt;span style=&#34;color:#ae81ff&#34;&gt;64&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt; 08:32 cores&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dr-xr-xr-x   &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt; root  wheel  &lt;span style=&#34;color:#ae81ff&#34;&gt;4762&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt; 21:10 dev&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;lrwxr-xr-x@  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; root  wheel    &lt;span style=&#34;color:#ae81ff&#34;&gt;11&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 07:39 etc -&amp;gt; private/etc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;lrwxr-xr-x   &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; root  wheel    &lt;span style=&#34;color:#ae81ff&#34;&gt;25&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt; 21:12 home -&amp;gt; /System/Volumes/Data/home&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x   &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; root  wheel    &lt;span style=&#34;color:#ae81ff&#34;&gt;96&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;18&lt;/span&gt; 12:27 opt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x   &lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt; root  wheel   &lt;span style=&#34;color:#ae81ff&#34;&gt;192&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 07:39 private&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x@ &lt;span style=&#34;color:#ae81ff&#34;&gt;65&lt;/span&gt; root  wheel  &lt;span style=&#34;color:#ae81ff&#34;&gt;2080&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 07:39 sbin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;lrwxr-xr-x@  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; root  wheel    &lt;span style=&#34;color:#ae81ff&#34;&gt;11&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 07:39 tmp -&amp;gt; private/tmp&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x@ &lt;span style=&#34;color:#ae81ff&#34;&gt;11&lt;/span&gt; root  wheel   &lt;span style=&#34;color:#ae81ff&#34;&gt;352&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 07:39 usr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;lrwxr-xr-x@  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; root  wheel    &lt;span style=&#34;color:#ae81ff&#34;&gt;11&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 07:39 var -&amp;gt; private/var&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;赋值到变量再 &lt;code&gt;echo&lt;/code&gt; 得到结果：&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何在nginx创建临时重定向和永久重定向</title>
      <link>https://hxysayhi.github.io/posts/36358949/</link>
      <pubDate>Thu, 03 Feb 2022 23:38:50 +0000</pubDate>
      <guid>https://hxysayhi.github.io/posts/36358949/</guid>
      <description>&lt;h3 id=&#34;重定向的概念&#34;&gt;重定向的概念&lt;/h3&gt;&#xA;&lt;p&gt;http重定向是将一个域名或者地址重新指向另一个域名或地址的方式。重定向的方式有多种，每一种对客户端而言都有些不同之处。其中两种最常见的重定向方式是临时重定向和永久重定向。&lt;/p&gt;&#xA;&lt;p&gt;临时重定向的返回码是 302。 临时重定向是用于一个url暂时需要通过一个临时站点进行服务的场景。当你的网站需要进行临时维护时，你可能就会希望在你进行维护期间，将访问重定向到另一个临时页码，在页面中提供临时服务或者通知用户网站正在进行维护，很快会恢复服务。&lt;/p&gt;&#xA;&lt;p&gt;永久重定向的返回码是 301。这个返回码希望告诉浏览器，应该放弃访问当前的url，并不再尝试访问当前URL。这种方式适用于当你的站点进行了永久性的迁移的情况，比如进行了域名更换等。&lt;/p&gt;&#xA;&lt;p&gt;你可以通过在nginx的配置中向server 配置块中添加如下内容来创建一个临时重定向：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;rewrite^/oldlocation$http://www.newdomain.com/newlocation redirect;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;类似地，可以添加如下内容来创建一个永久重定向：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;rewrite^/oldlocation$http://www.newdomain.com/newlocation permanent;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;就下来将会对nginx 中每种类型的重定向进行更加深入的解释，以及给出一些特别案例的用法。(待更新。。。。。)&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;ref： &lt;a href=&#34;https://www.digitalocean.com/community/tutorials/how-to-create-temporary-and-permanent-redirects-with-nginx&#34;&gt;How To Create Temporary and Permanent Redirects with Nginx&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>containerd导入本地镜像的一个小坑</title>
      <link>https://hxysayhi.github.io/posts/0e8b92e6/</link>
      <pubDate>Wed, 26 Jan 2022 23:31:24 +0000</pubDate>
      <guid>https://hxysayhi.github.io/posts/0e8b92e6/</guid>
      <description>&lt;p&gt;containerd 命令行工具为 ctr&lt;/p&gt;&#xA;&lt;p&gt;本地镜像导入命令：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ctr image import &amp;lt;path/to/image/file&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注意：当tar包没有tag信息时，导入之后，无报错，errno 为0，但是 通过 &lt;code&gt;ctr images ls&lt;/code&gt; 查看却没有相关的镜像。这种情况，需要添加 &lt;code&gt;--digests=true&lt;/code&gt;  来导入：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ctr image import --digests&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;true &amp;lt;path/to/images/file&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>jekyll静态blog部署 checklist</title>
      <link>https://hxysayhi.github.io/posts/824d93f1/</link>
      <pubDate>Sun, 23 Jan 2022 12:33:55 +0000</pubDate>
      <guid>https://hxysayhi.github.io/posts/824d93f1/</guid>
      <description>&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;安装jekyll&lt;/p&gt;&#xA;&lt;p&gt;1.1 安装ruby&lt;/p&gt;&#xA;&lt;p&gt;为了避免版本冲突问题，使用rbenv进行安装（以ubuntu为例，参考&lt;a href=&#34;https://gorails.com/setup/ubuntu/18.04&#34;&gt;https://gorails.com/setup/ubuntu/18.04&lt;/a&gt;）&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;安装rbenv&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/rbenv/rbenv.git ~/.rbenv&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;export PATH=&amp;#34;$HOME/.rbenv/bin:$PATH&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;eval &amp;#34;$(rbenv init -)&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exec $SHELL&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;export PATH=&amp;#34;$HOME/.rbenv/plugins/ruby-build/bin:$PATH&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exec $SHELL&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;安装ruby&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rbenv install 3.0.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rbenv global 3.0.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;检查安装是否符合预期&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ruby -v&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;安装 Bundler&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gem install bundler&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;1.2 安装jekyll&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gem install jekyll bundler&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;创建blog project&lt;/p&gt;&#xA;&lt;p&gt;方案一： 安装好ruby后，安装jekyll，并创建blog project：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gem install bundler jekyll&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jekyll new myblog&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;方案二：直接选择自己喜欢的主题，从github将项目克隆到本地&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
