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

Используя стандартную библиотеку в Linux, шрифты OTF не загружаются. Необходимо установить зависимую библиотеку на основе вашей конфигурации системы, например libotf.

1
задан 6 March 2014 в 00:29

6 ответов

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

gedit <filename-to-edit> &

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

41
ответ дан 24 May 2018 в 20:01
  • 1
    Это важная идиома Unix и стоит знать. Любая команда может выполняться в фоновом режиме таким образом. Инструменты, которые являются интерактивными, очевидно, будут смущены этим лечением, но, например, bubblesort war_and_peace.txt% позволит вашему сортировщику отскакивать от шедевра (в течение длительного, продолжительного времени), пока вы будете работать с вашей работой (скажем, при использовании quicksort или что-то) – Jon Kiparsky 17 July 2013 в 00:16
  • 2
    @JonKiparsky Забавный пример - делает точку. – Joe 17 July 2013 в 23:29

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

nohup mupdf some.pdf &

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

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

nohup mupdf some.pdf &>/dev/null &
25
ответ дан 24 May 2018 в 20:01
  • 1
    & Quot; поЬир & Quot; означает «не повесить трубку». Это относится к раннему Unix, когда (физические) терминалы регулярно подключались по телефонным линиям, и поэтому вы должны закрыть терминал, повесив трубку. – MSalters 12 August 2013 в 13:05
  • 2
    Дополнительная информация: Команда nohup создаст файл nohup.out, содержащий вывод из команды. Это полезно, если вы хотите просмотреть сообщения об ошибках. Если вы не хотите, чтобы файл был создан, добавьте перенаправление следующим образом: nohup mupdf some.pdf &>/dev/null & – Paddy Landau 13 August 2013 в 16:02

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

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

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

19
ответ дан 24 May 2018 в 20:01

Из man gedit:

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

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

[ f2]

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

alias gedit='gedit -b'

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

11
ответ дан 24 May 2018 в 20:01
  • 1
    Плохая идея использовать псевдоним для переопределения общих команд. Вы найдете много потоков об этом на stackexchange. Хорошо использовать псевдоним с другим именем. Короче говоря, сглаживание существующих команд создает неожиданное поведение на вашем компьютере, если кто-то когда-либо использует его (например, когда вы пытаетесь помочь вам исправить какую-то другую проблему), и он делает то же самое с вами, когда вы используете другую систему без этих псевдонимов и ваших команд не работают, как вы ожидаете. Один из детей-плакатов - псевдоним rm = 'rm -i'. Это помогает вам удалять вещи со вторым шансом, который не всегда существует. – Joe 17 July 2013 в 23:38

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

gedit FILENAME & disown

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

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

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

10
ответ дан 24 May 2018 в 20:01
  • 1
    с disown я смог сохранить gedit открытым после закрытия терминала. Я не понял, о чем вы говорили. это не относится к bash, но это имеет место для zsh " – KrIsHnA 3 June 2015 в 09:21

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

0
ответ дан 24 May 2018 в 20:01
  • 1
    Новое окно терминала просто загромождает рабочий стол, даже если оно сведено к минимуму. Использование & amp; с или без разрешения намного проще и чище. – Joe 17 July 2013 в 23:42

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

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