作为一个简单的例子,在用户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函数的命令工作正常。有没有办法让别名也起作用?
答案 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'