xhost配置的是当前终端环境变量display
概述
在 Linux/Unix 系统中,xhost
命令用于控制 X Windows 系统下的访问控制,通过设置该命令可以限制远程主机访问当前主机的 X 服务。同时,它还可以配置当前终端环境变量 display,从而控制 X11 系统的显示。
语法
xhost
命令的通用语法如下所示:
xhost [+|-] [hostname]
其中:
+
: 添加hostname
到许可列表,允许hostname
访问当前主机的 X 系统。-
: 从许可列表中移除hostname
,阻止hostname
访问当前主机的 X 系统。hostname
: 指定要访问当前主机的 X 系统的远程主机名,可以是 IP 地址或者 DNS 主机名。
display 环境变量
在 X11 系统中,display
环境变量决定了客户端应用程序在 X 服务器上显示的位置。它遵循以下的格式:
hostname:displaynumber.screennumber
其中:
hostname
:是指 X 服务器所在的主机名或 IP 地址。如果环境变量中字符串缺失,则默认使用本地主机的名称或地址。displaynumber
:是指相同 X 服务器上的连接号,其值通常是 0,1 等。screennumber
:是指 X 服务器上的显示器号,如果 X 服务器支持多屏,其值通常是 0,1 等。
例如,当 display
环境变量的值为 192.168.0.10:0.0
时,意味着当前的 X11 输出流被输出到名为 192.168.0.10
的主机上的端口号 6000
。其中:0.0
表示使用 X 服务器的一号连接,以及第一屏幕的窗口。
xhost 配置 display 环境变量
在命令行中输入以下命令以将远程主机加入访问允许列表,并配置环境变量 DISPLAY
。
$ xhost +hostname
$ export DISPLAY=hostname:0.0
其中:hostname
是指要访问当前主机 X 服务器的远程主机名或 IP 地址。这些命令的效果是将环境变量中的 DISPLAY
的值设置为 hostname:0.0
,允许客户端应用程序通过这个 X 服务器显示。
另外,如果需要在写shell脚本时调用GTK或QT程序,需要先配置xhost
,否则会出现QT或GTK程序无法显示的情况。可以编写一个脚本来自动化这个流程:
#!/bin/bash
export DISPLAY=:0
xauth list|grep `uname -n` >/dev/null && xhost +local:`uname -n`
nohup ./your-qt-or-gtk-app &
这个脚本的含义是,导出环境变量 $DISPLAY
,查看现有的访问权限(如果有)并添加当前主机到 xhost
的许可列表中,然后启动需要运行的 Qt 或 GTK 应用程序。
小结
本文介绍了如何使用 xhost 命令配置当前终端环境变量 display,从而控制 X11 系统的显示。DISPLAY
环境变量决定了客户端应用程序在 X 服务器上显示的位置,如果 DISPLAY
变量没有正确配置,则客户端无法在 X 服务器上显示。配置 xhost
可以允许远程访问 X 服务器,并且允许客户端为 GUI 应用程序提供一个显示窗口。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:xhost配置的是当前终端环境变量display - Python技术站