网红有一腿 發表於 2023-10-19 00:00:00

你可能会用到的16个Linux命令

<p>
        <span><strong>前言</strong></span></p>
<p>
        我们每天都会频繁使用linux命令行,虽然网上关于其使用技巧的资料多种多样,但很多朋友应该并没有进行过实际尝试。因此,今天的文章将对此进行汇总,希望能为大家带来一点帮助。</p>
<p>
        <span><strong>1. 将输出结果显示为表</strong></span></p>
<p>
        有时候,当我们查看命令的输出结果时,大量拥护的字符串可能很难进行阅读。如果将命令整理为表?其实非常简单!只需要输入:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_630937">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">mount</code> <code class="bash plain">| column –t:</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/1f77aa619399c85eeb818ba22ae7e608.jpg"></p>
<p>
        在以上示例中,输出结果因为被空格隔开而显得非常清晰。那么,如果分隔符是冒号或者其它符号(例如cat /etc/passwd)又该怎么办?</p>
<p>
        只需要调整一条–s参数即可。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_954538">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">cat</code> <code class="bash plain">/etc/passwd</code> <code class="bash plain">| column -t -s:</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/39d14cd2db1f7f349cbb2e15df5e1372.jpg"></p>
<p>
        <span><strong>2. 重复一条命令直到成功运行</strong></span></p>
<p>
        很多朋友都在网上搜索过这个问题。相关建议包括ping服务器直到生效、检查某一包含特定扩展名的文件是否从特定目录处上传完成以及检查特定url是否已经存在等。</p>
<p>
        事实上,大家可以使用while true循环完成这项目标:</p>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/2dedf314722ed8e9e137d7a1914bdd7c.jpg"></p>
<p>
        在本示例中,&gt;/dev/null 2&gt;&amp;1会将程序的输出结果重新定向至/dev/null。其中包括standard error与standard out。<br>
        这也是我个人最喜爱的linux命令行使用技巧之一。</p>
<p>
        <span><strong>3. 通过内存使用量对进程加以排序</strong></span></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_879015">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">ps</code> <code class="bash plain">aux | </code><code class="bash functions">sort</code> <code class="bash plain">-rnk 4:</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/fe06321d00b3058b529588eec96e2694.jpg"></p>
<p>
        <span><strong>4. 根据cpu使用量对进程加以排序</strong></span></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_581630">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">ps</code> <code class="bash plain">aux | </code><code class="bash functions">sort</code> <code class="bash plain">-nk 3:</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/6ae4f86f4a11cbf7479af177f481e5f2.jpg"></p>
<p>
        要检查架构,可使用:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_561864">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">getconf long_bit</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <span><strong>5. 同时查看多个日志文件</strong></span></p>
<p>
        大家当然可以使用tail命令查看日志,但有时候您可能需要同时查看多个日志文件。使用multi-tail命令即可轻松实现您所需要的文本高亮、过滤等各类需求:</p>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/c6a1b3f567f4de3a8b3496061f5d0887.jpg"></p>
<p>
        如果系统中尚无此命令,您可以通过apt-get install multitail进行下载。</p>
<p>
        <span><strong>6. 返回此前目录</strong></span></p>
<p>
        只需要输入cd –即可返回此前目录。</p>
<p>
        <span><strong>7. 让非交互shell会话实现交互能力</strong></span></p>
<p>
        将设置~/.bashrc变更为~/.bash_profile即可。</p>
<p>
        <span><strong>8. 以常规间隔监控命令输出结果</strong></span></p>
<p>
        利用watch命令 (watch df –h),您将能够查看到任何命令的输出结果。例如,您可以查看剩余空间及其增长情况。<br>
        而配合变量数据,watch命令还能发挥更多其它作用。</p>
<p>
        <span><strong>9. 在会话关闭后运行程序</strong></span></p>
<p>
        如果在后台运行某程序并将其关闭,shell即会将其彻底停用。我们该如何在关闭shell后继续保证其运行?<br>
        大家可以使用nohup命令,其代表的是无挂断:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_792762">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">nohup</code> <code class="bash plain">wget site.com</code><code class="bash plain">/file</code><code class="bash plain">.zip</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        此命令也是常被忽略的linux命令之一,因为多数用户会使用另一种命令式屏幕:</p>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/51f0da4daa657a041247c3c2348ab789.jpg"></p>
