在另一个(新)终端窗口上运行命令


32

如何在另一个终端窗口中运行任何命令?

示例:我打开了一个终端窗口,如果我运行命令如apropos editor,那么它将在该窗口上运行并输出。但是我想在另一个终端窗口(新窗口)上运行相同的命令,而不是从第一个终端在当前窗口上运行。

进一步说明
我需要suggest-command <command>打开新的终端窗口并运行<command>该窗口(新打开的窗口)。(这里suggest-command是命令建议的示例。)

怎么做?


1
右键单击终端图标,然后单击“打开新终端”。
拉斐尔2014年

对不起,如果我听起来像拉面,但这是我从您的问题中了解的内容。
拉斐尔2014年

gnome终端对不对?
Braiam 2014年

在打开新终端可以解决您的问题的同时,您可能还希望仅使用nohup,重定向输出并将编辑器置于后台。nohup apropos editor &> /dev/null &

我也不明白:为什么不打开新终端?
约瑟夫·克利穆克

Answers:


29

这可能是您搜索的内容:

gnome-terminal -e "bash -c \"!!; exec bash\""

或(不久):

gnome-terminal -x sh -c "!!; bash"

它会打开gnome-terminal,!!并执行您的最后一个命令(),并保持打开状态,即使在交互式命令(如topless...)中,shell中的命令输出也会保持打开状态。

就您而言:

gnome-terminal -e "bash -c \"apropos editor; exec bash\""

要么

gnome-terminal -x sh -c "apropos editor; bash"

2
短一点gnome-terminal -x sh -c "!!; bash"
TuKsn14年

10

启动要运行的任何终端的另一个实例:

xterm -hold -e 'apropos editor' & 

注意-hold。在运行您喂入它们的命令后,大多数终端将退出。网站上已经有十几个关于此的问题:

一种替代方法是使用需要退出的应用程序。nano会保持开放状态。如果只是输出到屏幕,则可以将其传送到less

xterm -e 'apropos editor | less' & 

也就是说,在您的情况下(如其他两个人所说),打开另一个终端并运行命令似乎更容易。


我可以使用gnome-terminal而不是xterm如何使用吗?
2014年

我很好奇如何使用xfce4-terminal(xfce4-terminal打开一个新进程,而xterm却没有,在我的情况下,我实际上并不想要一个新进程)。
Shule

7

每个终端甚至是一个程序,您都可以像在其他程序中一样启动它,并&放置在后台,提供参数列表等。

使用哪个终端首先取决于您所使用系统的可用性(无论是否已安装),其次取决于它们的特殊性,然后取决于您的个人喜好。

  konsole   --hold -e "ls" &  
  xterm      -hold -e "ls" &  
  gnome-terminal   -e "ls" & ...  

注意之间的差异-holdxterm--holdkonsole

每个实现都有不同的选项,您必须在帮助下进行检查。甚至可以以不同的方式调用帮助。您会发现它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

您可以-e按如下方式使用选项来gnome-terminal:

gnome-terminal -e 'sh -c propose editor'

sh是gnome-terminal打开的外壳。请注意,命令终止后,它将退出终端。有关更多信息,请参阅gnome-terminal的手册页


如何保留新打开的终端,该终端在命令完成/终止后退出?
2014年

3
  1. 打开两个终端;
  2. tty命令标识每个终端;
  3. 假设它们以/ dev / pts / 0和/ dev / pts / 1标识;
  4. 在终端pts / 0中,使用以下exec命令将stdout重定向到pts / 1 :exec 1>/dev/pts/1
  5. 现在,从pts / 0端子输出的每个命令stdout都显示在pts / 1中;
  6. 用逗号重定向回标准输出: exec 1>/dev/pts/0
  7. 现在pts / 0 stdout像以前一样工作。

YouTube视频:


1

Ubuntu的LTS 18.04后,你可能想从切换-e--,即gnome-terminal -egnome-terminal --由于-e-x都不赞成。


1

这是我与《终结者》的50美分:

terminator -x "script.sh; bash"

这也可以,但是我不能告诉你区别:

terminator -e "script.sh; bash"

请注意,脚本也可以是命令。

在Ubuntu 18.04 LTS上测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.