作为新手,我面临着使用“xterm”命令打开新 xterm 的挑战。挑战主要是因为我缺乏如何创建 xterm 的背景知识,并且不知道它的所有来龙去脉。
我的情况:
在我的工作场所,我有一个打开 GUI 的应用程序,它恰好运行在不同的主机上。我可以用“回显$主机名”。应用程序的 GUI 提供了一个打开新 xterm 的按钮。从现在开始,我将将此终端称为自定义xterm。与 Linux 登录 xterm 或从红帽Linux系统菜单。有趣的是,自定义 xterm 确实处理我的本地.别名和.bashrc在创建文件时,我只是通过执行中定义的一些别名来验证这一点.别名,由我自己创建。我还注意到在我的登录服务器/主机中我可以访问/bin/python而另一台主机还没有。这些是一些差异。
不过,这个自定义 xterm 显然可以访问我的所有本地文件,就像任何其他 xterm 一样。当使用“xterm”命令从此自定义 xterm 启动另一个新的 xterm 时,我们会得到该 xterm 的克隆。我想这里没什么奇怪的。
我的问题:
有没有办法从这个自定义 xterm 的命令行启动一个新的 xterm,其环境设置与登录服务器/主机的原始登录 xterm 完全相同?
我已经知道的:
我知道应用程序默认值/Xterm配置文件,但这仅配置字体,并且据我所知和经验来看。我想,这不是我想要实现的目标。我的答案也不是.别名或者.bashrc文件。
我查看了 Xterm 命令的庞大用户手册,但未能找到我要找的内容。任何帮助将非常感激。谢谢。
更新1:
我想只有当我向您提供有关我的案件的足够信息时,您的任何有价值的指示才有意义。关键是工作场所中有多个可用的服务器/主机,这些是用于可能消耗相对大量内存和/或 CPU 功率的应用程序的专用服务器。这样的远程服务器的 xterm 是可用的,我想从中启动一个登录行为类似的终端。正如我在 OP 中所解释的,我需要与 Barry 指出的错误完全相同的 shell(不是 xterm)环境。检查这一点的最简单方法是回显$主机名。我相信每个服务器/主机都有自己的 /bin 应用程序,我对/bin/python登录主机的应用程序,因为其他主机/服务器上通常没有安装 python。希望这能澄清我的追求......
更新2:
经过更多研究后,我倾向于这样的想法:如果没有一些复杂的服务器/客户端工具,我想要的东西是不可能的,例如SSH。我的印象是任何 xterm 都应该能够与 KDE (Redhat) GUI 提供的应用程序进行交互。因此,如果按照我的想法这是可能的,远程/自定义 xterm 也应该能够访问我的 KDE 应用程序并启动登录 xterm,就像用户通过单击鼠标以交互方式通过“所有”进行交互一样。应用程序菜单并选择 Xterm 图标。由于任何服务器的预安装应用程序都位于其自己的 /bin 目录中,因此默认情况下会排除登录服务器的 /bin 目录的访问。因此,为什么从远程服务器的 Xterm 启动登录 Xterm 是不可能的SSH或类似的东西。
更新3
由于 user10489 证实了我之前对 ssh 要求的怀疑,我认为我需要调查在远程服务器上运行特殊应用程序的另一个进程实际上是如何启动的,以及是否有办法从远程主机返回到我的主机通过它的 xterm。这将帮助我了解工作场所的 IT 框架中什么是可能的,什么是不可能的。感谢用户10489。
答案1
在unix中,当您启动一个新进程时,默认情况下,它会从父进程继承所有环境变量的副本,除非父进程决定更改传递的内容。
xterm 在这方面并不特殊——如果您启动 xterm,它就会获得一切。但是,xterm 仅在本地主机上打开一个窗口。
如果您想访问远程主机,通常您使用类似 的东西ssh
,它可以在 xterm 中运行。也可以通过 ssh 管道连接到另一台主机并从远程主机打开 xterm(这通常需要-X
或-Y
选项)。 ssh 副本一些的环境变量到远程主机。有一些选项可以告诉 ssh 复制更多环境变量,您也可以手动复制关键内容。
如果要在远程主机上运行程序,则它们需要安装在远程主机上,或者来自远程主机和本地主机之间共享的目录。这可能是安装在共享主目录中的东西,或者是安装在有意共享的应用程序目录中的东西。