我最近开始设置我的常用别名。最后我需要传递比我的别名最初需要的更多的信息
$ alias runserver = 'python manage.py runserver'
$ runserver 80 // turns out you need sudo
$ sudo runserver 80
$ sudo: runserver: command not found
现在,当我写这篇文章时,我意识到也许没有为 root 设置别名。可能是这样吗?
如果没有,有人可以解释一下为什么这不起作用吗?
谢谢,麻烦您了
答案1
注意:这个问题的正文与使用 sudo 时别名不可用。
在里面上述问题另外,他们还通过为 sudo 添加别名来解决了 sudo 问题:
alias sudo='sudo '
请注意,标题具有误导性,“带参数的别名”将是一个函数。假设您的runserver
别名将接受单个参数,则端口:
runserver(){ python manage.py runserver $1;}
如果runserver
接受未知数量的参数,则使用以下方法传递所有参数:
runserver(){ python manage.py runserver "$@";}
对于后一种语法,请参阅bash 手册。
答案2
sudo
在调用 shell 中看不到别名。中的别名将以或 的形式.bashrc
显示;前者是您的,后者是的。sudo -s
sudo -i
.bashrc
root
无论如何,更简单的方法不是吗alias runserver='sudo python manage.py runserver'
?