适用:所有 Linux 耗时:约 25 分钟 前置:第一周 D6(会基本命令)

Linux 里改配置、写脚本、看代码,都得在终端里编辑文件。这一篇只讲两个编辑器:nano(够用)和 vim(保命)。

先说结论:日常用 nano。但 vim 必须会三招——因为很多系统的默认编辑器就是它,进去了出不来是真实的痛点。


一、nano:零学习成本

打开

nano 文件.txt          # 不存在就新建
sudo nano /etc/fstab   # 改系统配置要 sudo

打开后底部有两行提示,这就是全部用法:

^G 帮助    ^O 写入    ^W 查找    ^K 剪切    ^T 执行
^X 退出    ^R 读入    ^\ 替换    ^U 粘贴    ^C 位置

^ 表示 Ctrl 键。 所以 ^O 是 Ctrl + O,^X 是 Ctrl + X。

五个必须会的

操作按键说明
保存Ctrl + O → 回车先问文件名,直接回车确认
退出Ctrl + X有未保存的改动会问你 y/n
查找Ctrl + W → 输入 → 回车再按 Alt + W 找下一个
剪切整行Ctrl + K光标所在行
粘贴Ctrl + U粘贴刚才剪的

记住这五个就够了。 其余功能用不上。

一个容易踩的坑

保存时问 “File Name to Write” —— 直接按回车就行,别去改名字。很多人在这里以为卡住了。

用 nano 的完整流程

#!/bin/bash
# 假设要建一个脚本

nano ~/test.sh
# 输入内容
# Ctrl+O → 回车 → Ctrl+X
chmod +x ~/test.sh

三步:写 → 存 → 给执行权限。 这是每天都会重复的动作。


二、nano 的三个实用配置

改 ~/.nanorc(没有就新建),能让 nano 更好用:

nano ~/.nanorc
set linenumbers        # 显示行号(报错说"第 42 行"时特别有用)
set autoindent         # 自动缩进(写脚本时)
set tabsize 4          # Tab 宽度 4 空格
set mouse              # 支持鼠标点击定位
set constantshow       # 底部一直显示光标行列位置

set linenumbers 值得优先加。 排查配置问题时,“第几行有错"这个信息能省一半时间。


三、vim:只学三招保命

为什么必须学

很多系统默认的 vi/vim 就是它。 你不知道怎么退出,就会卡在那儿——这是 Linux 新手最经典的心理阴影。

但你不需要学会 vim。 只需要三招:

场景按键
退出(不保存)Esc → :q! → 回车
保存并退出Esc → :wq → 回车
只保存Esc → :w → 回车

Esc 一定要先按。 因为 vim 有"模式”,不按 Esc 回到普通模式,你敲的 : 会被当成文本插进文件里。

最小可用流程(改一个值)

vim /etc/某配置
1. 按 i          → 进入插入模式(左下角出现 -- INSERT --)
2. 用方向键移动、改内容
3. 按 Esc        → 回到普通模式
4. 输入 :wq      → 回车,保存退出

这四步能应付 90% 的"必须用 vim"的情况。

再看几个不学也会遇到的操作

想要vim 里怎么做
删除一行Esc → dd
撤销Esc → u
查找Esc → /关键词 → 回车,n 下一个
跳到文件开头Esc → gg
跳到文件末尾Esc → G
跳到第 42 行Esc → :42 → 回车

这些是"顺便记住"的,不是必须。


四、怎么设置默认编辑器

有些命令会调起"默认编辑器"(比如 crontab -e、visudo、git commit)。设成 nano 能省很多事:

# 临时(当前会话)
export EDITOR=nano

# 永久(写进 shell 配置)
echo 'export EDITOR=nano' >> ~/.bashrc
echo 'export VISUAL=nano' >> ~/.bashrc
source ~/.bashrc

验证:

echo $EDITOR

crontab -e 的默认编辑器是单独设置的,不走 $EDITOR:

sudo update-alternatives --config editor    # Debian 系

或者直接用 crontab -e 时如果进了 vim,就按 Esc :q! 退出,然后按上面设置一遍。


五、除了这两个,还有什么

编辑器特点适合谁
nano零学习成本,底部有提示所有人,日常首选
vim极强,但要学;服务器上永远有需要长期在服务器上干活
gedit图形界面,像记事本桌面环境,改小文件
VS Code功能全,能装插件写代码(桌面用,不是终端)
micro现代版 nano,支持鼠标和多选想升级一下 nano

micro 值得推荐(如果源里有):

sudo apt install micro
micro 文件.txt     # Ctrl+S 保存,Ctrl+Q 退出,和普通编辑器一样

对从 Windows 过来的人,micro 是最舒服的过渡。


六、动手:三个练习

练习 1:用 nano 建一个脚本并运行

nano ~/hello.sh

输入:

#!/bin/bash
echo "你好,$(whoami)"
echo "现在是 $(date)"

Ctrl + O → 回车 → Ctrl + X,然后:

chmod +x ~/hello.sh
~/hello.sh

练习 2:用 vim 改一个文件(体验模式)

vim ~/hello.sh
按 i          → 插入模式
改一行内容
按 Esc
输入 :wq       → 回车

再 cat ~/hello.sh 确认改成功了。

练习 3:故意卡住,然后自己出来

vim /tmp/test.txt
# 随便敲点东西
# 现在:按 Esc,然后 :q!   ← 不保存退出

这一个练习最重要。 亲手做一遍"进了 vim 怎么出来",以后再也不会慌。


七、验证:你过关了吗

  • 会用 nano 保存(Ctrl+O 回车)和退出(Ctrl+X)
  • 知道 nano 保存时"直接回车"确认文件名
  • 会用 Esc + :q! 从 vim 里退出来
  • 会用 vim 的 i 进入插入模式、:wq 保存退出
  • 设过 EDITOR=nano

八、不行怎么办

Q1:nano 里 Ctrl+O 没反应 有些终端会把 Ctrl+O 映射成别的。试 Ctrl + Shift + O,或者用 Ctrl + X 退出时选择 y 保存。

Q2:vim 里方向键变成 ABCD 老版本 vi 的问题。装完整版:

sudo apt install vim

Q3::wq 报 E45: 'readonly' option is set 文件只读,或者你需要 sudo:

sudo vim /etc/某文件

或者在 vim 里强存(谨慎)::wq!

Q4::q 退不出去,一直提示 No write since last change 说明有未保存的改动。三种选择:

  • :wq 保存后退出
  • :q! 不保存强退
  • :w 保存但继续编辑

Q5:不小心按了 Ctrl+S,终端卡住了 Ctrl+S 在终端里是"暂停输出"(XOFF)。按 Ctrl+Q 恢复(XON)。这不是 nano/vim 的问题,是终端本身的行为。

Q6:crontab -e 进了 vim,退出来后没保存 重来一次:crontab -e → i 编辑 → Esc → :wq。或者先设好编辑器。


九、一句话总结

日常用 nano:Ctrl+O 存,Ctrl+X 退。

vim 只会三招就够保命:Esc 然后 :q! / :wq / :w。

别花时间"学会 vim"。等你真的天天在服务器上改配置,自然会想学。


← 返回 第三周:连起来 下一篇 → T2|压缩与归档:tar 到底怎么用