首页 > Sysadmin > 正文

如何在 Linux 终端打开并预览 PNG 图片

huyuanwen 2026-11-02 Sysadmin

终端环境不一定非得是黑底白字——只要选对工具,纯文本终端里也能直接看 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 与项目文档核查。

参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测,个别条目(未装工具/安装类命令)仅核对官方文档,未实际执行。