- Как сделать файл исполняемым в Linux
- Что такое исполняемость?
- Как сделать файл исполняемым в Linux?
- Как установить фалг исполняемости в GUI
- Выводы
- Как сделать файл исполняемым в Linux
- Создание исполняемого файла в Linux
- Подход терминала / командной строки
- Под капотом этого процесса выполнения файла
- Подход с графическим интерфейсом
- Гибкость chmod
- Другое использование chmod при выполнении файла
- Заключительное примечание
- Руководство по предоставлению пользователям прав доступа к папкам с легкостью
- Создание домашнего каталога для существующих пользователей в Linux
- Как прочитать файл построчно в Bash
Как сделать файл исполняемым в Linux
Операционная система Linux, в отличие от Windows, определяет какие файлы являются программами не по расширению, а по специальному флагу исполняемости. У каждого файла есть три основных флага, чтение, запись и исполнение. Они определяют что система может делать с этим файлом.
Когда вы загружаете различные установщики программ из интернета или создаете скрипт в текстовом редакторе, для них устанавливаются флаги по умолчанию — только чтение и запись. Вы не сможете запустить такой файл как программу, с ним нужно сделать еще кое-что. В этой статье мы рассмотрим как сделать файл исполняемым в Linux.
Что такое исполняемость?
Уже много написано о том, как установить флаг исполняемости. Но что происходит с файлом во время этого, что такое исполянемость и как это работает?
Программа — это набор инструкций, которые по очереди выполняет процессор над данными, чтобы получить определенный результат. Но это вы, наверное, уже знаете.
На самом деле для процессора нет разницы между данными и инструкциями. И те и другие состоят из байт, проще говоря цифр. Когда-то договорились, что определенные сочетания цифр будут означать то или иное действие процессора, а во всем остальном это те же данные. Поэтому для процессора нет никакой разницы что выполнять — исполняемый файл linux или обычный текстовый файл. Оба могут быть успешно выполнены, вот только во втором варианте инструкции не имеют никакого смысла.
Чтобы система могла определить какие файлы нужно выполнять, а какие лучше не надо и был придуман флаг исполняемости. По сути, флаг исполяемости — это несколько байт в файловой системе, которые говорят нужно выполнять файл или нет, само содержимое файла никак не изменяется. Со скриптами все работает точно так же, только команды из файла выполняет не процессор, а интерпретатор, например, в bash скриптах — сама оболочка bash. Да и в обычных программ тоже есть свой загрузчик — это ld-linux.so.2.
Как сделать файл исполняемым в Linux?
В операционной системе Linux, для управления флагами файлов используется утилита chmod. Синтаксис вызова утилиты:
$ chmod категория действие флаг адрес_файла
- Категория — флаги могут устанавливаться для трех категорий: владельца файла, группы файла и всех остальных пользователей. В команде они указываются символами u (user) g (group) o (other) соответственно.
- Действие — может быть + (плюс), что будет значить установить флаг или — (минус) снять флаг.
- Флаг — один из доступных флагов — r (чтение), w (запись), x (выполнение).
Например, чтобы сделать исполняемый скрипт в linux для владельца файла, достаточно выполнить:
Этого в большинстве случаев бывает достаточно, но если мы хотим чтобы файл могли выполнять и другие пользователи, нужно указать также другие категории: g и o:
Посмотреть флаги в терминале можно с помощью утилиты ls:
Это значит, что все флаги включены для всех категорий. Первое rwx — флаги владельца, второе — группы, а третье — для всех остальных. Если флаг не установлен, на его месте будет прочерк.
Снять флаг исполняемого файла очень просто. Используется та же команда только со знаком минус:
Как установить фалг исполняемости в GUI
Вы можете сделать файл исполняемым в linux не только через терминал. Такая функциональность есть во всех файловых менеджерах. Возможно, на первых порах это будет для вас проще. Рассмотрим на примере файлового менеджера GNOME, Nautilus. Кликните правой кнопкой по нашему файлу программы или скрипта, чтобы открыть контекстное меню, затем выберите свойства:
Дальше перейдите на вкладку права и установите галочку Разрешить выполнение файла как программы:
Готово, исполняемый файл linux может быть запущен системой, прямо из файлового менеджера.
Выводы
Вот и все, теперь вы знаете как сделать файл исполняемым в linux. И если нужно будет запустить скрипт или установщик из интернета, у вас не возникнет никаких проблем. Если остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как сделать файл исполняемым в Linux
я Если вы ранее взаимодействовали с такой операционной системой, как Windows, следующий контекст должен иметь смысл. Такие среды операционной системы поддерживают два типа файлов. Первый тип — это исполняемые файлы, а второй — неисполняемые. Исполняемые файлы связаны с расширением файла подписи, например «.exe».
Создание исполняемого файла в Linux
С другой стороны, когда мы мигрируем в экосистему Linux, правило неисполняемых и исполняемых файлов не применяется. Каждому файлу может быть предоставлена привилегия исполняемого файла. Чтобы понять, как работает эта концепция, нам понадобится образец файла для ссылки.
Подход терминала / командной строки
Чтобы создать такой файл, мы можем использовать встроенную команду echo. Это применимо к терминалу Linux. Эта команда полезна при создании командной строки и перенаправлении ее в файл.
Откройте терминал Linux и выполните следующую последовательность команд.
$ echo 'echo привет, пользователь FossLinux, добро пожаловать в этот учебный сеанс' >> приветствия. $ кошка привет
Из приведенной выше последовательности команд мы использовали команду echo для создания буквальной строки «echo привет, пользователь Fosslinux, добро пожаловать в этот учебный сеанс». После этого мы сохранили эту буквальную строку в файле с именем «greetings». Как вы могли заметить, в Linux можно создать файл, не задавая ему расширения, например .exe или .txt. Такой подход к созданию файлов невозможен в других операционных средах.
Файл, существующий без расширения в Linux, позволяет предоставить ему привилегию выполнения всякий раз, когда возникает необходимость. После выполнения команды «cat greetings» терминал выводит буквальную строку, которую мы сохранили в файле «greetings» из приведенной выше последовательности команд.
echo привет, пользователь FossLinux, добро пожаловать в этот учебный сеанс
Литеральная строка должна начинаться с команды echo, чтобы среда Linux правильно ее интерпретировала. В противном случае вы можете получить ошибку типа «команда не найдена», когда мы позже сделаем файл исполняемым. Гибкость среды операционной системы Linux становится жизнеспособной, когда мы можем сделать этот файл «приветствия» исполняемым, не обращаясь к команде cat для доступа к его содержимому.
Чтобы сделать файл исполняемым, мы будем использовать команду «chmod», как показано ниже.
После этого нам нужно только вызвать этот файл «приветствия» следующим образом, чтобы получить доступ к его содержимому.
Ожидаемый результат должен быть примерно таким:
привет пользователь FossLinux, добро пожаловать в этот учебный сеанс
Как вы отметили, вывод выше не начинается с «echo». Среда терминала интерпретирует эхо не как вывод, а как команду, необходимую для отображения результирующего вывода терминала.
Под капотом этого процесса выполнения файла
Прежде чем выполнение любого файла произойдет в среде Linux, первым делом необходимо связать путь этого предполагаемого исполняемого файла с терминальной средой Linux. Следующим шагом является определение типа разрешения, необходимого для файла. Например, нам нужно было получить доступ к содержимому созданного файла «приветствия» для случая, который мы продемонстрировали.
В этом сценарии нам нужно было работать с разрешениями на «чтение» для доступа и вывода содержимого этого файла. Это делает необходимым использование команды «chmod + x». Назначение или удаление разрешения на выполнение файла не делает этот файл постоянно исполняемым или постоянно неисполняемым. Мы просто даем файлу привилегию выполнения, которую также можно отобрать.
Использование «./» перед файлом «приветствия» сообщает терминальной программе, где найти файл, запланированный для выполнения. Вы также можете использовать «sudo» перед «./greetings», чтобы предоставить процессам выполнения необходимые привилегии. В вышеупомянутом примере мы использовали echo для обработки выполнения буквальной строки «привет, пользователь FossLinux, добро пожаловать в этот учебный сеанс». Для этого выполнения вы можете использовать другую программу, например print Python.
Сначала вам нужно установить двоичный файл местоположения программы в качестве заголовка файла, который вы хотите выполнить. В этом случае, если бы мы использовали функцию печати Python, содержимое файла «приветствия» будет выглядеть примерно так:
#! / usr / bin / python печать "привет пользователь FossLinux, добро пожаловать в этот учебный сеанс"
Выполнение этого файла с помощью команды «./greetings» даст те же результаты, что и при использовании команды echo.
Подход с графическим интерфейсом
Если вам не нужен технический путь к тому, как сделать ваши файлы исполняемыми, графический пользовательский интерфейс Linux — это всегда хорошее место для начала. Сначала найдите файл, который вы хотите сделать исполняемым, перейдя к его расположению. С помощью компьютерной мыши щелкните этот файл правой кнопкой мыши и выберите «меню свойств».
На следующем экране будут три выровненных пункта меню. Выберите пункт меню «Разрешения».
В этом окне установите флажок «Разрешить выполнение файлов как программ».
С помощью этих простых шагов графического интерфейса вы сделаете целевой файл исполняемым.
Гибкость chmod
Chmod — это краткое обозначение «режима изменения». Он занимается контролем доступа к файлам и каталогам в вашей операционной системе Linux. Например, поскольку мы уже занимались созданием исполняемого файла, вы также можете узнать, как отобрать эти привилегии выполнения у всех.
В этом случае вы можете ознакомиться с некоторыми абсолютными режимами, связанными с командой chmod. Цифровые числа представляют эти режимы, и их использование соответствует следующему правилу синтаксиса:
chmod absolute_mode имя_файла.расширение_файла
Другое использование chmod при выполнении файла
- chmod 775 your_file_name.file_extension: В этом режиме любой может выполнить созданный или существующий файл. Однако только владелец файла может записывать или добавлять данные в этот файл.
- chmod 777 your_file_name.file_extension: В этом режиме каждый пользователь системы Linux имеет равные права на выполнение существующего или созданного файла.
- chmod 0010 your_file_name.file_extension: Только определенные члены группы системы Linux будут выполнять представленный файл.
- chmod 0100 your_file_name.file_extension: Только владелец файла или человек, создавший файл в системе Linux, будет выполнять его эксклюзивно.
- chmod -777 ваше_имя_файла.расширение_файла: Эта команда отнимает привилегию выполнения файла у всех пользователей этой операционной системы Linux.
Имея эту дополнительную информацию о команде chmod, вы должны быть уверены в ее использовании для создания исполняемых файлов в среде операционной системы Linux.
Заключительное примечание
Простое правило создания исполняемого файла в Linux включает следующие шаги.
- Иметь доступ к своему терминалу Linux
- Используйте свой терминал Linux, чтобы перейти к местоположению целевого файла.
- Как только вы найдете целевой файл, запишите его имя и соответствующее расширение файла, если таковое имеется. Расширение файла может быть «.bin» или «.run».
- После этого используйте следующий синтаксис команды, чтобы сделать этот файл исполняемым.
sudo chmod + x имя_файла.расширение_файла
Например, sudo chmod + x new_file.bin
После того, как вы только что сделали этот файл исполняемым, вы можете установить его, если это «bin» файл, или просто запустить, если это «run» файл. В любом случае следующие командные подходы выполнят свою работу.
Для файла .bin не забудьте использовать ./my_file_name.bin
Для файла .run не забудьте использовать ./my_file_name.run
Если вы столкнетесь с какими-либо ошибками при попытке установить или запустить созданный исполняемый файл с помощью вышеуказанных командных подходов, перед выполнением этих команд используйте «sudo». Это даст текущему пользователю системы Linux необходимые привилегии выполнения.
Руководство по предоставлению пользователям прав доступа к папкам с легкостью
@2023 — Все права защищены.8я всегда восхищались надежной и гибкой системой прав доступа к файлам в Linux. Если вы новичок в Linux или нуждаетесь в повышении квалификации, эта статья предоставит подробное руководство по предоставлению пользователю.
Создание домашнего каталога для существующих пользователей в Linux
@2023 — Все права защищены.6ТСегодня я хотел бы поделиться с вами одним из моих любимых советов: создание домашних каталогов для существующих пользователей в Linux. В этой статье объясняется цель создания домашних каталогов, предлагаются советы и .
Как прочитать файл построчно в Bash
@2023 — Все права защищены.1 КА Цикл — это набор инструкций в компьютерном программировании, которые непрерывно повторяются до тех пор, пока не будет выполнено заданное условие. Предположим, что условие выполнено, тогда цикл завершается. В большин.