鉴于一个已经运行终端(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
---我不知道为什么)。