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

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

40 голосов | спросил user175023 14 J000000Sunday13 2013, 11:14:45

7 ответов


76

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

В нечувствительном терминале:

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

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

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

  

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

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

  

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

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

  

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

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

ответил Alaa Ali 14 J000000Sunday13 2013, 11:38:17
41

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

gedit <filename-to-edit> &

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

ответил david6 14 J000000Sunday13 2013, 13:48:39
25

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

nohup mupdf some.pdf &

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

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

nohup mupdf some.pdf &>/dev/null &
ответил Braiam 12 AM00000030000000131 2013, 03:21:01
19

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

Обратите внимание, что disout имеет значение bash.

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

Страница пользователя для отказа

ответил jmathew 12 AM00000070000001831 2013, 07:25:18
11

От man gedit:

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

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

gedit -b [FILE-NAME]

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

alias gedit='gedit -b'

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

ответил Radu Rădeanu 15 J000000Monday13 2013, 16:02:58
10

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

gedit FILENAME & disown

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

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

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

ответил Flimm 17 J000000Wednesday13 2013, 01:42:10
0

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

ответил user175759 16 J000000Tuesday13 2013, 23:12:03

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132