我有一台 Centos 5.5 服务器,它有我自己的帐户别名命令。当我这样做时,sudo bash
我仍然可以使用这些别名,我不必将别名添加到根的.bashrc
.
我还有另一台服务器是Centos 6.5。但是当我执行时sudo bash
,它不会使用我登录的用户的别名。有谁知道我在哪里配置它以包含我使用时登录的用户的别名sudo bash
?
答案1
将以下行添加到 ~/.bashrc 中:
alias sudo='sudo '
来自 bash 手册
别名允许在用作简单命令的第一个单词时用字符串替换单词。 shell 维护一个别名列表,可以使用 alias 和 unalias 内置命令设置和取消设置。
每个简单命令的第一个单词(如果未加引号)将被检查以查看它是否有别名。如果是这样,该单词将被别名的文本替换。字符“/”、“$”、“`”、“=”以及上面列出的任何 shell 元字符或引用字符不得出现在别名中。替换文本可以包含任何有效的 shell 输入,包括 shell 元字符。替换文本的第一个单词会进行别名测试,但与正在扩展的别名相同的单词不会再次扩展。例如,这意味着可以将 ls 别名为“ls -F”,并且 Bash 不会尝试递归地扩展替换文本。如果别名值的最后一个字符是空格或制表符,则还会检查别名后面的下一个命令字是否有别名扩展。
因此 Bash 只检查命令的第一个单词是否有别名,之后的任何单词都不会被检查。这意味着在像 sudo ll 这样的命令中,bash 仅检查第一个单词 (sudo) 的别名,ll 会被忽略。我们可以通过在别名值末尾添加一个空格来告诉 bash 检查别名后的下一个单词(即 sudo)。
答案2
使用sudo -E
,这将导出您的环境。