Я не могу использовать терминал во время работы команды gedit

Я недавно установил 12.04.
Когда я пытаюсь отредактировать файл с помощью gedit, я не могу использовать терминал, пока не закрою файл редактирования или мне не нужно открыть новый терминал. Но я думаю, что у меня не было этой проблемы с 11.04, однако я не уверен.
Есть ли в любом случае, чтобы избежать этого и использовать тот же терминал при редактировании файлов.

7 ответов

Решение

Короткий ответ

В не отвечающем терминале:

  1. Нажмите Ctrl+Z.
  2. Тип bg и войти.
  3. Тип disown и войти.

Длинный ответ

В не отвечающем терминале нажмите Ctrl+Z, это "приостановит" процесс (или "задание") и вернет вам консольное управление. Тем не менее, вы заметите, что gedit становится безразличным, и вы не можете его использовать.

Дополнительно: если вы хотите, вы можете выполнить команду jobs, вы заметите, что он будет читать Остановился для gedit команда, поэтому вы не можете использовать его.

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

Дополнительно: сейчас, если вы выполните jobs, вы заметите, что он будет читать Running.

Вы можете преодолеть все это с самого начала. Когда вы запускаете gedit из терминала, добавьте & до конца команды, так что-то вроде этого gedit /path/to/file &, Это запустит gedit в фоновом режиме с первого места (вам может понадобиться нажать Enter пару раз, чтобы вернуть управление консоли).

Дополнительно: если вы следили за этими дополнительными заметками, вы могли заметить, что во второй раз jobsВы могли видеть, что Баш добавил & до конца gedit команда.

Как только вы привыкнете к этой системе, вы можете заметить, что если вы закроете терминал, gedit также прекратит работу даже без диалогового окна подтверждения. Чтобы этого не случилось, запустите disown, который отсоединит процесс gedit от терминала, удалив его из списка, возвращенного jobs,

Просто введите:

gedit <filename-to-edit> &

Это немедленно вернет вам командную строку.

Вы могли бы использовать nohup чтобы графический интерфейс не подключался к терминалу:

nohup mupdf some.pdf &

Это позволит вам закрыть терминал, с которого вы запускаете, без закрытия программы.

Вы также должны заметить, что команда nohup создаст файл с stdout а также stderr команды, которую вы запускаете. Если вы хотите предотвратить это, добавьте &>/dev/null перед &,

nohup mupdf some.pdf &>/dev/null &

Вы также можете использовать disown команда. Это особенно полезно, когда вы уже начали процесс, который больше не хотите подключать к терминалу.

Основная процедура, если я правильно помню, это что-то вроде этого:

$ > firefox      #Oops
Ctrl + z         #Suspend the process
$ > bg           #Push the process to the background
$ > disown       #Detach most recent process started or stopped
$ > exit         #Terminal gone!

Обратите внимание, что отречение bash конкретный.

Этот пост в блоге объясняет оба метода довольно хорошо.

Man страница для отречься

От man gedit:

-b, --background
         Run gedit in the background.

Итак, если вы бежите gedit с -b вариант, он будет запускаться в фоновом режиме:

gedit -b [FILE-NAME]

Кроме того, затем вы можете создать псевдоним для gedit -b (смотрите здесь, как создать постоянный псевдоним):

alias gedit='gedit -b'

Отныне, в будущем вы можете использовать gedit [FILE-NAME] как обычно, и это начнется в фоновом режиме.

Просто введите:

gedit FILENAME & disown

Завершение команды с & в bash эта команда запускается в фоновом режиме. Однако этот процесс все еще привязан к терминалу.

Без disown , если вы закроете терминал, gedit закроется, даже не предложив вам сохранить отредактированный файл. disown отсоединяет фоновый процесс от текущего терминала, так что если вы закроете терминал, gedit продолжит работать в обычном режиме. Оказывается, я был неправ, это не относится к Bash, но это относится к Zsh. Вам все еще нужно бежать detach после выполнения Ctrl - Z и bg Впрочем, даже в Баш.

Вы можете узнать больше о встроенных jobs , disown и & метасимвол в справочной странице для bash команда Значок Manpage особенно раздел с надписью "контроль работы".

Это, вероятно, потому что вы открыли Gedit через терминал. Когда вы делаете это, вы видите вывод командной строки, который обычно скрыт, если запущен через графический интерфейс. Лучший способ исправить это - открыть новое окно терминала. Другой станет доступным после закрытия Gedit. Вы также можете использовать переключатель, предложенный выше пользователем.

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