可以通过以下几种方法在终端中判断Ubuntu是否启用了图形化桌面:
1. 检查显示管理器服务
图形桌面通常由显示管理器(如GDM3、LightDM、SDDM)启动:
systemctl status display-manager
或
systemctl status gdm3 # Ubuntu默认使用GDM3
如果服务处于active (running)状态,说明图形界面正在运行。
2. 检查X11/Wayland会话
echo $XDG_SESSION_TYPE
返回结果:
x11或wayland:图形界面正在运行tty:纯命令行模式
3. 检查DISPLAY环境变量
echo $DISPLAY
如果有输出(如:0、:1等),说明图形环境已配置。
4. 检查是否有X/Wayland进程
ps aux | grep -E "(Xorg|Xwayland|gnome-shell|kwin_wayland|mutter)" | grep -v grep
如果有相关进程运行,说明图形界面已启动。
5. 检查当前虚拟终端
who
查看登录会话,如果有(:0)或(:1)等显示,说明有图形会话。
6. 检查登录的桌面环境
echo $DESKTOP_SESSION
或
echo $XDG_CURRENT_DESKTOP
如果有输出(如ubuntu、gnome等),说明在图形环境中。
7. 使用loginctl命令
loginctl list-sessions
查看当前会话,图形会话会显示seat0和用户信息。
8. 综合判断脚本
#!/bin/bash
if systemctl is-active --quiet gdm3 && [ -n "$DISPLAY" ]; then
echo "图形界面正在运行"
echo "桌面环境: ${XDG_CURRENT_DESKTOP:-未知}"
echo "显示协议: ${XDG_SESSION_TYPE:-未知}"
else
echo "当前处于命令行模式"
fi
注意事项:
- Ubuntu Server版默认不安装图形界面
- 某些情况下可能安装了图形组件但未启动
- 通过SSH远程连接时,
DISPLAY变量通常为空
最可靠的方法是结合多种检查方式,特别是检查display-manager服务和DISPLAY环境变量。
CLOUD技术笔记