Сделать файл исполняемым linux

Обновлено: 07.07.2024

Большинство людей устанавливают программы из официального менеджера пакетов, поэтому им не нужно думать о том, куда они идут в Linux. После их установки они просто вводят имя программы, и она работает, как никто другой. Что произойдет, если вы напишите свой собственный исполняемый скрипт оболочки или загрузите программу из Интернета? Что если вы скомпилировали что-то из исходного кода, и оно не будет работать вне определенного каталога? Естественно, вы всегда должны быть уверены, что каждая программа безопасна, прежде чем запускать ее, но есть несколько способов заставить ее работать везде, как только вы это сделаете.

Прежде всего, вам нужно работать в командной строке. Ищите слово Terminal из Ubuntu Dash, если вы используете Unity. Большинство окружений рабочего стола позволят вам открыть терминал, если вы нажмете Ctrl + Alt + T. Пользователи настольных сред, таких как LXDE, Xfce4 и KDE, могут щелкнуть меню «Приложения», выбрать «Системные инструменты», а затем «Терминал». Хотя для работы с программами вам обычно требуется доступ администратора, в большинстве случаев вам вообще не нужно использовать sudo.

Метод 1: Редактирование ваших переменных пути

Предполагая, что вы знаете, где находится программа, и она уже настроена на выполнение, вы можете добавить ее в свой путь. Путь поиска сообщает bash, где искать имя программы, которую вы вводите в командной строке. Если вы когда-либо использовали командные строки Windows или MS-DOS, то вы могли бы запомнить этот трюк. Предположим, у вас есть исполняемый файл в папке загрузок. Если вы хотите иметь возможность выполнять его из любого места, пока ваша сессия остается открытой, введите экспорт PATH = $ PATH:

/ Загрузки и нажмите ввод.

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

/ .bashrc в командной строке, если вы хотите внести изменения навсегда.


Если вы предпочитаете другой редактор, такой как vi или vim, тогда вы можете заменить слово nano в этой команде на имя вашего любимого текстового редактора терминала. Нажмите клавишу Page Down или клавишу курсора со стрелкой вниз, чтобы перейти к нижней части файла, а затем добавьте команду пути. Например, мы добавили строку export PATH = $ PATH: / home / user / Downloads внизу, чтобы сделать это постоянное местоположение.


Это будет анализироваться каждый раз, когда вы открываете новое окно оболочки. Имейте в виду, что ваше имя пользователя скорее всего не пользователь, поэтому вы захотите заменить его. Нажмите Ctrl + O, чтобы сохранить его, если вы используете nano, а затем нажмите Ctrl + X, чтобы выйти. Вы должны сделать, и для большинства пользователей этого более чем достаточно, так как этот метод требует наименьшего количества игры. Есть и другие пути, по которым вы не можете пойти.

Способ 2: создать каталог

/ .local / bin фактически включен в большинство назначений PATH по умолчанию, он обычно не создается во многих популярных реализациях GNU / Linux. Если вы не создали его, потому что вы делали сценарий оболочки или что-то еще, что вы хотели запускать из любого места, то, вероятно, у вас его пока нет. При этом, поскольку он был добавлен по умолчанию, программы сразу же его исчерпают.

В командной строке введите mkdir

Теперь, когда вы перемещаете что-либо в этот каталог, вы можете запускать его из любого места. Предположим, у вас есть сценарий оболочки chkFile в папке «Загрузки», который вы сначала проверили, чтобы убедиться, что он безопасен и не доставит вам никаких проблем. Естественно, это просто выдуманное имя файла, и вы хотите напечатать ls

/ Загрузки или что у вас, чтобы найти настоящее имя. Предполагая, что наш пример был верным, вам нужно набрать chmod + x

/ Загрузки / chkFile чтобы сделать его исполняемым, а затем введите mv

/ .local / bin положить его в правильный каталог. С этого момента вы сможете выполнять его из любого места.

Способ 3: графическое выполнение программ

