如何在 Linux 中使用 sudo 运行别名如何在 Linux 中使用 sudo 运行别名如何在 Linux 中使用 sudo 运行别名如何在 Linux 中使用 sudo 运行别名
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Linux 中使用 sudo 运行别名

发表 admin at 2025年2月28日
类别
  • 未分类
标签

默认情况下,您无法使用 sudo 运行别名命令。不用担心。有了这个巧妙的小技巧,您将能够在 Linux 中运行具有 sudo 访问权限的任何别名。

我猜您已经知道如何在 Linux 中创建别名。别名可帮助您轻松运行冗长的自定义命令。您可以通过将别名添加到您的 bashrc 或您在 Linux 中运行的任何 shell 的配置文件来使别名永久化。

当您尝试使用 sudo 运行别名时,就会出现问题。你会看到这样的错误:

sudo: my_alias: command not found

这是一个例子。我为 apt update 命令创建了一个别名 up 。 apt update 命令需要与 sudo 一起运行。但如果我尝试运行 sudo up ,则会出现错误:

你会认为既然你是以 root 用户身份运行的,那么别名应该在 root 用户的 bashrc 中定义,即 /.bashrc。继续尝试吧,但我敢打赌它不会起作用。

让我向您展示一个使用 sudo 运行别名命令的巧妙小技巧。

使用 sudo 访问运行别名命令

诀窍是为 sudo 本身创建一个别名,如下所示:

sudo='sudo '

sudo 后面的空格(或制表符,如果您愿意的话)在上面的代码中很重要。现在,如果您使用 sudo 运行别名命令,它应该可以正常工作。

但为什么?当您所做的只是用 sudo 和一个空格替换 sudo 命令时,为什么现在它可以工作了?答案在于别名的设计使用方式。

如果您参考 bash 手册的别名部分,您将看到每个简单命令的第一个单词(如果未加引号)会被检查以查看它是否有别名。如果别名值的最后一个字符是空格或制表符,则还会检查别名后面的下一个命令字是否有别名扩展。

换句话说,在命令中仅检查第一个单词的别名。但如果别名值末尾有空格或制表符,则还会检查命令的下一个单词是否有别名。

这就是为什么当您简单地运行 sudo my_alias 命令并将 sudo 别名为“sudo”时,首先会检查 sudo 的别名。发现别名末尾带有空格,因此您的系统会检查别名的下一个单词。它也会找到该命令的别名,并且您的别名命令将按照您希望的方式工作。

我希望您喜欢这个有助于使用 sudo 运行别名的快速小技巧。如有任何问题或建议,我们随时欢迎。

©2015-2025 Norria support@norria.com