网站搜索

RHCSA 系列:使用 Nano 和 Vim 编辑文本文件/使用 grep 和 regexp 分析文本 - 第 4 部分


每个系统管理员都必须处理文本文件作为其日常职责的一部分。这包括编辑现有文件(最有可能的是配置文件)或创建新文件。有人说,如果你想在 Linux 世界中发动一场圣战,你可以询问系统管理员他们最喜欢的文本编辑器是什么以及为什么。我们不会在本文中这样做,但会提供一些技巧,这些技巧将有助于使用 RHEL 7 中两种最广泛使用的文本编辑器:nano(由于其简单易用)使用,特别是对于新用户)和vi/m(由于它的几个功能使其不仅仅是一个简单的编辑器)。我相信您可以找到更多理由使用其中之一,或者使用其他编辑器,例如 emacspico。这完全取决于你。

使用 Nano Editor 编辑文件

要启动 nano,您可以在命令提示符下键入 nano,可以选择后跟 文件名(在这种情况下,如果文件存在,将以编辑模式打开)。如果文件不存在,或者如果我们省略文件名,nano 也会以编辑模式打开,但会显示一个空白屏幕供我们开始输入:

正如您在上图中看到的,nano 在屏幕底部显示了几个可以通过指示的快捷方式使用的功能(^,又名插入符号,表示 nano >Ctrl 键)。仅举几个例子:

  1. Ctrl + G:调出帮助菜单,其中包含完整的功能列表和说明:Ctrl + X:退出当前文件。如果更改尚未保存,则会被丢弃。
  2. Ctrl + R:允许您选择一个文件,通过指定完整路径将其内容插入到当前文件中。

  1. Ctrl + O:保存对文件所做的更改。它可以让您使用相同的名称或不同的名称保存文件。然后按 Enter 确认。

  1. Ctrl + X:退出当前文件。如果更改尚未保存,则会被丢弃。
  2. Ctrl + R:允许您选择一个文件,通过指定完整路径将其内容插入到当前文件中。

会将 /etc/passwd 的内容插入到当前文件中。

  1. Ctrl + K:剪切当前行。
  2. Ctrl + U:粘贴。
  3. Ctrl + C:取消当前操作并返回上一屏幕。

为了轻松导航打开的文件,nano 提供了以下功能:

  1. Ctrl + F 和 Ctrl + B 向前或向后移动光标,而 Ctrl + P 和 Ctrl + N 则分别向上或向下移动一行,就像箭头键一样。
  2. Ctrl + 空格和 Alt + 空格 一次向前或向后移动一个单词。

最后,

  1. 如果您想将光标放在文档中的特定位置,Ctrl + _(下划线) 然后输入 X,Y 将精确地转到 X 行 Y 列。

上面的示例将带您到当前文档中的第 15 行第 14 列

如果您还记得早期的 Linux 时代,特别是如果您来自 Windows,您可能会同意从 nano 开始是新用户的最佳方式。

使用 Vim 编辑器编辑文件

Vimvi 的改进版本,vi 是 Linux 中著名的文本编辑器,可在所有兼容 POSIX 的 *nix 系统上使用,例如 RHEL 7。如果您有机会并且可以安装vim,继续;如果没有,本文中给出的大多数(如果不是全部)提示也应该有效。

vim 的显着特征之一是它的不同运行模式:

  1. 命令模式将允许您浏览文件并输入命令,这些命令是一个或多个字母的简短且区分大小写的组合。如果您需要将其中一个重复一定次数,则可以在其前面加上一个数字(此规则只有少数例外)。例如,yy(或 Y,yank 的缩写)复制整个当前行,而 4yy(或 4Y)复制整个当前行以及接下来的三行(总共 4 行)。
  2. 在ex模式下,您可以操作文件(包括保存当前文件和运行外部程序或命令)。要进入 ex 模式,我们必须从命令模式开始键入冒号 (:)(或者换句话说,Esc + :),后面直接跟上要使用的 ex 模式命令的名称。
  3. 在插入模式中,通过输入字母 i 即可访问,我们只需输入文本即可。大多数击键都会导致文本出现在屏幕上。
  4. 我们始终可以通过按 Esc 键进入命令模式(无论我们正在使用哪种模式)。

让我们看看如何执行与上一节中为 nano 概述的相同操作,但现在使用 vim。不要忘记按 Enter 键确认 vim 命令!

要从命令行访问 vim 的完整手册,请在命令模式下输入 :help,然后按 Enter

上半部分显示了内容索引列表,其中定义了专门针对 vim 特定主题的部分。要导航到某个部分,请将光标放在该部分上,然后按 Ctrl + ](右方括号)。请注意,底部显示当前文件。

1. 要保存对文件所做的更改,请从命令模式运行以下任意命令,即可完成操作:

:wq!
:x!
ZZ (yes, double Z without the colon at the beginning)

2. 要退出放弃更改,请使用 :q!。该命令还允许您退出上述帮助菜单,并以命令模式返回到当前文件。

3. 剪切 N 行:在命令模式下键入 Ndd

4.复制M行:在命令模式下键入Myy

5.粘贴先前剪切或复制的行:在命令模式下按P键。

6. 将另一个文件的内容插入到当前文件中:

:r filename

例如,要插入 /etc/fstab 的内容,请执行以下操作:

7. 将命令的输出插入到当前文档中:

:r! command

例如,要在光标当前位置下方的行中插入日期和时间:

在我写的另一篇文章(LFCS 系列的第 2 部分)中,我更详细地解释了 vim 中可用的键盘快捷键和功能。您可能需要参考该教程以获取有关如何使用这个强大的文本编辑器的更多示例。