如何通过终端命令判断Ubuntu是否启用了图形化桌面?

可以通过以下几种方法在终端中判断Ubuntu是否启用了图形化桌面:

1. 检查显示管理器服务

图形桌面通常由显示管理器(如GDM3、LightDM、SDDM)启动:

systemctl status display-manager

systemctl status gdm3  # Ubuntu默认使用GDM3

如果服务处于active (running)状态,说明图形界面正在运行。

2. 检查X11/Wayland会话

echo $XDG_SESSION_TYPE

返回结果:

  • x11wayland:图形界面正在运行
  • 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

如果有输出(如ubuntugnome等),说明在图形环境中。

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环境变量。

云服务器