我为用户〜/ .bashrc添加了别名,但是“sudo -u user -i' alias_name'”仍然报告“找不到命令”?

时间:2012-03-30 16:38:05

标签: linux bash alias sudo

作为一个简单的例子,在用户foo的〜/ .bashrc中有一个别名;

alias ll='ls -l'

使用sudo我可以看到别名已设置;

bar@laptop:~$ sudo -u foo -i alias ll
alias ll=`ls -l'

但是,我实际上无法使用别名;

 bar@laptop:~$ sudo -u foo -i ll
 -bash: ll: command not found

bash函数的命令工作正常。有没有办法让别名也起作用?

3 个答案:

答案 0 :(得分:10)

答案 1 :(得分:3)

有一个很好的例子,说明如何执行此操作in the Archlinux wiki。将以下内容添加到.bashrc

alias sudo="sudo "

不要问我为什么会这样。我已经仔细搜索了我的手册页,但没有运气,但它从来没有让我失望过。

> sudo ll
total 60
drwxr-xr-x  2 brice users 4096 Feb  4 16:17 classes
drwxr-xr-x  3 brice users 4096 Mar  6 21:48 Desktop
drwx------  6 brice users 4096 Mar 28 21:32 Downloads
drwx------ 25 brice users 4096 Mar 29 21:20 Dropbox
drwxr-xr-x  2 brice users 4096 Mar 11 20:27 scripts
drwxr-xr-x  2 brice users 4096 Mar 19 21:59 tmp

答案 2 :(得分:1)

确保添加

alias sudo='sudo '

然后继续添加您的自定义别名...例如。如果常规命令是

sudo rm ~/qwerty/removethis.txt

上述命令的别名将类似于

alias your_custom_alias='sudo rm ~/qwerty/removethis.txt'