
<p id="32BQE4A3">作为一个经验丰富的 Linux 用户,我在日常的终端使用中养成了一些习惯。多年来,我学会了各种各样的快捷方式和实用的命令,并且反复使用它们。但即使是一流的工具也能得到更好的利用。</p><p><h5>从文件列表中删除隐藏的快捷方式</h5></p><p id="32BQE4A4">Linux 上的隐藏文件很强大且便捷,主要是因为它们非常简单。以句点(.)开头的文件是隐藏文件。默认情况下,它在终端列表和文件管理器中不会出现。</p><p id="32BQE4A5">当您想要查看隐藏文件时,只要使用<strong>-a</strong>选项,一切就都没问题了,对吧?</p><p>ls -a</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1001%2F18864ca17e736afadde809bfc.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="32BQE4A9">不过,最终,“.”和“..”可能会开始让您感到烦恼。这些特殊文件只是指向当前目录及其父目录的快捷方式。虽然它们可能非常有用,但您在每次列出文件时并不需要了解它们。</p><p id="32BQE4AA">幸运的是,有一个简单的解决方案:-a 选项有一个对应的 -A 选项,它会显示隐藏文件,但隐藏这些快捷方式:</p><p>ls -A</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1001%2Fc9065b4461a70acef0c55094e.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="32BQE4AG">您可能想要给这个命令设置一个别名,或者这里提到的其他任何命令。然后,您可以像以前一样继续使用 ls,放心地知道您再也不需要看到“.”或“..”了。</p><p><h5>无需管道进行递归 Grep</h5></p><p id="32BQE4AJ">很多时候,我会使用 find 的<strong>exec</strong>选项来搜索某些东西。这是模拟“在文件中查找”任务的基本方法:</p><p>查找. - 执行 查找 'hello' {} ;</p><p id="32BQE4AK">但是这个命令很长,而且学习 find 晦涩的语法肯定不好玩。当我发现 grep 具有内置的递归搜索支持时,我觉得自己很傻,但我仍然很高兴我做到了!这个命令更方便,也更容易学习:</p><p>搜索 -r 'hello' <h5>用一个命令创建深层目录</h5></p><p id="32BQE4AL">有时,您会发现自己想要创建这样的深层目录层次结构:</p><p>创建 blog/2024/09/16 目录</p><p id="32BQE4AM">但是,令人沮丧的是,如果 blog、blog/2024 或 blog/2024/09 目录尚不存在,此命令将失败:</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1001%2Fa9eb6eb9e2cbf88a2a7.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="32BQE4AQ">错误消息甚至都没有清楚地解释问题出在哪儿!有用的是,一个简单的选项将创建任何缺失的目录,尽管您可能会想知道为什么它不是默认的。要创建一个目录,包括任何尚不存在的中间目录,只需使用 <strong>-p</strong>:</p><p>创建目录 -p blog/2024/09/16</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1001%2Fcbdf5c4ca91df2cbe.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="32BQE4B0">您可以把‘p’当作‘路径’或者‘父目录’的缩写来记住这一点。</p><p><h5>立即在两个目录之间切换</h5></p><p id="32BQE4B3">如果您经常使用命令行,您将习惯于使用 cd 导航目录。您可能也习惯于在两个目录之间切换,来回在一个目录中运行命令,在另一个目录中检查文件等等。也许您甚至 使用历史命令来重复自己。</p><p id="32BQE4B4">到现在,您应该不会惊讶于得知有更好的方法。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1001%2F40b13bd4f505bc52ff.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="32BQE4B8">cd 存在几个秘密,不过其中最有用的快捷方式之一是“cd -”这种形式:</p><p id="32BQE4B9">每次运行“cd -”时,它都会在您先前导航到的两个目录之间进行切换,从而能够让您非常快速且轻松地来回移动。</p><p id="32BQE4BC">“cd -”会打印出它所切换到的目录的路径,即便您的提示符中存在当前目录。</p><p><h5>实现最大保真度来复制目录</h5></p><p id="32BQE4BF">您可能已经知道使用 cp -R 复制目录:</p><p>cp -R docs backup-docs</p><p id="32BQE4BG">此命令准许您复制整个目录结构,生成包括目录及其所有内容(涵盖文件和其他目录)的完整副本。</p><p id="32BQE4BH">但是,您可能会留意到副本跟原始副本并非完全相同。</p><p id="32BQE4BI">它们的修改时间、所有者以及权限可能都存在差异。例如,在以下情况下,副本的修改时间与原始副本不同:</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1001%2F10eca7aa365eb975e5cfc4c64d3651ef.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="32BQE4BM"> 这些时间仅相差一分钟,但问题可能要严重得多。解决办法很简单:使用 -a(意为‘存档’),而非 -R :</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1001%2Fdd92f272d6256d0e23661fe228f27da1.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><h5>用单个命令提取 tar.gz 文件</h5></p><p id="32BQE4BQ">Tar 文件仍然是最为流行的之一 。它们通常会被压缩以在下载或存储过程中减小尺寸。如果您在整个 Linux 使用生涯中都用过这两个程序,您可能已经习惯闭着眼睛做这类事情了:</p><p id="32BQE4BR">gunzip archive.tar.gz</p><p id="32BQE4BS">tar xvf archive.tar</p><p id="32BQE4BT">这会先解压缩 gzip 文件,然后解压其中的 tar 文件。但是,多亏了现代的特性,tar 可以一步完成这两项操作,使用 z 标志而非 x :</p><p>tar zvf archive.tar.gz</p><p id="32BQE4BU">这种方法更便捷,也更不容易出错。而且,tar 的最新版本会自动检测 gzip 文件并自动解压缩它们!所以您可以直接跳到:</p><p>tar xvf archive.tar.gz <h5>使用 cat 快速检查文件</h5></p><p id="32BQE4BV">cat 命令之所以叫这个名字,是因为它能够连接——也就是合并——文件。但您可能习惯只用它来查看文件的内容。要是这样的话,您可能不知道有几个有用的选项,能让用 cat 查看文件变得更舒心。</p><p id="32BQE4C0">首先,<strong>cat -s</strong>会将几个空白行压缩在一起,使某些文件格式在终端中更易于查看。</p><p id="32BQE4C1">其次,<strong>cat -b</strong>会为输出添加行号,但仅针对非空白行。当您编写行号引用时,这可能很有用。</p><p id="32BQE4C2">把它们一起用,比如<strong>cat -sb</strong>,您就能把 cat 当作简单的文件查看器,用不着像 less 这样的分页器。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1001%2Facfdd73085f74f54e3da54333f692d96.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><h5>获取简洁的磁盘使用情况</h5></p><p id="32BQE4C6">当您进行春季大扫除时,了解目录占用了多少空间是很有用的。但是 du 的默认操作会产生大量输出,因为它会报告整个层级结构中每个目录的大小。所以,您可能会发现自己多次运行这个命令,把它的输出通过管道传给 grep,把它重定向到临时文件之类的。</p><p id="32BQE4C7">为了减轻您的烦恼,您可以试试减少输出量。--max-depth 选项允许您指定 du 将报告的目录级别数量。您仍然可以获得准确的总大小,只是关于树中每个目录的详细信息更少。例如,使用此命令检查直接子目录的总大小:</p><p>du --max-depth 1</p><p id="32BQE4C8">您将会看到当前目录及其直接子目录的结果,但不会看到在该层次结构中它们之下每个目录的大小。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1001%2F4a86147a6a9cfdeca4622.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="32BQE4CC">如果您想更多地了解掌握命令行的相关信息,请查看我们的指南 不惜一切代价都应避免的终端拼写错误.</p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/157181.html