bash(1)
будет искать переменную окружения PATH
, чтобы найти программы для выполнения. PATH
обычно не содержит ваш «текущий рабочий каталог» (.
), потому что это открывает людям тривиальные проблемы безопасности:
cd /home/unsavory_character/
ls
Если unsavory_character
поместит исполняемый файл в /home/unsavory_character/ls
, который добавляет его или ее ключ ssh(1)
в ваш файл ~/.ssh/authorized_keys
, вас ждет сюрприз - он или она может войти в систему как вы без пароль.
Таким образом, в наши дни системы не добавляют текущий рабочий каталог в PATH
, поскольку он слишком небезопасен.
Обходной путь:
./manage.py runserver
Конечно, это предполагает, что ваш текущий рабочий каталог является каталогом, содержащим скрипт manage.py
. Это может быть безопасным предположением. Если вы хотите иметь возможность выполнить его из любой точки файловой системы, вы можете добавить каталог в PATH
, отредактировав файл ~/.profile
или ~/.bash_profile
или ~/.bashrc
. (Если один из них уже существует, выберите его. Кажется, я вспоминаю, что другие с PATH
проблемами в OS X обнаружили, что один или другой файл работал хорошо, а другой так и не был выполнен.)
(В моем случае у меня есть куча самописных утилит в ~/bin/
, но ваши могут быть в другом месте. Измените пути в зависимости от ситуации.)
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi