使用命令别名来简化VirtualBox虚拟机共享文件夹的使用
Posted yawenunion
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用命令别名来简化VirtualBox虚拟机共享文件夹的使用相关的知识,希望对你有一定的参考价值。
在Windows上使用VirtualBox虚拟机,并为客户机Linux建立了共享文件夹(假定其名称取为VMshare)之后,想要使用这个共享文件夹,通常需要依次执行以下步骤:
- 建立挂载点(只需建立一次,以后直接用即可)
- 挂载共享文件夹(每次重启机器以后,都得重新挂载,且命令冗长)
- 把工作目录切入共享文件夹的挂载点(每次都得临时切入,有时在挂载好共享文件夹后会不小心忘掉这一步)
为了简化用户的操作,并确保操作的正确性与完整性,我建立了一个alias如下:
alias us=\'sfmp=${ShareFolderMountPoint:-/mnt/share} && test -e ${sfmp} || mkdir ${sfmp} && mount -t vboxsf VMshare ${sfmp} && cd ${sfmp}\'
这里的us是Use Share [folder]的简称。把这行内容追加到root用户家目录下的.bashrc文件中,即可永久生效。
若要在不注销或重启计算机的情况下立即生效,以root用户身份执行source ~/.bashrc即可。
生效以后,使用共享文件夹的步骤就可简化为:以root用户身份执行us命令就OK了。
涉及的知识点:
- 变量的测试与替换 (****)
sfmp=${ShareFolderMountPoint:-/mnt/share}
若当前环境中未设置变量ShareFolderMountPoint或变量ShareFolderMountPoint的值为空字符串,那么就把字符串/mnt/share赋予变量sfmp;
否则直接拿变量ShareFolderMountPoint的值赋予变量sfmp。
- 文件(夹)存在性测试(****)
test -e ${sfmp}
若${sfmp}表示的文件(夹)存在,则测试结果为真(执行成功),否则为假(执行失败)。
- 创建文件夹(*)
mkdir ${sfmp}
创建${sfmp}表示的文件夹。若要创建的文件夹已经存在,则报错。
- 挂载VirtualBox虚拟机的共享文件夹(***)
mount -t vboxsf 共享文件夹名称 共享文件夹挂载点
- 切换工作目录(*)
cd 新目录
- 考虑命令相关性的连续命令执行(****)
结合本例,
command1 && command2 || command3 && command4 && command5
从左向右依次执行(可以通过添加圆括弧来分块儿,本例尚不需要这样),且遵循短路逻辑。详述如下:
若command1执行成功了,就执行command2;若command1执行失败了,就不必执行command2了;
若command2未执行或执行失败,就执行command3;若command2执行成功了,就不必执行command3了;
若command3未执行或执行成功了,就执行command4,否则结束;
若command4执行成功了,就执行command5,否则结束。
Update 2018/07/06
# Automaticlly mount vbox share-folder function vboxsf_switch(){ local SHARE_FOLDER_NAME="share" local MOUNT_POINT="/mnt/$(whoami)/share-folder" case "$1" in on) [ -d "${MOUNT_POINT}" ] || mkdir -p ${MOUNT_POINT} && mountpoint -q "${MOUNT_POINT}" || mount -t vboxsf "${SHARE_FOLDER_NAME}" "${MOUNT_POINT}" && cd "${MOUNT_POINT}" &> /dev/null echo "OK: Vbox Share Folder is now ready to use." ;; off) mountpoint -q "${MOUNT_POINT}" && cd - &> /dev/null && umount -i "${MOUNT_POINT}" echo "OK: Vbox Share Folder has been dropped." ;; *) echo "Usage: vboxsf_switch on|off" esac } alias us0=\'vboxsf_switch off\' alias us1=\'vboxsf_switch on\'
Switch to root account, and append the scripts above to ~/.bashrc and run source ~/.bashrc, then you can simply use command \'us1\' to get ready to use the vbox share folder or \'us0\' to release the vbox share folder.
If you are in the \'Administrator\' group, you can do that by prepending \'sudo \' in front of both \'mount\' and \'umount\' commands in the scripts above without switching to root account. But you will be asked to input your own password.
以上是关于使用命令别名来简化VirtualBox虚拟机共享文件夹的使用的主要内容,如果未能解决你的问题,请参考以下文章