Хотя многие пользователи Linux предпочитают использовать командную строку, вам не нужно выполнять сценарии таким образом, если вы этого не хотите. У вас есть другие варианты. Нажатие клавиш Super и E в большинстве графических сред рабочего стола откроет файловый браузер, или вы можете искать File Manager в Ubuntu Unity Dash в зависимости от конфигурации, с которой вы работаете. Вам будет представлен вид всех папок в вашем домашнем каталоге, поэтому дважды щелкните по папке, содержащей искомый исполняемый файл. Вы также можете выделить его и нажать клавишу ввода.

В зависимости от вашего файлового менеджера, то, что происходит дальше, может немного отличаться. Некоторые автоматически запускают его в терминале или автоматически запускают как программу. Некоторые, такие как PCManFM, который входит в Lubuntu, подскажут вам.


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

Операционная система Linux, в отличие от Windows, определяет какие файлы являются программами не по расширению, а по специальному флагу исполняемости. У каждого файла есть три основных флага, чтение, запись и исполнение. Они определяют что система может делать с этим файлом.

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

Что такое исполняемость?

Уже много написано о том, как установить флаг исполняемости. Но что происходит с файлом во время этого, что такое исполянемость и как это работает?

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

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

Чтобы система могла определить какие файлы нужно выполнять, а какие лучше не надо и был придуман флаг исполняемости. По сути, флаг исполяемости - это несколько байт в файловой системе, которые говорят нужно выполнять файл или нет, само содержимое файла никак не изменяется. Со скриптами все работает точно так же, только команды из файла выполняет не процессор, а интерпретатор, например, в bash скриптах - сама оболочка bash. Да и в обычных программ тоже есть свой загрузчик - это ld-linux.so.2.

Как сделать файл исполняемым в Linux?

В операционной системе Linux, для управления флагами файлов используется утилита chmod. Синтаксис вызова утилиты:

$ chmod категория действие флаг адрес_файла

  • Категория - флаги могут устанавливаться для трех категорий: владельца файла, группы файла и всех остальных пользователей. В команде они указываются символами u (user) g (group) o (other) соответственно.
  • Действие - может быть + (плюс), что будет значить установить флаг или - (минус) снять флаг.
  • Флаг - один из доступных флагов - r (чтение), w (запись), x (выполнение).

Например, чтобы сделать исполняемый скрипт в linux для владельца файла, достаточно выполнить:

chmod u+x адрес_файла

bin1

Этого в большинстве случаев бывает достаточно, но если мы хотим чтобы файл могли выполнять и другие пользователи, нужно указать также другие категории: g и o:

chmod ugo+x адрес_файла

Посмотреть флаги в терминале можно с помощью утилиты ls:

ls -l каталог_с_файлами

bin2

Это значит, что все флаги включены для всех категорий. Первое rwx - флаги владельца, второе - группы, а третье - для всех остальных. Если флаг не установлен, на его месте будет прочерк.

Снять флаг исполняемого файла очень просто. Используется та же команда только со знаком минус:

chmod u-x адрес_файла

Как установить фалг исполняемости в GUI

Вы можете сделать файл исполняемым в linux не только через терминал. Такая функциональность есть во всех файловых менеджерах. Возможно, на первых порах это будет для вас проще. Рассмотрим на примере файлового менеджера GNOME, Nautilus. Кликните правой кнопкой по нашему файлу программы или скрипта, чтобы открыть контекстное меню, затем выберите свойства:

bin3

Дальше перейдите на вкладку права и установите галочку Разрешить выполнение файла как программы:

bin4

Готово, исполняемый файл linux может быть запущен системой, прямо из файлового менеджера.

Выводы

Вот и все, теперь вы знаете как сделать файл исполняемым в linux. И если нужно будет запустить скрипт или установщик из интернета, у вас не возникнет никаких проблем. Если остались вопросы, спрашивайте в комментариях!

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

