上周,我们开始了我们的 Linux Hands-On 系列,以创建一个结构化的系列,告知和教育读者 Linux 是什么、它是如何工作的,同时确保他们通过尝试终端命令来了解他们的双手。
正如系列的第一部分中提到的,整个系列每周都将是一个合乎逻辑的进展。 这意味着这部分只有在您已经完成第一部分并尝试了所有命令或者如果您已经 Linux基础知识 并且可以解决它。 如果您不熟悉这些概念,请确保您 阅读第一部分,然后你就可以直接跳进去了。
在本周的博文中,我们将在上一篇博文中介绍的内容的基础上,告诉您如何做一些更复杂的事情。 如果您有诸如如何在 Linux 中编辑文件之类的问题? How to view a process in Linux etc.这篇文章将回答这些。 因此,不要再浪费时间了,让我们直接进入命令。
我们将命令分成几部分,以便一一浏览它们是有意义的。
你会学到什么
- 文件处理
- 模式匹配
- 过程:查看和杀死
- 编辑文本文件
好的,既然我们已经布置了一个基本结构,让我们一一介绍它们。
在上一篇文章中,您必须学习如何在 Linux 中创建文件以及如何删除它们。 让我们以此为基础,首先看看如何查看文件的内容。
cat 命令
为了查看文件的内容,我们使用 cat 命令。 这个命令的教科书定义是——cat命令顺序读取一个文件,并将输出打印到标准输出。 简单来说,就是文件将一个文件的内容一行一行的打印出来。
让我们通过一个例子来看看 cat 命令是如何工作的吧?
这是语法:
猫文件名
更换 文件名 用你自己的一个。 正如您在下面看到的,该命令只是以逐行格式打印出文件 ghost.txt 的内容:

现在我们知道了如何查看文件的内容,让我们学习如何直接从终端向文件添加内容,而不使用任何编辑器(别担心,这很快就会出现)。
Linux 中的重定向运算符
您可以添加的方法之一 (覆盖或追加) 文件的内容是通过使用重定向运算符之一。 简单来说,重定向操作符允许用户控制命令的输入和输出。
在你的脑海里,这是一个更相关的例子。 还记得 echo 命令做了什么吗? 它向终端打印出一个字符串。 该字符串是 echo 命令的输出。 通过使用重定向运算符之一,您实际上可以使用该输出并将其写入文件。
闲话少说,让我们通过一个例子来看看重定向操作符是如何工作的。
这是重定向运算符的语法:
命令redirection_operator 文件
在这里,命令是将输出字符串的终端命令,文件是将接受该输出的实际文件。 有几种重定向运算符可用,但让我们将范围限制为写入文件。
为此,我们可以使用两个重定向运算符之一,即, > 和 >>
在下面的屏幕截图中,您可以看到它是如何工作的。 我已经在终端中使用 cat 命令显示文件最初是空的,然后我使用 echo 命令将内容添加到文件中,最后使用 cat 命令打印出内容。
> 操作符工作在覆盖模式。 这意味着,如果您使用 > 将内容写入文件的操作符, 其先前的内容将被覆盖. 这显示在下面的屏幕截图中。 如您所见,之前的内容已被新内容取代。

现在显而易见的问题是,如果您不想替换现有内容怎么办? 嗯,有一个版本的重定向运算符可以做到这一点。
为了追加到文件,而不是使用 > 我们使用 >>
这是语法:
命令>>文件名
您可以在下面的屏幕截图中看到示例用法,内容已附加到。 很整洁吧? 同意它不提供与文本编辑器相同的灵活性,但对于较小的用例,它可以很好地完成工作。

好,一路走好!
既然我们知道如何向文件添加内容以及如何查看它们,那么学习如何在文件系统中查找文件如何?
查找命令
为了在文件系统中搜索文件,我们使用 find 命令。 该命令基本上做了它声称要做的事情。 它查找给定的文件名或正则表达式模式。
相同的基本语法如下:
查找路径名表达式
与往常一样,用您自己的值替换占位符。
径 告诉 find 命令搜索给定文件的目录。 这 姓名 选项指定搜索需要匹配的模式。
让我们看看 find 命令在示例用法中是如何工作的。

如下面的示例输出所示,该命令会查找任何 。可执行程序 文件系统中的文件并将其输出到控制台。现在我们有了一些更复杂的操作命令,让我们更进一步。
现在我们来看看如何在文件中搜索内容。
grep 命令
grep 代表 全局正则表达式 虽然我们将在以后的文章中介绍它,但对其含义的基本解释是,它只是 grep 用来检查字符串以找到匹配项的模板。 如果它没有多大意义,请不要担心。 我们将在第 3 部分中广泛地介绍它。
好的,让我们测试一下grep。 这是我们测试的语法:
grep -i "要匹配的字符串" filename.extension
- 一世 option 将告诉 grep 忽略大小写,因此“HO”“ho”和“hO”将被视为相同。 要匹配的字符串在引号下指定,然后是文件名。

