Полный цикл в digital

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

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

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

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

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

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

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

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

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

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

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

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

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

Как посмотреть флаги

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

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

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

  1. Первое rwx флаги владельца
  2. Второе rwx флаги группы
  3. Третье r-xфлаги всех остальных

Как снять флаги

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

chmod u-x адрес_файла
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг