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

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

44
задан 5 March 2014 в 22:29

7 ответов

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

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

  1. Нажмите Ctrl + Z .
  2. Введите bg ] и введите.
  3. Введите disown и введите.

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

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

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

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

Extra : теперь, если вы выполните jobs , вы ' Вы заметите, что он будет читать Running .

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

Extra : если бы вы следовали этим дополнительным примечаниям, вы могли заметить, что во второй раз, когда вы выполняли задания , вы могли бы увидеть, что bash добавил & в конец gedit .

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

82
ответ дан 5 March 2014 в 22:29

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

0
ответ дан 5 March 2014 в 22:29

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

gedit FILENAME & disown

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

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

дополнительные сведения о встроенных заданиях , disown и метасимволах и на странице для команды bash Manpage icon, особенно в разделе «Управление заданиями».

10
ответ дан 5 March 2014 в 22:29

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

gedit &

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

48
ответ дан 5 March 2014 в 22:29

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

nohup mupdf some.pdf &

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

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

nohup mupdf some.pdf &>/dev/null &
25
ответ дан 5 March 2014 в 22:29

Из man gedit :

 -b, --background
  Запустите gedit в фоновом режиме.
 

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

gedit -b [FILE-NAME]

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

alias gedit='gedit -b'

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

13
ответ дан 5 March 2014 в 22:29

Вы также можете использовать команду 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!

Обратите внимание, что disown специфичен для bash .

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

Справочная страница для disown

19
ответ дан 5 March 2014 в 22:29

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

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