如何从 BASH 访问 Windows 共享?

jch*_*dev 6 command-line bash vmware networking

可能是菜鸟问题。我在 VMWare 播放器中安装了 Ubuntu。工作正常。我通常在终端上工作,直到今天才意识到我可以使用“文件”图标连接到我的 Windows 主机(实际上是我的办公室网络)。太棒了!

但是......然后......我如何从bash内部访问这些新共享?从我的默认提示,我不应该看到一些 \my-windows-share

或者我是否需要在终端内以某种方式“手动”安装这些驱动器?如果是这样,如何?

我看到许多关于 VirtualBox 的答案。不知道这是否适用于我。我想我假设一旦我通过文件连接,我就会自动与终端连接。

Wes*_*Wes 9

首先你需要安装 samba 和 cifs-utils:

sudo apt-get install samba cifs-utils
Run Code Online (Sandbox Code Playgroud)

然后使用 Bash 脚本使用 samba 在 linux 中挂载 windows 共享文件夹:

$ mkdir /mnt/smb

$ touch smb.sh

chmod +x smb.sh

$ vi smb.sh
Run Code Online (Sandbox Code Playgroud)

使用 vi 将以下内容写入 smb.sh 文件:

#/bin/bash



SERVER_IP="192.168.1.1"

SHARE_NAME="c$"

USERNAME="samba user name"

PASSWD="samba password"

DOMAIN="domain"


mount.cifs //$SERVER_IP/$SHARE_NAME /mnt/smb/ -o username=$USERNAME,password=$PASSWD,dom=$DOMAIN
Run Code Online (Sandbox Code Playgroud)

最后运行脚本来挂载你的 Windows 共享和 cd 到共享中:

./smb.sh

$ cd /mnt/smb/
Run Code Online (Sandbox Code Playgroud)

另一种在我看来更直接、更容易的方法:它涉及创建挂载点、编辑 fstab,然后使用一个命令将所有文件系统挂载到 fstab 中。

制作文件夹:sudo mkdir /mnt/myDirectory

编辑 fstab: sudo vi /etc/fstab

将以下内容附加到 fstab 文件中:

//server/Share /mnt/myDirectory cifs domain=myDomain,username=myUserName,password=myPassword 0 0
Run Code Online (Sandbox Code Playgroud)

请务必填写所有适当的信息来代替这些占位符。并将 fstab 文件保存wq为“写入并退出”。

最后挂载 fstab 中列出的所有文件系统:

sudo mount -a
Run Code Online (Sandbox Code Playgroud)

现在您可以通过以下方式验证共享是否可用:

ls /mnt/myDirectory
Run Code Online (Sandbox Code Playgroud)

您应该会在 Windows 共享的顶级目录中看到这些文件。