适用:所有 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 到底怎么用