企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## 4.1 vi 的使用 如果你想要使用 vi 来创建一个名为 welcome.txt 的文件时,你可以这样做: * 1. 使用“ vi filename ”进入一般指令模式 ``` [dmtsai@study ~]$ /bin/vi welcome.txt # 在 CentOS 7 当中,由于一般帐号默认 vi 已经被 vim 取代了,因此得要输入绝对路径来执行才行! ``` * 2. 按下 i 进入编辑模式,开始编辑文字 在一般指令模式之中,只要按下 i, o, a 等字符就可以进入编辑模式了!在编辑模式当中,你可以发现在左下角状态列中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示啰!这个时候,键盘上除了 [Esc] 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑啰! * 3. 按下 [ESC] 按钮回到一般指令模式 好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 [Esc] 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!! * 4. 进入命令行界面,文件储存并离开 vi 环境 OK,我们要存盘了,存盘 (write) 并离开 (quit) 的指令很简单,输入“:wq”即可存盘离开! (注意了,按下 : 该光标就会移动到最下面一列去!) 这时你在提示字符后面输入“ ls -l ”即可看到我们刚刚创建的 welcome.txt 文件啦! 如此一来,你的文件 welcome.txt 就已经创建起来啰!需要注意的是,如果你的文件权限不对,例如为 -r--r--r-- 时,那么可能会无法写入,此时可以使用“强制写入”的方式吗?可以!使用“ :wq! ” 多加一个惊叹号即可!不过,需要特别注意呦!那个是在“你的权限可以改变”的情况下才能成立的! * 一个案例练习 1. 请在 /tmp 这个目录下创建一个名为 vitest 的目录; `mkdir /tmp/vitest` 2. 进入 vitest 这个目录当中; `cd /tmp/vitest` 3. 将 /etc/man_db.conf 复制到本目录下面(或由上述的链接下载 man_db.conf 文件); `cp /etc/man_db.conf` 4. 使用 vi 打开本目录下的 man_db.conf 这个文件; `/bin/vi man_db.conf` 5. 在 vi 中设置一下行号; `:set nu #然后你会在画面中看到左侧出现数字即为行号。 ` 6. 移动到第 43 行,向右移动 59 个字符,请问你看到的小括号内是哪个文字? `先按下“43G”再按下“59→”会看到“ as ”这个单字在小括号内` 7. 移动到第一行,并且向下搜寻一下“ gzip ”这个字串,请问他在第几行? `先执行"1G"或"gg"后,直接输入"/gzip",则会去到第 93 行才对!` 8. 接着下来,我要将 29 到 41 行之间的“小写 man 字串”改为“大写 MAN 字串”,并且一个一个挑选是否需要修改,如何下达指令?如果在挑选过程中一直按“y”, 结果会在最后一列出现改变了几个 man 呢? ``` 直接下达“ :29,41s/man/MAN/gc ”即可!若一直按"y"最终会出现“在13列内置换13 个字串”的说明。 ``` 9. 修改完之后,突然反悔了,要全部复原,有哪些方法? > 1)简单的方法可以一直按"u"回复到原始状态, > 2)使用不储存离开“ :q! ”之后,再重新读取一次该文件; 10. 我要复制 66 到 71 这 6 行的内容(含有MANDB_MAP),并且贴到最后一行之后; > "66G"然后再"6yy"之后最后一行会出现“复制6行”之类的说明字样。 按下"G"到最后一行,再给他“ p ”贴上6行! 11. 113 到 128 行之间的开头为 # 符号的注解数据我不要了,要如何删除? > 因为 113~128 共 16 行,因此"113G"→"16dd"就能删除 16 行,此时你会发现光标所在 113 列的地方变成 "# Flags." 开头啰 12. 将这个文件另存成一个 man.test.config 的文件名; ``` " :w man.test.config ",你会发现最后一列出现 "man.test.config" [New].. 的字样。 ``` 13. 去到第 25 行,并且删除 15 个字符,结果出现的第一个单字是什么? ``` "25G"之后,再给他"15x"即可删除 15 个字符,出现"tree"的字样 ``` 14. 在第一行新增一行,该行内容输入"I am a student..."; ``` 先"1G "去到第一列,然后按下大写的"O"便新增一列且在插入模式;开始输入“I am a student...”后, 按下[Esc]回到一般指令模式等待后续工作; ``` 15. 储存后离开吧 `:wq`