Открытие файла из терминала

30

Когда мы хотим открыть приложение или файл из терминала, мы набираем, скажем,

okular file.dvi

Это открывает приложение, но также показывает статус приложения. Мы не можем закрыть терминал, потому что он убивает процесс. К сожалению, если вы пытаетесь, например, создать файл LaTeX, вам понадобится одна вкладка для текстового редактора, одна вкладка для файла dvi и так далее. И если вы пытаетесь открыть все окна из терминала, вы можете забыть об этом. Я пытаюсь использовать терминал как можно больше, и хотя у меня есть Yakuake, по-прежнему надоело иметь столько вкладок и видеть, у каких из них есть приложение, которое я убил и так далее.

Итак, есть ли способ открыть приложение / файл из терминала, чтобы статус не отображался и сразу выдавал подсказку, чтобы мы могли использовать его для открытия большего количества приложений?

notablytipsy
источник
Учитывая ваши запросы, касающиеся невидимого вывода, средства просмотра не являются дочерними процессами терминала и т. Д., Он кажется идеальным кандидатом для использования простого сочетания клавиш для открытия средства просмотра или использования, например, grun для передачи имени файла. , было бы более подходящим, чем придерживаться использования терминала.
Jmetz
Я не против того, чтобы не видеть какой-либо вывод ... Я против того, чтобы иметь несколько терминалов / вкладок, открытых для нескольких приложений. Ответ, который я выбрал, полностью соответствует всем моим предпочтениям.
Примечательно,

Ответы:

51
xdg-open file.dvi

xdg-openоткроет любой файл с приложением по умолчанию. В качестве бонуса вы можете закрыть терминал, не убивая приложение.

Поскольку xdg-openэто довольно длинное имя, я поместил псевдоним для него в .bashrc:

alias open='xdg-open'
Михай Капотэ
источник
Милая! Это лучшее, даже лучшее, чем я выбрал! И вы получаете значок «Возрождение» :)
примечание:
Просто потрясающе!
Югаль Джиндл
Просто хочу указать на то, что поскольку это на самом деле не запускает программу, это означает, что вы можете открыть файл, не создавая новый экземпляр этой программы. Это означает, что вы можете открыть файл, и он будет автоматически открыт в уже открытом экземпляре приложения.
Arc676
если вы недавно перешли с Mac на Linux, это, вероятно, будет хорошей идеей alias open="xdg-open"
Педро Луз
16
okular file.dvi &

просто добавьте, &чтобы ваша команда работала как отдельный процесс.

user827992
источник
Вот Это Да! Отлично! Забавно ... Я искал в Google "открыть из терминала без отображения статуса", никогда не думал, что это ведет себя как отдельный процесс! К сожалению, в нем говорится, что мне нужно подождать 8 минут, так что ...
примечательно,
14

okular file.dvi &> /dev/null &было бы немного лучше. Таким образом, программа не пишет в терминал.

Если вы используете только okular file.dvi &программу, все равно будет сообщать о событиях на терминале, часто в середине вашей работы

josinalvo
источник
6

С помощью, скажем, evince file.pdf &закрытия терминала все равно будет закрываться процесс, так что он все еще является дочерним процессом терминала и не имеет независимости от него; nohup evince file.pdf &позволит вам закрыть терминал без закрытия программы, поскольку nohup означает, что любые сигналы для закрытия процесса (зависания) будут игнорироваться. Вы также можете отказаться от процесса аналогичным образом, см. Это обсуждение здесь .

Сообщество
источник
Спасибо, я этого не знал. Я использую Yakuake и никогда не закрываю его, так что это не проблема. Но всегда полезно знать такие вещи.
Примечательно,
Я только что отредактировал свой пост - посмотрите разницу
Извините - я забыл поставить & в конце :)
Примечательно,
1
Когда я пытаюсь evince file.pdf &, это не убивает процесс, когда я
выхожу
1
Когда вы запускаете дочерний процесс, он принадлежит родительскому процессу. В этом случае evince - это дочерний процесс, принадлежащий терминалу. Следовательно, когда вы закрываете терминал, он также закрывает дочерние процессы. nohup разделяет эту собственность, так что это то, что нужно использовать, если вы хотите закрыть терминал. Однако по умолчанию nohup создает файл nohup.out в вашей домашней папке. Если вы не хотите этот файл, используйте перенаправление следующим образом:nohup evince file.pdf &>/dev/null &
Пэдди Ландау