Как запустить исполняемый файл или скрипт в Linux: от настройки прав до устранения ошибок

Иван Корнев·16 августа 2026·3 мин

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

Оглавление

Проверка и назначение прав на выполнение

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

  • Проверка прав: ls -l filename (необходимо наличие символа x в правах доступа).
  • Назначение права на выполнение:
  chmod +x filename # для текущего пользователя и группы
  chmod u+x filename # только для владельца
  sudo chmod +x filename # если требуются права root

Запуск по пути и через интерпретатор

Указание пути

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

./script.sh # запуск из текущей директории
/home/user/app.bin # запуск по абсолютному пути
../bin/tool # запуск по относительному пути

В отличие от Windows, Linux по соображениям безопасности не ищет исполняемые файлы в текущей директории автоматически. Команда script.sh без ./ выдаст ошибку «command not found», если скрипт не установлен системно.

Передача интерпретатору

Если у файла нет прав на выполнение или отсутствует shebang-строка (#!/bin/bash), его можно передать напрямую интерпретатору:

bash script.sh # для Bash-скриптов
python3 script.py # для Python
sh script.sh # для POSIX-совместимых скриптов
node app.js # для JavaScript/Node.js

Этот метод игнорирует бит исполнения, но требует наличия соответствующего интерпретатора в системе.

Добавление в системный PATH

Чтобы запускать файл из любой директории по имени, как стандартные команды, выполните одно из действий:

  1. Переместите файл или создайте символическую ссылку в /usr/local/bin/ или ~/bin/.
  2. Добавьте директорию с файлом в $PATH:
   export PATH="$PATH:/путь/к/директории"

Для постоянного эффекта добавьте команду экспорта переменной PATH в конфигурационные файлы ~/.bashrc или ~/.profile.

Особенности запуска бинарных файлов

  • Зависимости: Если бинарник не запускается, проверьте наличие динамических библиотек командой ldd ./binary.
  • Архитектура: Убедитесь, что бинарный файл соответствует архитектуре системы (проверить можно через uname -m). Файлы архитектуры x86_64 не запустятся на ARM без эмуляции.
  • Специфичные форматы: Форматы пакетов имеют собственные механизмы запуска:
    • AppImage: chmod +x app.AppImage && ./app.AppImage
    • Flatpak: flatpak run com.example.App
    • Snap: snap run app-name

Частые ошибки

Ниже приведены типичные проблемы при запуске и способы их диагностики.

ПроблемаДиагностикаРешение
Permission deniedls -l filechmod +x file
Command not foundecho $PATHДобавить ./ или обновить PATH
Bad interpreterhead -1 script.shИсправить shebang или указать интерпретатор явно
Missing libraryldd ./binaryУстановить недостающий пакет
Exec format errorfile ./binaryПроверить архитектуру и целостность файла

FAQ

Почему скрипт не запускается, хотя я нахожусь в его папке?

Linux по соображениям безопасности не ищет исполняемые файлы в текущей директории. Необходимо явно указать относительный путь, добавив ./ перед именем файла (например, ./script.sh), либо добавить папку в переменную окружения $PATH.

Что делать, если появляется ошибка Bad interpreter?

Эта ошибка возникает из-за проблем со строкой shebang в первой строке скрипта. Проверьте её командой head -1 script.sh. Если путь к интерпретатору указан неверно или интерпретатор отсутствует в системе, вы можете запустить скрипт, явно передав его нужной программе (например, bash script.sh).

Как проверить, почему не запускается бинарный файл?

Используйте утилиту ldd ./binary, чтобы проверить наличие всех необходимых динамических библиотек. Также убедитесь, что архитектура файла совпадает с архитектурой вашей системы, выполнив команду uname -m.