
Так что я знаю, что если я введу gnome-terminal или xterm, то появится новое окно. Затем я проверил страницу man для этих двух, ничего подходящего не нашел.
Потом я заметил, что под Mac это можно сделать с открытой программой. Но, похоже, под Linux это не так тривиально.
Есть ли у кого-нибудь опыт?
решение1
Обновлять:Новый рекомендуемый синтаксис:
gnome-terminal -- bash -c "<моя команда или скрипт>; exec bash"
- Если вы хотите получить доступ к домашнему каталогу пользователя с помощью приведенной выше команды, используйте переменную окружения
$HOME
:bash -c "cd $HOME/; ..."
Если вы посмотрите наman gnome-terminal
(и gnome-terminal --help
) параметры -x
и -e
доступны (и явно не указано, что они устарели), но все примеры там даны с использованием синтаксиса, представленного выше.
Я бы предпочел использовать вариант -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.
Еще примеры использования этого формата:
- Откройте новый терминал и исходные скрипты.
- Запустить gnome-terminal из сеанса SSH в сеансе рабочего стола
- Запустить определенный терминал при запуске
- Crontab и программа на языке C, которые следует запустить в окне терминала
- Xdotool не сворачивает окно терминала при использовании в автозагрузке приложений при загрузке ПК?
решение2
Другой подход, который позволит держать окно открытым, — использовать xterm:
xterm -hold -e cmd
Опция удержания удерживает окно открытым.
решение3
gnome-terminal -e cmd
откроет окно терминала и запустится cmd
в нем.
решение4
Вы можете просто сделать это CTRLALTTи откроется новый терминал.
Пытатьсяgnome-terminal -e "bash -c command;bash"