И первые, и вторые состоят из цифр – байт. То есть, определенное сочетание цифр будет означать для процессора необходимость выполнения конкретного действия. Для процессора нет принципиальной разницы, какой процесс выполнять – файл операционной системы или текстовый файл. И первый, и второй файл будут выполнены, вот только в случае с текстовым файлом необходимость в инструкциях фактически отпадает.

Для понимания системой, какие файлы должны быть выполнены по инструкции, а какие выполнять не нужно, и были придуманы флаги исполняемости. Фактически содержимое файла никак не изменяется в зависимости от установленного флага исполняемости – отличие сводится только к нескольким строчкам. Со скриптами все работает точно так же, только команды из файла выполняет не процессор, а интерпретатор, например, в bash скриптах - сама оболочка bash. Да и в обычных программ тоже есть свой загрузчик - это ld-linux.so.2.

Как сделать файл исполняемым

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

$ chmod категория действие флаг адрес_файла

КАК СДЕЛАТЬ ФАЙЛ ИСПОЛНЯЕМЫМ В LINUX

И здесь необходимо учитывать следующее:

  • Флаг - один из доступных флагов - r (чтение), w (запись), x (выполнение).
  • Категория - флаги могут устанавливаться для трех категорий: владельца файла, группы файла и всех остальных пользователей. В команде они указываются символами u (user) g (group) o (other) соответственно.
  • Действие - может быть + (плюс), что будет значить установить флаг или - (минус) снять флаг.

Таким образом, чтобы сделать исполняемым скрипт в Linux, пользователю необходимо выполнить:

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

Чтобы посмотреть флаги в терминале достаточно воспользоваться утилитой ls:

Посмотреть флаги в терминале можно с помощью утилиты ls

Флаги включены для всех категорий. Первое rwx - флаги владельца, второе - группы, а третье - для всех остальных. Если флаг не установлен, на его месте будет прочерк.

Снять флаг исполняемого файла очень просто. Используется та же команда только со знаком минус:

Дальше рассмотрим вопрос установки управляемости в GUI.

Как установить флаг исполняемости в GUI

Установка файлов исполняемости доступна не только через терминал, но и файловые менеджеры, одним из которых является GUI. Для новичков, возможно, даже эта инструкция окажется проще и доступней. Рассмотрим на примере файлового менеджера GNOME, Nautilus. Кликните правой кнопкой по нашему файлу программы или скрипта, чтобы открыть контекстное меню, затем выберите свойства:

КАК УСТАНОВИТЬ ФАЛГ ИСПОЛНЯЕМОСТИ В GUI

Переходим на вкладку права и устанавливаем галочку «Разрешить выполнение файла как программы»:

Разрешить выполнение файла как программы:

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

Весьма часто в инструкциях по установке игр в Linux или в других ситуациях необходимо сделать файл выполняемым. У новичков, особенно тех кто перешёл на Ubuntu с операционной системы Windows этот момент возбуждает много вопросов. Давайте разберёмся в тонкостях и посмотрим как сделать всё правильно. Для начала чуть-чуть теории. в Windows, исторически ещё со времён DOS, было реализовано определение исполняемых файлов по их продолжению.

В Linux и других unix системах ситуация иная. Здесь расширение файлов как таковые отсутствуют, т.е. безусловно вы можете в имени файла использовать точку и три буквы в качестве расширения, но только из собственных эстетических соображений. Для операционной системы это не будет иметь никакого значения. Ну и главный вопрос как же операторная система определяет какой файл исполняемый, является программой, а какой нет. Всё очень элементарно — это устанавливается одним из битов прав на файл.

Исполняемые файлы в Linux

Характерные черты исполняемых файлов в Linux

