xhost配置的是当前终端环境变量display

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技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • 告别机械硬盘时代 西部数据250GB蓝盘固态硬盘详细评测

    很抱歉,由于当前平台的限制,我无法以标准的markdown格式文本回答您的问题。但是,我可以为您提供一份详细的文字攻略,包含两个示例说明。请参考以下内容: 告别机械硬盘时代 – 西部数据250GB蓝盘固态硬盘详细评测攻略 1. 性能表现 西部数据250GB蓝盘固态硬盘采用SATA III接口,具备较高的传输速度和响应速度。 示例说明1:在CrystalDis…

    other 2023年10月18日
    00
  • Oracle使用fy_recover_data恢复truncate删除的数据

    Oracle使用fy_recover_data恢复truncate删除的数据的完整攻略 首先,确保您已经安装了fy_recover_data工具,并将其配置为可用状态。 在Oracle数据库中,找到被truncate删除的表所在的表空间。可以使用以下SQL查询语句来获取表空间的名称: sql SELECT tablespace_name FROM dba_t…

    other 2023年10月18日
    00
  • Redis内存碎片产生原因及Pipeline管道原理解析

    Redis内存碎片产生原因及Pipeline管道原理解析攻略 Redis内存碎片产生原因 Redis是一种基于内存的键值存储系统,它使用内存来存储数据以提供高性能的读写操作。然而,Redis在处理数据时可能会产生内存碎片,导致内存的浪费和性能下降。以下是一些导致Redis内存碎片产生的常见原因: 删除操作:当从Redis中删除一个键值对时,Redis并不会立…

    other 2023年8月2日
    00
  • SpringBoot 配置文件加载位置与优先级问题详解

    下面我来详细讲解一下 Spring Boot 配置文件加载位置与优先级问题的攻略。 1. Spring Boot 配置文件的加载位置 Spring Boot 配置文件的加载位置非常灵活,可以根据不同的需求和情况进行配置。Spring Boot 配置文件的加载位置可以分为以下三种情况: 1.1 classpath下的默认加载位置 Spring Boot 默认会…

    other 2023年6月25日
    00
  • Android实现扫码功能

    Android实现扫码功能攻略 1. 添加依赖库 首先,我们需要在项目的build.gradle文件中添加ZXing库的依赖。在dependencies块中添加以下代码: implementation ‘com.google.zxing:core:3.4.1’ implementation ‘com.journeyapps:zxing-android-emb…

    other 2023年8月21日
    00
  • webservice接口的调用

    Web服务(Web Service)是一种基于Web技术的分布式系统,它使用标准的Internet协议(如HTTP、XML、SOAP等)来实现应用程序之间的通信。Web服务接(Web Service Interface)是Web服务的一部分,它了Web服务的功能和使用方法。在本攻略中,我们将介绍如何调用Web服务接口的完整攻略。 步骤1:了解Web服务接口 …

    other 2023年5月6日
    00
  • iOS8正式版固件下载 iOS8正式版固件下载地址汇总

    iOS8正式版固件下载攻略 iOS8是苹果公司发布的一款重要的移动操作系统版本。本攻略将详细介绍如何下载iOS8正式版固件,并提供下载地址汇总。 步骤一:准备工作 在开始下载iOS8正式版固件之前,请确保您满足以下条件: 一台兼容iOS8的设备(如iPhone、iPad或iPod Touch)。 一个稳定的互联网连接。 足够的存储空间来存储iOS8固件文件。…

    other 2023年8月4日
    00
  • 利用SQL注入漏洞登录后台的实现方法

    利用SQL注入漏洞登录后台的实现方法 SQL注入漏洞是一种常见的网络安全漏洞,攻击者可以通过该漏洞执行恶意的SQL语句,从而绕过身份验证机制,登录到后台系统。下面是利用SQL注入漏洞登录后台的实现方法的详细攻略。 步骤一:寻找注入点 首先,需要找到目标网站的注入点。常见的注入点包括用户输入的表单字段、URL参数等。通过输入恶意的SQL语句,可以判断是否存在注…

    other 2023年8月6日
    00
合作推广
合作推广
分享本页
返回顶部