共产主义社会 發表於 2014-9-16 17:18:18

5个经常被忽略的Unix命令

<p>  使用unix系统的用户或许看了以后会有同感,unix系统已经有一段时间了。但还是有一些命令是被我一直忽略的,真希望我能早几年发现这些命令。这些命令点单方便区经常容易忽略,,希望本片可以给一些同样忽略的用户一个善意的提醒。</p>
<p>  1. man ascii</p>
<p>  这个命令会打印出八进制、十六进制和十进制的ASCII码表。难以置信我是一个月之前才知道这个命令的。我总是使用google来查询ASCII码表。这个命令其实更方便。</p>
<p>  </p>
<div class="codeText"><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_3432')">复制内容到剪贴板</span>
<div id="code_3432">
<ol class="dp-cpp">
    <li class="alt"><span><span>ASCII(7)&nbsp;BSD&nbsp;Miscellaneous&nbsp;Information&nbsp;Manual&nbsp;ASCII(7) &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>  NAME &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  ascii&nbsp;--&nbsp;octal,&nbsp;hexadecimal&nbsp;and&nbsp;decimal&nbsp;ASCII&nbsp;character&nbsp;sets &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  DESCRIPTION &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  The&nbsp;octal&nbsp;set: &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  000&nbsp;nul&nbsp;001&nbsp;soh&nbsp;002&nbsp;stx&nbsp;003&nbsp;etx&nbsp;004&nbsp;eot&nbsp;005&nbsp;enq&nbsp;006&nbsp;ack&nbsp;007&nbsp;bel &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  010&nbsp;bs&nbsp;011&nbsp;ht&nbsp;012&nbsp;nl&nbsp;013&nbsp;vt&nbsp;014&nbsp;np&nbsp;015&nbsp;cr&nbsp;016&nbsp;so&nbsp;017&nbsp;si &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  020&nbsp;dle&nbsp;021&nbsp;dc1&nbsp;022&nbsp;dc2&nbsp;023&nbsp;dc3&nbsp;024&nbsp;dc4&nbsp;025&nbsp;nak&nbsp;026&nbsp;syn&nbsp;027&nbsp;etb &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  030&nbsp;can&nbsp;031&nbsp;em&nbsp;032&nbsp;sub&nbsp;033&nbsp;esc&nbsp;034&nbsp;fs&nbsp;035&nbsp;gs&nbsp;036&nbsp;rs&nbsp;037&nbsp;us &nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>  2. cal</p>
<p>  在很多系统上要显示日历一般要通过几个步骤。其实你可以使用 cal 命令。</p>
<div class="codeText"><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_9797')">复制内容到剪贴板</span>
<div id="code_9797">
<ol class="dp-cpp">
    <li class="alt"><span><span>  &gt;&nbsp;cal &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>  August&nbsp;2013 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  Su&nbsp;Mo&nbsp;Tu&nbsp;We&nbsp;Th&nbsp;Fr&nbsp;Sa &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  1&nbsp;2&nbsp;3 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;10 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  11&nbsp;12&nbsp;13&nbsp;14&nbsp;15&nbsp;16&nbsp;17 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  18&nbsp;19&nbsp;20&nbsp;21&nbsp;22&nbsp;23&nbsp;24 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  25&nbsp;26&nbsp;27&nbsp;28&nbsp;29&nbsp;30&nbsp;31 &nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>  3. xxd  当我们需要把二进制转成c语言中使用的16进制字符数组时,命令xxd是很有用的。</p>
