Запустіть команду в іншому (новому) вікні терміналу


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"
TuKsn

10

Почніть інший примірник будь-якого терміналу, який ви хочете запустити:

xterm -hold -e 'apropos editor' & 

Зверніть увагу на -hold. Більшість терміналів вийдуть після запуску команди, якою ви їх подаєте. На цьому сайті вже є десяток або близько таких питань:

Альтернативою цьому є використання програми, яку потрібно закрити. nanoзалишиться відкритим самостійно. Якщо ви просто виходите на екран, ви можете передати його в less:

xterm -e 'apropos editor | less' & 

Тим не менш, у вашому випадку (як сказали інші два) здається, що ви просто відкриєте інший термінал і запускаєте свою команду.


Чи можу я використовувати gnome-terminalзамість того, як xtermтоді?
Пандія

Мені цікаво, як це зробити з 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-terminal наступним чином:

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

Ось shоболонка, яку відкриває gnome-термінал. Зауважте, що цей термін вийде з терміналу, як тільки команда припиниться. Докладнішу інформацію див . На сторінці керівництва для gnome-terminal .


Як утримувати новий відкритий термінал, який виходить після завершення / припинення команди?
Пандія

3
  1. Відкрийте два клеми;
  2. Ідентифікація кожного терміналу за допомогою ttyкоманди;
  3. Припустимо, що вони ототожнювались з / dev / pts / 0 та / dev / pts / 1;
  4. У терміналі pts / 0 перенаправлення stdout до pts / 1 з execкомандою:exec 1>/dev/pts/1
  5. Тепер кожен вихід командного виводу з терміналу pts / 0 відображається в pts / 1;
  6. Перенаправлення назад stdout з comad: exec 1>/dev/pts/0
  7. Зараз pts / 0 stdout працює як раніше.

Відео 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.