总目录
1. 概览
2. 教程
3. 使用指引
3.1 安装Multipass - 基于Linux / 基于macOS / 基于Windows
3.2 管理实例 - 创建实例 / 修改实例 / 使用实例 / 使用实例命令别名 👈 / 与实例共享数据 / 移除实例
3.3 管理Multipass - 设置驱动 / 使用Multipass服务授权代理 / 远程使用Multipass / 提高挂载性能 / 使用Packer打包Multipass镜像 / 设置图像界面 / 使用不同的macOS终端 / 配置Multipass外部储存位置
3.4 问题排查 - 连接日志 / 网络问题处理
使用实例命令别名
[版本1.8.0及之后]
这篇文档教授了在实例中如何创建, 列举, 执行和移除命令别名.
内容:
创建别名
也见: alias
使用命令alias
在特定实例上创建可执行命令的别名. 下面代码使用了这个命令去创建一个别名lscc
, 这个别名会在实例crazy-cat
中执行命令ls
:
$ multipass alias crazy-cat:ls lscc
在执行这个命令之后,别名lscc
就会被定义在实例crazy-cat
上, 并绑定了执行命令ls
. 如果lscc
被删除, 命令的别名就是默认命令(这种情况就是ls
).
译注: 我理解这句话的意思就是: lscc别名被删除后, ls的默认别名就是ls, 即自己就是自己的命令别名
列举已定义别名
也见: aliases
看目前为止已定义的别名清单, 使用aliases
命令:
$ multipass aliases
Alias Instance Command
lscc crazy-cat ls
执行别名
有两种方法执行别名.
multipass <alias>
第一种执行别名的方式是
$ multipass lscc
这会进入crazy-cat
实例的shell, 并执行ls
, 然后返回到主机命令行, 类似于exec
命令
也支持参数, 用--
进行分隔:
$ multipass lscc -- -l
<alias>
第二种执行别名的方法是一个两步过程:
添加Multipass别名脚本文件夹到系统路径
首先, 添加别名脚本文件夹到系统路径. 在你第一次创建别名的时候, 指引就会自动显示, 每个平台显示都不一样. 例如:
$ multipass alias crazy-cat:ls lscc
You'll need to add this to your shell configuration(.bashrc, .zshrc or so) for alias to work withour prefixing with `multipass`
PATH="$PATH:/home/user/snap/multipass/common/bin"
Linux
Linux上的shell配置需要修改一下. 在大多Linux版本中, 默认的shell是bash
, 它可以在用户的home目录通过文件.bashrc
配置. 任何文本编辑器都可以修改文件, 例如:
$ nano ~/.bashrc
在编辑文件的时候, 在正文末尾新增一行如下:
export PATH="$PATH:/home/user/snap/multipass/common/bin"
(记得在上述案例命令中将文件夹更改为正确的文件夹, 并重启shell)/
在使用zsh
作为shell的场景中, 需要修改的文件是.zshrc
而不是.bashrc
; 步骤也是一样的.
macOS
在MacOS上,最常用的shell是zsh
. 将文件夹加到系统路径的步骤和Linux上是一样的,如上所述
Windows
然而, 在Windows上,略微有点复杂。为了让修改永久化,需要使用PowerShell储存旧系统路径, 增加别名文件夹, 并且存储道新路径。
$old_path = (Get - ItemProperty - Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path
$new_path = "$old_path;C:\Users\<user>\AppData\Local\Multipass\bin"
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $new_path
不要忘记重启终端。文件夹现在已经永久加到你的路径中了, Multipass现在可以通过引用别名来执行了。
执行别名
一旦你将别名文件夹加入到了系统路径, 你就可以直接(不需要写multipass
)执行如下:
$ lsccat alias definition time,
这个命令(基于路径已经被加到系统路径)等价于multipass lscc
. 并支持参数,且不需要--
:
$lscc -l
移除别名
也见:unalias
最后,移除别名lscc
,发出指令:
multipass unalias lscc
ℹ️当实例被清除(purged)的时候,别名也会被移除。这就意味着,
multipass delete crazy-cat --purge
也会移除别名lscc
。