简介
在本实验中,你将学习使用 Linux 中两个核心文本编辑器:vi/vim 和 nano 的基本技能。它们是 Linux 环境中最常用的文本编辑器,各有其优势和适用场景。
你将首先从 vi 文本编辑器开始,它是类 Unix 系统中功能强大且无处不在的工具。你将学习创建文件、使用插入模式(Insert Mode)输入文本、使用 :w 和 :wq 等命令保存工作、使用移动键进行导航、搜索文本以及执行删除单词等基本编辑操作。
在实验的第二部分,你将探索 nano,这是一个对初学者非常友好的编辑器。你将了解其直观的界面,学习基本的编辑操作,并理解在不同任务中何时选择 nano 而非 vim。
完成本实验后,你将能够熟练使用这两个编辑器,并了解在 Linux 工作流中针对不同场景选择哪种工具最为合适。
创建文件并在插入模式下输入文本
在此步骤中,你将学习如何使用 vi 编辑器创建新文本文件并输入文本。vi(及其现代版本 vim)是类 Unix 操作系统中功能强大且无处不在的文本编辑器。它在不同的模式下运行,最基本的两种模式是普通模式(用于执行命令)和插入模式(用于输入文本)。
首先,确保你处于正确的工作目录中。本实验的所有工作都将在 ~/project 目录中完成。
打开终端。提示符应显示你位于
project目录中。你可以使用pwd(打印工作目录)命令验证完整路径。pwd你应该看到以下输出,确认你的位置:
/home/labex/project
现在,启动
vi编辑器并创建一个名为test.txt的新文件。当你运行此命令时,vi将启动并接管你的终端窗口。vi test.txt终端将清空,你会看到屏幕左侧有一列波浪号(
~)。这些符号表示空行。在屏幕底部,你会看到文件名"test.txt" [New File]。你当前处于普通模式。要开始输入文本,你需要切换到插入模式。按下键盘上的
i键。i注意屏幕底部出现了
-- INSERT --。这确认你已进入插入模式,现在可以直接在文件中输入文本。输入以下句子:
Now is the time for all good men to come to the aid of their country.
此时,你输入的文本存在于编辑器的内存缓冲区中,但尚未保存到磁盘。在下一步中,你将学习如何保存工作并退出编辑器。
使用 :w 和 :wq 保存并退出文件
在此步骤中,你将学习如何保存更改并退出 vi 编辑器。这些操作是在普通模式下使用命令执行的。由于你目前处于上一步留下的插入模式,因此首先需要返回普通模式。
要从插入模式切换回普通模式,请按
Esc键。Esc你会注意到屏幕底部的
-- INSERT --指示符消失了。这意味着你现在处于普通模式,按键将被解释为命令而不是文本输入。现在,让我们保存文件。在普通模式下,以冒号(
:)开头的命令会显示在屏幕底部的命令行上。要写入(保存)文件,请使用:w命令。输入以下序列并按
Enter::w按下
Enter后,vi会将缓冲区的内容写入test.txt文件。你会在底部看到一条确认消息,类似于:"test.txt" [New] 1L, 79C written此消息确认文件
test.txt已保存,包含 1 行和 79 个字符。最后,要退出
vi,可以使用:q命令(意为 "quit")。更常用的命令是:wq,它将写入文件和退出合并为一个操作。由于你已经在普通模式下,输入以下内容并按Enter::wq此命令保存最终更改并关闭
vi编辑器,返回到终端的 shell 提示符。你的终端现在应该显示熟悉的命令提示符,并且test.txt文件已保存在你的~/project目录中。
使用 gg, h, j, k, l 和 / 导航与搜索文本
在此步骤中,你将练习 vi 的一些强大导航和搜索命令。这些命令允许你高效地移动光标和查找文本,而无需使用鼠标。所有这些操作都在普通模式下执行。
首先,你需要再次打开
test.txt文件。在~/project目录的 shell 提示符下,输入以下命令:vi test.txt编辑器将打开并显示文件内容。光标很可能位于第一行的开头。
要确保光标位于文件的最开头,可以使用
gg命令。在普通模式下(如果不确定,请按Esc),输入gg。gg光标将立即跳转到第一行的第一个字符,即我们文件中的 'N'。
在
vi中移动光标的主要方式是使用h、j、k和l键。这是任何vi用户的一项核心技能。h将光标向左移动一个字符。l将光标向右移动一个字符。j将光标向下移动一行。k将光标向上移动一行。
尝试按下这些键在句子中移动光标。这种导航方法适用于任何终端环境。
现在,让我们搜索文本。
/命令用于在文件中向前搜索。要搜索字母 'a' 的所有出现位置,请按照以下步骤操作: a. 确保你处于普通模式(按Esc)。 b. 输入/,后跟你要搜索的字符,在本例中为a。然后按Enter。/a光标将跳转到当前光标位置之后找到的第一个 'a'。
c. 要查找同一搜索词的下一个实例,只需按
n键(代表 "next")。n多次按
n键以循环查看文件中的所有 'a'。
你现在已经练习了基本的导航和搜索。在下一步中,你将学习如何删除文本。
使用 dw 删除单词并使用 :q! 不保存退出
在此步骤中,你将学习如何删除文本以及如何在不保存更改的情况下退出 vi。当你犯错并希望恢复到文件的上一个保存版本时,这是一项至关重要的技能。你应该仍然保持 vi 打开并处于上一步的 test.txt 文件中。
首先,让我们将光标移动到我们要删除的单词上。确保你处于普通模式(如果不确定,请按
Esc)。使用h和l键移动光标,直到它位于单词time的第一个字母上。当光标位于
time的t上时,输入dw命令。此命令代表 "delete word"(删除单词)。dw你会看到单词
time及其后的空格从屏幕上消失。句子现在看起来不正确了,这非常适合我们的下一步操作。你现在已经修改了编辑器缓冲区中的文件。假设这次删除是一个错误。你将退出并放弃更改,而不是保存这个错误的版本。执行此操作的命令是
:q!。q代表 "quit",!强制执行该操作,忽略任何未保存的更改。a. 确保你处于普通模式(按
Esc)。 b. 输入以下命令并按Enter::q!此命令将立即退出
vi编辑器并返回到 shell 提示符。因为你使用了:q!,所以对单词time的删除没有保存到test.txt文件中。如果你再次打开该文件,单词time仍然会存在。
启动交互式 vimtutor 进行进一步练习
在此步骤中,你将了解 vimtutor,这是一个交互式教程,旨在以动手实践的方式教你 vi/vim 技能。本实验涵盖了绝对基础知识,但 vimtutor 提供了一个全面、自定进度的课程,强烈推荐给所有新用户。
你应该位于
~/project目录的 shell 提示符下。要启动教程,只需输入命令vimtutor并按Enter。vimtutor此命令会打开带有特殊教程文件的
vi。文件本身包含了所有说明。你将阅读文本,然后直接在教程文件中练习所描述的命令。这是一种安全且有效的学习方式,因为你是在文件的临时副本上进行练习。教程分为多个课程,预计需要 25-30 分钟才能完成。你可以按照自己的节奏进行学习。
当你完成教程(或想在任何时候离开)时,你可以像从任何
vi会话中一样退出。由于你不需要保存对教程文件的任何更改,退出的最佳方式是使用:q!命令。a. 按
Esc确保你处于普通模式。 b. 输入:q!并按Enter。:q!
本实验的动手实践部分到此结束。通过完成这些步骤,你已经掌握了使用 vi 编辑器创建、编辑、保存和导航文件的基本技能。
nano 编辑器简介
在此步骤中,你将学习如何使用 nano,这是一个用户友好的文本编辑器,非常适合初学者和快速编辑。与 vi 不同,nano 在屏幕底部显示有用的快捷键,并且没有不同的模式,这使得它对新用户来说更直观。
首先,让我们使用
nano创建一个新文件。在~/project目录的 shell 提示符下,输入以下命令:nano welcome.txtnano编辑器将打开一个空白文件。注意底部显示可用功能的有用菜单。与
vi不同,你可以在nano中立即开始输入,无需切换模式。复制并粘贴以下文本:
Welcome to Linux Text Editing! This file was created using the nano editor. Nano is beginner-friendly and intuitive. Key advantages of nano: - No modes to switch between - Shortcuts displayed at bottom - Easy to learn and use - Perfect for quick edits现在让我们保存文件。在
nano中,"Save" 被称为 Write Out。按Ctrl+O开始 Write Out。你会看到一个提示,要求输入文件名。当前名称welcome.txt已经显示,所以按Enter确认并保存文件。你会在底部看到一条消息,指示文件已成功写入,并显示写入的行数。
要退出
nano,请按Ctrl+X。由于你已经保存了文件,nano将立即退出并返回到 shell 提示符。如果你在保存前按Ctrl+X,nano会询问是否保存更改;按Y然后按Enter即可保存并退出。
比较 nano 和 vi/vim:何时使用每个编辑器
在最后一步中,你将了解 nano 和 vi/vim 之间的主要区别,并了解何时使用每个编辑器。让我们使用这两个编辑器创建一个比较文件,以展示它们的差异。
首先,让我们使用
nano创建一个比较文件:nano editor_comparison.txt在 nano 中输入以下内容:
TEXT EDITOR COMPARISON: nano vs vi/vim NANO EDITOR: Pros: - Beginner-friendly interface - No modes to learn - Shortcuts displayed on screen - Immediate text input - Good for quick edits and simple tasks Cons: - Limited advanced features - Less efficient for complex editing - Not available on all systems保存文件并退出 nano。
现在,让我们用
vi打开同一个文件以添加更多内容:vi editor_comparison.txt使用
G(大写 G)导航到文件末尾,然后按o打开一个新行并进入插入模式。添加以下内容:VI/VIM EDITOR: Pros: - Extremely powerful and feature-rich - Available on virtually all Unix/Linux systems - Highly efficient once mastered - Excellent for programming and complex editing - Extensive customization options Cons: - Steep learning curve - Modal interface can be confusing for beginners - Requires memorizing many commands按
Esc返回普通模式,然后使用:wq保存并退出。让我们查看完成的比较文件:
cat editor_comparison.txt这将显示完整的比较内容,展示了由两个编辑器添加的内容。
何时使用每个编辑器:
在以下情况使用 nano:
- 你是 Linux 文本编辑的新手
- 进行快速、简单的编辑
- 偶尔修改配置文件
- 你更喜欢直接、直观的界面
在以下情况使用 vi/vim:
- 你正在进行大量的编程或文本处理
- 在远程服务器上工作(vi 总是可用)
- 你需要宏、插件或复杂的搜索/替换等高级功能
- 一旦掌握了命令,效率和速度就很重要
这两个编辑器都是 Linux 用户工具包中的宝贵工具,了解两者能让你在不同情况下更加灵活。
总结
在本实验中,你学习了如何使用 Linux 中两个核心文本编辑器:vi/vim 和 nano。
使用 vi/vim,你掌握了模态编辑的基本概念,学会了在普通模式和插入模式之间切换。你练习了创建文件、输入文本、使用 :w 和 :wq 保存、使用移动键(h、j、k、l)导航、使用 / 搜索、使用 dw 等命令编辑,以及使用 :q! 在不保存的情况下退出。你还发现了用于持续学习的交互式 vimtutor。
使用 nano,你体验了一种对初学者更友好的文本编辑方法。你学会了在无需担心模式的情况下创建和编辑文件,使用了在屏幕底部显示快捷键的直观界面,并练习了保存和退出文件等基本操作。
关键要点:
nano凭借其直观的界面和可见的快捷键,非常适合初学者和快速编辑vi/vim对于复杂的编辑任务更强大、更高效,但需要更多的学习投入- 两个编辑器都是宝贵的工具——nano 用于简单任务,vim 用于强大功能和广泛可用性
- 了解何时使用每个编辑器将使你在不同的 Linux 场景中更加高效
你现在已经具备了根据特定需求选择合适文本编辑器的基础,并可以继续使用这两种工具发展你的技能。



