Linux与Windows喜结连理

发表于:2007-06-21来源:作者:点击数: 标签:
作为一个新生事物,Linux吸引了不少眼球,但是它能否快捷、方便地与 Windows 资源共享,是一个很重要的问题。大家知道,Windows之间可以利用“ 网络 邻居”来实现资源共享,而Linux之间可以使用NFS来实现资源共享。那么,Linux与Windows之间呢? Linux可以通

   


  

作为一个新生事物,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软件包,可以在终端窗口执行以下命令进行查询:

$ rpm -qa | grep samba


  如果查询结果出现如图1所示的三个软件包,则表示已经安装Samba软件包。

Linux与Windows喜结连理

  图一:查询是否安装Samba软件包

  如果没有安装过Samba软件包,则可以插入Red Hat 8.0第二张安装光盘,然后按照下面的步骤进行安装(以KDE环境为例):

  1. 鼠标依次单击主选单→系统设置→“软件包”选单项,将会打开“软件包管理”对话框。

  2. 在该对话框里找到“Windows文件服务器”,确保已经勾选该选项,然后单击对话框底部的“更新”按钮,如图2所示。

  3. 安装Samba软件包。

Linux与Windows喜结连理

  图三:安装Samba软件包

  整个过程非常简单,系统会自动检测软件包之间的依赖性,完全不用操心。

  用命令方式访问Windows

  安装好Samba之后,就可以让它大显身手了。这里先介绍如何用字符命令方式访问Windows共享资源。

  1. 查询Windows主机的共享资源

  查询Windows主机的共享资源可以使用smbclient -L WindowsHostName命令。例如,要查询一台名为Peter的Windows主机上的共享资源,可以在终端窗口输入:

smbclient -L Peter


  然后回车即可。该命令的具体使用方法如图3所示。该命令可以准确地检查出Windows主机的共享文件夹,并且对中文文件名的支持也很好。

Linux与Windows喜结连理

  图三:查询Windows主机的共享资源

  2. 连接Windows主机的共享目录

  我们可以使用“smbclient //WindowsHostName/ShareName”命令,连接Windows主机上的某个共享文件夹。如果该共享文件夹需要用户名和密码,则可以使用“smbclient //WindowsHostName/ShareName -U UserName”命令。例如,要连接Windows主机Peter上的共享目录Share,可以在终端窗口输入:

smbclient //Peter/Share


  然后回车。如果连接成功,即可出现“smb:\>”提示符,如图4所示。在该命令提示符下输入适当的命令,即可对所连接的共享目录进行操作。

Linux与Windows喜结连理

  图四:连接共享目录

  3. 对共享目录进行操作

  Smb支持大约40个命令,可以很方便地对共享目录进行删除、重命名、切换目录等操作。如果要列出共享目录“Share”下的具体内容,可以使用ls命令。要删除其下的test.txt文件,可以使用“del test.txt”命令。在“smb:\>”提示符下输入“help”命令,可以查看smb所支持的命令列表。键入“help 命令名称”可以查看某个命令的简单帮助。

  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”。

Linux与Windows喜结连理

  图五:在Nautilus窗口里查询Windows主机

  双击其中的某台Windows主机图标,即可看到该主机的共享文件夹。这样所看到的和Windows下的网络邻居几乎一样,如图6所示。

Linux与Windows喜结连理

  图六:查看主机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目录下,则可以使用如下命令来安装:

cd /tmp                 
rpm -ivh xfsamba*


  安装完毕后,在终端窗口输入xfsamba回车即可打开该程序窗口。为了方便启动该程序,可以在桌面上建立一个快捷方式:

  ◆ 用鼠标右键单击KDE桌面空白处,然后依次单击弹出选单上的新建→应用程序链接选单项,即可打开连接属性对话框。

  ◆ 在该对话框的常规标签页,可以指定该链接的名称(例如xfsamba)、图标等;然后切换到权限标签页,选中全部“读取”、“写入”、“执行”复选框。在“执行”标签页,可以指定xfsamba程序的路径(/usr/bin/xfsamba),如图7所示。

Linux与Windows喜结连理

  图七:创建快捷方式

  作为一款第三方的工具软件,xfsamba的功能非常强大,不但可以对Windows共享资源进行查看、复制、粘贴、删除等操作,而且还可以直接将Windows共享目录映射为本地目录。更重要的是,0.47版本的xfsamba完全是中文界面。

  1.文件拖放功能

  利用xfsamba可以很方便地在共享目录和本地目录之间实现文件拖放。不过,此处最好使用xfsamba自带的本地文件浏览器xftree。单击xfsamba工具栏上的“xftree”按钮,即可打开本地文件浏览器,如图8所示。

Linux与Windows喜结连理

  图八: xfsamba可以很方便地在共享目录和本地目录之间实现文件拖放

  2.挂载共享目录

  xfsamba可以很方便地把共享目录挂载到本地文件系统。只需选中Windows主机上的某个共享目录,然后用鼠标依次单击“工具”选单→“Mount remote share”选单项,即可打开一个对话框。xfsamba会自动将远程共享挂载到/tmp/xfsamba/RemoteShareName目录下,其中的RemoteShareName代表Windows共享目录的名称,如图9所示。

Linux与Windows喜结连理

  图九:挂载共享目录

  xfsamba尽管有许多优点,但和Nautilus一样对中文文件名支持不好。如果企图访问Windows主机上的中文文件夹,xfsamba会提示为“NT_STATUS_BAD_NETWORK_NAME”。当然总的来说是瑕不掩瑜,希望下一版本的xfsamba能够解决这个问题。

原文转自:http://www.ltesting.net