LinuxСредняя

Bash command not found: причины и 4 способа исправить

Статья объясняет, почему в терминале Linux появляется ошибка 'command not found', и предлагает 4 практических способа её устранения: от проверки опечаток до настройки переменной PATH.

Обновлено 15 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Все дистрибутивы Linux (Ubuntu, Debian, CentOS, Arch)Bash 3.2+

Что означает ошибка "command not found"

Ошибка bash: command not found (или command not found) означает, что командная оболочка Bash не может найти исполняемый файл команды, которую вы ввели, ни в одной из директорий, указанных в переменной окружения PATH.

Полный текст ошибки обычно выглядит так:

$ somecommand
bash: somecommand: command not found

Эта ошибка возникает в момент ввода команды в терминал (интерактивном режиме) или при выполнении скрипта. Bash последовательно ищет исполняемый файл с именем somecommand в каждом каталоге из переменной PATH. Если ни в одном из них файл с таким именем не найден (или он не имеет прав на выполнение), вы получаете это сообщение.

Причины возникновения

  1. Пакет с командой не установлен. Самая частая причина. Команда является частью программного пакета (например, git, docker, htop), который вы не устанавливали.
  2. Команда находится в каталоге, отсутствующем в PATH. Вы установили программу в нестандартное место (например, ~/apps/ или /opt/local/bin), но этот путь не добавлен в переменную PATH.
  3. Опечатка или неверный регистр. Linux-команды чувствительны к регистру. Lsls.
  4. Исполняемый файл отсутствует или имеет неверные права. Файл команды был удалён, перемещён или у него нет права на выполнение (chmod +x).
  5. Повреждён или некорректно настроен PATH. Переменная PATH может быть пустой, содержать синтаксические ошибки или относительные пути.

Способы решения

Способ 1: Проверьте опечатки и регистр

Перед глубокой диагностикой убедитесь, что команда написана правильно.

  • Используйте клавишу Tab для автодополнения. Если Bash ничего не дополняет, команда, скорее всего, неизвестна системе.
  • Убедитесь в правильности регистра: git status, а не Git Status.
  • Для поиска похожих команд можно использовать apropos <ключевое_слово> (требует обновлённого индекса man-страниц).

Способ 2: Найдите и установите недостающий пакет

Если команда стандартная (например, curl, wget, python3), её нужно установить.

Для Ubuntu/Debian:

# Поиск пакета, содержащего команду
apt search <имя_команды>
# Установка пакета (требует sudo)
sudo apt update && sudo apt install <имя_пакета>

Для CentOS/RHEL/Fedora:

yum provides */<имя_команды>  # или dnf на Fedora/CentOS 8+
sudo yum install <имя_пакета>

Для Arch Linux:

pacman -Fs <имя_команды>
sudo pacman -S <имя_пакета>

Способ 3: Проверьте и исправьте переменную PATH

  1. Посмотрите текущий PATH:
    echo $PATH
    

    Вывод будет выглядеть как /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin. Это список каталогов, где Bash ищет команды.
  2. Определите, где находится ваша команда (если она есть в системе):
    # Покажет полный путь к исполняемому файлу, если он найден в PATH
    which <имя_команды>
    # Более точная проверка (встроенная в bash)
    type -a <имя_команды>
    

    Если which ничего не выводит — команды нет в PATH.
  3. Если вы знаете, где лежит команда, но её нет в PATH, добавьте каталог временно (до перезагрузки терминала):
    export PATH=$PATH:/полный/путь/к/каталогу/с/командой
    

    После этого команда должна заработать.
  4. Чтобы добавить путь навсегда, отредактируйте конфигурационный файл вашей оболочки.
    • Для Bash (по умолчанию в большинстве дистрибутивов) откройте ~/.bashrc или ~/.profile и добавьте строку:
    export PATH="$PATH:/полный/путь/к/каталогу"
    
    • Для Zsh отредактируйте ~/.zshrc.
    • После сохранения файла выполните source ~/.bashrc (или source ~/.zshrc), чтобы изменения вступили в силу в текущей сессии.

Способ 4: Проверьте права на выполнение файла

Если команда — это ваш собственный скрипт или программа, убедитесь, что файл является исполняемым.

# Проверьте права
ls -l /полный/путь/к/файлу_команды
# В выводе должны быть буквы 'x' для владельца/группы/всех (например, -rwxr--r--)
# Если нет — добавьте право на выполнение:
chmod +x /полный/путь/к/файлу_команды

Убедитесь также, что файл находится в каталоге, который есть в PATH.

Профилактика

  • Управляйте PATH осознанно. Не добавляйте в него слишком много каталогов. Стандартные пути (/usr/local/bin, /usr/bin) должны присутствовать.
  • Используйте абсолютные пути в скриптах для критически важных команд, если вы не уверены в среде выполнения.
  • Создавайте алиасы (алиасы) для часто используемых длинных команд в ~/.bashrc:
    alias ll='ls -la'
    
  • Проверяйте наличие команды перед написанием сложных скриптов с помощью command -v <имя_команды> или type <имя_команды>. Это более надёжно, чем which.
  • После установки ПО вручную (из исходников или в /opt) сразу добавляйте его бинарный каталог в PATH.

Часто задаваемые вопросы

Почему команда работает для sudo, но не для обычного пользователя?
Могу ли я добавить папку с командами в PATH навсегда?
Ошибка возникает только для одной конкретной команды. Что делать?
Правильно ли я пишу команду? Ошибка 'command not found' из-за опечатки?

Полезное

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