提高生产力的 3 个重要 Linux 备忘单
下载 sed、grep 和 pared 备忘单,将新流程集成到您的工作中。
Linux 以其命令而闻名。部分原因是 Linux 所做的几乎所有事情都可以从终端调用,而且 Linux 作为操作系统是高度模块化的。它的工具旨在产生相当具体的结果,当您对一些命令了解很多时,您可以以有趣的方式将它们组合起来以获得有用的输出。学习 Linux 就等于学习命令和学习如何将这些命令以有趣的组合方式组合在一起。
然而,有如此多的 Linux 命令需要学习,迈出第一步似乎令人畏惧。你应该先学习什么命令?哪些命令你应该学好,哪些命令只需要稍微熟悉一下?我对这些问题思考了很多,但我不相信有一个普遍的答案。 “基本”命令对于任何人来说可能都是相同的:
ls
cd
mv
这些相当于能够导航您的 Linux 文件系统。
然而,除了基础知识之外,“默认”命令因行业而异。系统管理员需要用于系统自省和监控的工具。艺术家需要媒体转换和图形处理工具。家庭用户可能需要用于 PDF 处理、日历或文档转换的工具。这样的例子不胜枚举。
然而,一些 Linux 命令显得特别重要——要么是因为它们是每个人有时都需要的常见低级工具,要么是因为它们是任何人在大多数时候都可能有用的通用工具。
这里有三个可以添加到您的列表中。
塞德
用途: sed
命令是一个很好的通用工具,任何 Linux 用户都可以从中受益。从表面上看,这只是基于终端的“查找和替换”。这使得它非常适合快速、轻松地跨多个文档进行更正。 sed
命令为我节省了打开单个文件、搜索和替换单词、保存文件以及关闭文件的时间(可能是累积天数)。仅此一点就证明了我学习 Linux 终端的投资是值得的。一旦您深入了解 sed
,您可能会发现大量潜在的编辑技巧,让您的生活变得更加轻松。
强度:命令的强度在于重复。如果您只有一个文件要编辑,则可以轻松打开它并在传统文本编辑器中执行“查找和替换”操作。但是,当您面对 5 个或 50 个文件时,一个好的 sed
命令(可以与 GNU Parallel 结合使用以提高速度)可以节省您一天中的时间。
弱点:您必须平衡预期进行更改所需的时间与构建正确的 sed
命令所需的时间。使用常见的 sed 的/foo/bar/g
语法进行简单编辑几乎总是值得花费少量的时间来键入命令,但复杂的 sed
命令利用保留空间和任何 ed
风格的子命令都可以集中注意力并结合多轮试验和错误。 事实证明,以新型方式进行一些编辑可能会更好。
作弊:下载我们的 sed 作弊表,以快速参考其单字母子命令及其语法概述。
格雷普
用途: grep
命令来自其公认的笨拙描述:全局正则表达式打印。换句话说,grep
将它在文件(或其他形式的输入)中找到的任何匹配模式打印到终端。这使得它成为一个很棒的搜索工具,特别擅长清理大量文本。
您可以使用它来查找 URL:
$ grep --only-matching \
http\:\/\/.* example.txt
您可以使用它来查找特定的配置选项:
$ grep --line-number \
foo= example.ini
2:foo=true
当然,您可以将其与其他命令结合使用:
$ grep foo= example.ini | cut -d= -f2
true
优点:grep
命令是一个简单的搜索命令。如果您已经阅读了上面的几个示例,那么您基本上已经学会了该命令。为了获得更大的灵活性,您可以使用其扩展的正则表达式语法。
弱点: grep
的问题也是它的优点之一:它只是一个搜索功能。一旦找到了所需的内容,您可能会面临一个更大的问题:如何处理它。有时,答案就像将输出重定向到文件一样简单,该文件将成为您过滤的结果列表。然而,更复杂的用例意味着需要使用任意数量的命令进行进一步处理,例如 awk、curl(顺便说一句,我们也有一个关于 curl 的备忘单)或现代计算机上拥有的数千个其他选项中的任何一个。
作弊:下载我们的 grep 作弊表,以快速参考其许多选项和正则表达式语法。
分手了
用途: GNU parted
并不是大多数人的日常使用命令,但它是最强大的硬盘驱动器操作工具之一。关于硬盘驱动器的令人沮丧的事情是,您花费数年时间忽略它们,直到您获得一个新驱动器并必须为您的计算机进行设置。直到那时您才想起您不知道如何最好地格式化您的驱动器。这时候熟悉 parted
就很有用了。 GNU parted
可以创建磁盘标签并创建、备份和救援分区。此外,它还可以为您提供有关驱动器及其布局的大量信息,并且通常可以为文件系统准备驱动器。
优点:我之所以喜欢 parted
而不是 fdisk
和类似工具,是因为它结合了简单的交互模式和完全非交互选项。无论您选择如何使用 parted
,它的命令都遵循一致的语法,并且它的帮助菜单编写良好且信息丰富。更好的是,该命令本身智能。对驱动器进行分区时,您可以指定从扇区到百分比的任何大小,并且 parted
会尽力找出分区表放置的更精细点。
弱点:在切换到 Linux 后,我花了很长时间才学习 GNU parted
,因为在很长一段时间里,我对驱动器实际上是如何工作的没有很好的理解工作。 GNU parted
和大多数基于终端的驱动器实用程序假设您知道分区是什么,驱动器有扇区并且需要最初缺少文件系统的磁盘标签和分区表,等等。学习曲线很陡峭——与其说是命令,不如说是硬盘技术的基础,而 GNU parted
并没有在弥补潜在的差距方面做太多事情。可以说,引导您完成整个过程并不是命令的工作,因为有图形应用程序可以实现这一点,但 GNU parted
的以工作流程为中心的选项可能是该实用程序的一个有趣的补充。
作弊:下载我们的parted 作弊表,以快速参考其许多子命令和选项。
了解更多
这些是我最喜欢的一些命令,但该列表自然会偏向于我如何使用计算机。我编写了大量 shell 脚本,因此大量使用 grep
来查找配置选项,使用 sed
进行文本编辑,并使用 parted
因为当我处理多媒体项目时,通常会涉及到很多硬盘。您要么已经拥有,要么很快就会使用自己喜欢的(或至少频繁)命令开发自己的工作流程。
当我将新流程集成到日常工作中时,我会创建或下载备忘单(如上面链接的),然后进行练习。不过,我们都以自己的方式学习,因此找到最适合您的方式,并学习新的基本命令。您对最常用命令了解得越多,就越能让它们更加努力地为您工作。