Как запустить исполняемый файл в linux

Обновлено: 28.06.2024

По сути операционная система состоит из ядра и огромного набора программ, которые предназначены для выполнения различных задач, обслуживания системы и удовлетворения потребностей пользователя. Почти все взаимодействие пользователя и операционной системы выполняется с помощью программ. Поэтому новичкам важно понять как запустить программу на Linux, что происходит во время запуска и какие есть способы запуска.

Дальше мы рассмотрим виды программ, их запуск программ на Linux различными способами и другие полезные для новичков вещи, опытным пользователям это все и так уже известно.

Виды программ в Linux

Перед тем, как мы перейдем к запуску программ, нужно сначала понять что представляет из себя программа. В Linux программы отличаются от других файлов только тем, что для них установлен флаг исполняемости. Я уже подробно писал об этом в статье что такое исполняемость поэтому не буду повторяться.

Все программы можно поделить на несколько типов:

  • Бинарные программы - содержат инструкции процессору уже готовые к выполнению, большинство программ находятся в таком формате, они быстрые и выполняются сразу же системой;
  • Программы на байт-коде - это уже не процессорные инструкции, а инструкции определенной виртуальной машины, которая может их выполнять, без виртуальной машины такие команды не могут быть выполнены. Такие программы потребляют больше ресурсов, но тоже достаточно быстрые, их преимущество в том, что они могут выполняться без изменения везде где может работать виртуальная машина. К таким программам можно отнести программы на Java.
  • Скриптовые программы - эти программы состоят из набора команд в виде обычного текста, которые выполняет специальный интерпретатор. Такие программы более медленные, но зато они проще в разработке и их код можно легко и быстро изменить.

А теперь перейдем к запуску программ.

Запуск программ в терминале

Изначально в операционных системах Unix и Linux не было графического интерфейса, поэтому программы запускались командами из терминала. Сейчас это тоже возможно и достаточно активно используется опытными пользователями. Синтаксис запуска программы выглядит таким образом:

/путь/к/файлу/программы параметры

Параметры указываются только, когда они нужны, но всегда оболочка должна знать полный путь к программе. Все что после имени программы и пробела - это параметры. Вы, наверное, уже заметили, что обычно мы не указываем полный путь при выполнении программ. Это было бы очень долго и неудобно.

Разработчики придумали обходной путь. Была создана переменная PATH, в которой хранятся все пути к папкам где обычно находятся программы - /bin, /sbin, /usr/bin, /usr/sbin и так далее. Вы можете посмотреть ее содержимое командой:

И можно передать параметры после пробела:

Когда программа находится не в этих каталогах, нужно указать к ней полный путь:

Если же вы хотите запустить программу через терминал ubuntu, которая находится в текущей папке, то ситуация будет немного другой. Система выполняет только поиск по папкам из переменной PATH, в текущей директории она не ищет. Поэтому, если вы наберете имя исполняемого файла, то получите ошибку. Нужно указывать полный путь, как вы помните путь к текущей папке будет ./:

Иногда возникает необходимость передать программе, какие-либо особые переменные окружения. Например, переменная EDITOR указывает какой текстовый редактор нужно использовать по умолчанию. Вы можете указать имя переменной и ее значение перед именем команды используя синтаксис:

имя_переменной = значение команда

По умолчанию эта команда открывает настройки утилиты sudo в редакторе Vim, но с этой переменной окружения настройки откроются в редакторе nano.

Запуск программ от имени другого пользователя

Вы уже знаете как запустить программу в терминале linux, а что насчет других пользователей? В Windows достаточно часто используется запуск программ от имени администратора чтобы программа могла получить больше прав доступа в системе. В Linux для этого используется утилита sudo. Ее имя можно расшифровать как switchuserdo - изменить пользователя и выполнить. По умолчанию утилита выполняет команду от имени суперпользователя root:

sudo команда
sudo whoami

sudo -u имя_пользователя команда
sudo -u postgres whoami

Команда whoami (кто я) выводит имя текущего пользователя.

Как запустить программу в фоне

Иногда возникает необходимость запустить долго выполняющуюся программу в терминале так, чтобы она не мешала дальше работать. Для этого можно использовать запуск программы в фоновом режиме linux:

dd if=/dev/zero of=

Система выведет PID, уникальный идентификатор программы, который вы потом можете использовать чтобы закрыть ее командой kill:

Как запустить скрипт в Linux

Мы уже говорили, что программы делятся на бинарные и интерпретируемые. Раньше мы говорили только про бинарные программы. Для запуска интерпретируемых нужен непосредственно интерпретатор, к таким программам относятся написанные на таких языках, как Java, Python, Perl, Ruby, PHP, NodeJS и многих других. Синтаксис запуска такой программы отличается:

