Как выполнить любую команду в другом окне терминала?
Пример: я открыл одно окно терминала, и если я запускаю команду, подобную apropos editor
, то она запускается и выводит это окно. Но я хочу выполнить ту же команду в другом окне терминала (новом окне) вместо этого в текущем окне из первого терминала .
Дальнейшие разъяснения :
Мне нужно suggest-command <command>
, чтобы открыть новое окно терминала и запустить упомянутое <command>
в этом (вновь открытом) окне. (где suggest-command
- пример предложения команды.)
Как это сделать?
Это может быть то, что вы ищете:
gnome-terminal -e "bash -c \"!!; exec bash\""
или (коротко):
gnome-terminal -x sh -c "!!; bash"
Он открывает gnome-terminal с вашей последней командой ( !!
) выполняется, и он остается открытым вместе с выводом команды в оболочке, даже с интерактивной командой типа top
или less
...
В вашем регистр:
gnome-terminal -e "bash -c \"apropos editor; exec bash\""
или
gnome-terminal -x sh -c "apropos editor; bash"
Каждый терминал - это даже программа, которую можно запускать как любую другую программу,
с и
для вставки в фоновый режим, с указанием списка аргументов и т. д.
Какой терминал использовать, зависит в первую очередь от доступности системы, которую вы используете (если они установлены или нет) , затем из их особенностей, а затем из вашего личного вкуса.
konsole --hold -e "ls" &
xterm -hold -e "ls" &
gnome-terminal -e "ls" & ...
Обратите внимание на различия между -hold
из xterm
и -hold
из консоли
.
Каждая реализация имеет разные опции , которые вы должны проверить с помощью.
Даже помощь может быть вызвана по-разному.
Вы можете обнаружить, что 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
Вы можете использовать параметр -e
для gnome-terminal следующим образом:
gnome-terminal -e 'sh -c propose editor'
Здесь sh
- это оболочка, которую открывает gnome-terminal. Обратите внимание, что это приведет к выходу из терминала, как только команда завершится. Обратитесь к странице справочника для gnome-terminal для получения дополнительной информации.
Запустите другой экземпляр любого терминала, который вы хотите запустить:
xterm -hold -e 'apropos editor' &
Обратите внимание на -hold
. Большинство терминалов закрываются после выполнения команды, которую вы им скармливаете. На сайте уже около дюжины вопросов по этому поводу:
An Альтернативой этому является использование приложения, из которого необходимо выйти. nano
останется открытым самостоятельно. Если вы просто выводите на экран, вы можете перенаправить его в less
:
xterm -e 'apropos editor | less' &
Тем не менее, в вашем случае (как сказали два других), кажется, проще просто открыть другой терминал и запустите вашу команду.
tty
; exec
: exec 1> / dev / pts / 1
exec 1> / dev / pts / 0
Видео на YouTube:
Вот мои 50 центов с Терминатором:
terminator -x "script.sh; bash"
Это тоже работает, но я не могу сказать вам разницы:
terminator -e "script.sh; bash"
Обратите внимание, что сценарий также может быть командой.
Проверено на Ubuntu 18.04 LTS.
После Ubuntu 18.04 LTS вы можете переключиться с -e
на -
, то есть gnome-terminal -e
на gnome-terminal -
, потому что -e
и -x
устарели.
Я знаю, что это примерно на 7 лет позже, но для всех, кто это видит, это все равно должно быть полезно. У меня тоже была эта проблема, но я нашел решение, которое, на мой взгляд, лучше, чем то, что предлагали другие.
Согласно man gnome-terminal
вы можете просто выполнить gnome-terminal - sh -c '<ваша команда>'
- sh
позволяет это для запуска реальных сценариев вместо приложений, так что это будет похоже на ввод его в обычное окно. Единственное, что следует отметить в этом решении, это то, что терминал завершит работу после завершения выполнения команды.
Надеюсь, это поможет!