<p>
        其会在同一目录中生成名为nohup.out的文件,内里包含当前运行程序的内容:</p>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/b7b8c49a7f3a1e6ea202bf327084d16d.jpg"></p>
<p>
        很酷,对吧?</p>
<p>
        <span><strong>10. 自动对任意命令回复yes或no</strong></span></p>
<p>
        如果大家希望以自动方式对请求回复yes,则可使用:yes | apt-get update。</p>
<p>
        如果您希望自动回复no,则可使用yes no | command。</p>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/2eeaf46611344dc59fab5535dc589af7.jpg"></p>
<p>
        <span><strong>11. 创建特定大小的文件</strong></span></p>
<p>
        大家可以利用dd命令创建特定大小的文件:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_500291">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">dd</code> <code class="bash keyword">if</code><code class="bash plain">=</code><code class="bash plain">/dev/zero</code> <code class="bash plain">of=out.txt bs=1m count=10.</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        这时新生成的文件大小为10 mb,全部以0填充:</p>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/a83142884203246ca03d4cc4eb37bc79.jpg"></p>
<p>
        <span><strong>12. 以root方式运行上一条命令</strong></span></p>
<p>
        有时候,大家可能在输入某条需要root权限的命令时忘了加上sudo。不用再输入一遍,直接输入sudo即可!</p>
<p>
        <img title="你可能会用到的16个Linux命令" alt="你可能会用到的16个Linux命令" src="https://zhuji.jb51.net/uploads/img/202305/1fa568e99f45f06c347ed82acf8c70e3.jpg"></p>
<p>
        <span><strong>13. 记录命令行会话</strong></span></p>
<p>
        如果大家希望在shell屏幕上记录自己的输入内容,则可使用script命令将输入内容保存成名为typescript的文件: script。</p>
<p>
        在输出exit后,全部命令都将被写入该文件以备随后审查。</p>
<p>
        <span><strong>14. 将空格替换为tab</strong></span></p>
<p>
        大家可以利用tr命令将某种字符替换为另一种字符:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_616055">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">cat</code> <code class="bash plain">geeks.txt | </code><code class="bash functions">tr</code> <code class="bash plain">‘::</code><code class="bash string">' ‘\t'</code> <code class="bash plain">&gt; out.txt。</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <span><strong>15. 将某一文件转换为大写或小写形式</strong></span></p>
<p>
        使用以下命令:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_864349">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">cat</code> <code class="bash plain">myfile | </code><code class="bash functions">tr</code> <code class="bash plain">a-z a-z &gt; output.txt。</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <span><strong>16. 强大的xargs命令</strong></span></p>
<p>
        xargs命令是linux中最为重要的技巧之一。大家可以利用此命令将某一命令的输出结果作为另一命令的参数。例如,大家可以搜索pngpng文件并将其压缩或者进行其它操作:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_306321">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">find</code><code class="bash plain">. -name *.png -</code><code class="bash functions">type</code> <code class="bash plain">f -print | </code><code class="bash functions">xargs</code> <code class="bash functions">tar</code> <code class="bash plain">-cvzf images.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        或者,也许您在文件中保存了一份url列表,并希望对其进行下载或者处理:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_971174">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">cat</code> <code class="bash plain">urls.txt | </code><code class="bash functions">xargs</code> <code class="bash plain">wget</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <span><strong>请注意:</strong></span>第一条命令的输出结果会被传递至xargs命令末尾。</p>
<p>
        如果我们需要将命令输出结果传递至中间,又该如何?只需要使用{}再加上–i参数,如下所示。这时替换参数将用于指定第一条命令输出结果的传递位置:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_6193">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">ls</code> <code class="bash plain">/etc/</code><code class="bash plain">*.conf | </code><code class="bash functions">xargs</code> <code class="bash plain">-i </code><code class="bash functions">cp</code> <code class="bash plain">{} </code><code class="bash plain">/home/likegeeks/desktop/out</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        当然,这里只是一部分linux命令行使用技巧。如果大家有需要,也可以尝试awk与sed等命令!另外,也期待您在评论中分享自己的实践与体会。</p>
<p>
        <span><strong>总结</strong></span></p>
<p>
        以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
頁: [1]
查看完整版本: 你可能会用到的16个Linux命令