与sudo一起使用时,自定义别名失败

时间:2011-03-01 07:17:10

标签: terminal sudo bash

alias slt=open -a "Sublime Text 2"

执行slt /regular/file有效。

执行sudo slt /etc/hosts失败。

sudo: slt: command not found

是什么给出了?

3 个答案:

答案 0 :(得分:0)

别名仅为您的本地shell所知。它们在交互式命令输入期间被替换,并且不会被子shell继承。所以sudo根本就没有它。您应该使用shell脚本。

答案 1 :(得分:0)

我设法让root工作。只需修改/root/.bashrc

即可
  

alias sublime ='/ home / kervin / Software / Sublime-Text-2 / sublime_text'

您必须运行它,以验证它。

  

source .bashrc

重新启动时,.bashrc会自动运行。

然而,只有“su - ”并且成为root用户,而使用“sudo sublime”则不然。

还有其他方法吗?

答案 2 :(得分:0)

要使其工作,请将sudo的别名设为'sudo'。然后bash将扩展你的别名。例如,

$ alias sudo='sudo '
$ alias h='head'
$ h /etc/shadow
head: cannot open '/etc/shadow' for reading: Permission denied
$ sudo h /etc/shadow
root:!:15725:0:99999:7:::
daemon:*:15630:0:99999:7:::