一、实验目的
- 掌握vi/vim编辑器的进入和退出方式
- 了解vi/vim的三种模式
- 熟练vi/vim的操作命令
二、实验内容
1.在家目录下新建一个名为“vitest_name”(“name”为学生姓名拼音)的目录。
●创建用户目录命令:sudo mkdir /home/vitest_lw3613
●原理:mkdir命令用于创建目录,\~表示当前用户的家目录路径。若需递归创建多级目录,需添加-p参数。
●验证:通过ls \~确认目录存在。
2.执行复制命令,将文件/etc/rsyslog.conf复制到vitest_name目录下。
●复制系统配置文件命令:sudo cp /etc/rsyslog.conf /home/vitest_lw3613/
●原理:cp命令实现文件复制,需指定源文件路径和目标目录。
●权限说明:普通用户需对/etc/rsyslog.conf有读取权限,否则需使用sudo提权。
3.使用vi/vim打开vitest_lw3613 目录下的rsyslog.conf文件,并完成以下操作:
(1)指出该文件中设置imklog的所在行
●命令模式输入/imklog,按Enter启动正向搜索。
●使用n跳转到下一个匹配项,N返回上一个。
●注意:若需记录行号,可在命令模式输入:set nu显示行号。
(2)将光标移到该行,并复制该行内容
●光标定位到目标行后,输入yy复制整行。
●扩展:3yy可复制从当前行开始的3行内容(下面是复制三行的示例)。
(3)将复制内容粘贴到最后一行
●输入G跳转至文件末尾,按p将内容粘贴到下一行(默认行为)
(4)撤销上一步的粘贴动作
●按u撤销最后一次操作。
●重做:若误撤销,可通过Ctrl + r恢复。
(5)将光标移到“#Everybody gets……”,删除该行
●定位到#Everybody gets...所在行,按dd删除整行。
●替代方案:使用:g/^#Everybody/d全局删除所有匹配行。
(6)存盘但不退出
●命令模式输入:w,文件即时保存但保持编辑状态
:●注意输入命令:wq的话是保存然后退出,不能保持编辑状态
(7)将光标移至首行,并输入你的学号姓名等信息
●输入gg跳转至首行,按i在首行上方插入新行,如下图。
●输入学号、姓名等信息后,按Esc返回命令模式
(8)向下查找字符串“Directory”
●向下查找Directory:输入:/Directory并回车,具体操作结果如下图
(9)向上查找刚才新添加的姓名学号字符串
●向上查找姓名学号:输入:?姓名学号并回车,使用N反向遍历,具体操作结果如下图。
●高亮优化:通过:set hls启用搜索结果高亮显示。
(10)强制退出vi/vim,不存盘
●输入:!q忽略所有修改并强制退出编辑器
●输入:!wq是强制保存并且退出
●如果你不想加!来强制退出vi/vim,那么你在进入vim编辑时要以root权限编辑:例如命令:sudo vim rsyslog.conf
三、实验总结
1. 核心技能掌握与认知提升
(1)Linux命令行操作逻辑的深化理解:
通过mkdir和cp命令的实践,理解了路径参数的重要性。例如:
●绝对路径与相对路径:\~/vitest_zhangsan中的\~表示用户家目录,而/etc/syslog.conf为绝对路径,需注意路径符号的适用场景。
●权限管理意识:普通用户复制系统文件时可能因权限不足失败,需主动使用sudo提权或检查文件所有权(ls -l)。
(2)vim编辑器核心能力的突破:
●多模式切换:深刻体会命令模式(移动、复制)、插入模式(编辑文本)、末行模式(保存退出)的差异。例如,在插入学号信息时,需先通过O或i进入插入模式,完成后必须按Esc返回命令模式才能执行保存操作。
●高效导航技巧:gg(跳转首行)、G(跳转末行)、/和?(双向搜索)大幅提升文件浏览速度,尤其适用于大型配置文件。
●撤销与重做机制:u(撤销)和Ctrl+r(重做)的灵活使用,降低了误操作风险。例如,误粘贴后迅速撤销,避免错误留存。
2. 操作难点与问题剖析
(1)权限管理与提权操作:
●问题场景:初次执行cp /etc/syslog.conf时因权限不足报错Permission denied。
●解决方案:通过sudo cp提权,并理解/etc目录的系统保护性质。
●反思:需养成检查文件权限的习惯(ls -l),区分用户权限与系统保护文件。
(2)vim模式切换的误操作:
●典型错误:在插入模式下尝试执行yy复制命令,导致输入字符yy而非触发复制操作。
●改进方法:强化模式意识,通过状态栏(-- INSERT -- 提示)或光标形状(如块状与线状)快速识别当前模式。
(3)字符串搜索的精准性:
●问题场景:搜索mail时可能匹配到EMAIL等无关内容(若未区分大小写)。
●优化技巧:
①使用/\Cmail强制区分大小写(\C表示Case-sensitive)。
②通过:set hls(高亮搜索)直观定位所有匹配项。
3. 技能应用与未来学习方向
(1)运维场景的实战价值:
●配置文件编辑:掌握vim操作后,可快速修改Nginx、Apache等服务的配置文件,例如调整日志路径或注释无用模块。
●日志分析基础:通过本实验对syslog.conf中mail、authpriv等日志规则的理解,为后续分析/var/log日志文件奠定基础。
(2)进阶学习计划:
●vim高阶功能:
①宏录制(Macro) :通过qa开始录制宏,q结束,@a执行,用于重复性编辑任务。
②分屏编辑::vsp(垂直分屏)、:sp(水平分屏),同时编辑多个文件。
●Shell脚本整合:将vim操作写入脚本,例如自动插入文件头注释:
#!/bin/bash vim -c "normal ggO// 作者:张三" -c "wq" file.txt |
●正则表达式应用:结合:%s/old/new/g实现批量替换,例如将文件中所有error替换为ERROR。
4. 对Linux系统设计的思考
●“一切皆文件”理念的实践印证:
从syslog.conf的配置中看到,Linux将日志分类(mail、authpriv等)抽象为文件路径,体现了通过文件接口统一管理资源的哲学。
●命令行与GUI工具的取舍:
在高效运维场景下,命令行操作(如vim)的速度远超GUI工具,尤其在远程服务器管理中不可或缺。
5. 实验对个人能力的长期影响
●自主解决问题能力的提升:
通过查阅man vim、在线文档(如vimtutor)解决操作疑惑,培养了技术自学能力。
●细节把控意识的增强:
例如,在插入个人信息时需精确到行首,避免因空格错位导致配置语法错误。
●跨平台技能迁移:
vim的快捷键逻辑(如dd删除行)与VS Code、IntelliJ等编辑器的Vim插件兼容,未来可无缝衔接开发环境。
总结:本次实验不仅强化了Linux基础操作和vim核心技能,更培养了系统化思维与问题拆解能力。未来将持续探索自动化脚本编写、正则表达式优化等方向,向高效运维和开发的全栈能力迈进。