Пользователи, активно применяющие в повседневной работе операционную систему Windows, свыкнули к тому, что программы имеют расширение «.exe». Такие файлы содержат скомпилированный программный код, или иными словами – последовательность байтов, которая загружается в оперативную память и выполняется процессором. Linux реализует асбсолютно другой подход. Ранее, изучая написание скриптов командного интерпретатора Bash, мы уже поспели рассмотреть пример создания исполняемого файла. Он в отличие от Windows представляет собой обыкновенный текстовый документ с набором команд. Его особенностью является то, что перед основным содержимым дополняется специальный комментарий, говорящий операционной системе Linux, какую программу использовать для интерпретации. Кроме скрипта, исполняемым файлом является и скомпилированная программа. Таким образом, все файлы в Linux смогут быть, как обычными текстовыми документами, так и исполняемыми программами. Отличие лишь в специальных флагах и преимуществах доступа операционной системы (множество элементов, находящихся в отношениях и связях друг с другом, которое образует определённую целостность, единство).

Назначение прав для запуска файла в Linux

Сделать файл вразумительным для запуска можно с помощью графической оболочки. Нажмите по ярлыку правой кнопкой мыши. В контекстуальном меню выберите пункт «свойства». Открывшееся окно должно содержать вкладку «преимущества», в котором нужно активировать пункт «разрешить выполнение файла как программы». Данный метод будет отличаться в зависимости от дистрибутива Linux и графической оболочки. Также возможно приставить права запуска через консоль. Для этого используется команда chmod. Пример, презентованый ниже, устанавливает право выполнения для владельца файла и его группы. Вы можете скопировать Bash-скрипт из первоначального примера в файл и провести с ним данную операцию.

chmod ug+x games-dialog

Установка прав на пуск в Linux

Для того чтобы сделать файл исполняемым в Ubuntu Linux необходимо осуществить в окне терминала простую команду:

chmod +x имя_файла

sudo chmod +x имя_файла

Вот и все, сейчас вы знаете как сделать файл исполняемым в Linux. И если нужно будет запустить script или установщик из интернета, у вас не возникнет никаких проблем. Если остались вопросы, спрашивайте в комментах!

Друзья, приветствую! Продолжаем решать практические задачи на примере Astra Linux CE Орел. При скачивании игры (или какого либо полезного софта) мы иногда получаем файлы-сценарии, которые для запуска сначала нужно сделать исполняемыми.

Устанавливается (или убирается) соответствующий флаг в свойствах файла и операционная система ведет себя соответственно.

В разрезе пользователей (и групп) можно выставить права на чтение, запись, исполнение конкретного файла. И тогда его можно будет запустить как программу. Такова идеология Linux.

Как сделать файл исполняем в Astra Linux через менеджер файлов?

И сделать нужный файл исполняемым у Вас получится легко, быстро, привычно. Для примера скачал игру Kerbal Space Programm и сейчас мы подготовим ее файлы на Linux Astra CE.

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


Как сделать исполняемый файл в Astra Linux через терминал Fly?

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

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

  • 7 чтение, запись исполнение;
  • 6 только чтение и запись;
  • 5 разрешены только чтение и исполнение;
  • 4 разрешено только чтение;
  • 0 не разрешено ничего.

Синтаксис команды будет следующим, если мы даем всем пользователям полные права (чтение, запись, исполнение):

CHMOD 777 kerbal_space_program_russian_1_9_0_02781_36048.sh

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

Запускаем терминал Fly. В моем случае игра лежит в папке game на на первом рабочем столе. И в терминале я прописываю команду:



Получаю на экране наименование следующей папки (KerbalSpace); копирую его в буфер обмена ( Ctrl+Ins ). Нажимаю ↑ на клавиатуре, пока не добираюсь до команды:

CD / home/superuser/Desktops/Desktop1/game/ вставляю наименование из буфера в конец строки через знак / ( Shift+Ins )

Снова через ↑ ищем набранную команду Ls -i, нажимаем Enter, и так до тех пор, пока вы не доберетесь до нужного файла. У меня это выглядит так:


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

Копируем имя файла в буфер обмена (чтобы руками не набирать) и в итоге получилась вот такая команда:

chmod 777 kerbal_space_program_making_history_dlc_russian_1_9_0_02781_36048.sh

После снова применяем команду Ls -i и смотрим на результат:


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

Или в менеджере файлов запускаем его на исполнение привычным способом. У меня всё, пока!

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