Сообщение “command not found” (команда не найдена) – это распространенная ошибка в Bash (и других оболочках Unix-подобных систем), которая возникает, когда вы пытаетесь выполнить команду, которую система не может найти. Это может быть очень frustriрующе, особенно для новичков. В этой статье мы разберем причины возникновения этой ошибки и способы ее решения.
Ошибка “command not found” означает, что Bash не смог найти исполняемый файл, соответствующий введенной вами команде. Bash – это интерпретатор командной строки, который выполняет ваши команды. Когда вы вводите команду, Bash ищет ее в нескольких местах, называемых переменными окружения PATH. Если команда не найдена ни в одном из этих мест, вы получаете сообщение об ошибке.
Bash работает следующим образом:
Важно понимать, что Bash различает регистр символов. Команда ls
не эквивалентна команде Ls
или LS
.
Переменная PATH необходима для того, чтобы не указывать полный путь к каждой команде, которую вы хотите выполнить. Представьте, если бы вам приходилось каждый раз писать /usr/bin/ls
вместо ls
– это было бы крайне неудобно. PATH позволяет вам запускать команды из любого каталога, не заботясь о их точном местоположении на жестком диске.
Bash последовательно проверяет каждый каталог, указанный в переменной PATH. Если команда найдена в одном из каталогов, поиск прекращается, и команда выполняется. Если команда не найдена ни в одном из каталогов, выводится сообщение об ошибке.
/home/user/bin/mycommand
, вы можете выполнить ее, набрав /home/user/bin/mycommand
.apt
на Debian/Ubuntu, yum
на CentOS/RHEL, pacman
на Arch Linux, brew
на macOS).ls -l <имя_файла>
. Если права доступа не позволяют вам выполнять файл, вам может потребоваться изменить их с помощью команды chmod +x <имя_файла>
.Чтобы добавить каталог в переменную PATH, вы можете использовать команду export
. Например, чтобы добавить каталог /home/user/bin
в PATH, выполните следующую команду:
bash
export PATH="$PATH:/home/user/bin"
Эта команда добавляет /home/user/bin
в конец существующего значения PATH. Изменения будут действовать только для текущего сеанса терминала. Чтобы изменения сохранились после перезагрузки, вам нужно добавить эту строку в ваш файл конфигурации оболочки (например, .bashrc
, .bash_profile
, .zshrc
).
which <имя_команды>
, которая покажет путь к исполняемому файлу, если он установлен.export
без добавления в конфигурационный файл..bashrc
и другие файлы конфигурации оболочки? Это файлы, которые содержат настройки вашей оболочки, включая переменную PATH.echo $PATH
.chmod +x <имя_файла>
для изменения прав доступа.Что такое генераторы Bash-скриптов? Генераторы Bash-скриптов – это инструменты, которые позволяют создавать скрипты Bash (командные…
Что такое скрипты с правами sudo? Скрипты с правами sudo – это программы, написанные на…
Bash (Bourne Again Shell) — это командная оболочка, являющаяся стандартной для большинства систем Linux и…
Bash (Bourne Again Shell) — это интерпретатор командной строки, являющийся стандартной оболочкой в большинстве дистрибутивов…
Что такое /bin/bash? /bin/bash — это путь к исполняемому файлу Bash (Bourne Again Shell) в…
Bash — это мощная оболочка командной строки, используемая в системах Unix-подобных операционных системах, таких как…