интерпретатор /путь/к/файлу/программы параметры

Разные интерпретаторы ведут себя по разному, поэтому лучше сразу указывать полный путь к программе. Python обычно подхватывает скрипты из текущей папки без указания полного пути:

А Java программы нужно запускать так:

java -jar program.jar

Для файлов интерпретируемых программ флаг исполняемости необязательный, поскольку они передаются в виде параметра основной программе. Только Bash скрипты составляют исключение. Вы можете запустить скрипт интерпретатором:

Или же просто набрать путь к скрипту:

Оболочка сама определяет свои скрипты по флагу исполняемости и выполняет их. Если флаг исполняемости не установлен, то его стоит добавить:

sudo chmod u+x ./script.sh

Поэтому то и для большинства интерпретируемых программ созданы простые sh скрипты которыми их можно быстро запустить.

Запуск программ Linux в графическом интерфейсе

Намного удобнее запускать программы через графический интерфейс. Если консольные программы так запускать невозможно, то для всех графических утилит существуют ярлыки, которые вы можете найти в главном меню системы:

Кроме того, вы можете запустить программу из файлового менеджера, двойным кликом мышью, но тогда для нее обязательно должен быть установлен флаг исполняемости.

Точно так же работает запуск скриптов в графическом интерфейсе. Вы можете найти все ярлыки из меню в каталоге /usr/share/applications/. Любую программу можно запустить двойным щелчком отсюда. Но давайте посмотрим что находится внутри ярлыка, для этого откройте его в текстовом редакторе:

Кроме всего прочего, в строке Exec указана команда, которая выполняет запуск программы linux, когда вы делаете двойной клик на ярлыке. Вы можете взять один из существующих ярлыков и сделать на его основе свой. Здесь указано просто имя программы. Но важно заметить, что лучше указывать полный путь в таких местах, как ярлыки, скрипты, cron и так далее это уменьшит количество ошибок, поскольку вы не можете знать проверяет ли система в этом случае PATH или ищет программу только в текущем каталоге. Теперь вы знаете все о том как запустить программу на linux.

Выводы

В этой статье мы рассмотрели как запустить программу через терминал ubuntu или в других дистрибутивах Linux. Несмотря на то, что это кажется очень простой темой, тут есть свои интересные моменты, которые могут быть полезны. Но вы о них уже знаете. Если у вас остались вопросы, спрашивайте в комментариях!

Вся сила Linux в использовании терминала. Это такая командная оболочка, где вы можете выполнять различные команды, которые будут быстро и эффективно выполнять различные действия. Ну впрочем, вы наверное это уже знаете. Для Linux было создано множество скриптов, которые выполняются в различных командных оболочках. Это очень удобно, вы просто объединяете несколько команд, которые выполняют определенное действие, а затем выполняете их одной командой или даже с помощью ярлыка.

Но у новичков может возникнуть вопрос - как запустить скрипт в Linux, что для этого нужно сделать, что будет происходить и какие команды нужно выполнить. Но сначала нужно рассмотреть как работают скрипты и что такое исполняемость.

Как работают скрипты

В Linux почти не используется расширение файла для опережения его типа на системном уровне. Это могут делать файловые менеджеры и то не всегда. Вместо этого, используются сигнатуры начала файла и специальные флаги. Система считает исполняемыми только те файлы, которым присвоен атрибут исполняемости.

Теперь о том, как работают скрипты. Это обычные файлы, которые содержат текст. Но если для них установлен атрибут исполняемости, то для их открытия используется специальная программа - интерпретатор, например, оболочка bash. А уже интерпретатор читает последовательно строку за строкой и выполняет все команды, которые содержатся в файле. У нас есть несколько способов выполнить запуск скрипта linux. Мы можем запустить его как любую другую программу через терминал или же запустить оболочку и сообщить ей какой файл нужно выполнять. В этом случае не нужно даже флага исполняемости.

Запуск скрипта sh в Linux

Сначала рассмотрим пример небольшого sh скрипта:

Вторая строка - это действие, которое выполняет скрипт, но нас больше всего интересует первая - это оболочка, с помощью которого его нужно выполнить. Это может быть не только /bin/bash, но и /bin/sh, и даже /usr/bin/python или /usr/bin/php. Также часто встречается ситуация, что путь к исполняемому файлу оболочки получают с помощью утилиты env: /usr/bin/env php и так далее. Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости:

chmod ugo+x script.sh

