nano · 命令行记事本

上游:cat(cat 只读,nano 能写)· sudo(编辑系统文件需要 sudo nano) 下游:shell-script(用 nano 写脚本)· cron(用 nano 编辑定时任务) 参见:chmod(写完脚本记得 chmod +x)


一句话是什么

nano 是 Linux 最友好的命令行文本编辑器—— 在终端里打开、编辑、保存文件,不需要图形界面。


为什么需要它

在 Linux 服务器上没有”记事本”这种东西, 但你经常需要编辑文件:修改服务器配置、写脚本、记笔记。

Linux 有三个主流命令行编辑器:

编辑器难度特点
nano⭐ 简单命令显示在屏幕底部,适合初学者
vim⭐⭐⭐⭐ 困难功能强大,但新手常常不知道怎么退出
emacs⭐⭐⭐⭐⭐ 很困难极其强大,但学习曲线陡峭

结论:先学 nano,以后有需要再学 vim。

# 打开文件(不存在会自动创建)
nano ~/学习基地/笔记.txt

核心用法

基本操作

# 打开文件
nano 文件名
 
# 以管理员权限打开系统文件
sudo nano /etc/hosts
 
# 打开后跳到特定行
nano +14 文件名

nano 内的快捷键

打开 nano 之后,底部会显示快捷键提示(^ = Ctrl 键):

快捷键功能
Ctrl + O保存(O = Output/Write Out)
Ctrl + X退出(有改动会询问是否保存)
Ctrl + G帮助
Ctrl + W搜索(W = Where is)
Ctrl + K剪切整行
Ctrl + U粘贴(Un-cut)
Ctrl + /跳到指定行号
Alt + U撤销

保存流程(最重要)

1. Ctrl + O    → 询问文件名(直接 Enter 保存到原文件)
2. Enter       → 确认
3. Ctrl + X    → 退出

或者:

1. Ctrl + X    → 询问是否保存
2. 按 Y        → 确认保存
3. Enter       → 确认文件名

拟人化拆解 · 启动 nano 之后,电脑里到底发生了什么

nano ~/学习基地/笔记.txt

按下回车的瞬间,nano 在 0.1 秒内做了一连串动作。慢放看:

启动阶段(0.1 秒内)

  1. 检查文件存不存在
    • 存在 → 把内容从硬盘读进内存的一块缓冲区(buffer)
    • 不存在 → 内存里准备一块空白缓冲区,文件名先记下,还没真正创建硬盘文件
  2. 接管整个终端窗口
    • 把原来的 shell 内容暂存(退出 nano 后会还原)
    • 用 ncurses 库重新绘制屏幕
  3. 画出三层界面
    • 顶部:GNU nano X.Y · File: 笔记.txt 标题栏
    • 中间:文件内容区(你编辑的地方)
    • 底部:快捷键提示栏(^O Write Out ^X Exit 等)

关键事实:你按键改字,改的是内存里的缓冲区,硬盘上的文件没变。 没存盘前关电脑 = 改的内容全丢。

编辑阶段 · ^ 是什么意思

底栏写 ^O^ 不是字符,是 Ctrl 键的简写。 所以 ^O 读作 “Ctrl + O”。

快捷键全名实际行为
^OWrite Out把内存缓冲区写回硬盘文件(“存盘”)
^XExit退出 nano;如果有未存改动会先问
^WWhere is搜索关键词,光标跳到第一个匹配位置
^KKut(cut 的玩笑写法)剪切光标所在整行
^UUncut粘贴最近剪切的内容
^GGet help显示完整帮助页
^Cwhat Column显示光标位置(第几行第几列)
^_(jump line)跳到指定行号

^O 保存的三步交互

按下 Ctrl+O,nano 不会立刻存,会先问两遍:

1. 屏幕底部出现:File Name to Write: 笔记.txt
   → 直接 Enter 用原文件名;改名字也行(变成"另存为")
