Основная цель команды OS X open
- открыть файл в связанном приложении. Эквивалент этого на современных не OSX-юнитах есть xdg-open
.
xdg-open index.html
xdg-open
не имеет эквивалента OSX open -a
для открытия файла в определенном приложении. Это связано с тем, что обычный способ открыть файл в приложении - просто ввести имя приложения и имя файла. Точнее, вам нужно ввести имя исполняемой программы, которая реализует приложение.
sublime_text index.html
Linux, как и другие системы Unix (но не, насколько мне известно, не-Unixy части OS X) управляет программным обеспечением, отслеживая его с помощью менеджера пакетов, и помещает отдельные файлы туда, где они используются . Например, все исполняемые программы находятся в небольшом наборе каталогов, и все эти каталоги перечислены в PATH
переменной ; Выполняется sublime_text
поиск файла sublime_text
в каталогах, перечисленных в PATH
. OS X нуждается в дополнительном уровне косвенности open -a
для обработки приложений, которые распакованы в одном дереве каталогов и зарегистрированы в базе данных приложений. В Linux нет базы данных приложений, но она организована таким образом, что ей не нужна.
Если запуск командной sublime_text
оболочки не работает для вас, то Sublime Text не был установлен должным образом. Я никогда не использовал его, и, по-видимому, он поставляется как архив tar, а не как дистрибутив (например, deb или rpm), поэтому, возможно, вам потребуется выполнить дополнительный шаг установки. Это действительно работа создателей Sublime Text, чтобы сделать это автоматически, но если они этого не сделали, вы, вероятно, можете сделать это самостоятельно, выполнив команду
sudo -s …/sublime_text /usr/local/bin
Замените …
на путь, где sublime_text
исполняемый файл, конечно.
Команда, с которой open
вы столкнулись, является более старым именем openvt
команды (некоторые дистрибутивы Linux включают его только под именем openvt
). Команда openvt
создает новую виртуальную консоль , которая может быть выполнена только пользователем root и редко используется в этом столетии, поскольку большинство людей когда-либо работают только в графической оконной среде.
xdg-open
который должен открыть файл в вашем браузере. Командаopen
является ссылкой наopenvt
команду и открывает двоичный файл в новой виртуальной консоли. Это явно не то, что вы хотите.