好的,让我们看看如何在演示中使用 grep 命令。如上所示,我的示例显示了 grep 在区分大小写模式和不区分大小写模式下的用法。
在这一点上值得注意的是,一个命令有 n 种不同的组合以及与之配套的几个选项。 我在这里做的是给你一个通用的四舍五入用例,它适用于大多数简单的情况,但如果你想全力以赴,你绝对可以在命令上做一个人来找出所有可用的选项来使用命令。
接下来,让我们看看如何以逐行的方式实际比较 2 个不同的文件。
diff 命令
为了查看 2 个文件有何不同(明白了吗?),我们使用 diff 命令。 最好看看它的实际运行情况以了解它的实际工作原理,所以让我们开始吧。
下面是 diff 命令的语法:
差异文件 1 文件 2
这是 diff Linux 命令的示例用法:

乍一看,它可能没有完全意义,所以让我们分解输出。
差异输出的第一行将包含:
- 第一个文件对应的行号
- 一个字母(a 表示添加,c 表示更改,或 d 表示删除)
- 对应于第二个文件的行号。
在我们上面的输出中, “1,3c1” 手段: “第一个文件中的第 1 行到第 3 行需要更改以匹配第二个文件中的第 1 行。” 然后它告诉我们这些行在每个文件中的内容:
- < 前面的行是来自第一个文件的行
- > 前面的行是来自第二个文件的行。
继续,我们将看到如何找出给定文件中的重复行。
uniq 命令
uniq 命令用于找出重复的行及其计数和其他类似的详细信息。 如果您使用它,它会说它用于过滤或报告文件中的重复行。 与几乎所有命令一样, uniq 命令也有很多选项可供选择。
但是为了简洁起见,并确保您学习更多的命令而不是对单个命令学习太多,我们将只绘制一个最小的示例,您可以使用 man 命令深入挖掘更多信息。
好的,这是 uniq 命令的语法:
uniq -options 文件名
现在让我们看一个示例来了解 Linux 中的 uniq 命令是如何工作的。

让我们快速分解示例。 这 -c 选项告诉 uniq 命令打印出一个 数 随着输出和下一个选项是 文件名 提供给 uniq。
正如你在上面的例子中看到的,它打印出重复行的计数,在我们的例子中是 2。
这应该适用于您需要知道的所有命令,以确保您能够处理文件,但有一个非常重要的部分我们直到现在还没有涉及,它与访问权限有关。
您在现实世界中看到,您不希望所有文件都具有全局读写访问权限,这意味着任何人都可以随意走动并对文件进行编辑。 某些文件需要防止篡改。 这就是访问控制的用武之地,Linux 和 Unix 都使用下一个命令出色地管理它。
chmod 命令
chmod 命令代表更改模式,它基本上允许您更改文件的访问方式以及谁可以访问它。
chmod 的语法相当简单,如下所示:
chmod -options 权限文件名
虽然选项和文件名不需要详细说明, 权限 部分确实需要一些解释。
Linux中的文件权限围绕3 范围, 用户, 组, 和 其他。 权限依次为3种 读, 写, 和 执行. 这意味着每个范围有 3 个权限,总共有 3 组范围,每个范围有 3 个权限。
考虑到这一点,这里有一个示例用法,向您展示 chmod 的工作原理:
chmod u=rwx, g=rx, o=r 文件名.txt
这里 u 代表 用户, g 。 组 和 o 。 其他类。 而且 = 符号用于分配权限 读(r),写(w), 和 执行 (x) 到每个范围。 逗号分隔每个作业。

分配权限有一个简写,它使用八进制表示法。 在八进制表示法中:
- 4 代表阅读
- 2 代表写
- 1 代表执行
- 0 代表没有权限
所以根据上面的符号,数字 7 将授予读写和执行权限 (4 + 2 + 1). 您可以相应地混合和匹配它,这是使用八进制表示法的示例用例:
chmod 755 星球大战.txt

在此示例中,文件 starwars 具有:
- 用户的读、写和执行权限。
- 为组读取和执行。
- 执行他人。
好吧! 我们即将结束帖子的文件处理部分。 最后一条命令将允许您归档文件/压缩文件。 当您想要跨系统移动一堆文件同时确保避免损坏它们时,归档文件会派上用场。
tar 命令
tar 命令代表磁带存档,它允许您创建操作和提取存档文件。
下面是命令的基本语法,看看它是如何工作的:
tar -options 文件名1 文件名1 .... 文件名N
让我们看看有几个选项的示例用法。 强烈建议您试用示例,然后自己探索它以发现更多有趣的用例。
tar -c -f 压缩.zip ghost.txt starwars.txt

