Я не могу использовать терминал во время работы команды gedit
Я недавно установил 12.04.
Когда я пытаюсь отредактировать файл с помощью gedit, я не могу использовать терминал, пока не закрою файл редактирования или мне не нужно открыть новый терминал. Но я думаю, что у меня не было этой проблемы с 11.04, однако я не уверен.
Есть ли в любом случае, чтобы избежать этого и использовать тот же терминал при редактировании файлов.
7 ответов
Короткий ответ
В не отвечающем терминале:
- Нажмите Ctrl+Z.
- Тип
bg
и войти. - Тип
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 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
команда особенно раздел с надписью "контроль работы".
Это, вероятно, потому что вы открыли Gedit через терминал. Когда вы делаете это, вы видите вывод командной строки, который обычно скрыт, если запущен через графический интерфейс. Лучший способ исправить это - открыть новое окно терминала. Другой станет доступным после закрытия Gedit. Вы также можете использовать переключатель, предложенный выше пользователем.