mContext.github.io/search.xml
2023-08-03 09:34:46 +00:00

425 lines
115 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>GoogleChrome多开独立缓存</title>
<link href="/20200814.html"/>
<url>/20200814.html</url>
<content type="html"><![CDATA[<h3 id="新建快捷方式-chrome-exe-后面加参数-user-data-dir-quot-D-自定义文件夹-quot"><a href="#新建快捷方式-chrome-exe-后面加参数-user-data-dir-quot-D-自定义文件夹-quot" class="headerlink" title="新建快捷方式 chrome.exe 后面加参数 --user-data-dir=&quot;D:\自定义文件夹&quot;"></a>新建快捷方式 chrome.exe 后面加参数 <code>--user-data-dir=&quot;D:\自定义文件夹&quot;</code></h3><a id="more"></a><p>例如:</p><figure class="highlight taggerscript"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">"C:<span class="symbol">\P</span>rogram Files (x86)<span class="symbol">\G</span>oogle<span class="symbol">\C</span>hrome<span class="symbol">\A</span>pplication<span class="symbol">\c</span>hrome.exe" --user-data-dir="F:<span class="symbol">\\</span>ChromeX"</span></pre></td></tr></table></figure><h3 id="PS-Google-Chrome自定义路径、缓存、数据文件夹"><a href="#PS-Google-Chrome自定义路径、缓存、数据文件夹" class="headerlink" title="PS:Google Chrome自定义路径、缓存、数据文件夹"></a>PS:Google Chrome自定义路径、缓存、数据文件夹</h3><figure class="highlight jboss-cli"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="params">--user-data-dir</span> <span class="string">//</span>用户数据目录</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"><span class="params">--disk-cache-size</span> <span class="string">//</span>缓存大小(自己定义)</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"><span class="params">--disk-cache-dir</span> <span class="string">//</span>上网缓存目录</span></pre></td></tr></table></figure><p><a href="https://www.cnblogs.com/RigorosLee/archive/2011/02/12/1952170.html" target="_blank" rel="noopener">参考</a></p>]]></content>
<tags>
<tag> Chrome </tag>
<tag> 多开 </tag>
</tags>
</entry>
<entry>
<title>Excel使用问题记录</title>
<link href="/20200528.html"/>
<url>/20200528.html</url>
<content type="html"><![CDATA[<h2 id="Word中把文字设置为标题却不改变文字的属性"><a href="#Word中把文字设置为标题却不改变文字的属性" class="headerlink" title="Word中把文字设置为标题却不改变文字的属性"></a>Word中把文字设置为标题却不改变文字的属性</h2><p>视图中选“大纲”,在大纲视图中,将该段文字选定,设为一级标题。</p><a id="more"></a><p><a href="https://zhidao.baidu.com/question/2267251177757196628.html" target="_blank" rel="noopener">来源百度</a></p><h2 id="Excel每次打开文件都会出现一个空白sheet1文件的一个解决方法"><a href="#Excel每次打开文件都会出现一个空白sheet1文件的一个解决方法" class="headerlink" title="Excel每次打开文件都会出现一个空白sheet1文件的一个解决方法"></a>Excel每次打开文件都会出现一个空白sheet1文件的一个解决方法</h2><h3 id="问题"><a href="#问题" class="headerlink" title="问题"></a>问题</h3><p>最近打开Excel文件或者只启动Excel都会出现一个空白的未保存的sheet1.xls文件在网上搜了一波终于找到原因。最终原因就是因为电脑装了MySQL导致的。。。</p><h3 id="解决方法"><a href="#解决方法" class="headerlink" title="解决方法"></a>解决方法</h3><p>打开Excel在文件 - 选项 - 加载项 - 管理处选择COM加载项点击转到… 取消勾选MySQL For Excel即可。</p><p><a href="https://blog.csdn.net/feng964497595/article/details/79638474" target="_blank" rel="noopener">来源CSDN</a></p>]]></content>
<tags>
<tag> Word </tag>
<tag> Excel </tag>
<tag> Office </tag>
</tags>
</entry>
<entry>
<title>win10误删系统变量path恢复方法</title>
<link href="/20200311.html"/>
<url>/20200311.html</url>
<content type="html"><![CDATA[<p> 折腾环境变量的时候把path直接给删掉了<br> <strong>注意:千万千万不要重启电脑.</strong><br> <a id="more"></a></p><h3 id="解决方法"><a href="#解决方法" class="headerlink" title="解决方法:"></a>解决方法:</h3><ol><li>Win+R打开运行输入regedit进入注册表。</li><li>定位至<br>HYEK_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment</li><li>修改Path</li><li>右键此电脑-属性-高级系统设置-高级-环境变量</li><li>在系统变量里找到path编辑或编辑文本粘贴</li></ol><h2 id="如果注册表里也没了…"><a href="#如果注册表里也没了…" class="headerlink" title="如果注册表里也没了…"></a>如果注册表里也没了…</h2><p>以下是win10默认的环境变量设置先直接复制过去</p><ol><li><figure class="highlight taggerscript"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="variable">%SystemRoot%</span><span class="symbol">\s</span>ystem32;<span class="variable">%SystemRoot%</span>;<span class="variable">%SystemRoot%</span><span class="symbol">\S</span>ystem32<span class="symbol">\W</span>bem;<span class="variable">%SYSTEMROOT%</span><span class="symbol">\S</span>ystem32<span class="symbol">\W</span>indowsPowerShell<span class="symbol">\v</span>1.0;</span></pre></td></tr></table></figure></li><li><figure class="highlight taggerscript"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">C:<span class="symbol">\P</span>rogram Files (x86)<span class="symbol">\C</span>ommon Files<span class="symbol">\O</span>racle<span class="symbol">\J</span>ava<span class="symbol">\j</span>avapath;C:<span class="symbol">\P</span>rogram Files (x86)<span class="symbol">\I</span>ntel<span class="symbol">\I</span>ntel® Management Engine Components<span class="symbol">\i</span>CLS;C:<span class="symbol">\P</span>rogram Files<span class="symbol">\I</span>ntel<span class="symbol">\I</span>ntel® Management Engine Components<span class="symbol">\i</span>CLS;<span class="variable">%SystemRoot%</span><span class="symbol">\s</span>ystem32;<span class="variable">%SystemRoot%</span>;<span class="variable">%SystemRoot%</span><span class="symbol">\S</span>ystem32<span class="symbol">\W</span>bem;<span class="variable">%SYSTEMROOT%</span><span class="symbol">\S</span>ystem32<span class="symbol">\W</span>indowsPowerShell<span class="symbol">\v</span>1.0;<span class="variable">%SYSTEMROOT%</span><span class="symbol">\S</span>ystem32<span class="symbol">\O</span>penSSH;C:<span class="symbol">\P</span>rogram Files (x86)<span class="symbol">\I</span>ntel<span class="symbol">\I</span>ntel® Management Engine Components<span class="symbol">\D</span>AL;C:<span class="symbol">\P</span>rogram Files<span class="symbol">\I</span>ntel<span class="symbol">\I</span>ntel® Management Engine Components<span class="symbol">\D</span>AL;C:<span class="symbol">\P</span>rogram Files (x86)<span class="symbol">\I</span>ntel<span class="symbol">\I</span>ntel® Management Engine Components<span class="symbol">\I</span>PT;C:<span class="symbol">\P</span>rogram Files<span class="symbol">\I</span>ntel<span class="symbol">\I</span>ntel® Management Engine Components<span class="symbol">\I</span>PT;C:<span class="symbol">\P</span>rogram Files<span class="symbol">\G</span>it<span class="symbol">\c</span>md;C:<span class="symbol">\D</span>D<span class="symbol">\s</span>oftware<span class="symbol">\a</span>pache-maven-3.2.5<span class="symbol">\b</span>in;C:<span class="symbol">\P</span>rogram Files<span class="symbol">\T</span>ortoiseSVN<span class="symbol">\b</span>in;C:<span class="symbol">\P</span>rogram Files<span class="symbol">\I</span>ntel<span class="symbol">\W</span>iFi<span class="symbol">\b</span>in;C:<span class="symbol">\P</span>rogram Files<span class="symbol">\C</span>ommon Files<span class="symbol">\I</span>ntel<span class="symbol">\W</span>irelessCommon;C:<span class="symbol">\P</span>rogram Files<span class="symbol">\J</span>ava<span class="symbol">\j</span>dk1.8.0_144<span class="symbol">\b</span>in;C:<span class="symbol">\P</span>rogram</span></pre></td></tr></table></figure><a href="https://blog.csdn.net/qq_40893331/article/details/84253735" target="_blank" rel="noopener">原文链接</a></li></ol>]]></content>
<tags>
<tag> Win10 </tag>
<tag> 系统变量 </tag>
<tag> Path </tag>
</tags>
</entry>
<entry>
<title>CentOS下jar包配置为系统服务</title>
<link href="/20200310.html"/>
<url>/20200310.html</url>
<content type="html"><![CDATA[<h2 id="一、配置service"><a href="#一、配置service" class="headerlink" title="一、配置service"></a>一、配置service</h2><h3 id="1、创建service"><a href="#1、创建service" class="headerlink" title="1、创建service"></a>1、创建service</h3><p>首先进入到/etc/systemd/system目录</p><figure class="highlight jboss-cli"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">cd</span> <span class="string">/etc/systemd/system</span></span></pre></td></tr></table></figure><a id="more"></a><p>使用vim创建一个新文件假设我们的项目叫sduserver</p><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="selector-tag">vi</span> <span class="selector-tag">sduserver</span><span class="selector-class">.service</span></span></pre></td></tr></table></figure><p>内容:</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="section">[Unit]</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"><span class="attr">Description</span>=sduserver</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"><span class="attr">After</span>=network.target</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"><span class="attr">Wants</span>=network.target</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"><span class="section">[Service]</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"><span class="attr">Type</span>=simple</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"><span class="attr">ExecStart</span>=/usr/lib/jvm/java-<span class="number">1.8</span>.<span class="number">0</span>/bin/java -jar /home/package/sduserver.jar</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"><span class="attr">ExecStop</span>=/bin/kill -s QUIT</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"><span class="attr">Restart</span>=always</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"><span class="attr">User</span>=root</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"><span class="attr">Group</span>=root</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">14</span></pre></td><td class="code"><pre><span class="line"><span class="section">[Install]</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">15</span></pre></td><td class="code"><pre><span class="line"><span class="attr">WantedBy</span>=multi-user.target</span></pre></td></tr></table></figure><p>上面的代码仅需要改三处即可:</p><p>Description=后面是你自己项目的名字<br>ExecStart=紧跟的是jdk的绝对目录<br>ExecStart这一行最后一部分是jar包的绝对目录<br>修改之后按Esc键然后输入:wq即可保存。</p><h3 id="2、设置开机启动"><a href="#2、设置开机启动" class="headerlink" title="2、设置开机启动"></a>2、设置开机启动</h3><p>运行下面代码可以设置服务为开机启动</p><figure class="highlight routeros"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">systemctl <span class="builtin-name">enable</span> sduserver</span></pre></td></tr></table></figure><p>运行下面代码可以禁止服务开启启动</p><figure class="highlight routeros"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">systemctl <span class="builtin-name">disable</span> sduserver</span></pre></td></tr></table></figure><p>其他命令:</p><p>运行下面代码可以启动服务</p><figure class="highlight crmsh"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">systemctl <span class="literal">start</span> sduserver</span></pre></td></tr></table></figure><p>运行下面代码可以停止服务</p><figure class="highlight arduino"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">systemctl <span class="built_in">stop</span> sduserver</span></pre></td></tr></table></figure><p>运行下面代码可以重启服务</p><figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="attribute">systemctl restart sduserver</span></span></pre></td></tr></table></figure><h2 id="二、验证"><a href="#二、验证" class="headerlink" title="二、验证"></a>二、验证</h2><p>将服务器重新启动,然后观察项目是否启动即可。</p><p><a href="https://juejin.im/post/5c7c92c9f265da2d943f81fc" target="_blank" rel="noopener">原文链接</a></p>]]></content>
<tags>
<tag> CentOS </tag>
</tags>
</entry>
<entry>
<title>CentOS安装Nginx并配置转发</title>
<link href="/20200306.html"/>
<url>/20200306.html</url>
<content type="html"><![CDATA[<h2 id="转发效果"><a href="#转发效果" class="headerlink" title="转发效果"></a>转发效果</h2><p>请求 <a href="http://www.yourdomain.com/" target="_blank" rel="noopener">http://www.yourdomain.com/</a><br>转发到 <a href="http://www.yourdomain.com:8080/" target="_blank" rel="noopener">http://www.yourdomain.com:8080/</a></p><a id="more"></a><h2 id="安装Nginx"><a href="#安装Nginx" class="headerlink" title="安装Nginx"></a>安装Nginx</h2><h3 id="一、配置-EPEL源"><a href="#一、配置-EPEL源" class="headerlink" title="一、配置 EPEL源"></a>一、配置 EPEL源</h3><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">sudo yum <span class="keyword">install</span> -y epel-<span class="keyword">release</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">sudo yum -y <span class="keyword">update</span></span></pre></td></tr></table></figure><h3 id="二、安装Nginx"><a href="#二、安装Nginx" class="headerlink" title="二、安装Nginx"></a>二、安装Nginx</h3><figure class="highlight cmake"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">sudo yum <span class="keyword">install</span> -y nginx</span></pre></td></tr></table></figure><p>安装成功后,默认的网站目录为: /usr/share/nginx/html</p><p>默认的配置文件为:/etc/nginx/nginx.conf</p><p>自定义配置文件目录为: /etc/nginx/conf.d/</p><h3 id="三、开启端口80和443"><a href="#三、开启端口80和443" class="headerlink" title="三、开启端口80和443"></a>三、开启端口80和443</h3><p>如果你的服务器打开了防火墙你需要运行下面的命令打开80和443端口。</p><figure class="highlight routeros"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">sudo firewall-cmd --permanent <span class="attribute">--zone</span>=public <span class="attribute">--add-service</span>=http</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">sudo firewall-cmd --permanent <span class="attribute">--zone</span>=public <span class="attribute">--add-service</span>=https</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">sudo firewall-cmd --reload</span></pre></td></tr></table></figure><h2 id="找到Nginx配置文件"><a href="#找到Nginx配置文件" class="headerlink" title="找到Nginx配置文件"></a>找到Nginx配置文件</h2><figure class="highlight stata"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">[root@localhost ~]# nginx -t</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">nginx: the configuration <span class="keyword">file</span> /usr/<span class="keyword">local</span>/nginx/<span class="keyword">conf</span>/nginx.<span class="keyword">conf</span> <span class="keyword">syntax</span> is ok</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">nginx: configuration <span class="keyword">file</span> /usr/<span class="keyword">local</span>/nginx/<span class="keyword">conf</span>/nginx.<span class="keyword">conf</span> <span class="keyword">test</span> is successful</span></pre></td></tr></table></figure><h2 id="修改nginx配置文件"><a href="#修改nginx配置文件" class="headerlink" title="修改nginx配置文件"></a>修改nginx配置文件</h2><figure class="highlight crmsh"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">...</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">server&#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"> ...</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"> <span class="comment">#...默认转发至8080端口 Satrt </span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"> <span class="keyword">location</span> <span class="title">/ &#123;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"><span class="title"> proxy_pass</span> http://localhost:<span class="number">8080</span>;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"> <span class="comment">#...默认转发至8080端口 End</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"> <span class="keyword">location</span> <span class="title">/nginx_status</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"> &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"> stub_status on;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"> access_log off;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">14</span></pre></td><td class="code"><pre><span class="line"> ...</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">15</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">16</span></pre></td><td class="code"><pre><span class="line">...</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">17</span></pre></td><td class="code"><pre><span class="line">&#125;</span></pre></td></tr></table></figure><h2 id="验证配置文件是否正确"><a href="#验证配置文件是否正确" class="headerlink" title="验证配置文件是否正确"></a>验证配置文件是否正确</h2><figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="attribute">nginx -t</span></span></pre></td></tr></table></figure><h2 id="使配置文件生效"><a href="#使配置文件生效" class="headerlink" title="使配置文件生效"></a>使配置文件生效</h2><figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="attribute">nginx -s reload</span></span></pre></td></tr></table></figure><h2 id="Nginx操作命令"><a href="#Nginx操作命令" class="headerlink" title="Nginx操作命令"></a>Nginx操作命令</h2><p>1.启动 Nginx</p><figure class="highlight crmsh"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">systemctl <span class="literal">start</span> nginx</span></pre></td></tr></table></figure><p>2.停止Nginx</p><figure class="highlight arduino"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">systemctl <span class="built_in">stop</span> nginx</span></pre></td></tr></table></figure><p>3.重启Nginx</p><figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="attribute">systemctl restart nginx</span></span></pre></td></tr></table></figure><p>4.查看Nginx状态</p><figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="attribute">systemctl status nginx</span></span></pre></td></tr></table></figure><p>5.启用开机启动Nginx</p><figure class="highlight routeros"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">systemctl <span class="builtin-name">enable</span> nginx</span></pre></td></tr></table></figure><p>6.禁用开机启动Nginx</p><figure class="highlight routeros"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">systemctl <span class="builtin-name">disable</span> nginx</span></pre></td></tr></table></figure>]]></content>
<tags>
<tag> CentOS </tag>
<tag> Nginx </tag>
</tags>
</entry>
<entry>
<title>CentOS下重置MySql密码</title>
<link href="/20200301.html"/>
<url>/20200301.html</url>
<content type="html"><![CDATA[<h3 id="停止mysql服务进程"><a href="#停止mysql服务进程" class="headerlink" title="停止mysql服务进程"></a>停止mysql服务进程</h3><figure class="highlight arduino"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">service mysql <span class="built_in">stop</span></span></pre></td></tr></table></figure><h3 id="打开mysql配置文件my-cnf在-mysqld-下添加skip-grant-tables-免密登录"><a href="#打开mysql配置文件my-cnf在-mysqld-下添加skip-grant-tables-免密登录" class="headerlink" title="打开mysql配置文件my.cnf在 [mysqld] 下添加skip-grant-tables #免密登录"></a>打开mysql配置文件my.cnf在 [mysqld] 下添加skip-grant-tables #免密登录</h3><figure class="highlight vim"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">vim</span> /etc/my.<span class="keyword">cnf</span></span></pre></td></tr></table></figure><a id="more"></a><h3 id="重新启动mysql"><a href="#重新启动mysql" class="headerlink" title="重新启动mysql"></a>重新启动mysql</h3><figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="attribute">service mysql restart</span></span></pre></td></tr></table></figure><h3 id="登录到数据库"><a href="#登录到数据库" class="headerlink" title="登录到数据库"></a>登录到数据库</h3><figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="attribute">mysql -uroot</span></span></pre></td></tr></table></figure><h3 id="切换到mysql数据库"><a href="#切换到mysql数据库" class="headerlink" title="切换到mysql数据库"></a>切换到mysql数据库</h3><figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">use</span> <span class="title">mysql</span>;</span></pre></td></tr></table></figure><h3 id="更改密码"><a href="#更改密码" class="headerlink" title="更改密码"></a>更改密码</h3><figure class="highlight pgsql"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">update</span> mysql.<span class="keyword">user</span> <span class="keyword">set</span> authentication_string=<span class="keyword">password</span>(<span class="string">'新密码'</span>) <span class="keyword">where</span> <span class="keyword">user</span>=<span class="string">'root'</span>;</span></pre></td></tr></table></figure><h3 id="刷新权限"><a href="#刷新权限" class="headerlink" title="刷新权限"></a>刷新权限</h3><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">flush</span> <span class="keyword">privileges</span>;</span></pre></td></tr></table></figure><h3 id="配置文件my-cnf将skip-grant-tables-免密登录-删除"><a href="#配置文件my-cnf将skip-grant-tables-免密登录-删除" class="headerlink" title="配置文件my.cnf将skip-grant-tables #免密登录 删除"></a>配置文件my.cnf将skip-grant-tables #免密登录 删除</h3><figure class="highlight vim"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">vim</span> /etc/my.<span class="keyword">cnf</span></span></pre></td></tr></table></figure><h3 id="使用密码登录root用户"><a href="#使用密码登录root用户" class="headerlink" title="使用密码登录root用户"></a>使用密码登录root用户</h3><figure class="highlight dns"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">mysql -uroot -p新密码</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">如mysql -uroot -p<span class="number">20200202</span></span></pre></td></tr></table></figure>]]></content>
</entry>
<entry>
<title>雨曦会翻身啦</title>
<link href="/20200105.html"/>
<url>/20200105.html</url>
<content type="html"><![CDATA[<h1 id="雨曦会翻身啦"><a href="#雨曦会翻身啦" class="headerlink" title="雨曦会翻身啦!"></a>雨曦会翻身啦!</h1><p>2020-01-05 22:22:22</p>]]></content>
<tags>
<tag> Hexo </tag>
<tag> 雨曦 </tag>
</tags>
</entry>
<entry>
<title>使现有的VSCode成为便携版绿色版</title>
<link href="/20191217.html"/>
<url>/20191217.html</url>
<content type="html"><![CDATA[<p>VSCode可以说是各种代码编辑器前端之中的神器了相对体积小且扩展性强我们希望将它携带在U盘中在各种工作环境中使用官方也提供了在Windows,Linux和MacOS三大平台中使VSCode便携化的说明。</p><a id="more"></a><ul><li>如果你还没有VSCode, 请先下载各平台压缩包形式的版本。</li><li>如果是Windows或Linux在Code.exe同级目录下创建data目录MacOs创建code-portable-data目录。(<strong>新安装的VSCode到这一步已经是便携版了</strong>)</li><li>各系统拷贝对应的Code目录到data目录Mac下为code-portable-data目录下并重命名为user-data:</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">Windows: %APPDATA%\Code</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">Linux: <span class="variable">$HOME</span>/.config/Code</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">macOS: <span class="variable">$HOME</span>/Library/Application Support/Code</span></pre></td></tr></table></figure><ul><li>各系统拷贝插件目录extensions到data目录下</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">Windows: %USERPROFILE%.vscode\extensions</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">Linux: ~/.vscode/extensions</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">macOS: ~/.vscode/extensions</span></pre></td></tr></table></figure><ul><li>在data目录下创建tmp目录使临时文件也存储在data目录中。临时文件不包含必要存储的数据洁癖和强迫症患者可以做</li></ul><p><a href="https://www.jianshu.com/p/ef41b21eb45d" target="_blank" rel="noopener">原文链接</a></p>]]></content>
<tags>
<tag> VSCode </tag>
</tags>
</entry>
<entry>
<title>使用Coding进行Hexo项目的持续集成</title>
<link href="/20191212.html"/>
<url>/20191212.html</url>
<content type="html"><![CDATA[<p>使用访问令牌push代码</p><a id="more"></a><h2 id="方法一-推荐"><a href="#方法一-推荐" class="headerlink" title="方法一(推荐)"></a>方法一(推荐)</h2><h3 id="Jenkinsfile"><a href="#Jenkinsfile" class="headerlink" title="Jenkinsfile"></a>Jenkinsfile</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">pipeline &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"> agent &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"> docker &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"> image &#39;lenyuadmin&#x2F;hexo&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"> stages &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"> stage(&#39;检出&#39;) &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"> steps &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"> checkout([$class: &#39;GitSCM&#39;, branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]])</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">14</span></pre></td><td class="code"><pre><span class="line"> stage(&#39;环境&#39;) &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">15</span></pre></td><td class="code"><pre><span class="line"> steps &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">16</span></pre></td><td class="code"><pre><span class="line"> echo &#39;构建中...&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">17</span></pre></td><td class="code"><pre><span class="line"> sh &#39;npm config set registry http:&#x2F;&#x2F;mirrors.cloud.tencent.com&#x2F;npm&#x2F;&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">18</span></pre></td><td class="code"><pre><span class="line"> sh &#39;npm install&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">19</span></pre></td><td class="code"><pre><span class="line"> sh &#39;hexo -v&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">20</span></pre></td><td class="code"><pre><span class="line"> echo &#39;构建完成.&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">21</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">22</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">23</span></pre></td><td class="code"><pre><span class="line"> stage(&#39;生产&#39;) &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">24</span></pre></td><td class="code"><pre><span class="line"> steps &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">25</span></pre></td><td class="code"><pre><span class="line"> echo &#39;生产中...&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">26</span></pre></td><td class="code"><pre><span class="line"> sh &#39;hexo clean&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">27</span></pre></td><td class="code"><pre><span class="line"> sh &#39;hexo g&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">28</span></pre></td><td class="code"><pre><span class="line"> echo &#39;生产完成.&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">29</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">30</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">31</span></pre></td><td class="code"><pre><span class="line"> stage(&#39;部署&#39;) &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">32</span></pre></td><td class="code"><pre><span class="line"> steps &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">33</span></pre></td><td class="code"><pre><span class="line"> echo &#39;部署中...&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">34</span></pre></td><td class="code"><pre><span class="line"> dir(path: &#39;public&#39;) &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">35</span></pre></td><td class="code"><pre><span class="line"> sh &#39;ls&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">36</span></pre></td><td class="code"><pre><span class="line"> sh &#39;git init&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">37</span></pre></td><td class="code"><pre><span class="line"> sh &#39;git config user.name $USER_NAME&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">38</span></pre></td><td class="code"><pre><span class="line"> sh &#39;git config user.email $USER_EMAIL&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">39</span></pre></td><td class="code"><pre><span class="line"> sh &#39;git add -A&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">40</span></pre></td><td class="code"><pre><span class="line"> sh &#39;git commit -m \&#39;init\&#39;&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">41</span></pre></td><td class="code"><pre><span class="line"> sh &#39;git push -u -f &quot;$USER_PROJECT&quot; master:master&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">42</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">43</span></pre></td><td class="code"><pre><span class="line"> echo &#39;部署完成&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">44</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">45</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">46</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">47</span></pre></td><td class="code"><pre><span class="line">&#125;</span></pre></td></tr></table></figure><h3 id="配置环境变量"><a href="#配置环境变量" class="headerlink" title="配置环境变量"></a>配置环境变量</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">USER_NAME = 你的昵称</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">USER_EMAIL = 你的邮箱</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line">USER_PROJECT = 提交的地址</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line">USER_PROJECT地址的规则是</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line">https://子账号名:子账号的密码@项目https地址</span></pre></td></tr></table></figure><p><a href="https://nobige.cn/post/20191007-coding_chi_xu_ji_cheng_bu_shu_hexo_bo_ke/" target="_blank" rel="noopener">原文链接</a></p><h2 id="方法二"><a href="#方法二" class="headerlink" title="方法二"></a>方法二</h2><h3 id="config-yml"><a href="#config-yml" class="headerlink" title="_config.yml"></a>_config.yml</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">deploy:</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"> type: git</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"> repo: repo: https:&#x2F;&#x2F;令牌用户名:访问令牌@e.coding.net&#x2F;mcontext&#x2F;mContext&#x2F;Blog.git</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"> branch: master</span></pre></td></tr></table></figure><p>令牌用户名和访问令牌在 头像-&gt;个人设置-&gt;访问令牌</p><h3 id="JenkinsfileContent"><a href="#JenkinsfileContent" class="headerlink" title="JenkinsfileContent"></a>JenkinsfileContent</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">pipeline &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">agent any</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">stages &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"> stage(&#39;检出&#39;) &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"> steps &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"> checkout([$class: &#39;GitSCM&#39;, branches: [[name: env.GIT_BUILD_REF]],</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"> userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]])</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"> stage(&#39;构建&#39;) &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"> steps &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"> echo &#39;构建中...&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"> sh &#39;node -v&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">14</span></pre></td><td class="code"><pre><span class="line"> sh &#39;npm install -g hexo-cli&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">15</span></pre></td><td class="code"><pre><span class="line"> sh &#39;npm install hexo --save&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">16</span></pre></td><td class="code"><pre><span class="line"> sh &#39;npm install -g hexo-generator-searchdb&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">17</span></pre></td><td class="code"><pre><span class="line"> sh &#39;npm install -g&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">18</span></pre></td><td class="code"><pre><span class="line"> echo &#39;构建完成.&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">19</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">20</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">21</span></pre></td><td class="code"><pre><span class="line"> stage(&#39;测试&#39;) &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">22</span></pre></td><td class="code"><pre><span class="line"> steps &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">23</span></pre></td><td class="code"><pre><span class="line"> echo &#39;单元测试中...&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">24</span></pre></td><td class="code"><pre><span class="line"> sh &#39;hexo clean&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">25</span></pre></td><td class="code"><pre><span class="line"> sh &#39;hexo g &#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">26</span></pre></td><td class="code"><pre><span class="line"> echo &#39;单元测试完成.&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">27</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">28</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">29</span></pre></td><td class="code"><pre><span class="line"> stage(&#39;部署&#39;) &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">30</span></pre></td><td class="code"><pre><span class="line"> steps &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">31</span></pre></td><td class="code"><pre><span class="line"> echo &#39;部署中...&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">32</span></pre></td><td class="code"><pre><span class="line"> sh &#39;npm install hexo-deployer-git --save&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">33</span></pre></td><td class="code"><pre><span class="line"> sh &#39;hexo deploy&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">34</span></pre></td><td class="code"><pre><span class="line"> echo &#39;部署完成&#39;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">35</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">36</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">37</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">38</span></pre></td><td class="code"><pre><span class="line">&#125;</span></pre></td></tr></table></figure><p>参考:<a href="https://zhuanlan.zhihu.com/p/55975297" target="_blank" rel="noopener">使用Coding进行Hexo项目的持续集成</a></p>]]></content>
<tags>
<tag> Coding </tag>
<tag> Hexo持续集成 </tag>
</tags>
</entry>
<entry>
<title>Unable to establish SSL connection.</title>
<link href="/20191209.html"/>
<url>/20191209.html</url>
<content type="html"><![CDATA[<p>secure-protocol=TLSv1 </p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">sh -c <span class="string">"<span class="variable">$(wget --secure-protocol=TLSv1 https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)</span>"</span></span></pre></td></tr></table></figure>]]></content>
</entry>
<entry>
<title>使用Hexo+Ubuntu搭建博客</title>
<link href="/20191208.html"/>
<url>/20191208.html</url>
<content type="html"><![CDATA[<h2 id="Ubuntu"><a href="#Ubuntu" class="headerlink" title="Ubuntu"></a>Ubuntu</h2><h3 id="安装nodejs"><a href="#安装nodejs" class="headerlink" title="安装nodejs"></a>安装nodejs</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">sudo apt-get install nodejs</span></pre></td></tr></table></figure><h3 id="安装git"><a href="#安装git" class="headerlink" title="安装git"></a>安装git</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">sudo apt-get install git</span></pre></td></tr></table></figure><a id="more"></a><h2 id="Hexo使用"><a href="#Hexo使用" class="headerlink" title="Hexo使用"></a>Hexo使用</h2><h3 id="安装nodejs-然后使用npm安装hexo"><a href="#安装nodejs-然后使用npm安装hexo" class="headerlink" title="安装nodejs,然后使用npm安装hexo"></a>安装nodejs,然后使用npm安装hexo</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">npm install -g hexo</span></pre></td></tr></table></figure><h3 id="创建博客文件夹"><a href="#创建博客文件夹" class="headerlink" title="创建博客文件夹"></a>创建博客文件夹</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">hexo init 文件夹的名字(假设为BLOG)</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> BLOG</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">npm install //安装依赖</span></pre></td></tr></table></figure><h2 id="git配置"><a href="#git配置" class="headerlink" title="git配置"></a>git配置</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> BLOG</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">git config --global user.name <span class="string">"username"</span> // username为你自己的github用户名</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">git config --global user.email <span class="string">"email@example.com"</span></span></pre></td></tr></table></figure><p>为了用于保存hexo的代码,防止hexo代码遗失并方便不同平台博客编辑的同步,可以将hexo的代码保存到github上方式是新建一个仓库并进行并联</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">git remote add origin git://github.com...</span></pre></td></tr></table></figure><h2 id="修改配置文件"><a href="#修改配置文件" class="headerlink" title="修改配置文件"></a>修改配置文件</h2><p>修改BLOG目录下的_config.yml里面的Deployment部分为<br>deploy:<br> type: git<br> repo: <a href="mailto:git@github.com" target="_blank" rel="noopener">git@github.com</a>:username/username.github.io.git<br> branch: master</p><p>常用命令</p><figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">hexo g <span class="comment">//generate ,编译成静态文件</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">hexo d <span class="comment">//deploy, 部署网站</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">hexo s <span class="comment">//server, 本地运行</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line">hexo <span class="built_in">c</span> <span class="comment">//clean, 清空generate生成器的文件</span></span></pre></td></tr></table></figure><p>新建博文</p><ul><li>先建立文件<figure class="highlight haxe"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">hexo <span class="keyword">new</span> <span class="type">post</span> <span class="string">"newPost"</span></span></pre></td></tr></table></figure></li><li>编辑/source/_post/newPost.md,使用的是markdowm语法其语法可以参考<a href="http://hp256.com/2014/12/23/post-1/" target="_blank" rel="noopener">链接</a></li><li>关于编辑的工具可以在sublime里面安一些关于markdown的插件也可以使用markdowm cmd等工具来编辑</li><li>编辑完成后<figure class="highlight verilog"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">hexo <span class="keyword">generate</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">hexo deploy</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">hexo server <span class="comment">//本地查看</span></span></pre></td></tr></table></figure>关于主题</li></ul><p>本人使用的是 yilia<br>访问自己的博客:<a href="https://username.github.io/" target="_blank" rel="noopener">https://username.github.io/</a> (username为自己的用户名)</p><p>Hexo经验<br>使用hexo g有时会出现<br>TypeError: Cannot read property compile of undefined</p><p>解决的方法降低使用的hexo的版本,打开package.json</p><figure class="highlight 1c"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="string">"dependencies"</span>: &#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo"</span>: <span class="string">"^3.1.0"</span>, <span class="comment">//这里修改为 3.1.1</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-deployer-git"</span>: <span class="string">"^0.1.0"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-generator-archive"</span>: <span class="string">"^0.1.2"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-generator-category"</span>: <span class="string">"^0.1.2"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-generator-index"</span>: <span class="string">"^0.1.2"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-generator-tag"</span>: <span class="string">"^0.1.1"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-renderer-ejs"</span>: <span class="string">"^0.1.0"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-renderer-jade"</span>: <span class="string">"^0.2.0"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-renderer-less"</span>: <span class="string">"^0.1.3"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-renderer-marked"</span>: <span class="string">"^0.2.4"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-renderer-stylus"</span>: <span class="string">"^0.3.0"</span>,</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"> <span class="string">"hexo-server"</span>: <span class="string">"^0.1.2"</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">14</span></pre></td><td class="code"><pre><span class="line">&#125;</span></pre></td></tr></table></figure><p>修改好hexo的版本后再npm install更新下版本就可以了</p><p><a href="https://blog.csdn.net/sysushui/article/details/54585905" target="_blank" rel="noopener">原文链接</a></p>]]></content>
<tags>
<tag> Ubuntu Hexo </tag>
</tags>
</entry>
<entry>
<title>git配置</title>
<link href="/20191206.html"/>
<url>/20191206.html</url>
<content type="html"><![CDATA[<h2 id="git配置email-amp-name"><a href="#git配置email-amp-name" class="headerlink" title="git配置email&amp;name"></a>git配置email&amp;name</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">git config --global user.email <span class="string">"ingressjinyu@gmail.com"</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">git config --global user.name <span class="string">"mContext"</span></span></pre></td></tr></table></figure><a id="more"></a><h2 id="git提交记住用户名和密码"><a href="#git提交记住用户名和密码" class="headerlink" title="git提交记住用户名和密码"></a>git提交记住用户名和密码</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">git config --global credential.helper store</span></pre></td></tr></table></figure><h2 id="为github设置代理"><a href="#为github设置代理" class="headerlink" title="为github设置代理"></a>为github设置代理</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">git config --global http.https://github.com.proxy http://127.0.0.1:1080</span></pre></td></tr></table></figure>]]></content>
<tags>
<tag> git配置 </tag>
</tags>
</entry>
<entry>
<title>Windows 10 bat脚本设置环境变量</title>
<link href="/20191205.html"/>
<url>/20191205.html</url>
<content type="html"><![CDATA[<pre><code>setx /m Path &quot;%PATH%;D:\BlogGit\node-v12.13.1-win-x64;D:\BlogGit\PortableGit&quot;</code></pre><p>另存为bat,以管理员身份运行</p>]]></content>
<tags>
<tag> Windows10 </tag>
<tag> 环境变量 </tag>
</tags>
</entry>
<entry>
<title>Windows 10 WSL 的安装和使用</title>
<link href="/20191204.html"/>
<url>/20191204.html</url>
<content type="html"><![CDATA[<h1 id="Windows-10-企业版-LTSC安装-WSL"><a href="#Windows-10-企业版-LTSC安装-WSL" class="headerlink" title="Windows 10 企业版 LTSC安装 WSL"></a>Windows 10 企业版 LTSC安装 WSL</h1><p><strong>开始</strong>——&gt;<strong>设置</strong>&gt;搜索”<strong>启用或关闭 Windows 功能</strong>“,点击弹出”<strong>Windows 功能</strong>“对话框.</p><a id="more"></a><p>在弹出”<strong>Windows 功能</strong>“对话框中,找到”<strong>Windows Subsystem for linux</strong>“/“<strong>适用于Linux的Windows子系统</strong>“条目,点击选中其前面的复选框。<br>点击确定等待下载安装完成后重启.</p><h1 id="手动下载适用于Linux的Windows子系统发行版安装包"><a href="#手动下载适用于Linux的Windows子系统发行版安装包" class="headerlink" title="手动下载适用于Linux的Windows子系统发行版安装包"></a>手动下载适用于Linux的Windows子系统发行版安装包</h1><p>如果 Microsoft Store 应用不可用,则可以通过单击以下链接下载并手动安装 Linux 发行版:</p><pre><code>官网链接: https://aka.ms/wsl-ubuntu-1804百度网盘链接: https://pan.baidu.com/s/1p5ZzYTeQTko-V4_dwYl_Rw 提取码: uf8k</code></pre><h1 id="安装发行版"><a href="#安装发行版" class="headerlink" title="安装发行版"></a>安装发行版</h1><h2 id="解压后直接安装-推荐"><a href="#解压后直接安装-推荐" class="headerlink" title="解压后直接安装(推荐)"></a>解压后直接安装(推荐)</h2><p>将下载的appx文件后缀名改为zip后解压到”D:\WSLUbuntu”,<br>在目录中的exe文件上右键<strong>以管理员身份运行</strong></p><h2 id="命令安装"><a href="#命令安装" class="headerlink" title="命令安装"></a>命令安装</h2><p>使用 PowerShell 安装发行版。 只需导航到包含上面下载的发行版的文件夹,并在该目录中运行以下命令,其中 app_name 是发行版文件的名称。</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">Add-AppxPackage .\app_name.appx</span></pre></td></tr></table></figure><h1 id="初始化发行版"><a href="#初始化发行版" class="headerlink" title="初始化发行版"></a>初始化发行版</h1><p>首次运行新安装的分发版时,会打开一个控制台窗口,其中指出需要等待一两分钟时间来完成安装。<br>安装完成后,系统会提示创建新的用户帐户(及其密码)。</p><h1 id="设置root密码"><a href="#设置root密码" class="headerlink" title="设置root密码"></a>设置root密码</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">sudo passwd root</span></pre></td></tr></table></figure><h1 id="默认使用root用户登录"><a href="#默认使用root用户登录" class="headerlink" title="默认使用root用户登录"></a>默认使用root用户登录</h1><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="function">D:\<span class="title">WSLUbuntu</span>\<span class="title">ubuntu1804.exe</span> <span class="title">config</span> --<span class="title">default</span>-<span class="title">user</span> <span class="title">root</span></span></span></pre></td></tr></table></figure><h1 id="Windows-10-子系统Linux重启-不重启Win10"><a href="#Windows-10-子系统Linux重启-不重启Win10" class="headerlink" title="Windows 10 子系统Linux重启(不重启Win10)"></a>Windows 10 子系统Linux重启(不重启Win10)</h1><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="built_in">net</span> stop LxssManager</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"><span class="built_in">net</span> <span class="built_in">start</span> LxssManager</span></pre></td></tr></table></figure><h1 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h1><p>启动的时候,在命令行中输入bash就可以启动.<br>另外存放在linux系统,点击exe也可以启动.两种方式启动的默认路径不一样.<br>如果安装了多个发行版,默认启动的发行版可以指定.指定方式为<br>使用<strong>wslconfig /l</strong>查看所有的发行版.<br>使用<strong>wlsconfig /s 发行版名</strong>,指定默认发行版.</p><h1 id="win10内置Ubuntu-Linux换阿里源"><a href="#win10内置Ubuntu-Linux换阿里源" class="headerlink" title="win10内置Ubuntu/Linux换阿里源"></a>win10内置Ubuntu/Linux换阿里源</h1><h2 id="先用lsb-release-a查看自己的Ubuntu-Linux系统的版本"><a href="#先用lsb-release-a查看自己的Ubuntu-Linux系统的版本" class="headerlink" title="先用lsb_release -a查看自己的Ubuntu/Linux系统的版本"></a>先用<strong>lsb_release -a</strong>查看自己的Ubuntu/Linux系统的版本</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">ray@mContext:~/blog$ lsb_release -a</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">No LSB modules are available.</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">Distributor ID: Ubuntu</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line">Description: Ubuntu 18.04.3 LTS</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line">Release: 18.04</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line">Codename: bionic</span></pre></td></tr></table></figure><h2 id="备份内置源"><a href="#备份内置源" class="headerlink" title="备份内置源"></a>备份内置源</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">cp /etc/apt/sources.list /etc/apt/sources.list.bak</span></pre></td></tr></table></figure><h2 id="替换阿里源"><a href="#替换阿里源" class="headerlink" title="替换阿里源"></a>替换阿里源</h2><p>参考:<a href="https://developer.aliyun.com/mirror" target="_blank" rel="noopener">https://developer.aliyun.com/mirror</a><br>用你熟悉的编辑器打开:<strong>/etc/apt/sources.list</strong><br>替换默认的<strong>archive.ubuntu.com</strong>为<strong>mirrors.aliyun.com</strong></p><p>例如:Vim编辑器</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">sudo vi /etc/apt/sources.list</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">:% s/archive\.ubuntu\.com/mirrors.aliyun.com/g</span></pre></td></tr></table></figure><h1 id="更新和升级分发版的包"><a href="#更新和升级分发版的包" class="headerlink" title="更新和升级分发版的包"></a>更新和升级分发版的包</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">sudo apt update &amp;&amp; sudo apt upgrade</span></pre></td></tr></table></figure><h1 id="卸载"><a href="#卸载" class="headerlink" title="卸载"></a>卸载</h1><p>在Win10 LTSC 2019之前,卸载可以用lxrun工具,但是LTSC 2019抛弃了这个工具.因此你可以在别的地方看到很多说重装linux子系统要用lxrun的.这都是老黄历,不要采信.<br>前面提了一句,这个所谓安装其实只是注册.因而卸载的时候只要解除注册就可以.解除注册还是用刚才提到的wslconfig<br>因而卸载过程为:在命令行输入<strong>“wslconfig /u 发行版名”</strong> ,解除注册.然后删掉相应的文件夹即可.</p><h2 id="windows10-的linux子系统windows-subsystem-for-linux-WSL-文件位置"><a href="#windows10-的linux子系统windows-subsystem-for-linux-WSL-文件位置" class="headerlink" title="windows10 的linux子系统windows subsystem for linux)WSL 文件位置"></a>windows10 的linux子系统windows subsystem for linux)WSL 文件位置</h2><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="function">C:\<span class="title">Users</span>\<span class="title">hanaxilo</span>\<span class="title">AppData</span>\<span class="title">Local</span>\<span class="title">Packages</span>\<span class="title">CanonicalGroupLimited.Ubuntu18</span>.04<span class="title">onWindows_79rhkp1fndgsc</span>\</span></span></pre></td></tr></table></figure><h1 id="附-wslconfig的所有命令"><a href="#附-wslconfig的所有命令" class="headerlink" title="附:wslconfig的所有命令:"></a>附:wslconfig的所有命令:</h1><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="function">C:\<span class="title">Users</span>\<span class="title">hanaxilo</span>&gt;<span class="title">wslconfig</span> ?</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"><span class="function">对 <span class="title">Windows</span> 上的 <span class="title">Linux</span> 子系统进行操作管理</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"><span class="function"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"><span class="function">用途:</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"><span class="function"> /<span class="title">l</span>, /<span class="title">list</span> [/<span class="title">all</span>]</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"><span class="function"> 列出已注册的分发版。</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"><span class="function"> /<span class="title">all</span> - 有选择地列出所有分发版,包括</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"><span class="function"> 当前正在安装或卸载的分发版。</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"><span class="function"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"><span class="function"> /<span class="title">s</span>, /<span class="title">setdefault</span> &lt;<span class="title">DistributionName</span>&gt;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"><span class="function"> 将该分发版设为默认。</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"><span class="function"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"><span class="function"> /<span class="title">t</span>, /<span class="title">terminate</span> &lt;<span class="title">DistributionName</span>&gt;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">14</span></pre></td><td class="code"><pre><span class="line"><span class="function"> 终止分发。</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">15</span></pre></td><td class="code"><pre><span class="line"><span class="function"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">16</span></pre></td><td class="code"><pre><span class="line"><span class="function"> /<span class="title">u</span>, /<span class="title">unregister</span> &lt;<span class="title">DistributionName</span>&gt;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">17</span></pre></td><td class="code"><pre><span class="line"><span class="function"> 取消分发版注册。</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">18</span></pre></td><td class="code"><pre><span class="line"><span class="function"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">19</span></pre></td><td class="code"><pre><span class="line"><span class="function"> /<span class="title">upgrade</span> &lt;<span class="title">DistributionName</span>&gt;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">20</span></pre></td><td class="code"><pre><span class="line"><span class="function"> 将分发版升级至 <span class="title">WslFs</span> 文件系统格式。</span></span></pre></td></tr></table></figure>]]></content>
<tags>
<tag> Windows10 </tag>
<tag> WSL </tag>
</tags>
</entry>
<entry>
<title>No matching version found for js-sequence-diagrams@^1000000.0.6</title>
<link href="/20191203.html"/>
<url>/20191203.html</url>
<content type="html"><![CDATA[<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">[package.json] js-sequence-diagrams changed the way of adding version number</span></pre></td></tr></table></figure><a id="more"></a><p>I try to open HexoEditor/package.json and change<br>“js-sequence-diagrams”: “^1000000.0.6”,<br>into<br>“js-sequence-diagrams”: “0.0.1-security”,<br>then npm install successfully</p><p><a href="https://github.com/zhuzhuyule/HexoEditor/issues/69" target="_blank" rel="noopener">https://github.com/zhuzhuyule/HexoEditor/issues/69</a></p><p>extract:fsevents: sill extract fsevents@^1.0.0 extracted to XXXXXXXX</p><p>解决</p><p>删除node_module</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">npm <span class="keyword">cache</span> clean <span class="comment">--force</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">npm <span class="keyword">install</span> fsevents@<span class="number">1.2</span><span class="number">.9</span> <span class="comment">--save</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line">sudo usermod -s /usr/<span class="keyword">bin</span>/zsh $(whoami)</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line">sudo usermod -s /<span class="keyword">bin</span>/bash $(whoami)</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">alias</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">alias</span> gitpush = <span class="string">'git add . &amp;&amp; git commit -m "update" &amp;&amp; git push origin master'</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">alias</span> hgs = <span class="string">'hexo g &amp;&amp; hexo s'</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"><span class="keyword">alias</span> hgd = <span class="string">'hexo clean &amp;&amp; hexo deploy'</span></span></pre></td></tr></table></figure>]]></content>
</entry>
<entry>
<title>npm配置</title>
<link href="/20191202.html"/>
<url>/20191202.html</url>
<content type="html"><![CDATA[<h1 id="npm设置缓存路径"><a href="#npm设置缓存路径" class="headerlink" title="npm设置缓存路径"></a>npm设置缓存路径</h1><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">npm config <span class="built_in">set</span> prefix "D:/BlogGit/npmCache/npm_global"</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">npm config <span class="built_in">set</span> cache "D:/BlogGit/npmCache/npm_cache"</span></pre></td></tr></table></figure><a id="more"></a><h1 id="使用淘宝镜像源安装cnmp"><a href="#使用淘宝镜像源安装cnmp" class="headerlink" title="使用淘宝镜像源安装cnmp"></a>使用淘宝镜像源安装cnmp</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">npm install -g cnpm --registry=https://registry.npm.taobao.org</span></pre></td></tr></table></figure><h1 id="更换为默认源"><a href="#更换为默认源" class="headerlink" title="更换为默认源"></a>更换为默认源</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">npm config <span class="built_in">set</span> registry https://registry.npmjs.org</span></pre></td></tr></table></figure><h1 id="更换为淘宝镜像源:"><a href="#更换为淘宝镜像源:" class="headerlink" title="更换为淘宝镜像源:"></a>更换为淘宝镜像源:</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">npm config <span class="built_in">set</span> registry https://registry.npm.taobao.org</span></pre></td></tr></table></figure><h1 id="配置后通过以下方法验证是否成功"><a href="#配置后通过以下方法验证是否成功" class="headerlink" title="配置后通过以下方法验证是否成功:"></a>配置后通过以下方法验证是否成功:</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">npm config get registry</span></pre></td></tr></table></figure>]]></content>
</entry>
<entry>
<title>Linux下开启SSH并且允许root用户远程登录,允许无密码登录</title>
<link href="/20191201.html"/>
<url>/20191201.html</url>
<content type="html"><![CDATA[<h3 id="允许root用户远程登录"><a href="#允许root用户远程登录" class="headerlink" title="允许root用户远程登录"></a>允许root用户远程登录</h3><p>修改ssh服务配置文件</p><pre><code>sudo vi /etc/ssh/sshd_config</code></pre><p>调整PermitRootLogin参数值为yes</p><a id="more"></a><h3 id="允许无密码登录"><a href="#允许无密码登录" class="headerlink" title="允许无密码登录"></a>允许无密码登录</h3><p>同上修改ssh服务配置文件两种情况</p><pre><code>1 将PermitEmptyPasswords yes前面的#号去掉2 将PermitEmptyPasswords 参数值修改为yes如下图</code></pre><p>无论哪种最后PermitEmptyPasswords参数值为yes</p><p>以上两种配置均需要重启ssh服务</p><pre><code>service sshd restart # 或者/etc/initd.d/sshd restart</code></pre><h3 id="扩展:"><a href="#扩展:" class="headerlink" title="扩展:"></a>扩展:</h3><p>为了安全起见FreeBSD默认情况下是不允许root用户进行SSH远程登录的需要进行以下操作才可以进行Root用户的ssh远程登录。</p><p>首先vi编辑/etc/inetd.conf,去掉ssh前的#注释,保存后:wq退出 (开启监听ssh服务)</p><p>编辑/etc/rc.conf 最后加入:sshd_enable=”yes”即可<br>激活sshd服务</p><pre><code>#/etc/rc.d/sshd start</code></pre><p>检查服务是否启动在22端口应该有监听。</p><pre><code># check port number 22#netstat -an # 或#netstat -tnlp</code></pre><p>最后编辑ssh配置文件</p><pre><code>#vi /etc/ssh/sshd_config</code></pre><p>在/etc/ssh/sshd_config最后中加入</p><pre><code>PermitRootLogin yes #允许root登录PermitEmptyPasswords no #不允许空密码登录PasswordAuthentication yes # 设置是否使用口令验证。</code></pre><p>修改完配置文件后重新启动sshd服务器(/etc/rc.d/sshd restart)即可。</p><p>补充:</p><ol><li>如果重启后还是不行, 请重新载入sshd_config 文件/etc/rc.d/sshd reload</li><li>如果出现using keyboard-interactive authentication<br>password:<br>请确认配置文件中PasswordAuthentication参数值是否已经改成yes<br>另外如果客户端是putty 那么请确认”尝试智能键盘认证SSH-2”的勾是否有去掉!!!!</li><li>如果是使用root帐号登陆<br>请确认密码是否为空<br>空密码无法登陆</li><li>请确认是否有安装SSH<br>确认sysinstall&gt;&gt;&gt;configure&gt;&gt;&gt;networking&gt;&gt;&gt;sshd是否的勾是否有打上.</li></ol><ol start="5"><li>Please login as the user “ingressjinyu” rather than the user “root”.<blockquote><p>nano /root/.ssh/authorized_keys</p></blockquote></li></ol><pre><code>no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command=&quot;echo &apos;Please login as the user &quot;ubuntu&quot; rather than the user &quot;root&quot;.&apos;;echo;sleep 10&quot; ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek4FPQJABENkrUiLVP61LObdFAZXvs2EpCf/nBQCRg4ykMNg+8TC9lb7jC65zfIrTUcNcwongDb43k6miSKu1M8fdqXDpcb8CdDRaKpM2wP8l+hTaJ2aWycXmGJ7lZKQPiwNUOhbrOLNEtDmOI9eiVlz7See98LVLW+6AwfzNA8Cu4riDTvEMQr/WQ9NLrS3BZE1TAAswJi9lGDfTgEvfh4Ji+eI/xTXrjkkwjerkjk3jrkwejrkjwe9wASXob4rbV12TXjQIcMKaRGQAGrwOHu0nM2ibfTdgqjrTAG03CXKzQhF09LdxKlT7GpYe0oVU2R1kjkejwQp howtoing.com</code></pre><p>删除ssh-rsa 前面的no-port….</p><p>参考:<a href="http://blog.csdn.net/jia0511/article/details/8237698" target="_blank" rel="noopener">http://blog.csdn.net/jia0511/article/details/8237698</a></p>]]></content>
</entry>
<entry>
<title>清洁打印CSDN文章</title>
<link href="/20191130.html"/>
<url>/20191130.html</url>
<content type="html"><![CDATA[<h2 id="打印CSDN内容将以下js复制放入Chrome开发者选项里边的console回车即可"><a href="#打印CSDN内容将以下js复制放入Chrome开发者选项里边的console回车即可" class="headerlink" title="打印CSDN内容将以下js复制放入Chrome开发者选项里边的console回车即可"></a>打印CSDN内容将以下js复制放入Chrome开发者选项里边的console回车即可</h2><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">(<span class="function"><span class="keyword">function</span>(<span class="params"></span>)</span>&#123;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">$(<span class="string">"#side"</span>).remove();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">$(<span class="string">"#comment_title, #comment_list, #comment_bar, #comment_form, .announce, #ad_cen, #ad_bot"</span>).remove();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line">$(<span class="string">".nav_top_2011, #header, #navigator"</span>).remove();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line">$(<span class="string">".p4course_target, .comment-box, .recommend-box, #csdn-toolbar, #tool-box"</span>).remove();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line">$(<span class="string">"aside"</span>).remove();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line">$(<span class="string">".tool-box"</span>).remove();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line">$(<span class="string">"main"</span>).css(<span class="string">'display'</span>,<span class="string">'content'</span>);</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line">$(<span class="string">"main"</span>).css(<span class="string">'float'</span>,<span class="string">'left'</span>);</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"><span class="built_in">window</span>.print();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line">$(<span class="string">"tool-box"</span>).remove();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line">&#125;)();</span></pre></td></tr></table></figure><p><img src="https://tvax3.sinaimg.cn/large/a162fbb5gy1gdc0p7chztj20z21dn4l3.jpg" alt="图片测试"></p>]]></content>
</entry>
<entry>
<title>雨曦降临</title>
<link href="/20190913.html"/>
<url>/20190913.html</url>
<content type="html"><![CDATA[<h1 id="可爱的雨曦来啦"><a href="#可爱的雨曦来啦" class="headerlink" title="可爱的雨曦来啦!"></a>可爱的雨曦来啦!</h1>]]></content>
<tags>
<tag> Hexo </tag>
<tag> 雨曦 </tag>
</tags>
</entry>
<entry>
<title>按键精灵脚本开发_环境准备</title>
<link href="/20180913.html"/>
<url>/20180913.html</url>
<content type="html"><![CDATA[<h1 id="按键精灵脚本开发-环境准备"><a href="#按键精灵脚本开发-环境准备" class="headerlink" title="按键精灵脚本开发_环境准备"></a>按键精灵脚本开发_环境准备</h1><h2 id="1-使用-Windows经典主题"><a href="#1-使用-Windows经典主题" class="headerlink" title="1. 使用 Windows经典主题"></a>1. 使用 Windows经典主题</h2><h2 id="2-关闭-平滑屏幕字体边缘"><a href="#2-关闭-平滑屏幕字体边缘" class="headerlink" title="2. 关闭 平滑屏幕字体边缘"></a>2. 关闭 平滑屏幕字体边缘</h2><p>系统属性–&gt;高级–&gt;性能选项(设置)&gt;视觉效果–&gt;平滑屏幕字体边缘</p><h2 id="3-编程字体-MONACO"><a href="#3-编程字体-MONACO" class="headerlink" title="3. 编程字体 MONACO"></a>3. 编程字体 MONACO</h2>]]></content>
<tags>
<tag> 按键精灵 </tag>
</tags>
</entry>
<entry>
<title>ViewHolder的超简洁写法</title>
<link href="/20160816.html"/>
<url>/20160816.html</url>
<content type="html"><![CDATA[<p>ViewHoder如下:</p><a id="more"></a><figure class="highlight pgsql"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line"><span class="built_in">public</span> <span class="keyword">class</span> ViewHolder &#123; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"> // I added a generic <span class="keyword">return</span> <span class="keyword">type</span> <span class="keyword">to</span> reduce the casting noise <span class="keyword">in</span> client code </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"> @SuppressWarnings("unchecked") </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"> <span class="built_in">public</span> static &lt;T extends <span class="keyword">View</span>&gt; T <span class="keyword">get</span>(<span class="keyword">View</span> <span class="keyword">view</span>, <span class="type">int</span> id) &#123; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"> SparseArray&lt;<span class="keyword">View</span>&gt; viewHolder = (SparseArray&lt;<span class="keyword">View</span>&gt;) <span class="keyword">view</span>.getTag(); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"> <span class="keyword">if</span> (viewHolder == <span class="keyword">null</span>) &#123; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"> viewHolder = <span class="built_in">new</span> SparseArray&lt;<span class="keyword">View</span>&gt;(); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"> <span class="keyword">view</span>.setTag(viewHolder); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"> &#125; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"> <span class="keyword">View</span> childView = viewHolder.<span class="keyword">get</span>(id); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"> <span class="keyword">if</span> (childView == <span class="keyword">null</span>) &#123; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"> childView = <span class="keyword">view</span>.findViewById(id); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"> viewHolder.put(id, childView); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">14</span></pre></td><td class="code"><pre><span class="line"> &#125; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">15</span></pre></td><td class="code"><pre><span class="line"> <span class="keyword">return</span> (T) childView; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">16</span></pre></td><td class="code"><pre><span class="line"> &#125; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">17</span></pre></td><td class="code"><pre><span class="line">&#125;</span></pre></td></tr></table></figure><p>在getView里这样</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">@Override </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">public View get<span class="constructor">View(<span class="params">int</span> <span class="params">position</span>, View <span class="params">convertView</span>, ViewGroup <span class="params">parent</span>)</span> &#123; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"> <span class="keyword">if</span> (convertView<span class="operator"> == </span>null) &#123; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"> convertView = <span class="module-access"><span class="module"><span class="identifier">LayoutInflater</span>.</span></span>from(context) </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"> .inflate(<span class="module-access"><span class="module"><span class="identifier">R</span>.</span></span>layout.banana_phone, parent, <span class="literal">false</span>); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"> &#125; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"> ImageView bananaView = <span class="module-access"><span class="module"><span class="identifier">ViewHolder</span>.</span></span>get(convertView, <span class="module-access"><span class="module"><span class="identifier">R</span>.</span></span>id.banana); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"> TextView phoneView = <span class="module-access"><span class="module"><span class="identifier">ViewHolder</span>.</span></span>get(convertView, <span class="module-access"><span class="module"><span class="identifier">R</span>.</span></span>id.phone); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"> BananaPhone bananaPhone = get<span class="constructor">Item(<span class="params">position</span>)</span>; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"> phoneView.set<span class="constructor">Text(<span class="params">bananaPhone</span>.<span class="params">getPhone</span>()</span>); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">14</span></pre></td><td class="code"><pre><span class="line"> bananaView.set<span class="constructor">ImageResource(<span class="params">bananaPhone</span>.<span class="params">getBanana</span>()</span>); </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">15</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">16</span></pre></td><td class="code"><pre><span class="line"> return convertView; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">17</span></pre></td><td class="code"><pre><span class="line">&#125;</span></pre></td></tr></table></figure><p><a href="http://www.eoeandroid.com/thread-321547-1-1.html" target="_blank" rel="noopener">来源</a></p>]]></content>
<tags>
<tag> 工具类 </tag>
</tags>
</entry>
<entry>
<title>android 限制广播消息的接收者</title>
<link href="/20150613.html"/>
<url>/20150613.html</url>
<content type="html"><![CDATA[<p>在android系统中sendBroadcast和BroadcastReceiver。只要BroadcastReceiver指定的action和sendBroadcast action一致就可以就行消息接收。但是我们有这样的需求即我发送的广播不允许所有应用都可以接收广播消息而是要经过发送者允许的才可以。比如某一个产品簇每一个产品发送的广播消息只允许本簇内的产品才允许接收消息。其它应用即使action一样也无法接收消息。这样就大大的提供了产品的安全性。那么如何实现呢本文主要目的就是于此。</p><a id="more"></a><h2 id="一、只允许本应用内允许接收"><a href="#一、只允许本应用内允许接收" class="headerlink" title="一、只允许本应用内允许接收"></a>一、只允许本应用内允许接收</h2><h3 id="解决方案一LocalBroadcastManager-(局部广播)"><a href="#解决方案一LocalBroadcastManager-(局部广播)" class="headerlink" title="解决方案一LocalBroadcastManager (局部广播)"></a>解决方案一LocalBroadcastManager (局部广播)</h3><p><strong>优点:</strong></p><ol><li><p>因广播数据在本应用范围内传播,你不用担心隐私数据泄露的问题。</p></li><li><p>不用担心别的应用伪造广播,造成安全隐患。</p></li><li><p>相比在系统内发送全局广播,它更高效。</p></li></ol><p><strong>缺点:</strong></p><ol><li><p>它只能够在同一个进程使用,如果本应用是多进程的。必须保证发送者和接收者是在同一个进程内。</p></li><li><p>它只能够动态注册和取消。</p></li></ol><h4 id="使用实例"><a href="#使用实例" class="headerlink" title="使用实例"></a>使用实例</h4><p>先通过LocalBroadcastManager获取实例</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(<span class="keyword">this</span>);</span></pre></td></tr></table></figure><p>然后通过函数 registerReceiver来注册监听器</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">registerReceiver(newBroadcastReceiver() &#123; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"> <span class="meta">@Override</span> </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"> <span class="function"><span class="keyword">public</span> <span class="keyword">void</span> <span class="title">onReceive</span><span class="params">(Context context, Intent intent)</span> </span>&#123; </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"> <span class="comment">// TODO Handle the received local broadcast</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"> &#125;</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"> </span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line">&#125;, newIntentFilter(XXXX));</span></pre></td></tr></table></figure><p>通过 sendBroadcast 函数来发送广播</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">lbm.sendBroadcast(newIntent(XXXX));</span></pre></td></tr></table></figure><h3 id="解决方案二intent-指定包名Intent-setPackage设置广播仅对本程序有效【见二】"><a href="#解决方案二intent-指定包名Intent-setPackage设置广播仅对本程序有效【见二】" class="headerlink" title="解决方案二intent 指定包名Intent.setPackage设置广播仅对本程序有效【见二】"></a>解决方案二intent 指定包名Intent.setPackage设置广播仅对本程序有效【见二】</h3><h2 id="二、指定某一个应用允许接收"><a href="#二、指定某一个应用允许接收" class="headerlink" title="二、指定某一个应用允许接收"></a>二、指定某一个应用允许接收</h2><h3 id="解决方案intent-指定包名Intent-setPackage设置广播仅对相同包名的有效"><a href="#解决方案intent-指定包名Intent-setPackage设置广播仅对相同包名的有效" class="headerlink" title="解决方案intent 指定包名Intent.setPackage设置广播仅对相同包名的有效"></a>解决方案intent 指定包名Intent.setPackage设置广播仅对相同包名的有效</h3><p><strong>优点:</strong></p><ol><li><p>支持跨进程</p></li><li><p>receiver可以是静态注册也可以是动态注册。</p></li><li><p>只有指定的包名的应用程序才能够接收到数据,所以安全性较高。</p></li></ol><p><strong>缺点:</strong></p><ol><li><p>如果一旦反编译,很容易伪造广播,造成安全隐患</p></li><li><p>在系统内发生全局广播,它效率较低</p></li><li><p>它只能够满足一个应用的需求,不能够同时指定多个</p></li></ol><h4 id="使用实例-1"><a href="#使用实例-1" class="headerlink" title="使用实例_"></a>使用实例_</h4><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">Intent intent = <span class="keyword">new</span> Intent();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">intent.setPackage(<span class="string">"应用包名"</span>);</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">intent.setAction(<span class="string">"消息action"</span>);</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line">sendBroadcast(intent);</span></pre></td></tr></table></figure><h2 id="三、指定某一个receiver允许接收"><a href="#三、指定某一个receiver允许接收" class="headerlink" title="三、指定某一个receiver允许接收"></a>三、指定某一个receiver允许接收</h2><h3 id="解决方案intent-指定包名Intent-setComponent设置广播仅对相同包名的有效"><a href="#解决方案intent-指定包名Intent-setComponent设置广播仅对相同包名的有效" class="headerlink" title="解决方案intent 指定包名Intent. setComponent设置广播仅对相同包名的有效"></a>解决方案intent 指定包名Intent. setComponent设置广播仅对相同包名的有效</h3><p><strong>优点:</strong></p><ol><li><p>可以指定到具体某一个receiver安全性更高</p></li><li><p>receiver可以是静态注册也可以是动态注册。</p></li></ol><p><strong>缺点:</strong></p><ol><li>它只能指定一个receiver局限性较大</li></ol><p>使用实例:</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">Intent intent = <span class="keyword">new</span> Intent();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">intent. setComponent(newComponentName(<span class="string">"包名"</span>, <span class="string">"Receiver类名"</span>));</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line">intent.setAction(<span class="string">"消息action"</span>);</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line">sendBroadcast(intent);</span></pre></td></tr></table></figure><h2 id="四、指定多个应用有权接收"><a href="#四、指定多个应用有权接收" class="headerlink" title="四、指定多个应用有权接收"></a>四、指定多个应用有权接收</h2><h3 id="解决方案sendBroadcast-Intent-String-的接口在发送广播时指定接收者必须具备的permission"><a href="#解决方案sendBroadcast-Intent-String-的接口在发送广播时指定接收者必须具备的permission" class="headerlink" title="解决方案sendBroadcast(Intent, String)的接口在发送广播时指定接收者必须具备的permission"></a>解决方案sendBroadcast(Intent, String)的接口在发送广播时指定接收者必须具备的permission</h3><p>如果担心反编译后权限被窃取限制失效。可以在声明权限时提高权限的leverl为签名验证即只有相同签名的应用且有该权限才能够接收这样就能够满足产品簇的问题。</p><p>使用实例:</p><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">AndroidManifest.xml</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line"> <span class="tag">&lt;<span class="name">permission</span> <span class="attr">android:description</span>=<span class="string">"@string/XXX"</span> </span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"><span class="tag"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line"><span class="tag"> <span class="attr">android:label</span>=<span class="string">"XXXX"</span> </span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line"><span class="tag"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line"><span class="tag"> <span class="attr">android:name</span>=<span class="string">" com.test.permission"</span> </span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line"><span class="tag"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line"><span class="tag"> <span class="attr">android:protectionLevel</span>=<span class="string">" signature"</span>&gt;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line"> <span class="tag">&lt;<span class="name">receiver</span></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">12</span></pre></td><td class="code"><pre><span class="line"><span class="tag"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">13</span></pre></td><td class="code"><pre><span class="line"><span class="tag"> <span class="attr">android:name</span>=<span class="string">"XXXX"</span></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">14</span></pre></td><td class="code"><pre><span class="line"><span class="tag"></span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">15</span></pre></td><td class="code"><pre><span class="line"><span class="tag"> <span class="attr">android:permission</span>=<span class="string">"com.test.permission"</span> &gt;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">16</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">17</span></pre></td><td class="code"><pre><span class="line"> <span class="tag">&lt;<span class="name">intent-filter</span> &gt;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">18</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">19</span></pre></td><td class="code"><pre><span class="line"> <span class="tag">&lt;<span class="name">actionandroid:name="XXXXX"</span> /&gt;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">20</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">21</span></pre></td><td class="code"><pre><span class="line"> <span class="tag">&lt;/<span class="name">intent-filter</span>&gt;</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">22</span></pre></td><td class="code"><pre><span class="line"> <span class="tag">&lt;/<span class="name">receiver</span>&gt;</span></span></pre></td></tr></table></figure><p>Java:</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">Intent intent = <span class="keyword">new</span> Intent();</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">intent.setAction(<span class="string">"消息action"</span>);</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line"></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line">sendBroadcast(intent, <span class="string">"com.test.permission"</span>);</span></pre></td></tr></table></figure><p>注意:如果要求安全级别较高,使用签名验证机制即使优点又是缺点。目前还没有找到更好的方法,能够满足多个指定应用都能够接收消息,且安全级别不会受到伪造或窃取的风险。</p><p>原文:<a href="http://blog.csdn.net/mingli198611/article/details/17762149" target="_blank" rel="noopener" title="CSDN_小M的专栏">http://blog.csdn.net/mingli198611/article/details/17762149</a></p>]]></content>
<tags>
<tag> 广播安全 </tag>
</tags>
</entry>
<entry>
<title>Hello World</title>
<link href="/20140520.html"/>
<url>/20140520.html</url>
<content type="html"><![CDATA[<p>Welcome to <a href="http://hexo.io/" target="_blank" rel="noopener">Hexo</a>! This is your very first post. Check <a href="http://hexo.io/docs/" target="_blank" rel="noopener">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="http://hexo.io/docs/troubleshooting.html" target="_blank" rel="noopener">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="noopener">GitHub</a>.</p><a id="more"></a><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">"My New Post"</span></span></pre></td></tr></table></figure><p>More info: <a href="http://hexo.io/docs/writing.html" target="_blank" rel="noopener">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">$ hexo server</span></pre></td></tr></table></figure><p>More info: <a href="http://hexo.io/docs/server.html" target="_blank" rel="noopener">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">$ hexo generate</span></pre></td></tr></table></figure><p>More info: <a href="http://hexo.io/docs/generating.html" target="_blank" rel="noopener">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span></pre></td></tr></table></figure><p>More info: <a href="http://hexo.io/docs/deployment.html" target="_blank" rel="noopener">Deployment</a></p>]]></content>
</entry>
</search>