在 Ubuntu 系统中确认是否启用了 GUI(图形用户界面),可以通过以下几种方法综合判断。注意:Ubuntu 桌面版默认安装 GUI,而服务器版默认无 GUI;但无论哪种版本,GUI 都可能被禁用、未安装或未启用。
以下是可靠、实用的确认方法(按推荐顺序):
✅ 1. 检查当前运行级别 / 目标(systemd 环境下最权威)
Ubuntu 使用 systemd,GUI 对应的目标是 graphical.target。
# 查看当前默认目标(即开机默认启动的模式)
systemctl get-default
- ✅ 输出为
graphical.target→ GUI 已设置为默认启动 - ❌ 输出为
multi-user.target→ 默认以命令行(无 GUI)启动
# 查看当前实际激活的目标(是否正在运行 GUI)
systemctl is-active graphical.target
- ✅ 输出
active→ 当前正在运行 GUI(桌面环境已启动) - ❌ 输出
inactive或unknown→ GUI 未运行(即使设为默认,也可能未启动)
💡 补充:可同时检查显示管理器(如 GDM3、SDDM)是否运行:
systemctl is-active gdm3 # Ubuntu 22.04+ 默认显示管理器 # 或 systemctl is-active lightdm # Ubuntu 20.04 及更早常见(尤其带 LXDE/XFCE 的版本)
✅ 2. 检查是否有显示管理器(Display Manager)正在运行
显示管理器(如 gdm3, lightdm, sddm)是启动 GUI 登录界面的关键服务。
# 列出所有活跃的显示管理器服务
systemctl list-units --type=service --state=active | grep -E "(gdm|lightdm|sddm|gdm3)"
或直接检查:
systemctl status gdm3 2>/dev/null | grep "Active:" # Ubuntu 22.04+
systemctl status lightdm 2>/dev/null | grep "Active:"
- ✅ 若显示
active (running)→ 显示管理器在运行 → GUI 已启用并准备就绪。
✅ 3. 检查是否已安装桌面环境(Desktop Environment)
GUI 需要桌面环境(如 GNOME、KDE、XFCE)和显示管理器协同工作。
# 检查是否安装了主流桌面包(以 GNOME 为例,Ubuntu 桌面版默认)
dpkg -l | grep -E "ubuntu-desktop|ubuntu-desktop-minimal|gnome-shell|gdm3"
# 更通用:检查是否有 X11/Wayland 显示服务器进程
pgrep -l "Xorg|Xwayland|gnome-session|kdeinit|xfce4-session"
- ✅ 有输出(如
1234 Xorg,5678 gnome-session)→ 图形会话正在运行 - ❌ 无输出 → 当前无 GUI 进程(可能未启动或未安装)
✅ 4. 检查 $DISPLAY 环境变量(仅适用于当前登录会话)
⚠️ 注意:该变量只对已进入图形会话的用户有效(如通过 GUI 登录或 startx 启动),SSH 远程终端默认不继承此变量。
echo $DISPLAY
- ✅ 输出类似
:0、:1→ 当前 shell 运行在图形会话中(GUI 已启用且你正使用它) - ❌ 输出为空 → 当前终端不在图形会话内(可能是纯终端登录、SSH、或 GUI 未启动)
🔍 进阶验证(需在图形会话中执行):
# 查看当前使用的桌面环境 echo $XDG_CURRENT_DESKTOP # 或 loginctl show-session $(loginctl | grep "seat" | awk '{print $1}') -p Type | grep Type # 输出 Type=wayland 或 Type=x11 表示 GUI 会话类型
✅ 5. 快速终极验证:尝试启动 GUI(非破坏性)
如果不确定,可安全尝试启动(仅当未运行时):
# 尝试启动显示管理器(需 sudo)
sudo systemctl start gdm3 2>/dev/null || sudo systemctl start lightdm
# 然后检查状态
systemctl is-active gdm3
⚠️ 注意:在服务器环境或无显卡/虚拟机中,可能启动失败(日志见
journalctl -u gdm3 -n 50)。
🚫 常见误区提醒
| 方法 | 是否可靠 | 说明 |
|---|---|---|
ls /usr/bin/startx |
❌ 不可靠 | 存在仅表示可手动启动 X,不代表已启用 GUI |
runlevel 命令 |
❌ 已废弃 | Ubuntu 16.04+ 使用 systemd,runlevel 返回 N(不适用) |
ps aux | grep -i "gnome|kde|xfce" |
⚠️ 辅助参考 | 可能漏检(如刚启动/崩溃),需结合 systemctl |
✅ 总结:一键综合判断脚本(复制粘贴执行)
{
echo "=== 默认启动目标 ==="; systemctl get-default
echo -e "n=== 当前 graphical.target 状态 ==="; systemctl is-active graphical.target
echo -e "n=== 显示管理器状态(gdm3/lightdm)==="; systemctl is-active gdm3 2>/dev/null || systemctl is-active lightdm 2>/dev/null
echo -e "n=== 当前 DISPLAY 变量 ==="; echo $DISPLAY
echo -e "n=== 活跃的图形进程(X/Wayland/session)==="; pgrep -l "Xorg|Xwayland|gnome-session|kdeinit|xfce4-session" | head -5
} 2>/dev/null
✅ 结论判断标准(全部满足才真正“启用了 GUI”):
get-default是graphical.targetis-active graphical.target返回active- 显示管理器(如
gdm3)处于active (running) - (可选)
$DISPLAY非空 或 有Xorg/gnome-session进程
如需进一步帮助(例如:如何安装/启用 GUI、修复黑屏、切换到 CLI 等),欢迎继续提问! 😊
云小栈