Мы разрешаем выполнять запуск sh linux всем категориям пользователей - владельцу, группе файла и остальным. Следующий важный момент - это то место где находится скрипт, если вы просто наберете script.sh, то поиск будет выполнен только глобально, в каталогах, которые записаны в переменную PATH и даже если вы находитесь сейчас в той папке где находится скрипт, то он не будет найден. К нему нужно указывать полный путь, например, для той же текущей папки. Запуск скрипта sh в linux:

Или полный путь от корня:

Если вы не хотите писать полный путь к скрипту, это можно сделать, достаточно переместить скрипт в одну из папок, которые указаны в переменной PATH. Одна из них, которая предназначена для ручной установки программ - /usr/local/bin.

cp script.sh /usr/local/bin/script.sh

Теперь вы можете выполнить:

Это был первый способ вызвать скрипт, но есть еще один - мы можем запустить оболочку и сразу же передать ей скрипт, который нужно выполнить. Вы могли редко видеть такой способ с bash, но он довольно часто используется для скриптов php или python. Запустим так наш скрипт:

А если нам нужно запустить скрипт на php, то выполните:

Вот так все просто здесь работает. Так можно запустить скрипт как фоновый процесс, используйте символ &:

Даже запустить процесс linux не так сложно.

Выводы

Как видите, запуск скрипта sh в linux - это довольно простая задача, даже если вы еще плохо знакомы с терминалом. Существует действительно много скриптов и некоторые из них вам возможно придется выполнять. Если у вас остались вопросы, спрашивайте в комментариях!


AppImage Linux

Большинство современных программ требуют для своей работы дополнительные компоненты (библиотеки, утилиты и так далее). Это значит, что для того, чтобы запустить такую программу в Linux, нужно сначала установить эти компоненты. Без них программа работать не будет. Более того, многие приложения требуют, чтобы эти компоненты были определенной версии. Самые популярные форматы пакетов для Linux это DEB и RPM. В таких пакетах содержится сама программ и сведения о всех зависимостях, которые требуются для корректной работы программы.

Когда вы устанавливаете какую-нибудь программу из DEB или RPM пакета, или через Центр приложений вашего дистрибутива или, например, используя apt-get, то зависимости устанавливаются автоматически. Но это идеальный случай. В реальности можно столкнуться, например, с тем, что программа потребует компоненты, которые конфликтуют с уже установленными. Или с тем, что некоторые компоненты не работают в вашем дистрибутиве. Или с тем, что под ваш дистрибутив вообще нет пакета с программой.

Одна программа — один файл

Чтобы запускать программы без лишних хлопот в любом дистрибутиве, и был разработан формат AppImage.

Ключевая идея AppImage — «одна программа = один файл».

Программы в формате AppImage состоят всего из одного файла с расширением AppImage, например, gimp.AppImage.

Работать с программами в формате AppImage очень просто. Вы просто скачиваете программу, делаете файл программы исполняемым и запускаете. Ничего не нужно устанавливать, программа просто работает.

Это аналог портативных (portable) приложений для Windows, когда исполняемый файл программы не требует установки и работает «из коробки». AppImage работает в большинстве популярных дистрибутивов — Ubuntu, Debian, ArchLinux, CentOS, Fedora, OpenSuse, RedHat и других.

Как запустить файл AppImage

Для запуска файла в формате AppImage его сначала нужно сделать исполняемым. Для этого можно щелкнуть правой кнопкой мыши по файлу и открыть окно Свойства, в окне Свойств установить опцию — Разрешить выполнение (название опции может отличаться). Так же можно воспользоваться командной строкой и выполнить команду chmod:

После этого достаточно просто запустить файл — дважды щелкнуть по файлу или же запустить файл из командной строки, например:

Как устанавливать AppImage-файлы

Устанавливать программы в формате AppImage не нужно. Они работают без установки.

Советую перемещать AppImage-файлы в какую-нибудь отдельную директорию, а не оставлять их, например, в директории Downloads, куда обычно по умолчанию скачиваются файлы браузером. Во-первых, это позволит сохранить порядок в вашей системе. А во-вторых, если вы установили для программы desktop-файл, а затем переместили в другое место AppImage, то связь между desktop-файлом и программой будет нарушена, и вы не сможете запустить программу из меню приложений.

А что внутри?

На самом деле внутри AppImage файла содержаться все требуемые приложению компоненты, библиотеки и дополнительные файлы. Фактически, это готовый ISO образ, содержащий исполняемый файл программы и все дополнительные компоненты.

Достоинства

Плюсы такого решения очевидны. Как было сказано выше, нет проблем с установкой зависимостей. Все работает «из коробки».

Вы получаете программу именно с теми компонентами, с которыми автор данной программы (или тот, кто формировал AppImage) ее тестировал и гарантирует ее работу.

