X-Windows 中的 $DISPLAY 变量有什么用途?它如何工作?
我在虚拟机上运行 Fedora,不知道我是否正确运行 X-Windows 来回答这个问题。我去终端并输入sudo startx
,然后我只是得到一个空白屏幕并且无法逃脱它。我知道(我认为)这只是运行最小类型操作系统的一种方式,您可以在其中从命令行运行所有内容。
答案1
环境DISPLAY
变量向应用程序指示向何处发送 GUI 命令,例如“创建窗口”、“显示一些文本”、“绘制图像”、“等待按键或鼠标单击”等。它与图形用户界面相对应。的标准流用于文本模式应用程序。
大多数情况下,您不需要关心这个变量。如果您从 GUI 会话运行程序,则该变量已设置。如果您通过 SSH 运行程序,则在转发 GUI 时会自动设置该变量,如果未设置该变量,则表明您没有转发 GUI 并且设置该变量不会有帮助。仅当您想要从外部与 GUI 会话交互时,例如在 cron 作业中运行 GUI 程序,或者通过从 SSH 会话启动的程序在计算机屏幕上显示程序,才需要设置该变量到那台机器。
要启动 GUI 会话,有两种方法:首先登录然后启动 GUI,或者启动 GUI 并从那里登录。
- 如果您已登录文本模式控制台,则可以使用命令启动 GUI 环境
startx
。该命令启动一个X11服务器(GUI 后端,它执行基本的操作,例如记住某个窗口位于某个位置)以及一堆有用的应用程序,通常至少是一个窗口管理器(一种程序,提供在窗口之间切换、移动窗口并控制哪个窗口处于活动状态、启动程序等的方法)并且通常是桌面环境(它通过附加的屏幕小部件和实用程序(例如时钟、桌面切换器、图标托盘、会话保护程序等)完善了窗口管理器。) - 大多数桌面使用的发行版都设置了显示管理器。 X 服务器运行,屏幕上唯一的程序是显示管理器,它是一个显示登录提示的程序。一旦您登录,就会启动一个会话,就像第二部分
startx
(使用窗口管理器等)一样。
如果您尚未安装显示管理器,您可以在gdm
、kdm
、lxdm
、slim
等之间进行选择。使用 例如sudo yum install gdm
安装一个。
如果您不想安装窗口管理器,或者出于任何原因想要从控制台登录启动 GUI 会话,请仅运行startx
,而不是sudo startx
。许多 GUI 程序并不适合以 root 身份运行,并且某些环境如果以 root 身份运行则将拒绝启动。
答案2
当您再次进入控制台模式时,使用用户名和密码登录,然后发出命令
sudo /etc/init.d/gdm stop
停止桌面环境的服务。
sudo dpkg-reconfigure xserver-org
重新配置您的x服务器。再次启动您的 DE:
sudo /etc/init.d/gdm start