Ошибка «command not found» в Linux
Ошибка «bash: command not found: команда» (или «zsh: command not found: команда» в Zsh) — одна из наиболее распространённых проблем в Linux-терминале. Она означает, что оболочка не смогла найти исполняемый файл указанной команды в системных путях.
Причины возникновения ошибки
Существует несколько основных причин появления ошибки command not found:
- Команда не установлена — необходимый пакет просто не установлен в системе
- Неправильный PATH — директория с командой не добавлена в переменную окружения PATH
- Опечатка в названии — команда введена с ошибкой или неверным регистром
- Отсутствие прав на выполнение — файл существует, но не имеет атрибута исполнения
Диагностика ошибки
1. Проверьте правильность написания
# Пример опечатки
$ pyton --version
bash: pyton: command not found
# Правильный вариант
$ python3 --version
Python 3.10.12
2. Проверьте переменную PATH
echo $PATH
Типичный вывод:
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Если нужная директория отсутствует, добавьте её:
# Временное добавление (действует до закрытия терминала)
export PATH=$PATH:/usr/local/myprogram/bin
# Постоянное добавление (для текущего пользователя)
echo 'export PATH=$PATH:/usr/local/myprogram/bin' >> ~/.bashrc
source ~/.bashrc
3. Найдите местоположение команды
# Поиск команды в PATH
which python3
# Вывод: /usr/bin/python3
# Поиск всех файлов, связанных с командой
whereis python3
# Вывод: python3: /usr/bin/python3 /usr/bin/python3.10
# Показать тип команды (встроенная, алиас, функция)
type python3
4. Проверьте, установлен ли пакет
# Для Debian/Ubuntu
dpkg -l | grep <название_пакета>
apt list --installed | grep <название_пакета>
# Для CentOS/Fedora/RHEL
rpm -qa | grep <название_пакета>
dnf list installed | grep <название_пакета>
Решения
Установка отсутствующих команд
Ubuntu/Debian
sudo apt update
sudo apt install <название_пакета>
# Пример: установка curl
sudo apt install curl
CentOS/RHEL
sudo yum install <название_пакета>
# или
sudo dnf install <название_пакета>
Arch Linux
sudo pacman -S <название_пакета>
Часто встречающиеся команды
| Команда | Пакет (Debian/Ubuntu) | Пакет (CentOS) |
|---|---|---|
curl | curl | curl |
wget | wget | wget |
git | git | git |
nano | nano | nano |
vim | vim | vim |
python3 | python3 | python3 |
Профилактика
- Регулярно обновляйте систему — это обеспечивает наличие актуальных версий пакетов
- Используйте автодополнение — нажмите
Tabдля автоматического завершения команды - Проверяйте документацию — перед установкой нового ПО изучите зависимости
- Создавайте алиасы — для часто используемых команд с длинными путями
Заключение
Ошибка command not found редко является серьёзной проблемой и обычно легко устраняется установкой соответствующего пакета или исправлением переменной PATH. Следуя описанным выше шагам диагностики, вы быстро найдёте и устраните причину ошибки.
Если проблема сохраняется после выполнения всех рекомендаций, проверьте журналы системы или обратитесь к документации конкретного дистрибутива Linux.