使用命令别名来简化VirtualBox虚拟机共享文件夹的使用

Windows上使用VirtualBox虚拟机,并为客户机Linux建立了共享文件夹(假定其名称取为VMshare)之后,想要使用这个共享文件夹,通常需要依次执行以下步骤:

  1. 建立挂载点(只需建立一次,以后直接用即可)
  2. 挂载共享文件夹(每次重启机器以后,都得重新挂载,且命令冗长)
  3. 把工作目录切入共享文件夹的挂载点(每次都得临时切入,有时在挂载好共享文件夹后会不小心忘掉这一步)

为了简化用户的操作,并确保操作的正确性与完整性,我建立了一个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即可。

生效以后,使用共享文件夹的步骤就可简化为

涉及的知识点:

  • 变量的测试与替换 (****)

sfmp=${ShareFolderMountPoint:-/mnt/share}

若未设置环境变量ShareFolderMountPoint或环境变量ShareFolderMountPoint的值为空字符串,那么就用字符串/mnt/share把变量ShareFolderMountPoint的值替换掉;否则保持变量ShareFolderMountPoint的值不变;最后都要把变量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,否则结束。

猜你喜欢

转载自www.cnblogs.com/yawenunion/p/9132634.html