当你在 nano 中编辑配置文件时,最常见的困惑点是如何在不丢失更改的情况下离开编辑器。Nano 使用键盘快捷键而不是菜单,因此保存和退出取决于几个键组合。
本指南展示了如何在 nano 中保存文件、退出 nano、一次性保存并退出,以及在你不想保留更改时丢弃更改。
有关编辑、导航和搜索的更广泛说明,请参阅如何使用 Nano 文本编辑器。
快速参考
| 操作 | 快捷键 |
|---|---|
| 打开文件 | nano filename |
| 保存更改(留在编辑器中) | Ctrl+O,然后 Enter |
| 无需提示保存 | Ctrl+S |
| 保存并退出 | Ctrl+X,然后 Y,然后 Enter |
| 不保存退出 | Ctrl+X,然后 N |
| 以新名称保存 | Ctrl+O,编辑文件名,然后 Enter |
| 取消退出提示 | Ctrl+X,然后 Ctrl+C |
| 显示所有命令 | Ctrl+G |
有关可打印的快速参考,请参阅 nano 速查表。
Nano 的命令符号
在屏幕底部,Nano 显示两条常用命令的帮助行。Nano 中的所有命令都以 ^ 或 M 字符开头。
- 插入符号 (
^) 代表Ctrl键。例如,^X表示同时按下Ctrl和X。 - 字母
M代表Alt键。
要查看完整的命令列表,请按 Ctrl+G。
大多数 Linux 系统使用 nano 的默认快捷键,其中 Ctrl+O 写入文件,Ctrl+X 退出。自 nano 2.9.0 以来,默认设置还将 Ctrl+S 绑定到保存当前文件,因此简单的保存根本不需要经过写入提示。
Nano 8.0 添加了一组可选的现代绑定,通过以 nano -/ 或 nano --modernbindings 启动编辑器启用。这些绑定遵循图形编辑器的约定:Ctrl+S 保存,Ctrl+Q 退出,而 Ctrl+X 剪切当前行而不是退出。如果 Ctrl+X 开始删除文本而不是关闭编辑器,那就是原因。
打开文件
要打开现有文件或创建新文件,键入 nano 后跟文件名:
终端
nano filename将打开一个新的编辑器窗口,你可以开始编辑文件。
Nano 中保存更改
完成更改后,按 Ctrl+O(字母 O,不是零)来保存你的工作。
Nano 将在底部显示当前文件名并提示你确认。
- 按
Enter以相同名称保存文件。 - 或者输入新名称并按
Enter将其保存为不同的文件。

该提示的措辞取决于 nano 版本。Nano 8.3 及更早版本将其标记为 File Name to Write:,如上截图所示,而 nano 8.4 及更新版本将其标记为 Write to File:。两种版本的按键行为相同。
提示下方的帮助行列出了在写入文件之前可以应用的选项:M-D 切换到 DOS 行尾,M-A 将缓冲区附加到目标文件,M-P 将其前置,M-B 保留先前内容的备份副本,而 ^T 打开文件浏览器。Nano 9.0 及更早版本还显示 M-M 用于旧 Mac 行尾,但 nano 9.1 移除了该格式。按 Ctrl+C 离开提示而不写入任何内容。
警告要保存文件,你必须对该文件具有写入权限。如果你正在创建新文件,你需要对将保存文件的目录具有写入权限。
使用 Ctrl+S 保存
当文件已有名称时,Ctrl+S 是更短的路径。它将缓冲区直接写入磁盘而不询问任何问题,并在状态栏上报告结果:
输出
[Wrote 24 lines]Nano 自版本 2.9.0 以来已将 Ctrl+S 绑定到此直接保存,因此它在当前发行版中可用而无需任何配置。唯一的例外是尚未具有文件名的缓冲区,例如你从裸 nano 获得的缓冲区,其中 Ctrl+S 打开与 Ctrl+O 使用的相同的写入提示。
退出 Nano
当你完成并希望退出 Nano 时,按 Ctrl+X。
如果你没有修改文件,Nano 将立即退出并返回到终端。
如果有未保存的更改,Nano 将询问:“Save modified buffer?”

Y:保存更改。Nano 将显示文件名并提示你确认。按Enter保存并退出。N:丢弃更改并返回到终端。Ctrl+C:取消退出提示并留在编辑器中。
故障排除
保存时“权限拒绝”
Nano 在状态栏上报告失败,例如 Error writing /etc/hosts: Permission denied。你对文件或其目录没有写入权限。使用 ls -l 检查权限。如果你需要 root 访问权限,请使用 sudo nano filename 重新打开文件。
文件以只读方式打开
Nano 在缓冲区加载时立即在状态栏上显示 File '/etc/hosts' is unwritable。你仍然可以在其中键入,但写入将失败,因此使用 Ctrl+X 退出并使用 sudo nano filename 重新打开文件。查看模式是一个单独的案例:使用 nano -v 打开的文件在标题栏中显示 View,并且 nano 拒绝编辑本身。
意外按下了 Ctrl+X
如果 Nano 显示保存提示,请按 Ctrl+C 取消并返回编辑器而不会丢失更改。
保存覆盖了错误的文件
当 Nano 提示文件名时,清除当前名称并在按 Enter 保存为不同文件之前输入新名称。
Ctrl+S 冻结了终端
这发生在 nano 之外,其中 Ctrl+S 是暂停终端输出的 XOFF 字符。按 Ctrl+Q 恢复。在编辑器内部,该键保存文件,除非 nano 是以 --preserve 启动的,它将 Ctrl+S 和 Ctrl+Q 交还给终端。
Ctrl+X 剪切行而不是退出
Nano 正在使用现代绑定运行,通过 nano -/ 或 nano --modernbindings 启动。按 Ctrl+Q 退出,或在不使用该选项的情况下重新启动编辑器。
常见问题解答
Nano 中 Ctrl+O 和 Ctrl+X 有什么区别?Ctrl+O 保存文件并保持编辑器打开,以便你可以继续编辑。Ctrl+X 退出编辑器,如果有未保存的更改则提示你保存。
如何在 Nano 中不退出时保存文件?
按 Ctrl+O,然后按 Enter 确认文件名。Nano 保存文件,你仍然在编辑器中。
如何在不保存更改的情况下退出 Nano?
按 Ctrl+X,然后在“Save modified buffer?”提示时按 N。Nano 丢弃所有未保存的更改并返回到终端。
如何在 Nano 下以不同名称保存文件?
按 Ctrl+O。当 Nano 显示文件名提示时,清除当前名称,输入新文件名,然后按 Enter。
Nano 中的“Save modified buffer?”是什么意思?
这意味着 Nano 检测到未保存的更改。按 Y 保存,N 丢弃更改并退出,或 Ctrl+C 取消并返回编辑。