Відкриття файлу з терміналу


30

Коли ми хочемо відкрити програму чи файл із терміналу, ми вводимо, скажімо,

okular file.dvi

Це відкриває програму, але також показує стан програми. Ми не можемо закрити термінал, оскільки це вбиває процес. На жаль, якщо ви намагаєтеся, наприклад, створити файл LaTeX, вам знадобиться одна вкладка для текстового редактора, одна для файлу dvi тощо. І якщо ви намагаєтесь відкрити всі вікна з терміналу, ви можете це забути. Я намагаюсь максимально використовувати термінал, і, хоча у мене є Yakuake, все ще клопот мати стільки вкладок і бачити, хто з них має програму, яку я вбив і так далі.

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


З огляду на ваші запити, щодо того, щоб не бачити жодного результату, глядач не є дочірнім процесом терміналу тощо, здається, ідеальним кандидатом для простого використання комбінації клавіш для відкриття програми перегляду або використання, наприклад, grun для передачі імені файлу , буде більш підходящим, ніж дотримуватися використання терміналу.
jmetz

Я не заперечую, щоб не бачити жодного результату ... Я маю на увазі, що для декількох додатків відкрито кілька терміналів / вкладок. Відповідь, яку я вибрав, ідеально відповідає всім моїм уподобанням.
квітня 1212

Відповіді:


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 &

просто додайте, &щоб ваша команда працювала як окремий процес.


Оце Так! Ідеально! Смішно ... Я шукав Google на "відкритий з терміналу, не показуючи статус", ніколи не думав, що він веде себе як окремий процес! На жаль, там сказано, що я повинен зачекати 8 хвилин, тож ...
помітнопсихіація

14

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

Якщо ви користуєтесь лише okular file.dvi &програмою, ви все одно повідомлятимете про термінали, часто посеред вашої роботи


6

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


Спасибі, я цього не знав. Я використовую Yakuake, і ніколи його не закриваю, тому це не проблема. Але завжди корисно знати такі речі.
квітня 1212

Я щойно відредагував свою публікацію - побачите різницю - вона працюватиме зараз

Вибачте - я забув поставити & в кінці :)
notablytipsy

1
Коли я намагаюся evince file.pdf &, це не вбиває процес, коли я виходжу з терміналу ...
notablytipsy

1
Коли ви запускаєте дочірній процес, він належить до батьківського процесу. У цьому випадку евінт - це дочірній процес, що належить до терміналу. Отже, коли ви закриваєте термінал, це також закриває дочірні процеси. nohup відокремлює цю власність, тож є що використовувати, якщо ви хочете закрити термінал. Однак за замовчуванням nohup створює файл nohup.out у вашій домашній папці. Якщо ви не хочете цього файлу, використовуйте перенаправлення наступним чином:nohup evince file.pdf &>/dev/null &
Paddy Landau
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.