Linux 以其命令而闻名。部分原因是 Linux 所做的几乎所有事情都可以从终端调用,但也是因为 Linux 作为一个操作系统是高度模块化的。它的工具旨在产生相当具体的结果,当您对一些命令了解很多时,您可以将它们以有趣的方式组合起来以获得有用的输出。学习 Linux 在于学习命令以及学习如何将这些命令以有趣的组合串联在一起。
尽管有这么多 Linux 命令要学习,但迈出第一步似乎令人望而生畏。应该首先学习哪个命令?哪些命令应该精通,哪些命令只需要粗略地了解一下?我思考了很多这些问题,但我不相信有一个通用的答案。“基本”命令对于任何人来说可能都是相同的
ls
cd
mv
这些相当于能够导航您的 Linux 文件系统。
然而,除了基础知识之外,“默认”命令因行业而异。系统管理员需要用于系统自省和监控的工具。艺术家需要用于媒体转换和图形处理的工具。家庭用户可能想要用于 PDF 处理、日历或 文档转换的工具。清单不胜枚举。
然而,一些 Linux 命令因其特别重要而脱颖而出——要么是因为它们是每个人有时都需要的常见底层工具,要么是因为它们是任何人可能在大多数时候都觉得有用的通用工具。
以下是要添加到您的列表中的三个命令。
Sed
用途: sed
命令是一个很好的通用工具,任何 Linux 用户都可以从中受益。从表面上看,它只是一个基于终端的“查找和替换”工具。这使其非常适合跨多个文档进行快速简便的更正。sed
命令为我节省了数小时(或可能累积数天)的时间,否则我需要打开单个文件、搜索和替换单词、保存文件并关闭文件。仅凭这一点就证明了我对学习 Linux 终端的投入是值得的。一旦您很好地了解了 sed
,您很可能会发现一个潜在的编辑技巧世界,这些技巧可以使您的生活更轻松。
优势: 该命令的优势在于重复性。如果您只有一个文件要编辑,那么很容易打开它并在传统的 文本编辑器 中进行“查找和替换”。但是,当您面对五个或 50 个文件时,一个好的 sed
命令(可能与 GNU Parallel 结合使用以获得额外的速度)可以挽回您一天中的数小时。
劣势: 您必须权衡您期望花费在进行更改上的时间与构建正确的 sed
命令可能花费的时间。使用常见的 sed 's/foo/bar/g
语法进行简单编辑几乎总是值得花费少量时间来键入命令,但是使用保留空间和任何 ed
样式子命令的复杂 sed
命令可能需要高度集中注意力以及几轮试验和错误。事实证明,以新式方法进行一些编辑可能更好。
速查: 下载我们的 sed 速查表,快速参考其单字母子命令及其语法的概述。
Grep
用途: grep
命令来自其公认的笨拙描述:global regular expression print(全局正则表达式打印)。换句话说,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 速查表,快速参考其许多选项和正则表达式语法。
Parted
用途: GNU parted
对于大多数人来说不是日常使用的命令,但它是硬盘驱动器操作中最强大的工具之一。关于硬盘驱动器令人沮丧的事情是,您会花数年时间忽略它们,直到您获得新的硬盘驱动器并必须为您的计算机设置它。那时您才想起您不知道如何最好地格式化您的驱动器。这时,熟悉 parted
会很有用。GNU parted
可以创建磁盘标签,并创建、备份和恢复分区。此外,它可以为您提供有关驱动器及其布局的大量信息,并通常为文件系统准备驱动器。
优势: 我喜欢 parted
胜过 fdisk
和类似工具的原因是它结合了简单的交互模式和完全非交互选项。无论您选择如何使用 parted
,其命令都遵循一致的语法,并且其帮助菜单编写良好且信息丰富。更好的是,该命令本身是智能的。在对驱动器进行分区时,您可以指定从扇区到百分比的任何大小,parted
会尽力找出分区表放置的更精细的点。
劣势: 在切换到 Linux 后,我花了很长时间才学会 GNU parted
,因为在很长一段时间内,我对驱动器实际工作原理没有很好的理解。GNU parted
和大多数基于终端的驱动器实用程序都假定您知道什么是分区,驱动器具有扇区并且需要最初缺少文件系统的磁盘标签和分区表等等。存在陡峭的学习曲线——与其说是命令,不如说是硬盘驱动器技术的基础知识,而 GNU parted
在弥合潜在差距方面做得不多。可以说,这不是命令的工作,因为它有 图形应用程序 可以做到这一点,但 GNU parted
的以工作流程为中心的选项可能是该实用程序的一个有趣的补充。
速查: 下载我们的 parted 速查表,快速参考其许多子命令和选项。
了解更多
这些是我最喜欢的一些命令,但该列表自然偏向于我使用计算机的方式。我做了很多 shell 脚本编写,所以我大量使用 grep
来查找配置选项,我使用 sed
进行文本编辑,我使用 parted
是因为当我在处理多媒体项目时,通常会涉及很多硬盘驱动器。您要么已经拥有,要么很快就会开发出您自己的工作流程以及您自己喜欢的(或至少是常用的)命令。
当我在日常工作中集成新流程时,我会创建或下载速查表(如上面链接的那些),然后我会练习。我们都以自己的方式学习,所以找到最适合您的方法,并学习一个新的基本命令。您对最常用的命令了解得越多,就越能让它们为您更努力地工作。
评论已关闭。