1、第 8、9 周实验理论基础知识实验理论基础知识及操作步骤:Linux是一种文本驱动(text-driven)的操作系统。用户在使用 Linux过程中经常需要编辑文本文件,如编写脚本文件来执行几条命令,写电子邮件,创建 C语言源程序等。因此,必须熟悉至少一种文本编辑器以便高效地输入文本和修改文本文件。此外,还可以用文本编辑器方便地查看文件的内容(类似前面学过的 cat命令) ,以便识别其关键特征。这里所讨论的编辑器都是全屏编辑器(full-screen display editor) 。即可以使用它们在控制台窗口或终端屏幕中查看文件的部分或全部内容,这些内容通常会占满整个或者绝大部分屏幕窗口。也
2、可以移动光标(cursor)至整屏文本中的任意位置。正在编辑的文本一般被保存在内存中一块临时存储区域里,称为编辑器缓冲区(editor buffer) 。如果编辑的文件超过一屏,编辑器缓冲区的内容将随着光标的移动做出相应改变。文件和缓冲区这两个概念有很大区别。对于文本编辑来说,文件是保存在磁盘上的一段数据序列。当编辑一个文件时,实际上是在编辑由编辑器创建的一份备份,它位于编辑器缓冲区中。可以修改缓冲区的内容,甚至可以同时操作多个缓冲区,直到决定保存缓冲区时,一段新的数据序列才被写到磁盘上,从而保存了文件。本次实验讨论的所有编辑器的另一个重要特征是:对它们的操作都是通过按键命令(keystrok
3、ecommand)来完成的,可以是只按一个键,也可以是(同时地或按照一定顺序)按多个键。因为键盘是 Linux系统的主要输入设备,学会正确的按键命令语法是必须的。但一旦习惯了用键盘操作进行输入,就会发现它的效率一点不逊于甚至高于用鼠标/GUI 进行输入。另外,键盘比鼠标操作灵活得多,它给予对编辑行为的完全的和高度可定制化的控制。一般来说,应当按照自己的习惯选取用得最舒服的编辑器。但编辑器的选择在很大程度上也取决于所要做的文本创建和操作的复杂度和工作量。实践证明,像 vi和 emacs这样功能强大的编辑器有能力处理非常复杂的编辑任务。但要想利用它们的这些能力,需要先花时间学习完成那些任务所需的命
4、令,并记熟这些命令是如何执行的。表 5.1列出了讨论到的编辑器所共有的文本编辑功能及其简短描述。表 5.1 Linux文本编辑器的通用功能功能 描述光标移动 改变光标或文本插入点在缓冲区中的当前位置剪切、复制和粘贴 “剪掉(ripping out) ”或复制一段文本,并粘贴到指定位置删除文本 删除指定位置或指定范围内的一段文本插入文本 在指定位置插入一段文本打开、新建 打开一个已有文件或创建一个新文件退出 离开编辑器程序,可选择保存或放弃保存所完成的工作保存 将缓冲区内容保存到一个磁盘文件中查找与替换 查找已有文本,以新的文本替换1.使用 vi编辑器获取更多控制Linux文本编辑器 vi拥有一
5、个文字处理器的几乎所有特性,具备创建文本文件的巨大灵活性,它比 pico更加复杂,但能处理更大的文件。如前面提及的,缓冲区作为正在编辑文本的一个临时存储设备,这个概念在 vi中非常有用、非常重要。当试图创建文本,或从先前创建的文件(磁盘上永久性存档文件)中试图修改文本时,存放文本的空间就是主缓冲区(main buffer) ,有时也称为编辑缓冲区(editting buffer)或工作缓冲区(work buffer) 。通用缓冲区(general purpose buffer)是最近“剪掉” (剪切/复制)的文本所在的地方。索引缓冲区(indexed buffer)允许保存多个临时的文本字符串
6、。2. shell脚本文件示例:vi 文本编辑器说明如何创建一个脚本文件(按顺序执行的 Linux命令集) ,然后执行这个脚本。在这个例子中,假定当前运行的是 Bash. 示例:vi 文本编辑器步骤 l:在 shell提示符下,输入 vi file并按键。vi 的界面将出现在显示屏上。步骤 2:输入 A,输入 ls la,并按键。步骤 3:输入 who 并按键。步骤 4:输入 pwd 再按键。步骤 5:转换成命令模式,输入 :wq 并按键。步骤 6:在 shell提示符下,输入 sh file并按键。步骤 7:观察结果。当前的工作目录中有多少个文件?它们的名称和大小?还有谁在使用你的计算机系统
7、?当前的工作目录是什么?3. vi命令的格式和操作模式无论在命令模式还是插入模式下,键盘输入的一般语法是:语法:vi operations file(s)用途:编辑新的或已有的文本文件输出:如果未指定选项或文件,将进入 vi程序并开始编辑一个新缓冲区vi中的操作主要有两类:命令模式(command mode) ,由按键命令序列(vi 编辑器命令)组成,完成某些特定动作;插入模式(insert mode) ,允许输入文本。vi的 3种模式转换关系Command Mode提供了相当多的按键及组合按键命令,帮助用户修改文件。Last Line Mode命令是指可以在界面最底部的一行显式地输入命令,一
8、般是用来执行查找特定字符串、保存及退出等任务。在 Command Mode下输入冒号“:” ,就可以进入 Last Line Mode了,还可以使用 “?”和“/”键进入 Last Line Command Mode主要功能:移动鼠标或编辑文字Input Mode主要功能:输入文字Last Line Mode主要功能:搜索或替换、保存及结束执行 vi 命令按 a、i、o键 按 Esc键按 q、pi、wq键回到提示符命令错误或按 Esc键按:键Mode。表 5.4 vi命令语法示例命 令 动 作5dw 从当前光标位置开始删除 5 个字7dd 从当前行开始删除 7 行7o 在当前行后面打开 7 个
9、空行7O 在当前行前面打开 7 个空行c2b 修改光标前面两个字d7,14 将缓冲区中第 7 行14 行删除1G 将光标置于文件首行10yy 将后面 10 行(从当前行开始)复制到临时缓冲区中正如前面强调的,刚运行 vi程序时,处于命令模式。若想使用插入模式来替代它,按一个有效键完成切换。这些键的功能如表 5.5所示。表 5.5 插入模式下的重要按键按 键 动 作在光标所在字符后添加文本在当前行最后一个字符后添加文本开始修改操作,允许更改当前行文本修改从光标位置开始到当前行未尾范围内的内容在光标所在字符前插入文本在当前行开头插入文本在当前行下方打开一空行并将光标置于该空行行首在当前行上方打开一
10、空行并将光标置于该空行行首开始覆盖文本操作替换单个字符替换整行在文本输入完成后,可以编辑文本,将光标移动到缓冲区的新位置,保存该缓冲区并退出编辑器。这些活动都在命令模式下完成。当想从插入模式切换到命令模式时,按。表 5.6列出了命令模式下一些有用的命令,以及在状态行(末行)上执行的以冒号(:)开始的命令。表 5.6 命令模式下的重要命令命 令 动 作d 删除字、行等u 撤销最近一次编辑动作p(小写) 在当前行后面粘贴(插入)此前被复制或剪切的行P(大写) 在当前行前面粘贴(插入)此前被复制或剪切的行:r filename 读取 filename 文件中的内容并将其插入在当前光标位置:q! 放弃
11、缓冲区内容,并退出 vi:wq 保存缓冲区内容,并退出 vi:w filename 将当前终冲区内容保存到 filename 文件中:w! filename 用当前文本覆盖 filename 文件中的内容ZZ 退出 vi,仅当文件在最后一次保存后进行了修改,才保存缓冲区内容实战演练 5.1(1)在 vi编辑器的 input Mode模式下,输入以下内容:Abstract: A fire is a technological measure developed in recent years to protect the security of a computer network, its a
12、lso the most widely used technology of a network security protection now. (2)以 myfile为文件名保存以上输入的内容并退出 Vi编辑器;(3)重新打开 myfile文件,将以下文字插入到 myfile文件后(另起一段):防火墙是近几年发展起来的一种保护计算机网络安全的技术措施,也是目前使用最广泛的一种网络安全防护技术。防火墙是一个或一组实施访问控制策略的系统,它可以是软件、硬件或软硬件的结合,其目的是提供对网络的安全保护。(4)在“fire”后加上“wall” 。(5)将英文中的第二句话删除实战演练 5.3要求用表
13、 5.5和表 5.6中的命令继续编辑在实战演练 5.1中创建文本。实战演练 5.3步骤 1:在 shell提示符下,输入 vi file并按键。步骤 2:输入 A。输入 This is the first line of a vi file.并按键。步骤 3:输入 This is the line of a vi file.并按键。步骤 4:输入 is the 3r line of a vi。步骤 5:按。步骤 6:输入:w 并按键。步骤 7:用方向键将光标置于文件第二行的字“line”上的第一个字符“l”上。步骤 8:输入 i接着输入 2nd_(“_”表示空格)步骤 9:按。步骤 10:用方
14、向键将光标置于文件第三行的任意位置。步骤 11:输入 I,接着输入 This_。步骤 12:按键。步骤 13:用方向键将光标置于该行“3r”的字符“r”上。步骤 14:输入 a,接着输入 d。步骤 15:按。步骤 16:输入 A,接着输入_file。步骤 17:按键。步骤 18:输入:wq 返回到 shell提示符下。下面的练习要求使用在前面实战演练中所学到的操作。1、用 vi开始编辑以前创建的文件。用一个不同的文件名保存原文件的一个备份,同时保持在 vi下,不退出这个编辑会话窗口。在 vi下如何来完成?2、在 vi命令模式下,如果完成 5个操作后输入 5u会发生什么?4. 光标移动和编辑命令
15、在命令模式下,有一些命令完成光标移动和文本编辑任务。表 5.7列出了重要的光标移动和键盘编辑命令。正如先前所讲的,每次一字符或每次一行的光标移动,可以通过方向键轻松实现。命 令 动 作将光标移到文件首行将光标移到文件末行(数字 0) 将光标移到当前行首个字符以行列号形式报告光标位置将光标移到当前行最后一个字符将光标每次前移一字将光标每次倒退一字删除光标位置上的字符删除当前光标所在行撤销最近一次所做的修改用随后输入的一个字符替换当前光标位置处的字符实战演练 5.4要求用表 5.7中给出的命令继续编辑实战演练 5.1创建的文本。实战演练 5.4步骤 1:在 shell提示符下,输入 vi firs
16、tvi,然后按键。步骤 2:输入 G。光标移到文件的末行。步骤 3:同时按下键。在屏幕的最底行,vi 显示“firstvi”line 3 of 3-100%- col 1。这是关于正在编辑的缓冲区的报告,包括当前行号,缓冲区总行数,该行所在缓冲区的百分比位置,以及光标的当前列位置。步骤 4:输入 o。在文件第三行下新建一行。步骤 5:输入 This is the 5th line of a vi file。步骤 6:输入 0(数字 0) 。光标移到刚才输入行的首个字符。步骤 7:输入。光标移到当前行的最后一个字符。步骤 8:输入 O。在当前的第四行上新建一行。步骤 9:输入 This is t
17、he 44th line of a va file。步骤 10:用方向键将光标置于该行“44”的第一个 4上。步骤 11:输入 x。步骤 12:用方向键将光标置于该行“va”的字符 a上。步骤 13:输入 r接着输入 i。步骤 14:输入 dd。步骤 15:输入:wq 返回到 shell提示符下。步骤 16:在 shell提示符下,输入 more firstvi然后按键。在这个文件中,more 命令显示的文本行有多少?(注:以下内容是对 Linux的启动登录界面的设置修改)3.转换系统模式如果你安装时设定以图形界面启动,但是又需要启动后先在文本(字符)界面下工作,则可以改变系统以文本(字符)界面启动。还可以在运行中改变及切换图形与文本(字符)模式。(1)设置启动模式要设置启动时直接进入文本(字符)模式,可以修改文本文件/etc/inittab。步骤如下:首先,使用 vi编辑器打开/etc/inittab 文件。找到文件中的“id:5:initdefault”这一段文字,然后修改为“id:3:initdefault”,然后,保存并退出。