将文本写入(“注入”)现有的 Ubuntu 终端

将文本写入(“注入”)现有的 Ubuntu 终端

鉴于一个已经运行终端(gnome-terminal也许?),有没有办法从另一个程序向其中写入文本?

我基本上正在寻找一种从文本编辑器开始编译的方法。

答案1

如果你没有它们,请安装xwininfo(在包 x11-utils 中)和xvkbd

sudo apt-get install x11-utils
sudo apt-get install xvkbd

然后找到你的“受害者”窗口的窗口 ID:

xwininfo

光标变成十字 --- 点击要注入文本的 gnome-terminal 窗口。在信息中,复制窗口 id:

xwininfo: Please select the window about which you
      would like information by clicking the
      mouse in that window.

xwininfo: Window id: 0x1a005be "romano@samsung-romano: ~"
[...]

现在您可以从另一个终端注入字符:

(0)samsung-romano:~% xvkbd -window 0x1a005be -text "ls -l\n"

\n如果您想执行该命令,请记住)。

还有更多方法可以识别窗口 --- 查看xvkbd 的手册页。其中一种方法是使用 XWindows 的“class”属性。您可以用您选择的特定类名来运行终端,例如:

xterm -class alfa & 

然后通过注入

xvkbd -window alfa -text "ls -l\n" 

(我xterm在这里用过,但我不能那样做gnome-terminal---我不知道为什么)。

相关内容