让我们分解一下。 这 -c 和 -f 命令只是众多命令中的一小部分,但这是它们的作用。 这 -c 选项告诉命令 创建一个新的存档 和 -f 习惯于 指定文件名 对于在这种情况下是compressed.zip的档案,tar命令可以在 .zip、.tar、.rar 和其他格式,因此请确保选择适合您需求的格式
现在您知道如何压缩文件,让我们看看如何提取它们。 我们使用 -x 和 -f tar 命令中用于提取文件的选项, -x 选项告诉 tar 解压缩文件 和 -f 习惯于 指定文件名 如下例所示:

好的,我们终于通过了帖子的文件处理部分。 欢呼! 到目前为止,你做得很好。 我们现在要讨论流程。
在 Linux 术语中,进程是当前正在执行、执行特定任务的程序。 随着用户在应用程序之间切换,流程是动态的并且不断变化。
Linux 文档 非常详细地讨论了流程,我鼓励您在完成这篇文章后阅读一下。
现在我们知道什么是进程,让我们看看如何查看它们。
ps命令
ps 命令让我们查看当前正在机器上执行的进程。 它带有多种选项,但这里有一个最小用法,它显示当前以 root 身份运行的所有进程。
语法如下
ps -选项
在我们的例子中,我们将使用 -u 选项将显示 以 root 身份运行的进程。

既然您知道如何查看进程,那么学习如何杀死它们怎么样?
杀死命令
kill 命令用于在不注销或重新启动计算机的情况下终止或终止给定进程。 值得注意的是,kill 命令实际上并不杀死进程,它只是向进程发送一个信号,该信号告诉进程要做什么。 默认情况下,当没有指定信号时,信号 15 被称为 目标期限 被发送到进程,如果这失败了一个更强的信号 9 信号杀手 被发送到进程,但是对于大多数正常用例,您需要指定杀死进程的是它是 PID.
下面是 kill 命令的语法:
杀死 [信号或选项] PID
这是一个演示:

杀死进程时要非常小心。 杀死系统关键进程可能会使您的机器行为异常。 但是,如果您仍然设法这样做,请确保重新启动系统一次以恢复其正常执行。
好的,现在我们已经介绍了终端命令的一些基础,让我们讨论一种更改/向文件添加内容的简单方法。 我们都使用诸如 Visual Studio Code 或 Atom 之类的文本编辑器,但由于本系列的目的是让您对终端感到舒适自在,为什么不在终端内探索一个基本的编辑器呢?
纳米命令
Nano(相信我)代表 N没有的 年该编辑器是一个免费的、轻量级的、开源的编辑器,允许您在终端内编辑文件是一个本地文本编辑器,类似于环境,具有您熟悉的常用命令。
要在 nano 中调用 nano/打开文件,请按以下语法键入命令:
纳米文件名
如果文件存在,nano 会打开它,如果它不存在,它会创建一个具有该名称的新文件并打开它。 编辑器本身相当小,不像它的老(和讨厌的)兄弟 Vim/Vi,它不会让你疯狂的臭名昭著的命令。 要在文件中导航,您可以使用常用的箭头键。 要删除内容,您仍然使用删除/退格键,并使用熟悉的 Ctrl+C、Ctrl+V 等处理剪贴板。

编辑器列出了最常用的操作,例如在屏幕的下半部分为您退出编辑器。 在使用 Ctrl+X 退出之前,系统会提示您保存所做的更改。 当然,Vim 已经存在的时间更长了,但在我个人看来,它只不过是向嬉皮士文化的通行证。 作为 Vim 的专业人士,你能得到的最多的东西就是吹牛,它本身就到此为止。 绝对没有理由浪费他们宝贵的时间来学习如何使用 Vim。 话虽如此,我们终于到达了第 2 部分的结尾。
中级用户的 Linux 命令:总结
在 Linux Hands On 系列的第 2 部分中,我们建立在我们奠定的基础之上 部分1. 我们开始处理文件并操纵它们。 我们还学习了一个全新的概念,称为进程以及如何杀死它们。 我们以 Nano 文本编辑器的概述结束了这一部分。 这就是本周的全部内容。 在我们下周带着第 3 部分回来之前,请确保您有足够的时间来玩弄这篇文章中分享的命令。 不要被那里的命令数量所淹没,让这些东西变成肌肉记忆需要很长时间。 在此之前,实践经验是您最好的朋友。
玛纳斯乔杜里
感谢这些 Linux 系列。 我已经完全完成了这个,我发现它真的很有帮助。 尤其是视频。 有时很难跟随文章,所以我下载了视频并学习了它。 现在我觉得我对 Linux 了解了很多,可以开始在其中做一些事情。 谢谢你的这些帖子对我帮助很大。