同样都是『打开文件』,cat、less、nano、vim、file、xdg-open 各有适用场景。本文按实际使用顺序排列,帮你快速定位该用哪个命令。
先判断:file 命令识类型
执行任何打开动作之前,先用 file 确认文件类型,避免把二进制文件当成文本编辑,也避免用错解码方式打开编码异常的文件[5]。
file /etc/passwd
file ~/downloads/unknown.bin
file 基于文件头魔数(magic number)判断,不依赖扩展名,比 ls 或 cat 更可靠。
直接查看:cat 与 less
确认是纯文本后,根据文件大小选工具。小文件(几十行内)用 cat 直接输出到终端[1];大文件或需前后翻页时用 less,它只加载当前屏,内存占用远低于 cat[2]。
# 小文件:带行号输出
cat -n /etc/hostname
# 大文件:分页查看,按空格下翻,q 退出
less /var/log/syslog
cat 适合脚本管道和一次性输出,less 适合交互式阅读。不要在未知大小的文件上无脑 cat。
快速编辑:nano
需要快速改几行配置时,nano 是最快上手的编辑器。底部会显示快捷键提示,无需记忆模式切换[4]。
nano /etc/fstab
进入后直接输入即可编辑,Ctrl+O 写入,Ctrl+X 退出。适合临时改配置、写小脚本。
深度编辑:vim
需要正则替换、多文件跳转、宏录制时,vim 仍是服务器上最可靠的选择[3]。
vim /etc/nginx/nginx.conf
首次进入按 i 进入插入模式,编辑完按 Esc 再输入 :wq 保存退出。习惯需要几天,但远程 SSH 场景下几乎不会找不到可用编辑器。
图形打开:xdg-open
在桌面环境或 WSL 里调用系统默认程序打开文件,用 xdg-open。它会根据 MIME 类型自动匹配浏览器、图片查看器或文档阅读器[6]。
xdg-open report.pdf
xdg-open https://milds.cn
在纯 SSH 或无桌面会话下,xdg-open 会报错退出码 3,此时需回退到上述命令行工具。本条目基于文档核查,当前 WSL 环境未安装 xdg-utils,尚未实际执行。
排错速查
| 现象 | 原因 | 处理 |
|---|---|---|
cat 输出跑马灯 |
文件过大或二进制 | 改用 less 或 file 先判断类型 |
nano 报错 Permission denied |
文件属于 root | 加 sudo nano |
vim 卡在正常模式 |
误按了 Ctrl+S |
按 Ctrl+Q 恢复 |
xdg-open 退出码 3 |
无桌面会话或 xdg-utils 缺失 | 回退到 file+对应命令行工具 |
—
状态:草稿待审。 xdg-open 在 WSL 中未实际执行(xdg-utils 未安装),其余命令已在 Ubuntu 24.04 WSL 验证通过。
参考资料
- [1] cat(1) – Linux manual page (man7.org)(cat(1))
- [2] less(1) – Linux manual page (man7.org)(less(1))
- [3] vim(1) – Arch Linux manual page(vim(1))
- [4] nano(1) – Arch Linux manual page(nano(1))
- [5] file(1) – Linux manual page (man7.org)(file(1))
- [6] xdg-open(1) – Arch Linux manual page(xdg-open(1))
文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。