Linux与Windows喜结连理
作为一个新生事物,Linux吸引了不少眼球,但是它能否快捷、方便地与Windows资源共享,是一个很重要的问题。大家知道,Windows之间可以利用“网络邻居”来实现资源共享,而Linux之间可以使用NFS来实现资源共享。那么,Linux与Windows之间呢?
Linux可以通过Samba来实现和Windows主机互通有无的。Samba采用Client/Server架构,执行Samba客户端程序,就可以访问Windows主机上的共享资源;而运行Samba服务器,Windows主机就可以访问Linux上的共享资源。下面以Red Hat 8.0为例,介绍在Linux环境里如何访问Windows共享资源。
安装Samba
如果不能确定是否已经安装了Samba软件包,可以在终端窗口执行以下命令进行查询:
如果查询结果出现如图1所示的三个软件包,则表示已经安装Samba软件包。
图一:查询是否安装Samba软件包
如果没有安装过Samba软件包,则可以插入Red Hat 8.0第二张安装光盘,然后按照下面的步骤进行安装(以KDE环境为例):
1. 鼠标依次单击主选单→系统设置→“软件包”选单项,将会打开“软件包管理”对话框。
2. 在该对话框里找到“Windows文件服务器”,确保已经勾选该选项,然后单击对话框底部的“更新”按钮,如图2所示。
3. 安装Samba软件包。
图三:安装Samba软件包
整个过程非常简单,系统会自动检测软件包之间的依赖性,完全不用操心。
用命令方式访问Windows
安装好Samba之后,就可以让它大显身手了。这里先介绍如何用字符命令方式访问Windows共享资源。
1. 查询Windows主机的共享资源
查询Windows主机的共享资源可以使用smbclient -L WindowsHostName命令。例如,要查询一台名为Peter的Windows主机上的共享资源,可以在终端窗口输入:
然后回车即可。该命令的具体使用方法如图3所示。该命令可以准确地检查出Windows主机的共享文件夹,并且对中文文件名的支持也很好。
图三:查询Windows主机的共享资源
2. 连接Windows主机的共享目录
我们可以使用“smbclient //WindowsHostName/ShareName”命令,连接Windows主机上的某个共享文件夹。如果该共享文件夹需要用户名和密码,则可以使用“smbclient //WindowsHostName/ShareName -U UserName”命令。例如,要连接Windows主机Peter上的共享目录Share,可以在终端窗口输入:
然后回车。如果连接成功,即可出现“smb:\>”提示符,如图4所示。在该命令提示符下输入适当的命令,即可对所连接的共享目录进行操作。
图四:连接共享目录
3. 对共享目录进行操作
4. 映射网络驱动器
我们知道,在Windows下可以将共享目录映射为网络驱动器,这样就可以把共享目录当成本地文件夹使用。在Red Hat里也有类似的功能,可以借助于smbmount命令来实现,具体的命令参数是“smbmount //WindowsHostName/ShareName /mnt/smbdir”。假设要将Windows主机Peter下的共享文件夹Share挂载到本地的/mnt/WinShare目录下,具体步骤是:
◆ 首先在/mnt目录下创建一个目录,假设为/mnt/WinShare,将把Windows的共享目录挂载到/mnt/WinShare下;
◆ 然后打开终端窗口,键入“smbmount //Peter/Share /mnt/WinShare”回车即可。
此时在文件管理器里打开/mnt/WinShare目录,就可以看到共享目录的内容。要卸载该映射目录,可以使用umount命令,此处不再赘述。
GNOME下的网络邻居
使用smbclient命令,可以很方便地对Windows主机共享目录进行查询和其它操作。但是,大家已经习惯了Windows图形界面,使用命令总感觉不太方便。其实在Red Hat里面,也一样可以使用图形界面对Windows共享目录进行操作。这里介绍一位“幕后英雄”——Nautilus,它可算是GNOME环境里的Shell(相当于Windows下的Explorer)。Nautilus既是Red Hat的文件管理器,又可以充任浏览器,还可以播放多媒体文件、浏览图片等。它现在又多了一个职责,就是担当Linux下的网络邻居。
要打开Nautilus窗口,只需双击GNOME桌面上的主目录图标即可。要查询Windows工作组里的主机,可以在Nautilus窗口的地址栏(Location)里输入“smb://工作组名称”,然后回车即可。图5显示了工作组Workgroup里的两台主机“Peter”和“Sai”。
图五:在Nautilus窗口里查询Windows主机
双击其中的某台Windows主机图标,即可看到该主机的共享文件夹。这样所看到的和Windows下的网络邻居几乎一样,如图6所示。
图六:查看主机Peter下的共享目录
由于Nautilus本身就是Red Hat的文件管理器,所以可以任意往Windows共享目录里拷贝文件、删除文件、创建目录等。不过Nautilus还是有不少缺点的,例如对中文支持不是很好,不能正确显示中文的文件名,不支持直接挂载Windows共享目录,并且在KDE环境下不能使用等。
第三方的网络邻居
在KDE下要实现网络邻居,可以采用第三方的工具软件xfsamba。xfsamba的最新版本是0.47版,只有1MB多,可以到http://linux.imp.mx/xfsamba/archive/下载它的RPM版本。这里要注意的是,xfsamba是以Samba为基础的,所以必须事先安装好Samba软件包。假设软件包保存在/tmp目录下,则可以使用如下命令来安装:
安装完毕后,在终端窗口输入xfsamba回车即可打开该程序窗口。为了方便启动该程序,可以在桌面上建立一个快捷方式:
◆ 用鼠标右键单击KDE桌面空白处,然后依次单击弹出选单上的新建→应用程序链接选单项,即可打开连接属性对话框。
◆ 在该对话框的常规标签页,可以指定该链接的名称(例如xfsamba)、图标等;然后切换到权限标签页,选中全部“读取”、“写入”、“执行”复选框。在“执行”标签页,可以指定xfsamba程序的路径(/usr/bin/xfsamba),如图7所示。
图七:创建快捷方式
作为一款第三方的工具软件,xfsamba的功能非常强大,不但可以对Windows共享资源进行查看、复制、粘贴、删除等操作,而且还可以直接将Windows共享目录映射为本地目录。更重要的是,0.47版本的xfsamba完全是中文界面。
1.文件拖放功能
利用xfsamba可以很方便地在共享目录和本地目录之间实现文件拖放。不过,此处最好使用xfsamba自带的本地文件浏览器xftree。单击xfsamba工具栏上的“xftree”按钮,即可打开本地文件浏览器,如图8所示。
图八: xfsamba可以很方便地在共享目录和本地目录之间实现文件拖放
2.挂载共享目录
xfsamba可以很方便地把共享目录挂载到本地文件系统。只需选中Windows主机上的某个共享目录,然后用鼠标依次单击“工具”选单→“Mount remote share”选单项,即可打开一个对话框。xfsamba会自动将远程共享挂载到/tmp/xfsamba/RemoteShareName目录下,其中的RemoteShareName代表Windows共享目录的名称,如图9所示。
图九:挂载共享目录
xfsamba尽管有许多优点,但和Nautilus一样对中文文件名支持不好。如果企图访问Windows主机上的中文文件夹,xfsamba会提示为“NT_STATUS_BAD_NETWORK_NAME”。当然总的来说是瑕不掩瑜,希望下一版本的xfsamba能够解决这个问题。