如何在另一个终端窗口中运行任何命令?
例如:我打开一个终端窗口,如果我运行类似的命令apropos editor
,那么它就会运行并在该窗口输出。但我想在另一个终端窗口(新窗口)上运行相同的命令,而不是在当前窗口上运行第一航站楼。
进一步澄清:
我需要suggest-command <command>
打开新的终端窗口并运行<command>
该(新打开的)窗口中提到的内容。(其中suggest-command
是命令建议的示例。)
怎么做?
答案1
这可能是你运行的:
gnome-terminal -- sh -c "bash -c \"!!; exec bash\""
在旧版本中,使用 -e 和 -x:
gnome-terminal -e "bash -c \"!!; exec bash\""
# or
gnome-terminal -x sh -c "!!; bash"
它会打开 gnome-terminal,并显示你最后!!
执行的命令 ( ),然后停留使用 shell 中的命令输出打开,甚至使用类似top
或的交互式命令less
...
就你的情况而言:
gnome-terminal -- sh -c "bash -c \"apropos editor; exec bash\""
或者在旧版本中:
gnome-terminal -c "bash -c \"apropos editor; exec bash\""
# or
gnome-terminal -x sh -c "apropos editor; bash"
答案2
每个终端甚至是一个程序,您可以像任何其他程序一样启动它,并将其&
置于后台,提供参数列表等等。
使用哪个终端首先取决于您使用的系统的可用性(是否安装),其次取决于它们的特性,然后取决于您的个人喜好。
konsole --hold -e "ls" &
xterm -hold -e "ls" &
gnome-terminal -e "ls" & ...
注意以下区别-hold
和xterm
--hold
的konsole
。
每一个实现都有不同的选择您必须查看帮助。即使帮助也可以通过不同的方式调用。您会发现不起作用man konsole
,因此您必须直接使用 向可执行文件询问--help
。
这是您可以在系统上搜索的终端列表
aterm - AfterStep terminal with transparency support
gnome-terminal - default terminal for GNOME
guake - A dropdown terminal for GNOME
konsole - default terminal for KDE
Kuake - a dropdown terminal for KDE
mrxvt - Multi-tabbed rxvt clone
rxvt - for the X Window System (and, in the form of a Cygwin port,
for Windows)
rxvt-unicode - rxvt clone with unicode support
xfce4-terminal - default terminal for Xfce desktop
environment with dropdown support
Terminator - is a GPL terminal emulator. It is available on
Microsoft Windows, Mac OS X, Linux and other Unix X11 systems.
Terminology - enhanced terminal supportive of multimedia
and text manipulation for X11 and Linux framebuffer
tilda - A drop down terminal
wterm - It is a fork of rxvt, designed to be lightweight, but still
full of features
xterm - default terminal for the X Window System
Yakuake - (Yet Another Kuake), a dropdown terminal for KDE
答案3
启动您想要运行的任何终端的另一个实例:
xterm -hold -e 'apropos editor' &
注意-hold
。大多数终端在运行您输入的命令后都会退出。网站上已经有十几个关于此问题的问题:
另一种方法是使用需要退出的应用程序。nano
它将自行保持打开状态。如果您只是输出到屏幕,您可以将其输入到less
:
xterm -e 'apropos editor | less' &
也就是说,就您而言(正如其他两个人所说),只需打开另一个终端并运行命令似乎更容易。
答案4
- 打开两个终端。
- 用命令识别每个终端
tty
。 - 假设他们认同
/dev/pts/0
和/dev/pts/1
。 - 在终端 pts/0 使用命令将 stdout 重定向到 pts/1
exec
:exec 1>/dev/pts/1
- 现在,来自 pts/0 终端的每个命令 stdout 输出都显示在 pts/1 中。
- 使用命令重定向回 stdout:
exec 1>/dev/pts/0
- 现在 pts/0 stdout 可以像以前一样工作。