Linux выбрать программу для открытия файла
Из этой статьи вы узнаете:
Как в Ubuntu поменять приложения по умолчанию?
Как в Ubuntu поменять действие по умолчанию с подключаемым устройством?
В Ubuntu существует несколько способов того, как изменить приложения по умолчанию для работы с определенным видом файлов. Вы можете поменять приложение по умолчанию для определенной задачи или группы файлов (как хотите), например, смена текстового редактора в котором вам наиболее удобно работать. При этом в Ubuntu существует интересное отличие от других операционных систем, файлы не меняют программное обеспечение с которым работают на уровне системы, непосредственно, после установки этого программного обеспечения на компьютер. Напротив, возможность открыть файлы появляется только после, из списка программ, как всегда удобно, ведь это UNIX!
Приложения с рабочего стола
Для того, чтобы настроить приложения по умолчанию (браузер, почта, видео проигрыватель) с рабочего стола Ubuntu , необходимо произвести настройки в системном меню, которое вызывается из верхней части экрана. Находите в верхнем левом углу шестеренку, нажимаете на нее мышью, выбираете пункт выпадающего списка “Параметры системы” (смотрите рисунок).
В открывшемся меню нас интересует иконка с изображением шестеренки “Сведения о системе”. В нем находится все рабочие инструменты способные изменить приложения по умолчанию.
После того, как вы прошли в меню "Сведения о системе", вы конечно же обратите внимание на подпункт приложения по умолчанию, именно там происходит смена приложений, которые используются для открытия файлов по умолчанию в Ubuntu. На картинке ниже показаны виды приложений и категории в которых они используются. Так браузер можно поменять из выпадающего списка, где по умолчанию стоит Firefox.
Аналогично идет замена программ по умолчанию для календарей, музыки, видео, и почты в Ubuntu.
Сменные носители
В настройках "Сведения о системе", есть возможность не только настроить приложения по умолчанию, но и автозапуск с определенных носителей информации. Изначально Ubunta настроена так, что при каждом действии будет спрашивать, что делать в тех или иных ситуациях. При этом вам по силам произвести настройки таким образом, что программа Brasero (или любая другая) будет открывать ваши компакт-диски, когда Вы вставляете их.
Ассоциации с файлами
Для того, чтобы поставить определенные программы на открытие файлов, можно прибегнуть к настройкам конкретно этих файлов. Для этого необходимо выбрать файл, а затем нажать правой клавишей мыши, где в выпадающем списке найти и перейти в последний пункт "Свойства", а затем пройти во вкладку “Открыть с помощью”.
Во вкладке “Открыть с помощью” перед вами открывается список приложений, которые могут поучаствовать в открытие вашего файла. При этом вверху списка указано приложение, которое открывает этот файл по умолчанию, чуть ниже представлены рекомендованные приложения. Если в списке есть нужное вам приложение выбираете его а затем нажимаете кнопку установить по умолчанию, после этого выбранное приложение будет автоматически работать с этим видом файлов.
Если файл сообщает ОС о его формате файла, как ОС выбирает, какое приложение будет открывать его по умолчанию?
В Windows есть ассоциация, хранящаяся в таблице реестра?
Как Linux выбирает, какое приложение открывает файл?
Я часто использовал Nautilus, но теперь я перехожу к терминалу. Верно ли, что в терминале нам всегда нужно явно указать, какое приложение открыть файл? Имеются ли настройки того, какое приложение будет открывать файл определенного формата по умолчанию, принадлежат файловому менеджеру (например, Nautilus), и это не проблема, когда мы живем в терминалах?
Могут быть разные механизмы для обработки этих настроек по умолчанию. Однако другие ответы, как правило, сосредоточены на полной среде рабочего стола, каждый из которых имеет свой собственный механизм. Тем не менее, они не всегда устанавливаются в системе (я использую OpenBox много), и в этом случае такие инструменты, как xdg-open , могут быть б.
xdg-open - независимый от рабочего стола инструмент для настройки приложений пользователя по умолчанию. Многие приложения вызывают команду xdg-open внутри.
В данный момент я использую Ubuntu (12.04) и xdg-open . Однако, когда вы используете полную среду рабочего стола, такую как GNOME, xdg-open действует как простой форвардер и передает запросы файлов в ваш DE, который затем может свободно обрабатывать его по своему усмотрению (см., например, другие ответы для GNOME и Nautilus).
В среде рабочего стола (например, GNOME, KDE или Xfce) xdg-open просто передает аргументы в приложение для открывания файлов этого рабочего стола (gvfs-open, kde-open или exo-open, соответственно), которые означает, что ассоциации остаются в среде рабочего стола.
. который возвращает вас к другим ответам в этом случае. Тем не менее, поскольку это Unix & Linux, а не Ask Ubuntu:
Если среда рабочего стола не обнаружена (например, при запуске автономного диспетчера окон, например Openbox), xdg-open будет использовать свои собственные файлы конфигурации.
Если в первом случае вам нужно настроить xdg-open , используя команду xdg-mime (которая также позволит вам см., какое приложение должно обрабатывать файл). Во втором случае .
. вам нужно будет настроить файл-открыватель, связанный с вашей рабочей средой. В некоторых случаях конфигурация, выполненная с помощью xdg-mime , может быть перенаправлена на соответствующий инструмент настройки в вашей среде.
Linux-ориентированные графические интерфейсы, такие как KDE и GNOME, поддерживают MIME-тип ассоциации. Например, текст типа MIME /plain был бы связанных с текстовым редактором.
Кроме того, этот ответ содержит более подробную информацию.
Диспетчер файлов часто использует некоторую комбинацию опций a и b (например, посмотрите при первом расширении файла, если это неизвестно (или файл не иметь расширение), посмотреть содержимое).
Тип файла не сохраняется как метаданные в общих файловых системах Linux.
Из этого ответа я вижу приведенную ниже информацию.
Файловый менеджер (Nautilus, по умолчанию) использует тип файла MIME определить, с какой программой его открыть. Когда приложение он может указать, какие типы MIME он может открыть, а команда для использования для открытия файлов в файле .desktop, который помещается в /USR /доли /приложений. Это файл, используемый для меню, рабочего стола ярлыки и т. д.
Файл не сообщает ОС о своем формате файла, за одним исключением:
Если исполняемый файл начинается с так называемой строки shebang, например
, то эта строка сообщает ядру Linux, что он должен быть запущен с помощью /usr/bin/perl (то есть вместо выполнения этого файла он должен выполните usr/bin/perl и укажите этот файл как аргумент). Это, конечно, работает только с форматами файлов, которые игнорируют (или понимают) такую строку shebang.
Кроме того, операционная система как таковая ничего не знает о типах файлов. Однако многие программы, которые позволяют открывать другие файлы, имеют свой собственный механизм, чтобы решить, какую программу использовать для открытия файла. Это может быть список внутри самой программы (например, Firefox поддерживает такой список), или программа может делегировать его в среду рабочего стола (для Linux это несколько).
Обычно эти механизмы учитывают только имя файла, чтобы определить, какой тип файла; исключением являются почтовые клиенты и веб-браузеры, где обычно тип файла явно указывается сервером /указанным в письме.
Механизм обычно состоит из двух шагов:
- Сначала из имени файла или предоставленной информации определите тип файла MIME (тип MIME - стандартизованный, но расширяемый список типов файлов).
- Во-вторых, из типа MIME определите, какую программу выполнить, как правило, через реестр, поддерживаемый либо самой программой, либо рабочей средой, для которой была написана программа.
Это делается аналогично MS-Windows.
Это не делается ОС. Это делается файловым менеджером, частью системы окон. Обычно часть имени файла после последней точки . используется для создания решение. Есть способ установить их в настройках или щелкнуть правой кнопкой мыши по файлу.
Таким образом, файл не сообщает ОС, файл неактивен, поэтому он ничего не может сделать сам по себе, но файловый менеджер смотрит на имя файла, файловый менеджер также может заглянуть внутрь файла так же, как file .
Как говорит @richard, он похож на Windows. Общий файловый менеджер сначала может посмотреть имя файла и попытаться распознать расширение файла, которое связано с программой. Если это не удается, он может попытаться открыть файл и найти заголовок. Если вы попытаетесь прочитать нетекстовый файл (скажем, .jpg), вы увидите строку данных, которая описывает файл. Например, это первая строка .jpg, в которой я лежал:
'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xfe\x00;CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 90'
Я попытаюсь дать основополагающий ответ о том, как Unix-системы обрабатывают файлы. Как указывали другие, ваша формулировка вопроса вводит в заблуждение, поскольку сами файлы не сообщают, какой тип они есть, и само ядро не определяет, какие приложения использовать.
В операционных системах Unix и Windows файлы структурированы просто как последовательность байтов. Из операционных систем Tanenbaum , третье издание:
Фактически, операционная система не знает и не заботится о том, что находится в файле. Все, что он видит, это байты. Любое значение должно быть наложено программами уровня пользователя.
Вот почему в среде рабочего стола xdg-open используется для определения приложений по умолчанию для открытия определенных типов файлов.
В системе Unix файлы различаются между обычными файлами и специальными файлами . Обычный файл - это просто данные пользователя, которые могут быть либо текстовым файлом (ASCII, либо кодировкой Unicode), либо двоичным (исполняемый код). Специальные файлы - это файлы, которые необходимы для работы ОС. К ним относятся каталоги, ссылки, каналы, сокеты и файлы устройств. ¹
Обычно имена файлов содержат расширения, указывающие, какой тип файла они могут , например. * .c для исходного кода C, * .html для веб-страниц и т. д. От Tanenbaum:
В некоторых системах (например, UNIX) расширения файлов являются просто соглашениями и не применяются операционной системой. Файл с именем file.txt может быть своего рода текстовым файлом, но это имя больше напоминает владельцу, чем передавать любую фактическую информацию на компьютер. С другой стороны, компилятор C может фактически настаивать на том, что файлы должны компилировать конец в .c, и он может отказаться от компиляции, если они этого не делают.
Если файл сохраняется или переименовывается без соответствующего расширения, он по-прежнему сохраняет тот же формат для этого типа файла. Это то, как большинство файловых менеджеров решают, какие приложения открывать файлы, и почему без расширения большинство подскажет пользователю «Выберите программу, которую вы хотите использовать, чтобы открыть этот файл:».
Записная книжка рассеянного [в пространстве и времени] программиста
Не секрет, что для новичков в никсах существует лишь один путь для выбора приложения, которым будет открываться какой-либо тип файлов: конфигуратор его рабочей среды (кеды, гном, xfce или иное).
Однако то, что происходит за кадром пользователю остается неизвесным. И как только юный падаван попадает в голые иксы с запущенным xterm или голым, но от этого не менее дружелюбным, оконным менеджером (openbox, fluxbox, xmonad и т.д.) - у него сразу возникает куча проблема.
- почему все мои файловые ассоциации, которые я так долго настраивал исчезли?
- Почему в mc все картинки и видео вдруг начинают открываться в браузере?
- почему они вообще открываются через mc?
- почему firefox при выборе пункта “открывать файл” вместо сохранить открываеть его непонятно где или вообще не открывает?
И новичок это гиблое дело забрасывает и возвращается в удобные кеды, гном или что-то еще.
Но на самом деле не все так страшно.
Современные стандарты freedesktop указывают нам на то, что запуск приложений осуществляется с помощью *.desktop файлов, которые описывают все, что необходимо для работы приложения.
А чтобы связать тип файла с приложением, которое будет запускаться введен стандарт Association between MIME types and applications.
Этот стандарт описывает ряд файлов, которые отвечают за связь меджу типом файла и приложением.
Путь | Предназначение |
---|---|
$HOME/.config/$desktop-mimeapps.list | Пользовательские ассоциации. Специфичные для рабочего стола $desktop |
$HOME/.config/mimeapps.list | Пользовательские ассоциации (независимы от рабочего стола) |
/etc/xdg/$desktop-mimeapps.list | Глобальные ассоциации. Предоставляются администратором. специфичные для рабочего стола $desktop |
/etc/xdg/mimeapps.list | Глобальные ассоциации, предоставляемые админом и вендорами ПО. |
$HOME/.local/share/applications/$desktop-mimeapps.list | Глобальные системные ассоциации. Специфичны для рабочего стола $desktop. Запрещен к использованию. Будет удален в новых редакциях стандарта. |
$HOME/.local/share/applications/mimeapps.list | Глобальные системные ассоциации. Запрещен к использованию. Будет удален в новых редакциях стандарта. |
/usr/local/share/applications/$desktop-mimeapps.list and | |
/usr/share/applications/$desktop-mimeapps.list | Набор ассоциаций, которые предоставляются мейнтейнерами дистрибутива. Специфичны для рабочего стола $desktop. |
/usr/local/share/applications/mimeapps.list and | |
/usr/share/applications/mimeapps.list | Набор ассоциаций, которые предоставляются мейнтейнерами дистрибутива. |
Таблица описывает файлы в том порядке, в котором они обрабатываются системой. Переменная $desktop представляет из себя имя рабочего стола в нижнем регистре (kde, gnome, xfce, …).
Данные файлы представляют из себя набор записей вида
mimetype - описание формата. Что-то вроде audio/ogg. Стандарт описания mimetype можно глянуть в соответствующих RFC.
*.desktop есть файл запуска вашего приложения. Обрабатывается список файлов последовательно до первого встреченного существующего приложения. Либо система перейдет к обработке следующего файла.
Помимо основной секции стандарт оговаривает две дополнительных секции.
Секция “added associations” добавляет к выбранным mime-типам указанные приложения в начало списка. Секция “removed association” соотственно удаляет указанные приложения из ассоциации к выбранному mime-типу.
Все. с теорией покончено.
Как было сказано выше - в “дружелюбном окружении уже существует какая-нибудь утилита, которая позволяет пользователю изменить ассоциации.
Но гораздо проще делать это в консоли.
Существует инструмент под названием xdg, который как раз отвечает за работу со списками ассоциаций. И большинство приложений как раз используют его api дабы открывать файлы (mc, nautilus, firefox, …).
Попробуем сделать в консоли
Вы увидите, что картинка откроется при помощи стандартного вьювера для вашего рабочего стола.
А теперь попробуйте сделать
Вы увидите что-то вроде
xdg-mime - инструмент, который входит в комплект поставки любого дистрибутива. Им можно как просматривать, так и изменять ассоциации файлов.
Для примера узнаем, как система распознает какую-нибудь картинку.
А теперь самое главное - привязываем приложения к своим типам файлов. И заодно посмотрим, что происходит под капотом.
Допустим, что у нас свежевыкращенныйзаведенный профиль.
У вас этого файла может не быть, либо он может содержать какие-то дефолтные значения.
Способ 1: Менеджер приложений
Существует несколько доступных вариантов инсталляции Wine. Первый подразумевает использование менеджера приложений, который встроен в популярные дистрибутивы, основанные на Debian или RedHat. В первую очередь рассмотрим именно этот вариант, а осуществляется поставленная цель так:
Сейчас давайте приступим к рассмотрению альтернативного варианта инсталляции, если этот вам не подходит, а о предварительной настройке установленного инструмента поговорим в отдельном шаге данного материала.
Способ 2: Официальные репозитории
На этом инсталляция завершена. Имеются еще и другие альтернативные методы добавления Wine в операционную систему, но их детальный разбор сейчас не имеет смысла, поэтому перемещаемся к следующему этапу.
Шаг 2: Первый запуск и настройка Wine
К счастью, большинство параметров рассматриваемой программы уже настроены автоматически, а недостающие компоненты так же самостоятельно загружаются. Однако юзеру все-таки придется выполнить несколько действий перед переходом к запуску EXE-файлов.
На этом процедура конфигурации успешно завершена, а значит, можно переходить к непосредственному запуску имеющихся EXE-файлов.
Шаг 3: Запуск EXE-файлов через Wine
Перед началом выполнения поставленной задачи хотим отметить, что не стоит рассматривать Wine как полноценное средство работы с программами для Windows. Конечно, он является эмулятором, но потребление системных ресурсов при запуске софта поднимается в несколько раз, а также могут отсутствовать какие-либо опции, изначально работающие в Windows. Далее мы расскажем о более подходящих решениях для использования ПО в Linux, а сейчас давайте все-таки разберемся с выполнением EXE-объектов.
-
Откройте файловый менеджер и переместитесь к расположению необходимого файла.
Это было все, что мы хотели рассказать о запуске ПО для Windows в Linux. Как видно, лучшее решение всего одно, поэтому его и задействуют абсолютно все пользователи, желающие реализовать данную цель. Остается только следовать инструкциям, чтобы без каких-либо проблем открыть EXE-элемент и начать взаимодействие с ним.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Читайте также: