Я недавно установил 12.04.
Когда я пытаюсь отредактировать файл с помощью gedit , я не могу использовать терминал, пока не закрою файл редактирования или мне не придется открыть новый терминал. Но я думаю, что у меня не было этой проблемы с 11.04, однако я не уверен.
Есть ли способ избежать этого и использовать один и тот же терминал при редактировании файлов.
В терминале, который не отвечает:
bg
и введите. disown
и введите. В не отвечающем терминале нажмите Ctrl kbd> + Z kbd>, это «приостановит» процесс (или «задание») ) и верните пульт управления вам. Однако вы заметите, что gedit
перестает отвечать на запросы, и вы не можете его использовать.
Дополнительно : если вы захотите, вы можете выполнить команду
blockquote>jobs
, вы заметите, что она будет читать Остановлено для командыgedit
вот почему вы не можете его использовать.Чтобы успешно выполнить задание в фоновом режиме (т. е. снова сделать
gedit
отзывчивым), выполните командуbg
(имеется в виду фон). Теперь вы сможете использоватьgedit
и в то же время иметь подсказку для себя.Дополнительно : теперь, если вы выполните
blockquote>jobs
, вы заметите, что он будет читать Running .Вы можете преодолеть все это с самого начала. Когда вы запускаете
gedit
из терминала, добавьте&
в конец команды, так что-то вроде этогоgedit /path/to/file &
. Это сначала запуститgedit
в фоновом режиме (вам может понадобиться нажать Enter kbd> пару раз, чтобы вернуть управление консоли).Extra : если вы следили за этими дополнительными заметками, вы могли заметить, что во второй раз, когда вы сделали
blockquote>jobs
, вы могли видеть, что bash добавил&
в конец командаgedit
.Как только вы привыкнете к этой системе, вы можете заметить, что если вы закроете терминал, gedit также прекратит работу даже без диалогового окна подтверждения. Чтобы этого не происходило, запустите
disown
, который отсоединит процесс gedit от терминала, удалив его из списка, возвращенногоjobs
.
Просто введите:
gedit <filename-to-edit> &
Это немедленно вернет вам командную строку.
Это, вероятно, потому что вы открыли gedit через терминал. Когда вы делаете это, вы видите вывод командной строки, который обычно скрыт, если запущен через графический интерфейс. Лучший способ исправить это - открыть новое окно терминала. Другой станет доступным после закрытия Gedit. Вы также можете использовать переключатель, предложенный вышеупомянутым пользователем.
Просто введите:
gedit FILENAME & disown
Завершение команды с помощью &
в bash запускает эту команду в фоновом режиме. Однако этот процесс все еще подключен к терминалу.
Без disown
, если вы закроете терминал, gedit закроется, даже не предложив вам сохранить отредактированный файл. disown
отсоединяет фоновый процесс от текущего терминала, так что если вы закроете терминал, gedit продолжит работать в обычном режиме. S> Оказывается, я ошибался, это не относится к bash, но это чехол для зш. Вам все еще нужно запустить detach
после выполнения ctrl kbd> - z kbd> и bg
, даже в bash.
Вы можете узнать больше о встроенных модулях jobs
, disown
и метасимволе &
в справочной странице для команды bash
особенно раздел «Управление заданиями».
disown
я смог сохранить gedit открытым после терминала закрытый. Я didn' t получают то, что Вы сказали о " дело обстоит не так для удара, но это имеет место для zsh"
– Jeb
15.05.2020, 04:08
Вы также можете использовать команду 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
:
blockquote>-b, --background Run gedit in the background.
Таким образом, если вы запустите
gedit
с опцией-b
, он запустится в фоновом режиме:gedit -b [FILE-NAME]
Более того, затем вы можете создать псевдоним для
gedit -b
(см. здесь , как создать постоянный псевдоним):alias gedit='gedit -b'
Отныне, в будущем вы можете использовать
gedit [FILE-NAME]
как обычно, и это начнется в фоновом режиме.
Вы можете использовать nohup
для предотвращения подключения GUI к терминалу:
nohup mupdf some.pdf &
Это позволит вам закрыть терминал, с которого вы запускаете, без закрытия программы. 118]
Вы также должны заметить, что команда nohup создаст файл с stdout
и stderr
команды, которую вы запускаете. Если вы хотите предотвратить это, добавьте &>/dev/null
перед &
.
nohup mupdf some.pdf &>/dev/null &
nohup.out
, содержащий вывод от команды. Это полезно, если Вы хотите просмотреть сообщения об ошибках. Если Вы don' t хотят, чтобы файл был создан, добавил перенаправление следующим образом: nohup mupdf some.pdf &>/dev/null &
– Community
15.05.2020, 04:10