一、什么是exportdisplay
exportdisplay是一个用于多屏幕环境下的图形化应用程序运行的工具。在多屏幕环境下,我们可以使用多个物理屏幕,但是如果想要在远程计算机上运行一个图形化应用程序,并在本地显示其图形界面,就需要使用exportdisplay。
二、exportdisplay的缺省参数
export DISPLAY=:0.0
在不设置任何参数的情况下,exportdisplay默认导出本地屏幕(即:0.0)。
在命令行中运行export DISPLAY=:0.0,然后再执行图形化应用程序,即可将应用程序的窗口显示在本地屏幕上。
三、exportdisplay的基本使用方法
以下介绍exportdisplay的三种基本使用方法。
1. 将图形界面导出到另一台计算机的物理屏幕上
$ export DISPLAY=remoteip:0.0
其中remoteip是该计算机的ip地址,0.0表示导出到物理屏幕0上。然后在本地计算机上运行图形化应用程序,图形界面会显示在远程计算机的屏幕上。
2. 将图形界面导出到另一台计算机上的X窗口
$ export DISPLAY=remoteip:1.0
其中1.0表示导出到远程计算机上的第二个X窗口上。同样,运行图形化应用程序,图形界面会显示在远程计算机的X窗口上。
3. 将图形界面导出到本地计算机上的X窗口
$ export DISPLAY=:1.0
其中1.0表示导出到本地计算机上的第二个X窗口上。在本地计算机上运行图形化应用程序,图形界面会显示在本地计算机的X窗口上。
四、exportdisplay的具体应用
以下介绍exportdisplay在实际应用中的几个具体用途。
1. 远程计算机上运行图形化编辑器
假设我们需要在远程计算机上运行图形化编辑器gedit,并在本地显示编辑器的图形界面。则可以使用以下命令:
$ ssh -X user@remoteip
$ gedit
其中ssh -X user@remoteip表示使用ssh协议连接到远程计算机,并启用X11转发。在远程计算机上运行gedit,并将图形界面导出到本地计算机上。
2. 在Docker容器中运行图形化应用程序
如果我们在Docker容器中运行图形化应用程序,并希望将图形界面导出到宿主机上。则可以使用以下命令:
$ docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix image_name
其中-e DISPLAY=$DISPLAY表示将宿主机上的display信息传递给容器,-v /tmp/.X11-unix:/tmp/.X11-unix表示将宿主机上的X11 socket文件映射到容器内部,image_name为容器镜像名称。
3. 在多用户系统中使用exportdisplay
如果多个用户同时使用同一台计算机,每个用户都希望能够使用图形化应用程序。则可以使用以下方法来配置exportdisplay:
$ xhost +
该命令会允许所有用户访问X11服务器。但是这种方式存在安全风险,因为任何人都可以访问X11服务器。
因此更安全的做法是,允许特定用户访问X11服务器。例如,我们希望user1和user2可以访问X11服务器:
$ xhost +SI:localuser:user1
$ xhost +SI:localuser:user2
这样只有user1和user2能够访问X11服务器,其他用户无法访问。
五、总结
exportdisplay是在多屏幕环境下运行图形化应用程序的必备工具。通过合理的使用exportdisplay,可以方便地在不同计算机或容器之间传递图形界面,并在多用户系统中为不同用户提供图形化应用程序的使用。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/271620.html