Как открыть дополнительную консоль и запустить в ней программу одной командой?
Так что я знаю, что если я введу gnome-терминал или xterm, появится новое окно. Затем я проверил справочную страницу для этих двух, ничего релевантного не нашел.
Тогда я заметил, что под Mac вы можете сделать это с открытой программой. Но, похоже, под Linux это не так тривиально.
У кого-нибудь есть опыт?
4 ответа
Я бы предпочел использовать опцию -x
что обеспечивает более надежную работу, чем -e
:
gnome-terminal -x bash -c "<my command or script>; exec bash"
Опция
-x
средства--execute
- остаток командной строки внутри терминала.И наша команда
bash -c "<commands>"
, Это означает, что мы выполняем новыйbash
оболочка, которая должна запускаться-c "<commands>"
,У нас есть два разделенных (точкой с запятой
; == new line
)<commands>
,Первая команда
<my command or script>
выполнит то, что мы хотим.Вторая команда
exec bash
имеет смысл - оставаться открытым текущимgnome-terminal
окно. Есть и другие возможные подходы к этому. В текущем случае командаexec
заменит текущий образ процесса новым образом процесса - другими словами, он "убьет" текущий процесс и выполнит новый (bash
) под текущим PID.
Обновление: -x/-e
синтаксис теперь устарел - Ubuntu 18.04. Новый рекомендуемый способ:
gnome-терминал - bash -c "<моя команда или скрипт>; exec bash"
- Если вы хотите получить доступ к домашнему каталогу пользователей с помощью вышеуказанной команды, используйте переменную среды
$HOME
:bash -c "cd $HOME/; ..."
Еще примеры использования этого формата:
- Откройте новый терминал и исходные скрипты
- Запустите gnome-терминал из сеанса SSH в сеанс рабочего стола
- Запустить определенный терминал при запуске
- Программа Crontab и C, которая должна быть выполнена в окне терминала
- Xdotool не минимизирует окно терминала при использовании в Startup Application при загрузке ПК?
Другой подход, который будет держать окно открытым, заключается в использовании xterm:
xterm -hold -e cmd
Опция удержания держит окно открытым.
gnome-terminal -e cmd
откроет окно терминала и запустит cmd
внутри.
Вы можете просто сделать CTRLALTT, и вы откроете новый терминал.
Пытаться gnome-terminal -e "bash -c command;bash"