Вы можете с легкостью запускать программы, которых нет в репозиториях вашего дистрибутива. Или если для какой-нибудь программы вышло обновление, то вам не нужно ждать, когда оно появится (если вообще появится) в репозиториях. Вы можете просто скачать AppImage-версию программы и сразу ее использовать (конечно, если для нее есть AppImage).

AppImage можно запускать и в Live-системах или с флешки.

Чтобы удалить AppImage достаточно удалить AppImage-файл.

Недостатки

К недостаткам можно отнести размер AppImage файлов. Он может быть большим, так как внутри AppImage помимо самой программы находятся дополнительные компоненты.

Смею предположить, что AppImage-приложения могут работать медленнее своих обычных аналогов.

Для кого-то будет недостатком и то, что AppImage-программы нельзя обновить через Центр приложений дистрибутива. Некоторые AppImage-программы могут обновляться самостоятельно, но это зависит от того, добавил разработчик такую возможность или нет.

Другие «portable-форматы» в Linux

Помимо AppImage под Linux существуют другие форматы, в которые могут быть «упакованы» portable-программы, например, это Snap и Flatpak.

Как запустить EXE в Linux

Способ 1: Менеджер приложений

Существует несколько доступных вариантов инсталляции Wine. Первый подразумевает использование менеджера приложений, который встроен в популярные дистрибутивы, основанные на Debian или RedHat. В первую очередь рассмотрим именно этот вариант, а осуществляется поставленная цель так:

Открытие менеджера приложений для установки Wine в Linux

Переход к поиску приложения Wine в Linux для дальнейшей установки

Успешное нахождение приложения Wine в Linux для дальнейшей установки

Кнопка для начала установки на странице приложения Wine в Linux

Подтверждение начала установки Wine в Linux через менеджер приложений

Ожидание завершения инсталляции приложения Wine в Linux через менеджер приложений

Открытие программы Wine в Linux после установки через менеджер приложений

Сейчас давайте приступим к рассмотрению альтернативного варианта инсталляции, если этот вам не подходит, а о предварительной настройке установленного инструмента поговорим в отдельном шаге данного материала.

Способ 2: Официальные репозитории

Запуск терминала для установки Wine в Linux через официальные репозитории

Ввод команды для установки Wine в Linux через официальные репозитории

Подтверждение установки Wine в Linux через официальные репозитории

Одобрение уведомления о занятом пространстве при установке Wine в Linux

Ожидание завершения установки программы Wine в Linux через терминал

На этом инсталляция завершена. Имеются еще и другие альтернативные методы добавления Wine в операционную систему, но их детальный разбор сейчас не имеет смысла, поэтому перемещаемся к следующему этапу.

Шаг 2: Первый запуск и настройка Wine

К счастью, большинство параметров рассматриваемой программы уже настроены автоматически, а недостающие компоненты так же самостоятельно загружаются. Однако юзеру все-таки придется выполнить несколько действий перед переходом к запуску EXE-файлов.

Запуск программы Wine в Linux после установки через терминал

Подготовка программы Wine в Linux для функционирования

Пользовательская настройка программы Wine в Linux после установки через терминал

На этом процедура конфигурации успешно завершена, а значит, можно переходить к непосредственному запуску имеющихся EXE-файлов.

Шаг 3: Запуск EXE-файлов через Wine

Перед началом выполнения поставленной задачи хотим отметить, что не стоит рассматривать Wine как полноценное средство работы с программами для Windows. Конечно, он является эмулятором, но потребление системных ресурсов при запуске софта поднимается в несколько раз, а также могут отсутствовать какие-либо опции, изначально работающие в Windows. Далее мы расскажем о более подходящих решениях для использования ПО в Linux, а сейчас давайте все-таки разберемся с выполнением EXE-объектов.

    Откройте файловый менеджер и переместитесь к расположению необходимого файла.

Переход к файлу для его дальнейшего запуска Wine в Linux

Переход к выбору приложения для запуска программы через Wine в Linux

Выбор программы Wine в Linux в качестве средства запуска EXE-файла

Установка EXE-файла в Wine в Linux для дальнейшего запуска

Ожидание завершения установки программы EXE через Wine в Linux

Запуск установленной через Wine в Linux программы для использования

Это было все, что мы хотели рассказать о запуске ПО для Windows в Linux. Как видно, лучшее решение всего одно, поэтому его и задействуют абсолютно все пользователи, желающие реализовать данную цель. Остается только следовать инструкциям, чтобы без каких-либо проблем открыть EXE-элемент и начать взаимодействие с ним.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: