Site updated: 2022-11-02 08:02:13
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
94
atom.xml
94
atom.xml
@@ -1,21 +1,95 @@
|
||||
<?xml version="1.0"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<id>https://blog.jingxiyuan.cn</id>
|
||||
<title>Hito的公告栏</title>
|
||||
<title>涛声依旧</title>
|
||||
<subtitle>天下事有难易乎?为之,则难者亦易矣</subtitle>
|
||||
<icon>https://blog.jingxiyuan.cn/images/favicon.ico</icon>
|
||||
<link href="https://blog.jingxiyuan.cn" />
|
||||
<author>
|
||||
<name>Hito li</name>
|
||||
<name>Hito Li</name>
|
||||
</author>
|
||||
<updated>2022-11-01T07:20:00.000Z</updated>
|
||||
<updated>2022-11-02T08:29:00.000Z</updated>
|
||||
<category term="hito" />
|
||||
<category term="無言" />
|
||||
<category term="博客" />
|
||||
<category term="公告栏" />
|
||||
<category term="笔记" />
|
||||
<category term="心得体会" />
|
||||
<category term="技术分享" />
|
||||
<category term="踩坑" />
|
||||
<entry>
|
||||
<id>https://blog.jingxiyuan.cn/2022/11/02/2-dev-null%E5%92%8C-dev-null-2-1%E5%92%8C2-1-dev-null%E7%9A%84%E5%8C%BA%E5%88%AB/</id>
|
||||
<title>2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的区别</title>
|
||||
<link rel="alternate" href="https://blog.jingxiyuan.cn/2022/11/02/2-dev-null%E5%92%8C-dev-null-2-1%E5%92%8C2-1-dev-null%E7%9A%84%E5%8C%BA%E5%88%AB/"/>
|
||||
<content type="html"><h4 id="区别"><a class="anchor" href="#区别">#</a> 区别:</h4>
|
||||
<pre><code class="language-bash">2&gt;/dev/null
|
||||
</code></pre>
|
||||
<p>意思就是把错误输出到 “黑洞”</p>
|
||||
<pre><code class="language-bash">&gt;/dev/null 2&gt;&amp;1
|
||||
</code></pre>
|
||||
<p>默认情况是 1,也就是等同于 1&gt;/dev/null 2&gt;&amp;1。意思就是把标准输出重定向到 “黑洞”,还把错误输出 2 重定向到标准输出 1,也就是标准输出和错误输出都进了 “黑洞”</p>
|
||||
<pre><code class="language-bash">2&gt;&amp;1 &gt;/dev/null
|
||||
</code></pre>
|
||||
<p>意思就是把错误输出 2 重定向到标准出书 1,也就是屏幕,标准输出进了 “黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕</p>
|
||||
<h4 id="解释"><a class="anchor" href="#解释">#</a> 解释:</h4>
|
||||
<ol>
|
||||
<li>
|
||||
<p>文件描述符<br />
|
||||
Linux 系统预留三个文件描述符:0、1 和 2,他们的意义如下所示:<br />
|
||||
0—— 标准输入(stdin)<br />
|
||||
略...<br />
|
||||
1—— 标准输出(stdout)<br />
|
||||
在当前目录下,有且只有一个文件名称为 a.txt 的文件,这时我们运行这个命令【ls a.txt】, 就会获得一个标准输出 stdout 的输出结果:a.txt<br />
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/11/01/newscreen629761046.jpg" alt="" /><br />
|
||||
2—— 标准错误(stderr)<br />
|
||||
在当前目录下,有且只有一个文件名称为 a.txt 的文件,我们运行命令【ls b.txt】,我们就会获得一个标准错误 stderr 的输出结果 “ls:无法访问 b.txt:没有这样的文件或目录”。<br />
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/11/01/newscreen629793578.jpg" alt="" /></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>重定向<br />
|
||||
重定向的符号有两个:&gt; 或 &gt;&gt;,两者的区别是:前者会先清空文件,然后再写入内容,后者会将重定向的内容追加到现有文件的尾部。举例如下:</p>
|
||||
</li>
|
||||
</ol>
|
||||
<ul>
|
||||
<li>
|
||||
<p>重定向标准输出 stdout<br />
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/11/01/newscreen630033531.jpg" alt="" /><br />
|
||||
如上图所示,对比没有添加重定向的操作,这条命令在使用之后并没有将 a.txt 打印到屏幕。在紧接的 cat 操作后,可以发现本来应该被输出的内容被记录到 stdout.txt 中。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>重定向标准错误 stderr<br />
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/11/01/newscreen630256640.jpg" alt="" /><br />
|
||||
如上图所示,文件描述符 2,标准错误的重定向也是同样的原理被记录在了文件 stderr.txt 这个文件里面了。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>可以将 stderr 单独定向到一个文件,stdout 重定向到另一个文件</p>
|
||||
</li>
|
||||
</ul>
|
||||
<pre><code class="language-bash">ls b.txt 2&gt; stderr.txt 1&gt;stdout.txt
|
||||
</code></pre>
|
||||
<ul>
|
||||
<li>也可以将 stderr 和 stdout 重定向到同一个文件</li>
|
||||
</ul>
|
||||
<pre><code class="language-bash">ls b.txt &gt; output.txt 2&gt;&amp;1
|
||||
</code></pre>
|
||||
<ul>
|
||||
<li>或采用下面的方法,可以少写几个字,能达到同样的效果</li>
|
||||
</ul>
|
||||
<pre><code class="language-bash">ls b.txt &amp;&gt; output.txt
|
||||
ls b.txt &gt;&amp; output.txt #两个表达式效果一样的
|
||||
</code></pre>
|
||||
<ol start="3">
|
||||
<li>Linux 特殊文件<br />
|
||||
/dev/null 是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。因此,null 这个设备通常也被称为位桶(bit bucket)或黑洞。<br />
|
||||
所以,2&gt;/dev/null 的意思就是将标准错误 stderr 删掉。</li>
|
||||
</ol>
|
||||
</content>
|
||||
<category term="Linux" scheme="https://blog.jingxiyuan.cn/categories/Linux/" />
|
||||
<category term="Shell" scheme="https://blog.jingxiyuan.cn/categories/Linux/Shell/" />
|
||||
<category term="Shell" scheme="https://blog.jingxiyuan.cn/tags/Shell/" />
|
||||
<category term="2>&1" scheme="https://blog.jingxiyuan.cn/tags/2-1/" />
|
||||
<updated>2022-11-02T08:29:00.000Z</updated>
|
||||
</entry>
|
||||
<entry>
|
||||
<id>https://blog.jingxiyuan.cn/2022/11/01/360%E7%8B%AC%E7%AB%8B%E7%89%88%E5%B0%8F%E5%B7%A5%E5%85%B7/</id>
|
||||
<title>360独立版小工具</title>
|
||||
@@ -1162,18 +1236,4 @@ server &#123;
|
||||
<category term="js" scheme="https://blog.jingxiyuan.cn/tags/js/" />
|
||||
<updated>2022-09-22T02:30:00.000Z</updated>
|
||||
</entry>
|
||||
<entry>
|
||||
<id>https://blog.jingxiyuan.cn/2022/09/21/%E8%AE%B0%E4%B8%80%E6%AC%A1netty-socket-io%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%BF%9E%E6%8E%A5%E4%B8%8D%E4%B8%8A%E7%9A%84%E9%97%AE%E9%A2%98/</id>
|
||||
<title>记一次netty-socketio服务端连接不上的问题</title>
|
||||
<link rel="alternate" href="https://blog.jingxiyuan.cn/2022/09/21/%E8%AE%B0%E4%B8%80%E6%AC%A1netty-socket-io%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%BF%9E%E6%8E%A5%E4%B8%8D%E4%B8%8A%E7%9A%84%E9%97%AE%E9%A2%98/"/>
|
||||
<content type="html"><p> <em>今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者 POLLING,于是我在工具中按要求填上结果还是不行。然后我在网上搜索也未发现有相关问题,只发现有网友提示需要用 socketio 的库,不要自己写 socket 连接。于是我找了 socket.io.js 来连接,结果还是一样。经过大量调试改代码,最后突发奇想,有没有可能跟 netty-socketio 的版本有关系,于是我把版本从 1.7.20 升级到 1.7.21,结果就奇迹般的好了。</em></p>
|
||||
<h6 id="总结就好像大力出奇迹实在找不到原因的时候不妨升级一下版本说不定问题就解决了呢o_o"><a class="anchor" href="#总结就好像大力出奇迹实在找不到原因的时候不妨升级一下版本说不定问题就解决了呢o_o">#</a> 总结:就好像大力出奇迹,实在找不到原因的时候不妨升级一下版本,说不定问题就解决了呢!O (∩_∩) O</h6>
|
||||
</content>
|
||||
<category term="生活" scheme="https://blog.jingxiyuan.cn/categories/%E7%94%9F%E6%B4%BB/" />
|
||||
<category term="心得体会" scheme="https://blog.jingxiyuan.cn/categories/%E7%94%9F%E6%B4%BB/%E5%BF%83%E5%BE%97%E4%BD%93%E4%BC%9A/" />
|
||||
<category term="踩坑" scheme="https://blog.jingxiyuan.cn/tags/%E8%B8%A9%E5%9D%91/" />
|
||||
<category term="netty" scheme="https://blog.jingxiyuan.cn/tags/netty/" />
|
||||
<category term="socketIO" scheme="https://blog.jingxiyuan.cn/tags/socketIO/" />
|
||||
<updated>2022-09-21T01:46:00.000Z</updated>
|
||||
</entry>
|
||||
</feed>
|
||||
|
1
categories/Linux/Shell/index.html
Normal file
1
categories/Linux/Shell/index.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
29
feed.json
29
feed.json
@@ -1,11 +1,24 @@
|
||||
{
|
||||
"version": "https://jsonfeed.org/version/1",
|
||||
"title": "Hito的公告栏",
|
||||
"title": "涛声依旧",
|
||||
"subtitle": "天下事有难易乎?为之,则难者亦易矣",
|
||||
"icon": "https://blog.jingxiyuan.cn/images/favicon.ico",
|
||||
"description": "hito的博客",
|
||||
"home_page_url": "https://blog.jingxiyuan.cn",
|
||||
"items": [
|
||||
{
|
||||
"id": "https://blog.jingxiyuan.cn/2022/11/02/2-dev-null%E5%92%8C-dev-null-2-1%E5%92%8C2-1-dev-null%E7%9A%84%E5%8C%BA%E5%88%AB/",
|
||||
"url": "https://blog.jingxiyuan.cn/2022/11/02/2-dev-null%E5%92%8C-dev-null-2-1%E5%92%8C2-1-dev-null%E7%9A%84%E5%8C%BA%E5%88%AB/",
|
||||
"title": "2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的区别",
|
||||
"date_published": "2022-11-02T08:29:00.000Z",
|
||||
"content_html": "<h4 id=\"区别\"><a class=\"anchor\" href=\"#区别\">#</a> 区别:</h4>\n<pre><code class=\"language-bash\">2>/dev/null\n</code></pre>\n<p>意思就是把错误输出到 “黑洞”</p>\n<pre><code class=\"language-bash\">>/dev/null 2>&1\n</code></pre>\n<p>默认情况是 1,也就是等同于 1>/dev/null 2>&1。意思就是把标准输出重定向到 “黑洞”,还把错误输出 2 重定向到标准输出 1,也就是标准输出和错误输出都进了 “黑洞”</p>\n<pre><code class=\"language-bash\">2>&1 >/dev/null\n</code></pre>\n<p>意思就是把错误输出 2 重定向到标准出书 1,也就是屏幕,标准输出进了 “黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕</p>\n<h4 id=\"解释\"><a class=\"anchor\" href=\"#解释\">#</a> 解释:</h4>\n<ol>\n<li>\n<p>文件描述符<br />\n Linux 系统预留三个文件描述符:0、1 和 2,他们的意义如下所示:<br />\n0—— 标准输入(stdin)<br />\n略...<br />\n1—— 标准输出(stdout)<br />\n在当前目录下,有且只有一个文件名称为 a.txt 的文件,这时我们运行这个命令【ls a.txt】, 就会获得一个标准输出 stdout 的输出结果:a.txt<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/11/01/newscreen629761046.jpg\" alt=\"\" /><br />\n2—— 标准错误(stderr)<br />\n在当前目录下,有且只有一个文件名称为 a.txt 的文件,我们运行命令【ls b.txt】,我们就会获得一个标准错误 stderr 的输出结果 “ls:无法访问 b.txt:没有这样的文件或目录”。<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/11/01/newscreen629793578.jpg\" alt=\"\" /></p>\n</li>\n<li>\n<p>重定向<br />\n重定向的符号有两个:> 或 >>,两者的区别是:前者会先清空文件,然后再写入内容,后者会将重定向的内容追加到现有文件的尾部。举例如下:</p>\n</li>\n</ol>\n<ul>\n<li>\n<p>重定向标准输出 stdout<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/11/01/newscreen630033531.jpg\" alt=\"\" /><br />\n 如上图所示,对比没有添加重定向的操作,这条命令在使用之后并没有将 a.txt 打印到屏幕。在紧接的 cat 操作后,可以发现本来应该被输出的内容被记录到 stdout.txt 中。</p>\n</li>\n<li>\n<p>重定向标准错误 stderr<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/11/01/newscreen630256640.jpg\" alt=\"\" /><br />\n 如上图所示,文件描述符 2,标准错误的重定向也是同样的原理被记录在了文件 stderr.txt 这个文件里面了。</p>\n</li>\n<li>\n<p>可以将 stderr 单独定向到一个文件,stdout 重定向到另一个文件</p>\n</li>\n</ul>\n<pre><code class=\"language-bash\">ls b.txt 2> stderr.txt 1>stdout.txt\n</code></pre>\n<ul>\n<li>也可以将 stderr 和 stdout 重定向到同一个文件</li>\n</ul>\n<pre><code class=\"language-bash\">ls b.txt > output.txt 2>&1\n</code></pre>\n<ul>\n<li>或采用下面的方法,可以少写几个字,能达到同样的效果</li>\n</ul>\n<pre><code class=\"language-bash\">ls b.txt &> output.txt\nls b.txt >& output.txt #两个表达式效果一样的\n</code></pre>\n<ol start=\"3\">\n<li>Linux 特殊文件<br />\n /dev/null 是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。因此,null 这个设备通常也被称为位桶(bit bucket)或黑洞。<br />\n所以,2>/dev/null 的意思就是将标准错误 stderr 删掉。</li>\n</ol>\n",
|
||||
"tags": [
|
||||
"Linux",
|
||||
"Shell",
|
||||
"Shell",
|
||||
"2>&1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "https://blog.jingxiyuan.cn/2022/11/01/360%E7%8B%AC%E7%AB%8B%E7%89%88%E5%B0%8F%E5%B7%A5%E5%85%B7/",
|
||||
"url": "https://blog.jingxiyuan.cn/2022/11/01/360%E7%8B%AC%E7%AB%8B%E7%89%88%E5%B0%8F%E5%B7%A5%E5%85%B7/",
|
||||
@@ -274,20 +287,6 @@
|
||||
"protobuf",
|
||||
"js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "https://blog.jingxiyuan.cn/2022/09/21/%E8%AE%B0%E4%B8%80%E6%AC%A1netty-socket-io%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%BF%9E%E6%8E%A5%E4%B8%8D%E4%B8%8A%E7%9A%84%E9%97%AE%E9%A2%98/",
|
||||
"url": "https://blog.jingxiyuan.cn/2022/09/21/%E8%AE%B0%E4%B8%80%E6%AC%A1netty-socket-io%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%BF%9E%E6%8E%A5%E4%B8%8D%E4%B8%8A%E7%9A%84%E9%97%AE%E9%A2%98/",
|
||||
"title": "记一次netty-socketio服务端连接不上的问题",
|
||||
"date_published": "2022-09-21T01:46:00.000Z",
|
||||
"content_html": "<p> <em>今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者 POLLING,于是我在工具中按要求填上结果还是不行。然后我在网上搜索也未发现有相关问题,只发现有网友提示需要用 socketio 的库,不要自己写 socket 连接。于是我找了 socket.io.js 来连接,结果还是一样。经过大量调试改代码,最后突发奇想,有没有可能跟 netty-socketio 的版本有关系,于是我把版本从 1.7.20 升级到 1.7.21,结果就奇迹般的好了。</em></p>\n<h6 id=\"总结就好像大力出奇迹实在找不到原因的时候不妨升级一下版本说不定问题就解决了呢o_o\"><a class=\"anchor\" href=\"#总结就好像大力出奇迹实在找不到原因的时候不妨升级一下版本说不定问题就解决了呢o_o\">#</a> 总结:就好像大力出奇迹,实在找不到原因的时候不妨升级一下版本,说不定问题就解决了呢!O (∩_∩) O</h6>\n",
|
||||
"tags": [
|
||||
"生活",
|
||||
"心得体会",
|
||||
"踩坑",
|
||||
"netty",
|
||||
"socketIO"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
96
rss.xml
96
rss.xml
@@ -1,24 +1,98 @@
|
||||
<?xml version="1.0"?>
|
||||
<rss version="2.0">
|
||||
<channel>
|
||||
<title>Hito的公告栏</title>
|
||||
<title>涛声依旧</title>
|
||||
<subtitle>天下事有难易乎?为之,则难者亦易矣</subtitle>
|
||||
<icon>https://blog.jingxiyuan.cn/images/favicon.ico</icon>
|
||||
<link>https://blog.jingxiyuan.cn</link>
|
||||
<author>
|
||||
<name>Hito li</name>
|
||||
<name>Hito Li</name>
|
||||
</author>
|
||||
<description>hito的博客</description>
|
||||
<language>zh-CN</language>
|
||||
<pubDate>Tue, 01 Nov 2022 15:20:00 +0800</pubDate>
|
||||
<lastBuildDate>Tue, 01 Nov 2022 15:20:00 +0800</lastBuildDate>
|
||||
<pubDate>Wed, 02 Nov 2022 16:29:00 +0800</pubDate>
|
||||
<lastBuildDate>Wed, 02 Nov 2022 16:29:00 +0800</lastBuildDate>
|
||||
<category term="hito" />
|
||||
<category term="無言" />
|
||||
<category term="博客" />
|
||||
<category term="公告栏" />
|
||||
<category term="笔记" />
|
||||
<category term="心得体会" />
|
||||
<category term="技术分享" />
|
||||
<category term="踩坑" />
|
||||
<item>
|
||||
<guid isPermalink="true">https://blog.jingxiyuan.cn/2022/11/02/2-dev-null%E5%92%8C-dev-null-2-1%E5%92%8C2-1-dev-null%E7%9A%84%E5%8C%BA%E5%88%AB/</guid>
|
||||
<title>2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的区别</title>
|
||||
<link>https://blog.jingxiyuan.cn/2022/11/02/2-dev-null%E5%92%8C-dev-null-2-1%E5%92%8C2-1-dev-null%E7%9A%84%E5%8C%BA%E5%88%AB/</link>
|
||||
<category term="Linux" scheme="https://blog.jingxiyuan.cn/categories/Linux/" />
|
||||
<category term="Shell" scheme="https://blog.jingxiyuan.cn/categories/Linux/Shell/" />
|
||||
<category term="Shell" scheme="https://blog.jingxiyuan.cn/tags/Shell/" />
|
||||
<category term="2>&1" scheme="https://blog.jingxiyuan.cn/tags/2-1/" />
|
||||
<pubDate>Wed, 02 Nov 2022 16:29:00 +0800</pubDate>
|
||||
<description><![CDATA[ <h4 id="区别"><a class="anchor" href="#区别">#</a> 区别:</h4>
|
||||
<pre><code class="language-bash">2&gt;/dev/null
|
||||
</code></pre>
|
||||
<p>意思就是把错误输出到 “黑洞”</p>
|
||||
<pre><code class="language-bash">&gt;/dev/null 2&gt;&amp;1
|
||||
</code></pre>
|
||||
<p>默认情况是 1,也就是等同于 1&gt;/dev/null 2&gt;&amp;1。意思就是把标准输出重定向到 “黑洞”,还把错误输出 2 重定向到标准输出 1,也就是标准输出和错误输出都进了 “黑洞”</p>
|
||||
<pre><code class="language-bash">2&gt;&amp;1 &gt;/dev/null
|
||||
</code></pre>
|
||||
<p>意思就是把错误输出 2 重定向到标准出书 1,也就是屏幕,标准输出进了 “黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕</p>
|
||||
<h4 id="解释"><a class="anchor" href="#解释">#</a> 解释:</h4>
|
||||
<ol>
|
||||
<li>
|
||||
<p>文件描述符<br />
|
||||
Linux 系统预留三个文件描述符:0、1 和 2,他们的意义如下所示:<br />
|
||||
0—— 标准输入(stdin)<br />
|
||||
略...<br />
|
||||
1—— 标准输出(stdout)<br />
|
||||
在当前目录下,有且只有一个文件名称为 a.txt 的文件,这时我们运行这个命令【ls a.txt】, 就会获得一个标准输出 stdout 的输出结果:a.txt<br />
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/11/01/newscreen629761046.jpg" alt="" /><br />
|
||||
2—— 标准错误(stderr)<br />
|
||||
在当前目录下,有且只有一个文件名称为 a.txt 的文件,我们运行命令【ls b.txt】,我们就会获得一个标准错误 stderr 的输出结果 “ls:无法访问 b.txt:没有这样的文件或目录”。<br />
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/11/01/newscreen629793578.jpg" alt="" /></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>重定向<br />
|
||||
重定向的符号有两个:&gt; 或 &gt;&gt;,两者的区别是:前者会先清空文件,然后再写入内容,后者会将重定向的内容追加到现有文件的尾部。举例如下:</p>
|
||||
</li>
|
||||
</ol>
|
||||
<ul>
|
||||
<li>
|
||||
<p>重定向标准输出 stdout<br />
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/11/01/newscreen630033531.jpg" alt="" /><br />
|
||||
如上图所示,对比没有添加重定向的操作,这条命令在使用之后并没有将 a.txt 打印到屏幕。在紧接的 cat 操作后,可以发现本来应该被输出的内容被记录到 stdout.txt 中。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>重定向标准错误 stderr<br />
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/11/01/newscreen630256640.jpg" alt="" /><br />
|
||||
如上图所示,文件描述符 2,标准错误的重定向也是同样的原理被记录在了文件 stderr.txt 这个文件里面了。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>可以将 stderr 单独定向到一个文件,stdout 重定向到另一个文件</p>
|
||||
</li>
|
||||
</ul>
|
||||
<pre><code class="language-bash">ls b.txt 2&gt; stderr.txt 1&gt;stdout.txt
|
||||
</code></pre>
|
||||
<ul>
|
||||
<li>也可以将 stderr 和 stdout 重定向到同一个文件</li>
|
||||
</ul>
|
||||
<pre><code class="language-bash">ls b.txt &gt; output.txt 2&gt;&amp;1
|
||||
</code></pre>
|
||||
<ul>
|
||||
<li>或采用下面的方法,可以少写几个字,能达到同样的效果</li>
|
||||
</ul>
|
||||
<pre><code class="language-bash">ls b.txt &amp;&gt; output.txt
|
||||
ls b.txt &gt;&amp; output.txt #两个表达式效果一样的
|
||||
</code></pre>
|
||||
<ol start="3">
|
||||
<li>Linux 特殊文件<br />
|
||||
/dev/null 是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。因此,null 这个设备通常也被称为位桶(bit bucket)或黑洞。<br />
|
||||
所以,2&gt;/dev/null 的意思就是将标准错误 stderr 删掉。</li>
|
||||
</ol>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<guid isPermalink="true">https://blog.jingxiyuan.cn/2022/11/01/360%E7%8B%AC%E7%AB%8B%E7%89%88%E5%B0%8F%E5%B7%A5%E5%85%B7/</guid>
|
||||
<title>360独立版小工具</title>
|
||||
@@ -1163,20 +1237,6 @@ server &#123;
|
||||
<p>执行 protoc.exe --js_out=import_style=commonjs,binary:. ./xxx.proto 命令,就会在 bin 目录下生成 xxx_pb.js 文件</p>
|
||||
</li>
|
||||
</ol>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<guid isPermalink="true">https://blog.jingxiyuan.cn/2022/09/21/%E8%AE%B0%E4%B8%80%E6%AC%A1netty-socket-io%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%BF%9E%E6%8E%A5%E4%B8%8D%E4%B8%8A%E7%9A%84%E9%97%AE%E9%A2%98/</guid>
|
||||
<title>记一次netty-socketio服务端连接不上的问题</title>
|
||||
<link>https://blog.jingxiyuan.cn/2022/09/21/%E8%AE%B0%E4%B8%80%E6%AC%A1netty-socket-io%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%BF%9E%E6%8E%A5%E4%B8%8D%E4%B8%8A%E7%9A%84%E9%97%AE%E9%A2%98/</link>
|
||||
<category term="生活" scheme="https://blog.jingxiyuan.cn/categories/%E7%94%9F%E6%B4%BB/" />
|
||||
<category term="心得体会" scheme="https://blog.jingxiyuan.cn/categories/%E7%94%9F%E6%B4%BB/%E5%BF%83%E5%BE%97%E4%BD%93%E4%BC%9A/" />
|
||||
<category term="踩坑" scheme="https://blog.jingxiyuan.cn/tags/%E8%B8%A9%E5%9D%91/" />
|
||||
<category term="netty" scheme="https://blog.jingxiyuan.cn/tags/netty/" />
|
||||
<category term="socketIO" scheme="https://blog.jingxiyuan.cn/tags/socketIO/" />
|
||||
<pubDate>Wed, 21 Sep 2022 09:46:00 +0800</pubDate>
|
||||
<description><![CDATA[ <p> <em>今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者 POLLING,于是我在工具中按要求填上结果还是不行。然后我在网上搜索也未发现有相关问题,只发现有网友提示需要用 socketio 的库,不要自己写 socket 连接。于是我找了 socket.io.js 来连接,结果还是一样。经过大量调试改代码,最后突发奇想,有没有可能跟 netty-socketio 的版本有关系,于是我把版本从 1.7.20 升级到 1.7.21,结果就奇迹般的好了。</em></p>
|
||||
<h6 id="总结就好像大力出奇迹实在找不到原因的时候不妨升级一下版本说不定问题就解决了呢o_o"><a class="anchor" href="#总结就好像大力出奇迹实在找不到原因的时候不妨升级一下版本说不定问题就解决了呢o_o">#</a> 总结:就好像大力出奇迹,实在找不到原因的时候不妨升级一下版本,说不定问题就解决了呢!O (∩_∩) O</h6>
|
||||
]]></description>
|
||||
</item>
|
||||
</channel>
|
||||
|
1
tags/2-1/index.html
Normal file
1
tags/2-1/index.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
tags/Shell/index.html
Normal file
1
tags/Shell/index.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user