首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在 Windows 世界中使用 Linux-2

在 Windows 世界中使用 Linux-2

使用 sudo 按需挂载 Windows 共享如果只希望偶尔挂载一个共享,可将 noauto 选项添加到上一节示例中所示的挂载选项列表中。此选项可在每次重新启动系统时避免自动挂载指定的 Windows 共享。然后,在希望访问该共享中的文件时,必须从命令行挂载该共享。
必须始终以 root 用户身份执行 mount 命令,这通常意味着任何希望挂载该共享的人都必须知道该系统上的 root 密码。如果不希望在每次重新启动系统时自动挂载该共享,且希望限制需要知道 root 密码的用户(或只是限制必须使用该命令的次数),则可使用 sudo 命令使一个普通用户能够挂载该共享。为此,使用 visudo 命令编辑 /etc/sudoers 文件,这会将一个以下格式的条目添加到 /etc/sudoers 文件的末尾。
1
wvh  ALL=/bin/mount /mnt/PUBLIC, /bin/umount /mnt/PUBLIC




此条目使用户 wvh 能够使用 sudo 命令执行 /bin/mount /mnt/PUBLIC 和 /bin/umount /mnt/PUBLIC 命令,但不允许该用户使用 mount 或 umount 命令挂载或卸载任何其他文件系统。如果希望给定系统上的所有用户都能够挂载或卸载 /mnt/PUBLIC 共享,可将用户名 wvh 替换为一般性的 %users 表达式。在此情况下,请确保用户希望更新的文件可由关联的 /etc/fstab 条目中的 anongid 所标识的组写入数据,并且所有用户都属于这个组。
备注:另一种挂载 Windows 共享的方法是使用一个支持 CIFS 文件系统的 File system in User Space (FUSE) 程序包。smbnetfs 和 fusesmb 程序包很流行,但已很久未更新了,且需要大量配置才能使它们正常工作。(参见  获取这些项目的链接。)
在 Linux 系统上使用 Windows 文本文件大部分人都认为文本文件在每个计算机系统上都是一种标准的文件类型,因此可安全地用于配置文件、可在任何操作系统上读取的便笺等。不幸的是,情况不是这样的。尽管 Windows 和 Linux 系统上的文本文件使用了相同的字符集,但用于标识文本的行尾的字符却不同。Windows 和 DOS 系统使用两个字符来标识文本的行尾:一个回车字符 (Ctrl-M) 和一个换行符 (Ctrl-J)。Linux 和所有类似 UNIX 的系统都使用单个字符来标识文本的行尾:换行符。如果使用 Linux 实用程序打开在 Windows 系统上创建的文本文件,将会在每行末尾看到一个 Ctrl-M 字符,该字符常常显示为 ^M 或 \r。这个额外的字符可能会让需要读取这类文件的 Linux 实用程序难以理解。
Linux 提供了两个命令来自动更改文本文件中的行结束符。dos2unix 命令(位于大部分 Linux 发行版中都提供的一个具有相同名称的程序包中)自动转换在 Windows(或 DOS)中创建的文本文件,以使用 Linux 和 UNIX 约定来标记文本的行尾,这会删除所有的 Ctrl-M 字符。一个同名的程序包中有一个等效的程序 unix2dos,可将 Linux 和 UNIX 文本文件转换为 Windows 格式的文本文件。
如果您是 Emacs 文本编辑器的爱好者,可以将  中所示的 Emacs 命令添加到 Emacs 配置文件 (~/.emacs) 中。然后就能够执行 dos-file、mac-file 和 unix-file 命令,将一个文本缓冲区的上下文转换为使用该命令指定的文本文件格式。
清单 4. 更改文本文件类型的 Emacs 命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
;
; Functions for changing buffer modes
;
(defun dos-file ()
   "Change the current buffer to Latin 1 with DOS line-ends."
   (interactive)
   (set-buffer-file-coding-system 'iso-latin-1-dos t))

(defun mac-file ()
   "Change the current buffer to Latin 1 with Mac line-ends."
   (interactive)
   (set-buffer-file-coding-system 'iso-latin-1-mac t))

(defun unix-file ()
   "Change the current buffer to Latin 1 with Unix line-ends."
   (interactive)
   (set-buffer-file-coding-system 'iso-latin-1-unix t))




备注:清单 4 中所示的样例 Emacs 命令假设您使用的是 Latin 1 字符集。如果在文本文件中使用另一个字符集,则将需要修改这些命令以反映该字符集。
使用针对 Windows 设计的网络设备尽管 Linux 提供了大多数人需要在其计算机上使用的软件,但对于任何操作系统而言,兼容最新的网络硬件都是一个问题。现在的 Linux 发行版包含大量网络硬件的设备驱动程序,但针对新网络协议和相关硬件的 Linux 驱动程序能够可能跟不上形势,尤其是在无线领域。如果 Linux 机器在系统启动时无法识别或使用新的网络设备,则表明该设备的驱动程序不可用,或者这些设备驱动程序需要的一些其他资源(比如特定于硬件的固件)不可用。在这些情况下,友好的邻域搜索引擎始终应是您首要考虑的办法:具有同一个新发布的硬件的其他人可能已能在 Linux 系统上正确运行这个搜索引擎。(参见  获取多个站点的链接,这些站点提供了 Linux 支持的硬件信息和人们使用该硬件的经验。)
如果无法为新发布的网络硬件找到内置的 Linux 驱动程序,大多数新硬件都附带了一张 CD,其中包含使支持的操作系统能够高效使用该硬件的特殊驱动程序。不幸的是,这些驱动程序 CD 很少包含专为 Linux 系统设计的驱动程序。在一些情况下,特定硬件的 Linux 驱动程序可从硬件供应商的网站获得。在此情况下,供应商通常还会提供安装和配置说明。许多硬件供应商还提供了在线论坛,可在其中提出问题,或讨论您遇到的任何安装或配置问题。
如果您正在使用或试用的 Linux 发行版不支持您的桌面或笔记本电脑上的特定网络硬件,而且供应商未提供 Linux 驱动程序,也不是毫无办法。NDISwrapper 程序包使您能够在 Linux 系统上使用大部分 Windows XP 网络设备驱动程序。网络驱动程序接口规范 (Network Driver Interface Specification, NDIS) 是一个针对网络接口卡 (NIC) 的标准应用程序编程接口。NDISwrapper 程序包不支持 NDIS (V6),这是 Windows 8、Windows 7 和 Windows Vista 使用的驱动程序格式,所以您只能将 NDISwrapper 程序包用于 Windows XP 驱动程序。如果使用 64 位 Linux 系统,则只能使用 64 位 Windows XP 驱动程序;32 位 Windows XP 驱动程序不适用于 64 位系统。
在系统上安装 ndiswrapper-utils 程序包(在一些 Linux 发行版上,可能还需要安装 ndiswrapper-common 程序包)后,可执行以下步骤来安装和使用 Windows XP NDIS 驱动程序:
  • 检查是否已加载相同硬件的任何 Linux 驱动程序,如果已加载,则使用 rmmod DRIVER 命令卸载。
  • 找到想要使用的驱动程序的 .inf 和 .sys 文件。如果您的硬件的 Windows XP 驱动程序已在一个自解压 .exe 文件中提供,通常可使用 Linux unzip 实用程序来提取。如果在一个 .cab 文件中提供,则可使用 Linux cabextract 实用程序提取。如果在 InstallShield 文件中提供,可使用 unshield 实用程序提取。(在大部分 Linux 发行版中,所有这些实用程序都在存储库中的同名程序包中。)在最糟糕的情况下,可将驱动程序安装在 Windows 计算机上,然后再将它们复制到 Linux 系统上。
  • 以 root 用户身份使用以下这样的命令或使用 sudo 命令安装驱动程序:
    1
    ndiswrapper -i DRIVER.inf

  • 以 root 用户身份运行以下命令,或使用 sudo 命令验证 Windows 驱动程序是否已正确安装:
    1
    ndiswrapper -l

  • 以 root 用户身份运行以下命令,或使用 sudo 命令加载 NDISwrapper 可加载内核模块:
    1
    modprobe ndiswrapper

  • 以 root 用户身份运行以下命令,或使用 sudo 命令,为您的网络接口创建一个模块配置文件别名:
    1
    ndiswrapper -m




    此条目将类似于以下形式:
    1
    alias wlan0 ndiswrapper




    确保与 ndiswrapper 内核模块关联的以太网接口名称与您希望将其用于的接口匹配,如 ifconfig -a 命令的输出所示。
此刻,新网络硬件应可从 Linux 系统中看到,而且您应能够使用标准的 Linux 网络配置实用程序(比如 /sbin/ifconfig),或者配置和使用关联的 NIC。
如果希望为也拥有原生 Linux 驱动程序的硬件使用 ndiswrapper 内核模块和 Windows 驱动程序,则将需要创建一个名称类似于 /etc/modprobe.d/blacklist-DRIVER.conf 的文件,其中包含一个类似 blacklist DRIVER 的条目,以确保您下次重新启动系统时不会加载 Linux 驱动程序。
如果偏爱图形应用程序的简单性,则有多个选项可用于 NDISwrapper 程序包。 显示了 ndisgtk 应用程序,可从同名的程序包中将该应用程序安装到系统上。
图 1. 使用 ndisgtk 添加一个 Windows 驱动程序NDISwrapper 程序包不但有用,而且给人印象深刻。即使 Linux 为您的硬件提供了原生驱动程序,您也可能会发现,使用 Windows 驱动程序可提供比使用内置的 Linux 等效驱动程序更高的性能。
结束语Linux 是一个免费且强大的操作系统,而且(目前)还易于使用。在桌面或便携式电脑上使用 Linux,可带来比 Windows 等操作系统高得多的性能,这也是为旧计算机注入新活力的一种不错的方式。但是,与基于 Windows 的服务器、某些类型的 Windows 文件或面向 Windows 的网络硬件互操作,这仍然是许多企业和家庭环境的需求。Linux 提供了广泛的软件和技术选择,支持您与这些系统和硬件互操作,从而从桌面 Linux 系统为您提供了两全其美的办法。
返回列表