<div class="codeText">
<div class="codeHead"><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_8992')">复制内容到剪贴板</span></div>
<div id="code_8992">
<ol class="dp-cpp">
    <li class="alt"><span><span>  &gt;&nbsp;xxd&nbsp;somefile.bin &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>  0000000:&nbsp;83ff&nbsp;0010&nbsp;8d01&nbsp;0408&nbsp;d301&nbsp;0408&nbsp;a540&nbsp;0408&nbsp;.............@.. &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  0000010:&nbsp;d701&nbsp;0408&nbsp;d901&nbsp;0408&nbsp;db01&nbsp;0408&nbsp;0000&nbsp;0000&nbsp;................ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  0000020:&nbsp;0000&nbsp;0000&nbsp;0000&nbsp;0000&nbsp;0000&nbsp;0000&nbsp;1199&nbsp;0508&nbsp;................ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  0000030:&nbsp;df01&nbsp;0408&nbsp;0000&nbsp;0000&nbsp;e199&nbsp;0508&nbsp;1d9a&nbsp;0508&nbsp;................ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  0000040:&nbsp;e501&nbsp;0408&nbsp;2912&nbsp;0508&nbsp;e901&nbsp;0408&nbsp;eb01&nbsp;0408&nbsp;....)........... &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  0000050:&nbsp;ed01&nbsp;0408&nbsp;ef01&nbsp;0408&nbsp;39e0&nbsp;0408&nbsp;55e0&nbsp;0408&nbsp;........9...U... &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  0000060:&nbsp;71e0&nbsp;0408&nbsp;8de0&nbsp;0408&nbsp;a9e0&nbsp;0408&nbsp;39f7&nbsp;0408&nbsp;q...........9... &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  0000070:&nbsp;6df7&nbsp;0408&nbsp;a5f7&nbsp;0408&nbsp;ddf7&nbsp;0408&nbsp;15f8&nbsp;0408&nbsp;m............... &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  0000080:&nbsp;49f8&nbsp;0408&nbsp;81f8&nbsp;0408&nbsp;7de5&nbsp;0408&nbsp;0b02&nbsp;0408&nbsp;I.......}....... &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  0000090:&nbsp;4ded&nbsp;0408&nbsp;a9ed&nbsp;0408&nbsp;1102&nbsp;0408&nbsp;c5e0&nbsp;0408&nbsp;M............... &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  00000a0:&nbsp;1502&nbsp;0408&nbsp;1702&nbsp;0408&nbsp;1902&nbsp;0408&nbsp;1b02&nbsp;0408&nbsp;................ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  00000b0:&nbsp;e50a&nbsp;0508&nbsp;1d0b&nbsp;0508&nbsp;590b&nbsp;0508&nbsp;2302&nbsp;0408&nbsp;........Y...#... &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  00000c0:&nbsp;2502&nbsp;0408&nbsp;253d&nbsp;0508&nbsp;2941&nbsp;0508&nbsp;7106&nbsp;0508&nbsp;%...%=..)A..q... &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  00000d0:&nbsp;8106&nbsp;0508&nbsp;690e&nbsp;0508&nbsp;990e&nbsp;0508&nbsp;c90e&nbsp;0508&nbsp;....i........... &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  00000e0:&nbsp;19e1&nbsp;0408&nbsp;3702&nbsp;0408&nbsp;3902&nbsp;0408&nbsp;3b02&nbsp;0408&nbsp;....7...9...;... &nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>  这是另外一个让我难以置信是最近才知道的命令。xxd可以生成所给与文件的十六进制拷贝,也可以将编辑好的十六进制拷贝还原成二进制格式。它也可以将十六进制拷贝输出成C的数组,很方便:</p>
<div class="codeText"><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_5535')">复制内容到剪贴板</span>
<div id="code_5535">
<ol class="dp-cpp">
    <li class="alt"><span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>  &gt;&nbsp;xxd&nbsp;-i&nbsp;data.bin &nbsp;&nbsp;</span></li>
    <li><span>  unsigned&nbsp;</span><span class="datatypes">char</span><span>&nbsp;data_bin[]&nbsp;=&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>  0x6d,&nbsp;0x61,&nbsp;0x64,&nbsp;0x65,&nbsp;0x20,&nbsp;0x79,&nbsp;0x6f,&nbsp;0x75,&nbsp;0x20,&nbsp;0x6c,&nbsp;0x6f,&nbsp;0x6f, &nbsp;&nbsp;</span></li>
    <li><span>  0x6b,&nbsp;0x0a &nbsp;&nbsp;</span></li>
    <li><span>  }; &nbsp;&nbsp;</span></li>
    <li><span>  unsigned&nbsp;</span><span class="datatypes">int</span><span>&nbsp;data_bin_len&nbsp;=&nbsp;14;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>  我也用这个命令来通过比较两个文件的十六进制拷贝来比较两个二进制文件。要查看更多信息,请参考xxd 手册页面。</p>
<p>  4. ssh</p>
<p>  ssh是我孰知的第一个稍复杂的unix工具,但是也是在不久前我才意识到除了使用它来登录到远端机器以外,它有更多其他用途。</p>
<p>  ssh和它附带的工具可以用来:</p>
<p>  在计算机之间传递文件(使用scp)</p>
<p>  X-forwarding &ndash; 连接到远端的机器,并且开启一个GUI应用,看起来它们就像在本地开启的一样,即使远端的机器并没有提供X服务。</p>
<p>  端口转发 &ndash; 将到本地端口的连接转发到远端机器的端口,或者将到远端机器端口的连接转发到本地端口</p>
<p>  SOCKS 代理 &ndash; 允许你将一个支持SOCKET代理的应用上的所有连接转发到远端机器。这对于如何更安全使用公共wifi浏览网络和绕过严格的防火墙是很有用的。</p>
<p>  在本地机器输入一次密码,然后就可以通过ssh的key代理来使用安全身份登陆其余的远端机器,而不需要重复输入你的密码了。</p>
<p>  要查看更多信息,请参考ssh 手册页面。</p>
<p>  5. mdfind</p>
<p>  这个mac上特有的命令,当然其他的*nix也会有相类似的命令。它和find命令功能相同,但是它是使用Spotlight索引的。它可以让你在数秒内查询你的整个文件系统。你可以使用它来即时展示满足条件的新增文件的更新情况。我经常使用它来查询应用在隐蔽的位置存储的重要文件。</p>
<div class="codeText"><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_2804')">复制内容到剪贴板</span>
<div id="code_2804">
<ol class="dp-cpp">
    <li class="alt"><span><span>  &gt;&nbsp;mdfind&nbsp;-name&nbsp;homebrew &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>  /usr/local/Library/Homebrew &nbsp;&nbsp;</span></li>
    <li class="alt"><span>  /Users/job/Library/Logs/Homebrew&nbsp; &nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>  这就是经常被忽略的Unix的5个命令,希望大家能有所了解,实际操作的过程中可以用的到,谢谢大家的阅读。</p>
頁: [1]
查看完整版本: 5个经常被忽略的Unix命令