如何在bash中为“sudo vim(文件名)”设置别名作为sim(文件名)

use*_*423 4 linux bash vim

我通常输入来编辑文件的是:

sudo vim Example.php
Run Code Online (Sandbox Code Playgroud)

我想打字

sim Example.php
Run Code Online (Sandbox Code Playgroud)

作为捷径。我知道我可以在 bash 配置文件中设置别名,但是如何在别名中指定参数?在这种情况下,参数是文件名。

小智 8

让我分几个部分回答你的问题。

在 Bash 中设置别名

在您的 中.bashrc,放置一行内容如下:

alias sim="sudo vim"
Run Code Online (Sandbox Code Playgroud)

在某些系统(例如 Ubuntu)上,这一行应该放在您的.bash_aliases文件中,该文件将被您的默认.bashrc.

请注意,没有必要处理命令参数;这些将sudo vim自动添加到命令的末尾。

以超级用户身份编辑

把我刚才说的一切都拿走然后扔掉。

改用它通常是一个更好的主意sudoeditsudoedit将自动制作该文件的临时副本,您无需超级用户权限即可编辑该副本。这意味着 vim 将以您的身份运行(而不是以 root 身份运行),并且在您完成文件编辑后只需要片刻的超级用户身份。

确保sudoedit运行 vim

在 Debianish 系统上,使用sudo update-alternatives --config editor选择您喜欢的编辑器。否则,请确保$EDITOR在您的.bashrc.


小智 7

你用sudoedit Example.phpsudo -e Example.php代替。如果那是调用 Vim 以外的编辑器,那么只需export EDITOR=vim在 bash 启动文件中添加一个。

就别名而言,jschmier是正确的。别名被简单地扩展,然后任何参数都被正常处理。如果您确实需要处理参数(而不是在扩展别名后将它们留在原处),您将需要使用函数。有关别名函数的信息,请参阅 bash 文档。

  • 你应该解释为什么这更好......它不会以 root 身份运行 vi 并让用户做很多其他的坏事。我知道这不是用户所问的,但这是对明显问题的更好答案。 (4认同)