virtualbox+vagrant学习-2(command cli)-24-Aliases别名

时间:2022-10-13 23:40:34

Aliases

别名的部分灵感来自Git自身的别名功能,它允许你创建自己的定制vagrant命令,从而使你的vagrant体验更简单、更容易、更熟悉。

别名可以在VAGRANT_HOME/ aliases文件中定义,也可以在使用VAGRANT_ALIAS_FILE环境变量定义的自定义文件中定义,其格式如下:

# basic command-level aliases
start = up
stop = halt # advanced command-line aliases
eradicate = !vagrant destroy && rm -rf .vagrant

简而言之,别名是使用标准的key = value格式定义的,其中键是新的Vagrant命令,值是别名命令。使用这种格式,可以定义两种类型的别名:内部别名和外部别名。

1)内部别名

内部命令别名直接调用CLI类,允许你将一个vagrant命令别名到另一个vagrant命令。这种技术对于创建你认为应该存在的命令非常有用。

例如,如果vagrant stop 感觉比vagrant halt更直观,那么以下别名定义将使这种更改成为可能:

stop = halt

这使得以下命令等效:

vagrant stop
vagrant halt

2)外部别名

内部别名可以用来定义更直观的vagrant命令,外部命令别名可以用来定义具有全新功能的vagrant命令。这些别名的前缀是!字符,它向解释器指示别名应作为shell命令执行。

例如,假设你希望能够查看活动项目的虚拟机的处理器和内存利用率。为此,你可以定义一个vagrant度量命令,该命令以易于阅读的格式返回所需的信息,如下所示:

metrics = !ps aux | grep "[V]BoxHeadless" | grep $(cat .vagrant/machines/default/virtualbox/id) | awk '{ printf("CPU: %.02f%%, Memory: %.02f%%", $3, $4) }'

上面的别名,从一个活动的vagrant工程的上下文中,将把CPU和内存利用率直接打印到控制台: