Выполнить команду в другом (новом) окне терминала


32

Как выполнить любую команду в другом окне терминала?

Пример: я открыл одно окно терминала, и если я запускаю команду как apropos editor, то она запускается и выводит это окно. Но я хочу выполнить ту же команду в другом окне терминала (новом окне) вместо текущего окна из первого терминала .

Дополнительные пояснения :
мне нужно, suggest-command <command>чтобы открыть новое окно терминала и запустить, упомянутые <command>в этом (недавно открытом) окне. (где suggest-commandпример предложения команды.)

Как это сделать?


1
Щелкните правой кнопкой мыши значок терминала и нажмите «Открыть новый терминал».
Рафаэль

Извините, если я звучу как ламен, но это то, что я понял из вашего вопроса.
Рафаэль

гном-терминал верно?
Брайам

Хотя открытие нового терминала может решить вашу проблему, вы также можете просто использовать nohup, перенаправить вывод и поместить ваш редактор в фоновый режим. nohup apropos editor &> /dev/null &
Пантера

Я тоже не понимаю: почему бы не открыть новый терминал?
Йозеф Климук

Ответы:


29

Это может быть то, что вы ищете:

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

или (в ближайшее время):

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

Он открывает gnome-терминал с вашей последней выполненной командой ( !!) и остается открытым с выводом команды в оболочке, даже с такой интерактивной командой, как topили less...

В вашем случае это:

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

или

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

2
Немного корочеgnome-terminal -x sh -c "!!; bash"
ТуКсн

10

Запустите другой экземпляр любого терминала, который вы хотите запустить:

xterm -hold -e 'apropos editor' & 

Обратите внимание -hold. Большинство терминалов выйдет после запуска команды, которую вы им кормите. На сайте уже есть около десятка вопросов по этому поводу:

Альтернативой этому является использование приложения, которое необходимо закрыть. nanoостанется открытым сам по себе. Если вы просто выводите на экран, вы можете передать его в less:

xterm -e 'apropos editor | less' & 

Тем не менее, в вашем случае (как сказали два других) вам кажется, что проще просто открыть другой терминал и запустить команду.


Могу ли я использовать gnome-terminalвместо того, xtermкак?
Pandya

Мне интересно, как это сделать с помощью xfce4-терминала (xfce4-терминал открывает новый процесс, а xterm - в моем случае, я на самом деле не хочу новый процесс).
Шуле

7

Каждый терминал - это даже программа, которую вы можете запустить, как любую другую программу, с &возможностью ее установки в фоновом режиме, предоставления списка аргументов и так далее.

Какой терминал использовать, зависит в первую очередь от доступности используемой вами системы (если они установлены или нет), от их особенностей, а затем от вашего личного вкуса.

  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

Вы можете использовать -eопцию для gnome-терминал следующим образом:

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

Вот shоболочка, которую открывает gnome-терминал. Обратите внимание, что это выйдет из терминала, как только команда будет завершена. Обратитесь к странице руководства для gnome-терминала за дополнительной информацией.


Как сохранить новый открытый терминал, который завершается после завершения / завершения команды?
Pandya

3
  1. Откройте два терминала;
  2. Идентификация каждого терминала с помощью ttyкоманды;
  3. Предположим, они идентифицированы с / dev / pts / 0 и / dev / pts / 1;
  4. В терминале pts / 0 перенаправить стандартный вывод на pts / 1 execкомандой:exec 1>/dev/pts/1
  5. Теперь каждый вывод команды stdout из терминала pts / 0 отображается в pts / 1;
  6. Перенаправить обратно стандартный вывод с запятой: exec 1>/dev/pts/0
  7. Теперь стандартный вывод pts / 0 работает как прежде.

YouTube видео:


1

После того, как Ubuntu 18.04 LTS, вы можете перейти от -eк --, то есть gnome-terminal -eк gnome-terminal --потому что -eи -xоба устарели.


1

Вот мои 50 центов с Терминатором:

terminator -x "script.sh; bash"

Это тоже работает, но я не могу сказать вам разницу:

terminator -e "script.sh; bash"

Обратите внимание, что скрипт также может быть командой.

Проверено на Ubuntu 18.04 LTS.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.