Я недавно начал настраивать свой обычный псевдоним. Мне пришлось передать больше информации, чем изначально требовалось для моего псевдонима
$ alias runserver = 'python manage.py runserver'
$ runserver 80 // turns out you need sudo
$ sudo runserver 80
$ sudo: runserver: command not found
Теперь, когда я писал это, я понял, что псевдоним не установлен для root. Может ли это быть так?
Если нет, может кто-нибудь объяснить, почему это не работает.
Пожалуйста, и спасибо
Примечание: основная часть этого вопроса является дубликатом псевдонимов, недоступных при использовании sudo .
В вышеупомянутом вопросе они решили проблему sudo, также добавив псевдоним sudo:
alias sudo='sudo '
Обратите внимание, что заголовок вводит в заблуждение, «псевдоним с параметром» функция. Предполагая, что ваш псевдоним runserver
будет принимать один аргумент, порт:
runserver(){ python manage.py runserver $1;}
Если runserver
принимает неизвестное количество параметров, передайте все параметры, используя:
runserver(){ python manage.py runserver "$@";}
О последнем синтаксисе см. Руководство по bash .
sudo
не видит псевдонимов в вызывающей оболочке. Псевдонимы в .bashrc
будут отображаться с sudo -s
или sudo -i
; первый - ваш .bashrc
, второй - для root
.
В любом случае, не проще ли было бы alias runserver='sudo python manage.py runserver'
?