Когда я открываю gedit из терминала, я не могу использовать терминал ни для чего другого, пока не закрою gedit. Почему? [duplicate]

На этот вопрос уже есть ответ здесь:

Я ОЧЕНЬ новичок в мире Linux. Я использую Ubuntu 15.04 на ноутбуке Lenovo. Мой эмулятор терминала - Gnome Terminal.

Я знаю несколько вещей. Допустим, я набираю cd Documents/terminalpractice/python_folder. Затем я набираю, например, touch askubuntu.py. Затем я использую команду, gedit askubuntu.py.

В этот момент на моем экране откроется текстовый редактор gedit, и я могу пытаться писать сколько угодно. Однако в окне терминала, я полагаю, запущен "процесс" gedit? Поэтому я не могу использовать терминал, пока не выйду из gedit (я сохраняю, а затем нажимаю "X" в верхнем углу).

Почему это происходит? Я могу использовать графический интерфейс для открытия папок, дважды щелкнуть на моем askubuntu.py, и он откроется в gedit, не влияя на то, что происходит в терминале. Я хотел бы знать, почему это происходит.

6
задан 17 September 2015 в 13:27

4 ответа

, Почему это происходит?

, Когда Вы просто работаете:

 gedit filename

это выполняет процесс на переднем плане. Чтобы отправить его в фон и продолжить использовать терминал, используйте:

gedit filename &

Примечание, которое это (и конечно то выше) выполнит gedit как подпроцесс Вашего терминала, поэтому при выходе из терминала, он также выйдет gedit.

Так для выполнения его 'корректно' используйте:

nohup gedit >/dev/null &

nohup выполнит gedit, отсоединенный от терминала, и следовательно это неуязвимо для зависаний. >/dev/null перенаправления stdout к специальному местоположению dev/null, таким образом, предотвращая создание nohup.out файл.

См. man nohup и этот вопрос для получения дополнительной информации.

17
ответ дан 23 November 2019 в 07:18

Это нормально. При выполнении команды, терминал не получает другую команду, пока не закончено с той. Способ выполнить команды, как Вы хотите, состоит в том, чтобы нажать ALT + F2 и ввод команды, в которой Вы нуждаетесь.

, Если Вы делаете это в терминале, это не примет другую команду до инструкций существующих концов команды.

0
ответ дан 23 November 2019 в 07:18

Это - потому что Вы запускаетесь gedit от терминала на переднем плане. Любая команда, которую Вы выполняете таким образом, будет пожиратель ресурсов командная строка, пока команда не завершилась. Таким образом, при выходе из окна, открытого на gedit терминальная подсказка работает снова. Можно выполнить команды в фоновом режиме путем помещения & в конце команды.

можно просмотреть все фоновые команды, которые Вы запустили при помощи эти jobs команда.

можно также нажать Ctrl + Z для приостановки команды при выполнении его обычно можно затем отправить его в фон путем ввода bg.

0
ответ дан 23 November 2019 в 07:18

Это похоже на запущение программы текстового режима или приложения: это начинает работать, и терминал (хорошо, не терминал, но интерпретатор команд) не будет доступен, пока приложение не закончит работать. Например, выполненный "нано" и Вы будете видеть то же поведение (интерпретатор команд "уступает" в то время как выполнение приложения).

Просто, потому что приложение (gedit) открывает дополнительное графическое окно, не изменяет базовое, основное поведение.

при запуске команды на терминале можно попросить, чтобы интерпретатор команд выполнил его в фоновом режиме при помощи &:

gedit blahblah &

, Если команда уже работает (с "запертым" терминалом), можно нажать ctrl-z (который приостанавливает под управлением в настоящее время процесс - отмечают, что gedit окно становится безразличным), затем тип bg (который отправляет приостановленный процесс в фон).

0
ответ дан 23 November 2019 в 07:18

Другие вопросы по тегам:

Похожие вопросы: