На macOS в терминале по умолчанию bash
, я могу набрать:
open -a Firefox http://www.wikipedia.org
открыть URL с помощью Firefox или другого браузера. Он также работает для запуска программы, например open -a maps
, и для открытия файла в программе по умолчанию, например open file.pdf
.
Как я могу сделать то же самое в Ubuntu в работающем по умолчанию терминале GNOME bash
? Я знаю, что могу открыть файл или URL с помощью xdg-open /path/to/file
, и я могу открыть браузер по умолчанию с sensible-browser
. Есть ли в Ubuntu общая команда для открытия файлов, приложений или файлов в определенных приложениях?
Я работаю bash
на обеих машинах, 3.2.57(1)-release
на MacOS и 4.4.19(1)-release
на Ubuntu.
command-line
miguelmorin
источник
источник
open -a Firefox http://www.wikipedia.org
? Вы не можете сделатьfirefox http://www.wikipedia.org
? Кажется, бесполезная особенностьopen
, когда открытие программ является самой точкойbash
.bash: firefox: command not found
. Та же ошибка, что иFirefox
в названии программы.bash
работает точно так же; это Firefox, который устанавливается не так, как в Ubuntu. В macOS вы можете, например, запустить/Applications/Firefox.app/Contents/MacOS/firefox-bin
из командной строки.Firefox.app
это особый вид папки , которая содержит не только исполняемый файл, но файлы в Linux могут быть разбросаны в различных/usr/bin/
,/usr/lib
,/etc
и т.д. каталогов. Finder знает, как запустить собственное приложение, когда вы, например, дважды щелкаете мышьюFirefox.app
.open
это способ «запустить» специальную папку из командной строки.bash
работает по-другому: Firefox устанавливается как приложение OS X (Firefox.app
) и не находится в обычном PATH. Другая причина использованияopen -a
заключается в том, что он правильно создает фон для запускаемого приложения, вместо того, чтобы ждать его завершения.&
Ответы:
Вы можете специально использовать имя нужной программы (если она может использоваться в качестве инструмента командной строки).
Например, URL:
PDF:
Картинки:
Тексты:
Видео / Музыка:
Если вы хотите, чтобы программа запускалась отдельно от терминала, тогда я предпочитаю делать это так:
Например:
Помните, что вы всегда можете перенаправить выходы как обычно, например:
источник
eog picture.jpg
для изображений тоже, если у вас установлен gnome-desktop :)open
чтобы вызвать другую программу. Почему бы просто не вызвать другую программу напрямую? Какую полезностьopen
добавляет? Этот ответ отражает естественное, что нужно сделать, чтобы открыть определенные приложения.open
на MacOS работает как для открытия файлов и папок в приложении по умолчанию и в конкретных приложениях. Кажется, оригиналbash
пошел по другому пути сxdg-open
файлами и именами приложений для остальных.open
MacOS заключается в том, что он запускает приложение, отсоединенное от консоли, с которой запускается, т. Е. Если консоль закрывается, приложение остается включенным. В Ubuntu нужно использоватьnohup
команду, чтобы получить то же поведение. (Поскольку префикс каждой команды с nohup и перенаправление вывода для каждой команды, которую вы запускаете, становится утомительным, может иметь смысл определить пользовательский ярлык)