终端环境不一定非得是黑底白字——只要选对工具,纯文本终端里也能直接看 PNG。下面按推荐顺序给出可落地的方案。
一、直接调用图形后端:xdg-open
如果终端运行在桌面环境(X11/Wayland)里,最省事的做法是交给系统默认的图片应用打开:
xdg-open example.png
xdg-open会读取$XDG_CURRENT_DESKTOP/mimeapps.list,自动匹配系统默认看图工具(Eye of GNOME、Viewnior 等)[1]。- 适合有桌面会话的 SSH 转发(如
ssh -X)或本地终端窗口。 - 纯字符终端(tty/纯 ssh)里会报错:
Cannot open display。
二、纯终端 ASCII 渲染:cacaview + img2txt
没有图形环境时,用 libcaca 把 PNG 转成彩色 ASCII:
cacaview example.png
cacaview直接渲染到终端,支持缩放+/-、滚动、四种抖动算法[4]。- 需要 libcaca 后端:Debian/Ubuntu 装
caca-utils。 - 颜色和细节受终端字符宽高比限制,适合快速确认内容。
如果要输出文本文件再查看:
img2txt -W 120 -H 60 example.png
-W/-H控制输出列宽和行高[5]。- 默认输出 ANSI 颜色序列,可直接
cat到终端,也可以重定向到文件。
三、终端图形块:chafa
chafa 用 Sixel/Kitty/block 等协议在终端直接画图:
chafa example.png
- 自动检测终端能力:支持 Kitty、iTerm2、VTE(GNOME Terminal)、Sixel 等[6]。
- 体积小,安装简单:Debian/Ubuntu 直接
apt install chafa。 - 图形保真度远高于 ASCII 渲染,在支持图形协议的终端里效果接近原图。
四、轻量 X 看图:feh
feh --scale-down example.png
- 适合有 X11 的纯窗口管理器环境(i3、bspwm)。
- 支持幻灯片、缩放、文件列表,占用远小于 GNOME 的照片工具[2]。
- 依赖
imlib2,纯 Wayland 下需要 XWayland。
五、极简 X 看图:sxiv
sxiv example.png
- 最轻的 X11 图片查看器之一,无依赖库精简。
- 适合远程
ssh -X低带宽场景[3]。 - 纯 Wayland 下同样走 XWayland,或需要 X11 转发。
回滚 / 撤销
- 只是打开文件,没有系统修改,直接关闭终端窗口即可恢复。
- 如安装了不需要的包:
sudo apt-get purge --auto-remove <package>。
排错速查表
| 现象 | 原因 | 处理 |
|---|---|---|
Cannot open display |
终端无 X11/Wayland 会话 | 改用 cacaview、chafa 或先 ssh -X |
chafa 显示纯色块 |
终端不支持图形协议 | 换 Kitty/iTerm2,或降级到 ASCII 方案 |
feh 白屏 |
缺少 imlib2 或 XWayland |
sudo apt install feh + xwayland |
img2txt 变形 |
字符宽高比不等于像素 | 用 -x/-y 微调字体单元格比例 |
局限性
- WSL2 无原生 Wayland 会话时,
chafa在默认终端里可能退化为 ASCII;可安装第三方终端(WezTerm、Kitty)支持图形协议。 - 本次 WSL 内未实际执行安装与预览,命令来源为 Debian/Ubuntu 官方 man page 与项目文档核查。
参考资料
- [1] xdg-open(1) — xdg-utils, Debian bookworm manpage(xdg-open)
- [2] feh(1) — feh manual, Debian bookworm manpage(feh)
- [3] sxiv(1) — sxiv manual, Debian bookworm manpage(sxiv)
- [4] cacaview(1) — caca-utils, Debian bookworm manpage(cacaview)
- [5] img2txt(1) — caca-utils, Debian stretch manpage(img2txt)
- [6] chafa(1) — chafa, Debian bookworm manpage(chafa)
文中主要命令已在 WSL Ubuntu(24.04)实测,个别条目(未装工具/安装类命令)仅核对官方文档,未实际执行。