第一次琢磨linux怎么编辑文件的时候,只知道敲命令,打开文件之后整个人僵住,键盘按什么都不对,输入字母直接变成一串奇怪字符,删也删不掉,关掉终端重新连,文件里多出一堆乱码。那台服务器还是线上测试机,当时手心都冒汗,生怕改坏配置直接把服务搞崩。

最开始只听过vi,直接输入vi加文件名回车,界面一变,就以为可以打字了。敲内容的时候,屏幕毫无反应,随便按几下,突然多出好多行,退格键也不起作用,按esc之后输入:wq,还会弹出报错,提示只读,保存不了。折腾了快半小时,才搞懂vi分两种模式,命令模式和插入模式,刚打开文件默认停在命令模式,不能直接输入文字,要先按i才切到编辑状态,改完之后按esc退出编辑,再敲保存退出的指令。

这只是我的个人感受,不是标准答案。

试过几次vi之后,又去试nano。界面底部自带提示,哪个按键对应保存、退出,不用死记一堆指令,打开文件就能直接打字,退格删除也符合平时的操作习惯。那时候觉得nano舒服太多,简单改个小配置文件,用这个省事不少。但也有别扭的地方,文件行数多起来的时候,跳转指定行就没有vi顺手,查找文本的操作也要看底部提示,做批量修改就显得笨重。

身边做运维的朋友基本都守着vi,他们说习惯之后,不用挪开手指,全程键盘操作,不用碰鼠标,处理大文件速度快很多。他们很少碰nano,说依赖底部提示,换个没有预装nano的服务器,一下子就卡壳。我遇到过一次,一台精简版系统,只带vi,没有nano,临时改配置,只能硬着头皮继续用vi,那段时间才慢慢记住基础操作。

改文件前,养成备份的习惯。

很多时候就是直接打开原文件修改,一旦改错参数,保存之后服务立刻异常,回滚起来很麻烦。后来操作前,都会先cp复制一份原文件留底,文件名后面加个bak标记,万一改崩了,直接把备份文件还原就行。这个步骤不是编辑器自带的,属于操作层面的小动作,不管用vi还是nano,都能用上。权限问题也踩过,打开文件一切正常,写完保存的时候提示权限不足,就算编辑内容没问题,最后也写不进磁盘,要么切换用户操作,要么调整文件权限,不能光盯着编辑器本身。

还有一种情况,打开文件看到一堆^M符号,当时不知道是什么,反复删除,删完又冒出来。查了之后才明白,是windows里写好的文本传到linux,换行符不一样,编辑器会把换行标记显示成这个符号,不是输入错误,不用一个个手动删掉,有命令可以批量处理。那次花了很久手动清理,纯粹浪费时间,后面再遇到这种文件,就不再硬抠这些符号。

编辑器本身没有绝对好坏,看你日常场景。只是临时改动几行文本,nano上手快;长期频繁修改配置,经常翻阅大日志文件,vi的优势会慢慢体现出来。但两种工具都有各自的局限,遇到加密文件或者特殊权限锁定的文件,不管哪个编辑器,都没法直接写入。

那天忙完之后,随手把测试服务器的终端关掉,没有再继续试别的编辑器,没有想着去学更复杂的操作。