### 实验知识点详解 #### 一、Linux VI编辑器简介 **VI编辑器**是Linux系统中最常用的文本编辑工具之一,适用于所有类型的文本文件编辑。它具有强大的功能和灵活的操作方式,深受用户喜爱。 ##### 1. 启动VI编辑器 - 直接在命令行输入 `vi [文件名]` 或 `vim [文件名]`。 - 若文件不存在,则创建新文件;若文件已存在,则打开该文件进行编辑。 ##### 2. VI编辑器的工作模式 - **命令模式(Command Mode)**:启动VI编辑器即进入此模式,可通过键盘指令进行文件操作。 - **插入模式(Insert Mode)**:在命令模式下按下`i`键进入此模式,可以开始输入文本。 - **末行模式(Ex Mode)**:在命令模式下按下冒号`:`进入此模式,执行一些特殊命令如保存文件、退出编辑器等。 #### 二、基本操作 ##### 1. 在命令模式下的基本操作 - 移动光标:`h`(左)、`j`(下)、`k`(上)、`l`(右) - 删除字符:`x`(删除当前光标下的字符) - 删除行:`dd`(删除当前行) - 复制行:`yy`(复制当前行) - 粘贴行:`p`(粘贴在光标所在行的下方) ##### 2. 进入插入模式 - `i`:在光标当前位置前插入 - `a`:在光标当前位置后插入 - `o`:在当前行下一行开始插入 - `O`:在当前行上一行开始插入 ##### 3. 保存与退出 - 保存并退出:在命令模式下输入`:wq`(w表示写入write,q表示退出quit) - 不保存直接退出:在命令模式下输入`:q!` - 仅保存不退出:在命令模式下输入`:w` #### 三、实验内容解析 **实验一:完成vi操作** 1. **切换到root用户**: - 通过命令`su - root`切换到root用户。 - 输入root用户的密码完成身份验证。 2. **修改配置文件**: - 使用vi编辑器打开文件`/etc/man_db.conf`。 - 将文件名修改为`manpath.config`。 - 完成修改后保存并退出。 3. **结果截图**: - 使用截图工具捕获操作界面,确保包括命令行提示符、文件内容变化等关键信息。 **实验二:在Vi中编写并运行C程序** 1. **创建C程序文件**: - 使用`touch abc.c`创建一个名为`abc.c`的文件。 - 通过`vi abc.c`打开并编辑该文件。 - 在文件中输入以下代码: ```c #include <stdio.h> int main() { int i, sum = 0; for (i = 0; i <= 100; i++) { sum += i; } printf("\n1+2+3+...+99+100=%d\n", sum); return 0; } ``` - 保存并退出编辑器。 2. **编译程序**: - 使用`gcc -o abc abc.c`编译程序。 - 此命令将源文件`abc.c`编译为可执行文件`abc`。 3. **运行程序**: - 使用`./abc`命令运行编译后的程序。 - 观察输出结果是否为`1+2+3+...+99+100=5050`。 4. **结果截图**: - 截取包含命令行提示符、源代码、编译命令、运行结果等信息的画面。 #### 四、实验总结与反思 - **遇到的问题**: - 在切换用户时,可能会因为忘记输入密码而导致操作失败。 - 在编辑文件时,可能因不小心进入了插入模式而无法正常输入命令。 - 编译过程中可能出现语法错误导致编译失败。 - **解决方法**: - 对于忘记密码的情况,可以尝试重新输入或使用其他账号进行操作。 - 当误入插入模式时,可以通过按下ESC键返回命令模式。 - 针对编译错误,仔细检查源代码,确保语法正确无误。 - **实验心得**: - 通过本次实验,加深了对VI编辑器的理解和掌握,提高了在Linux环境下编写、编译和运行程序的能力。 - 实践过程中,学会了如何有效利用命令行工具解决问题,提升了编程效率。 - 发现自己在实际操作中仍然存在一些不足之处,需要继续加强练习,提高技能水平。 本实验不仅涵盖了VI编辑器的基本操作,还涉及到了C语言程序的设计与实现。通过实验操作,学生能够更加熟练地运用Linux系统中的编辑工具,同时也能够在实践中提升编程能力。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程
- (源码)基于C语言的系统服务框架.zip
- (源码)基于Spring MVC和MyBatis的选课管理系统.zip
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip