当前位置: 首页 > news >正文

Linux-编辑器的使用

实验三 Linux编辑器的使用

一、实验目的

学习使用vi编辑器建立、编辑和保存文本文件。

二、实验内容

1.进入和退出vi。
2.Vi不同工作模式的切换。
3.文本文件基本编辑(光标移动、文本输入、复制、移动、删除、查找、替换)。
4.文本文件的保存和备份。

三、主要实验步骤

1.创建一个名为zhangsan2025的目录(实验中,zhangsan替换为你姓名拼音,zs为你姓名拼音首字母,以下皆同),并切换到该目录下完成下边工作。
在这里插入图片描述

2.利用vi新建一个名为zs2025的文本文件,输入如下内容,保存并退出。

在这里插入图片描述

在这里插入图片描述

3.利用vi打开zs2025文件,完成如下操作。
A.设置vi显示行号。

在这里插入图片描述

B.选中第一行蓝色文字(就是/Good luck./这几个字),移动到文档末尾,单独一行。
在这里插入图片描述

C.切换到命令模式,将当前文件内容保存成名为zs-temp的备份文件。
在这里插入图片描述

D.将绿色文字紧跟其后复制三行。

在这里插入图片描述

E.在红色文字之前添加一行,写上学号和姓名拼音。

在这里插入图片描述

F.保存文件并退出。
在这里插入图片描述

4.利用重定向将当前日期和时间追加到文件zs2025,打开该文件验证是否追加成功。
在这里插入图片描述

5.基于zs-temp文件,自己设计实验进行文本多次删除、粘贴、撤销、重复等操作,要求验证vi临时缓冲区和命名缓冲区的使用,并解释vi缓冲区的工作原理。

答:**删除、粘贴、撤销、重复操作
删除操作:使用 dd 删除当前行。
粘贴操作:使用 p 粘贴缓冲区内容。
撤销操作:使用 u 撤销上一步操作。
重复操作:使用 . 重复上一步操作。
验证临时缓冲区和命名缓冲区
临时缓冲区:使用 dd 删除的内容会存放在临时缓冲区,可使用 p 粘贴。
命名缓冲区:使用 "ayy 将当前行复制到命名缓冲区 a,使用 "ap 从命名缓冲区 a 粘贴内容。
vi 缓冲区工作原理
vi 有多个缓冲区,临时缓冲区用于存储最近删除或复制的内容,可直接使用 p 或 P 粘贴。命名缓冲区则允许用户将内容存储到指定的缓冲区,使用时指定缓冲区名称。**

6.利用重定向技术将vi的用户手册文档生成一个test文件,查找文件中是否出现look字符串,并将全文所有的单词options替换为apple,最后保存退出。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

7.利用sed命令,打开文件zs2025,但只显示数字开头的行。
在这里插入图片描述
在这里插入图片描述

8.利用sed命令,删除zs2025文件中重复的行,并保存。

在这里插入图片描述在这里插入图片描述

作业三

小明正在实验室台式机Linux系统里,用vi修改上周写的程序文档,已经改了一个小时了,结果实验室停电,电脑突然关闭,文档还没来得及保存。实验室恢复电力供应后,小明能否恢复该文档或者尽可能减少停电带来的损失,如果不能,原因是什么?如果能恢复,该如何恢复?(友情提示:参考课程群共享的某影印版Linux书)

答:小明有可能恢复该文档。vi 在编辑文件时会创建一个交换文件(通常以 .swp 或 .swo 或 .swn
结尾),该文件包含了最近一次保存后对文档所做的修改。

恢复步骤如下:

1.进入文档所在目录,查看是否存在交换文件。例如,如果编辑的文件是 example.txt,则查看是否有 .example.txt.swp 文件。
2.如果存在交换文件,使用 vi -r example.txt 命令尝试恢复文件。
3.按照 vi 的提示操作,选择合适的恢复选项。

如果交换文件已经被删除或者损坏,那么就无法恢复未保存的修改内容。

相关文章:

  • 【Linux】线程安全与线程同步
  • 单页面应用的特点,什么是路由,VueRouter的下载,安装和使用,路由的封装抽离,声明式导航的介绍和使用
  • 【Easylive】为什么需要手动转换 feign.Response 到 HttpServletResponse
  • 关于 梯度下降算法、线性回归模型、梯度下降训练线性回归、线性回归的其他训练算法 以及 回归模型分类 的详细说明
  • Dify忘记管理员密码,重置的问题
  • ADB -> pull指令拉取手机文件到电脑上
  • 【图像标注技巧】目标检测图像标注技巧
  • elastic/go-elasticsearch与olivere/elastic
  • 如何建设企业级合成数据中台?架构设计、权限治理与复用机制全解
  • 通过Docker Desktop配置OpenGauss数据库的方法(详细版+图文结合)
  • 特征选择与类不平衡处理
  • ThinkPHP5 的 SQL 注入漏洞
  • 041-代码味道-大泥团模块
  • VSCode连接服务器跑深度学习代码相关问题(研0大模型学习第八天)
  • C++入门小馆: 深入string类(二)
  • Docker 基本概念与安装指南
  • [贪心_2] (含证明)将数组和减半的最少操作次数 | 最大数
  • QT 5.15 程序打包
  • 【阿里云大模型高级工程师ACP学习笔记】2.1 用大模型构建新人答疑机器人
  • Electron Demo 的快速编译与启动
  • 纪念沈渭滨︱“要把近代史搞得会通”——读《士与大变动时代》随札
  • 田野调查|“心青年”的日常秩序与归属之地
  • 玉渊谭天丨这是一个时代的结束
  • 人民日报头版:各地扎实开展学习教育,一体推进学查改
  • 全国首票海关特殊监管区域外保税再制造业务落地上海
  • 农业农村部原党组书记、部长唐仁健被提起公诉