2. 如果文件已存在:File exists, OVERWRITE? (Y/N)
   → Y 覆盖,N 取消
3. 写入硬盘 → 底栏闪一句 "Wrote 12 lines"

^X 退出的逻辑分支

按 Ctrl+X
  ├─ 缓冲区与硬盘内容一致(没改 / 刚存过)
  │    → 直接退出,shell 提示符回来
  └─ 缓冲区有未保存改动
       → 屏幕底部问:Save modified buffer? (Y/N/^C)
       │   ├─ Y → 走一遍 ^O 流程,保存后退出
       │   ├─ N → 直接退出,丢弃改动
       │   └─ ^C → 取消退出,回到编辑

启动参数 · 几个 Aaron 早晚会用到的

# 直接跳到第 50 行打开(看错误日志时常用)
nano +50 server.properties
 
# 只读模式(防止手抖改坏配置)
nano -v /etc/hosts
 
# 备份模式:保存时会留一份带 ~ 后缀的备份
nano -B 重要文件.txt
# 保存后会多出 重要文件.txt~(备份副本)

关于 vim · 一句话定位

vim 不是 nano 的”高级版”,它是另一个流派——用键盘代替鼠标的极致编辑器

  • nano 适合”打开就能用”(小学生第一次摸 Linux 都能上手)
  • vim 适合”愿意花两周学键位换十年高效”

Aaron 现在 nano 就够。 哪天发现自己每天编辑 1 小时以上文本,再考虑学 vim 不迟。


例题精讲

📗 初探 Starter — 写第一个文本文件

# 第一步:打开 nano 创建文件
nano ~/学习基地/第4周笔记.txt
 
# 输入以下内容:
# 今天学了 sudo, apt, unzip, chmod
# 最难的部分是权限那串字母
# 记住:rwxr-xr-x 分别是主人、组、其他人的权限
 
# 第二步:保存
# 按 Ctrl + O,然后 Enter
 
# 第三步:退出
# 按 Ctrl + X
 
# 第四步:确认文件存在
cat ~/学习基地/第4周笔记.txt

📘 应用 User — 编辑 Minecraft 服务器配置

# 修改服务器名字(server-name 那一项)
nano ~/mc-server/server.properties
 
# 找到这一行(用 Ctrl+W 搜索 "server-name"):
# server-name=Dedicated Server
 
# 改成:
# server-name=Aaron的世界
 
# 保存:Ctrl + O → Enter
# 退出:Ctrl + X
 
# 修改服务器最大玩家数(找 max-players)
# max-players=10 → 改成 max-players=4

📙 管理 Admin — 写一个 Minecraft 启动脚本

# 创建启动脚本
nano ~/mc-server/start.sh
 
# 输入以下内容:
#!/bin/bash
# Minecraft Bedrock Server 启动脚本
# 作者:Aaron
 
cd ~/mc-server
echo "启动 Minecraft 服务器..."
./bedrock_server
 
# 保存并退出(Ctrl+O → Enter → Ctrl+X)
 
# 给脚本加执行权限
chmod +x ~/mc-server/start.sh
 
# 测试运行
~/mc-server/start.sh

官方文档参考

man nano         # 完整手册
nano --help      # 快速选项列表

nano = Nano’s ANOther editor;Ctrl 键快捷方式显示在屏幕底部,无需死记。 在线:https://www.nano-editor.org/dist/latest/nano.html


节点链接

上游

  • cat ← cat 只能读,nano 能读也能改
  • sudo ← 系统配置文件:sudo nano /etc/hosts
  • chmod ← 写完脚本要 chmod +x

下游(学会 nano 才能做这些)

  • shell-script ← 用 nano 写 .sh 脚本
  • cron ← 用 nano 编辑 crontab 定时任务

实战


节点版本:v1.0 · 2026-04-20 下一个节点建议:shell-scriptcron