Linux新手管理员手册

Linux新手管理员手册(第四部分_中)

1. 给新硬盘分区。

例如, 如果我的新硬盘是在第二个 IDE 接口的从驱动器(可能是第四个IDE 驱动器),我能使用:

cfdisk /dev/hdd

或更老的(且标准的)工具:

fdisk /dev/hdd

如果你的驱动器不是 "hdd" ,按实际驱动器调整以上命令。

hda – 第一个 IDE 接口的主驱动器 (整个磁盘)
hdb --第一个 IDE 接口的从驱动器
hdc --第二个 IDE 接口的主驱动器
hdd --第二个 IDE 接口的从驱动器
sda -- 第一个SCSI 驱动器(整个磁盘)
sdb --第二个SCSI 驱动器(整个磁盘)
.
sdp --第十六个SCSI 驱动器(整个磁盘)

对于其它磁盘,参考 /usr/src/Linux/Documentation/devices.txt.
绝大多数情况下, 我让我的Linux 分区是ext2 类型("Linux")。
分区有些技巧—如果你从未做过, 读man fdisk 和 man cfdisk。 删除一个分区及其中的所有数据很容易。 确信你知道你正使用哪一个磁盘。
直到我写入新的分区布局,fdisk 或 cfdisk 才会对硬盘做出改变。所以如果我出错,这个新布局不会写入就退出了。 仅当所有步骤完全结束, 新布局才写入 。

2. 格式化每个分区.

例如, 为了格式化第一个分区, 同时检查损伤的区块(-c), 我输入:
mkfs -c -t ext2 /dev/hdd1

3. 测试新分区.

手动挂载新分区(挂载目录必须存在且为空)。复制一些文件到每个分区。 随机查看/编辑一组文件。然后全部删除。

4. 复制数据.

选项 –仅当你想把旧分区的数据移到新分区。 进入单用户模式 (init 1)。
手动挂载新分区。 复制旧分区的数据到新分区。 小心旧数据。 你可能不想在出错时失去, 所以我还不想删除它—我重新命名了顶层目录。 例如:
cp -R /usr/local/ /mnt/hdd1/
mv /usr/local/ /usr/local.old.backup_of_2001-04-21

5. 编辑 /etc/fstab 文件.

修改该文件以反映你的新文件系统的布局。 很可能, 给新分区插入挂载点或改变任何旧的挂载点。例如, 如果从/usr/local 所在分区移开该目录,我需要增加下面一行:
/dev/hdd1 /usr/local ext2 defaults 1 2

6. 重新启动并测试.

重新启动是为了卸载旧的, 挂载新的挂载点。 例如:
umount /usr/local
mount -a
但是重新启动可能会对新布局进行更严格的测试。

7. 清除旧数据.

几天后, 当我确信每一部分都能正常工作, 我删除旧的文件(如: /usr/local.old.backup_of_2001-04-21 目录)。

4.2.13 交换分区 SWAP

交换分区是计算机物理内存的扩展。很可能,你在RedHat 初始设置时创建了一个交换分区。 你能使用以下命令行证实你的系统中可用交换空间的大小:

cat /proc/meminfo

通常推荐一台计算机应当有: 至少4 MB 交换空间, 对于一个仅运行命令行的系统需至少32 MB 总内存(物理+交换),对于一个运行X-windows 的系统至少 64 MB 总内存(物理+交换) ,并且在系统中交换空间至少是物理内存的1.5 倍。 如果这太复杂, 你可以让交换空间是你的物理内存的2 倍,但不少于64 MB。如果你需要改变你的交换分区大小, 这里是一些基本方法。

4.2.13.1 交换分区

你能够拥有几个交换分区。[旧的Linux 内核限制了每个交换分区的大小,大致可达到124 MB, 但linux kernels 2.2.x 以上版本取消了该限制] 这里是创建和启用一个交换分区的步骤:

使用fdisk 创建一个适当大小的分区 (分区类型 82, "Linux swap")。

格式化分区, 检查损坏的区块, 例如:
mkswap -c /dev/hda4
你要用你自己的分区名字代替/dev/hda4。 因为我没有指定分区大小, 系统自动监测。

启用交换分区, 例如:
swapon /dev/hda4
为了让该交换分区在启动时能自动启用,你得在/etc/fstab 文件中包含适当的入口, 例如/etc/fstab, for example:
/dev/hda4 swap swap defaults 0 0

如果你需要禁用该交换分区, 你(作为超级用户)使用:
swapoff /dev/hda4

4.2.13.2 交换文件

交换文件通常比交换分区慢,所以这不是永久推荐的交换方法。可是, 如果你 临时需要更多的交换空间,创建一个交换文件能被快速安装。 你能有最多可达8 个的交换文件, 每个文件最大可达16 MB。 这里是产生交换文件的步骤:

- 创建一个指明了大小的交换文件:
dd if=/dev/zero of=/swapfile bs=1024 count=8192

这物理上创建了交换文件 /swapfile, 块大小 1024 字节, 文件包含8192 个块, 总大小大约8 MB. [ dd 命令复制了文件。 在以上例子中, 输入文件 (if)是 /dev/zero,输出文件 (of)是/swapfile 。你不能使用 cp (copy)命令来复制文件,因为交换文件在硬盘上是物理连续的]。

- 用下面的命令设置文件:
mkswap /swapfile 8192

- 发出下面命令把缓存区的内容强制写入硬盘:
sync

- 启用交换文件用:
swapon /swapfile

当你用完交换文件, 你关闭并移开它
swapoff /swapfile
rm /swapfile

你也可以参看由Linus Torvalds 本人写的资料:
man mkswap

4.3 使用X-Windows 工作

4.3.1 怎样切换文本和图形控制台?

任何时候,按下组合键<CTRL><ALT><F1>系统将切换到第一文本控制台,<CTRL><ALT><F2>系统切换到第二文本控制台,<CTRL><ALT><F3>将会使系统切换到第三文本控制台,等等,一直到<CTRL><ALT><F6>,总共可以切换六个文本控制台。当有图形用户界面(以下简称GUI,Graphical User Interface)控制台运行时,按下组合键<CTRL><ALT><F7>将会切换到第一GUI 控制台, <CTRL><ALT><F8>会切换到第二GUI 控制台,如此类推,直到<CTRL><ALT><F11>,共计五个GUI 控制台。第十二个控制台即可以作为第六GUI 控制台(RedHat 6.1 版本中)亦可以作为显示内核信息的界面(Mandrake 7.0 版本中)。一般情况下,没有或者只有一个GUI 控制台运行。
<CTRL><ALT><F1>表示:“按下<CTRL>键和<ALT>键,然后按下<F1>键;释放<F1>键,然后再释放<CTRL>键和<ALT>键。”

因此,当使用一台Linux 系统的计算机时,可以有多个控制台同时运行,我们可以通过以上描述的热键在多个控制台之间切换。使用Linux 系统,必须对每一个控制台登录,-可以作为同一个用户多次登录,也可以作为不同用户登录-,每一个登陆的对话都是独立的,它们之间应该是互不影响的(除非你两次作为同一个用户登录)。第一到第六个控制台是基于文本方式的,我们称之为command –line terminal(行命令界面)或者称为tty1, tty2,.tty6(惯用语,tty 来源于teletypewriter”)。第七个及以后的控制台都是图形界面(GUI)控制台,所有的GUI 控制台都是本地控制台,-所以基于Linux 系统的计算机都是真正意义上的多用户多任务系统。

我们可以通过网络可以远程联络Linux 计算机。当计算机联网时,我们可以在服务器端远程运行一个程序,将显示结果发送到本地终端控制台上,此时本地的终端可以是基于Linux 系统的控制台, 也可以是基于非Linux 系统的控制台。当一个程序不能运行于MS Windows 服务器,而能运行于Linux 服务器时,这种本地/远程运行方式对我们来说是十分有利的。 一个全屏文本控制台可以自我结束,而在图形(GUI)模式下我们也可以根据需要创建一个伪终止,我们称之为pts0,pts1,...。

在一个文本终端上我们可以使用以下命令来为自己的终端命名:
tty
我可以使用以下的命令来决定我的计算机上正在本地使用哪个阶段操作。
uname -a
uname 这个命令的名字起源于“UNIX name”。这个命令将显示出操作系统的名字,服务器的名字,操作系统核心的版本号,以及内核的编辑时间。 可以在文本方式下输入“exit”来关闭任何文本终端。

Linux 的GUI 控制台和你使用过的其他GUI 界面非常相似,例如,MS Windows,但是,他们还有很多的不同点。我很喜欢用多“桌面”方式来管理应用程序――KDE 默认提供4 个桌面(这些桌面可以被自定义为1 到16)。我运行很多应用程序,从来不用关闭它们,所以应用这种管理方式我可以在桌面2 中保持一个因特网连接应用(如Netscape,knode newsreader,和licq),在桌面3 中运行abiword,staroffice 和一个文本编辑程序,在桌面4 中运行游戏以及征服者和它的帮助文档,而让桌面1 来运行一些偶然的事务。在同一个桌面中,使用者可以通过点击“K-paneL”的标签条或者使用<CTRL><TAB>组合键来切换不同的桌面。我们也可以通过点击应用程序窗口,或者在“应用程序平台”中点击相应的图标,亦或者使用组合键<ALT><TAB>来切换不同的应用程序。使用组合键<CTRL><ESC>将会显示一份当前的主机上运行的应用程序的列表。
4.3.2 我怎样在X-server 上安装显示卡、监视器以及鼠标?

一般来说这些设备应该在你初始化安装时进行设置,除非你跳过了这些步骤。如果现在安装这些设备,也许你要尝试使用以下这些文本模式配置器中的一个来进行启动配置。
XConfigurator
XF86setup
Xconf

在RedHat 中,你也可以运行setup,并且从那里访问XConfigurator。

在Linux 下安装配置X-Windows,你也许需要了解你的计算机硬件。你也许需要找到你的监视器的手册,查找你的监视器支持的最大同步扫描频率(场扫描和行扫描)。计算机启动时将会提供给你你的显卡类型及显存容量的信息。同时执行这些命令将会提供给你一些十分有用的信息。
lspci
superprobe

阅读鼠标底座的标签,你将会得到鼠标类型的信息。下次你购买鼠标时,请购买三键“Linuxready”(Linux 兼容)Logitech(罗技)或者近似的鼠标(所有的三键鼠标都适用于Linux)。

一个标准的鼠标总会给我们带来方便--我从来不会购买一个模样奇怪的鼠标,因为那意味着一个专用的驱动或者一个痛苦的安装或者设置过程。

当在测试X-Windows 时,如果屏幕出现空白,奇怪的线或者明显的不可操作现象,使用组合键<CTRL><ALT><BkSpace>快速关闭计算机,重新检查你的监视器的同步频率。运行在过高的同步频率下会损坏你的监视器。

如果你真的有某些问题,请首先安装一个标准的VGA 模式(640X480 像素,16 位或者256 位颜色)。你可以在明白你的系统如何工作后,再做细调,或者可以在Linux 下寻找某些有效的配置工具的帮助。

在安装配置好Linux 后,你可以使用以下命令来手动启动Linux。
Startx&
这个“&”将会使你的命令在后台中运行,所以你的文本终端不会被阻断。你也可以使用:
init 5
这个命令将会是你的系统切换到第五运行状态下,即“图形界面运行状态”。若要在系统重启动时自动启动(用户选择),请阅读下几段内容。

4.3.3 我能有一个GUI 登陆提示符吗?

需要在系统启动时自动启动X-sever 并且显示一个图形登录提示符,你只需要修改/ets/inittab 文件中的一个字符。这个文件对某些设置规定如下:
id:3:initdefault:
改为
id:5:initdefault:
这个设定将引导linux 内核的第5 运行模式,我们称之为X-Windows。不同的运行模式定义在文件/etx/inittab 解释:

0 - 挂起(不要将此项作为默认设定)
1 - 单用户模式
2 - 多用户模式,不带NFS(与选项3相同,不支持网络)
3 - 标准的多用户模式
4 - 未定义
5 - X11
6 - 重启动(不要将此项作为默认设定)

你可以使用行命令来更改启动方式,例如,这个命令(已经作为根命令执行):
init 6

这个命令将重新启动你的计算机,当然下一个命令将会使你的计算机切换到单用户模式:
init 1

为了知道我当前处于什么运行模式,我使用命令runlevel。
为了细调我的Linux 登录屏幕的外观,我使用命令(在Linux 下):
kcontrol &
选择“系统”-“登陆管理器”。我喜欢的登陆屏幕是一个模拟的钟表,大字体,上一词的登录者名称已经输入,光标处于输入登录密码的对话框中。

4.3.4 我怎么安装KDE?(例如,在RedHat5.2)

这部分只是针对那些使用老版本感兴趣的用户。

由于RedHat5.2 发行时,KDE 使用的库文件的授权问题还没有解决,所以RedHat5.2 版没有默认安装KDE。另外,KDE 是一个非常好的GUI 界面,现在这些授权问题已经解决,RedHat6.0 已经集成成了KDE(和精心设计的Gnome 一起)。当然,KDE 的代码已经存在于RedHat5.2 的光盘中,你只是需要自己安装。(如果你没有安装光盘,你可以从KDE 的网站上下载KDE 代码。)

首先执行以下命令来检查你的X-sever 工作情况:
xinit
[ X-sever 是X-Windows 的精简,没有“Windows 管理器”。你可以在这里执行你的XWindows 程序,只要在X-terminal 窗口输入程序名即可(在程序名前面输入./或者全路径)。但是在这里你不能进行诸如调整窗口的大小和添加光标等功能。] 你可以在X-terminal 窗口中输入exit 命令来关闭X-sever,或者按组合键<CTRL><ALT><BkSpace> 来关闭X-Windows 服务。(后一种方法会将你的机器挂起-在这种情况下不要重新启动计算机)。 如果你的X-sever 无法工作,请看下一个解决方法。

现在,从根开始登录,放入RH5.2 光盘:
mount /mnt/cdrom
跳到以下目录:
cd /mnt/cdrom/kde/distribUtion/RedHat/i386/binar/
在将如长路径或者文件名时使用自动完成(按TAB 键)是非常有用的。 阅读README 文件:
cat readme-2rh51-rpms|more
使用“RedHat 包管理器”来安装一些必要的文件包:
rpm -iv packagename

这个包文件是以.rpm 作为后缀。首先安装qt 库文件,然后是KDE 支持文件,再是KDE 库文件,最后是KDE 基本文件。如果你的安装顺序错误,从属关系检查将会出现错误,安装包被停止安装(rpm 将会发布一个错误信息)。没有关系,重新安装需要的文件包,并持续装下去。在安装好KDE 基本文件后,你也许要为KDE 安装其他的文件包(应用程序,管理,网络,游戏,图形,多媒体)-他们都不很大,所以你可以确认全部安装。最后确认你已经安装了全部的组件,输入:
rpm -ivh *.rpm
vh 操作提供了一些额外的消息。你将会得到“文件包已经安装”的消息,如果还有更多的消息你可以滚动浏览,你可以使用组合键<Shift><pgup>来上翻。如果你不喜欢这种行命令形式的rpm 包管理器,你可以使用GUI 前台来安装相同的包,称之为glint(仅RH5.2 有效)。在X-Windows 终端输入“glint”即可。

现在,在你的系统中KDE 已经成为你的默认X-Windows 管理器。在用户目录中将会建立一个.XcLients 文件:
pico .Xclients
这个文件里只包含一行内容:
/opt/kde/bin/startkde
输入此行然后保存文件(调整此行内容是必需的,以保证startkde 文件的正确定位)。现在,是此文件对所有用户有效(可以执行)。
chmod a+x .Xclients
若许可被改变请检查:
ls -l .Xclients
[ 以一个点为开始的文件将不会被一般的Ls 命令显示,就如Dos 下的隐含文件,你必须使用他的名字或者ls -a ]
如果你生成的文件是根文件而不是用户文件,那么为正确的用户改变文件的拥有者和文件组:
chown user_name .Xclients
chgrp user_name .Xclients
现在,输入startx 将会启动以KDE 作为窗口管理器的X-sever。

4.3.5 我怎么将默认桌面改变成KDE(如Gnome 以及其他类型的KDE)?

在我的用户目录里,我使用我最喜爱的pico 编辑器建立(如果存在,编辑)以下文件,.xsession:
pico .xsession
[请注意文件名前面的点,文件名前带点的文件是“不可视的”。]在我的RedHat6.2 系统中,这个文件包含一行:
exec .xsession
KDE 的确像是我们度身定做的,尽管对某些老的硬件来讲是一个很重的负担或者是过载。这是在我的RedHat 或者Mandrake 安装光盘中的视窗管理器列表。
startkde (在某些系统中运行KDE,命令也许就是KDE)
gnome-session (运行Gnome)
xfce (运行Xfce,这是我最爱的“轻量级”桌面)
afterstep (运行afterstep)
anotherlevel (运行anotherlevel)
fvwm2 (运行fvwm2)
fvwm (运行fvwm)

当然,这种交互的视窗管理器只会在你安装到你的系统中后才会运行。以上的视窗管理器在RH/Mandrake 光盘中都是可用的,只要你决定安装它们。我只会使用KDE,尽管其他的管理器更小或更快,Gnome 是一个著名的X-Windows 软件,它被称为比KDE 更先进更漂亮,但是他还是有很多的问题,所以除非你不介意时常碰到一些小问题,我不建议你使用它。RH6.x 包括了所有的主要的X-Windows 系统,即Gnome 和KDE。

4.3.6 我能够同时运行多个Linux 阶段作业吗?

当然可以。当你在系统中运行第一个startx 命令时,此命令在默认的第0 号显示区中打开了第一个X-Session。第二个X-Session 必须在不同的显示区打开。例如,此命令将会在1 号显示区中打开第二个X-Session:
startx -- :1
你最多可以拥有6 个打开的X-Session,使用<CTRL><ALT><F7>切换回第0 号显示区。<CTRL><ALT><F8>切换到第二屏,等等,直到<CTRL><ALT><F12>:。如果需要了解更多的信息请try man。

类似的情况,你也可以打开一个不带窗口管理器空的X-server,下面这个命令将会在第二显示区打开一个此类程序。
xinit - :2
在这个基本的X-display 之上,我可以使用命令运行不同的窗口管理器(这样就会有两个完全不同的窗口管理器在同时运行)。在X-terminal 上输入以下这些命令完成这个操作(阅读先前的答案可以获得更多的细节):
startkde
gnome-session
xfce
afterstep
anotherlevel
fvwm2
fvwm

4.3.7 在不关闭我的Linux 阶段作业的前提下可以开启第二个GUI 登录提示符吗

在RedHat 系统中,在不同的本地控制台中激活多个当前的GUI 登录(RedHat 中使用gdm 程序作为图形登录界面),我需要编辑以下文件:/etc/X11/gdm.gdm.conf。通过在文件的底部输入以下的内容,我激活了4 个终端热键从<CTRL><ALT><F7>到<CTRL><ALT><F10>。
[servers]
3=/usr/bin/X11/X vt10
2=/usr/bin/X11/X vt9
1=/usr/bin/X11/X vt8
0=/usr/bin/X11/X vt7

拥有四个GUI 界面,使我在一台计算机上除了运行KDE 和GNOME 之外还可以同时拥有两个空闲的GUI 界面,所以我的姐姐即使没有我的屏幕保护密码也可以登录计算机。 在Mandrake 中(Mandrake 使用KDE 作为缺省得图形登录界面),在不同的本地控制台上激活多个当前的GUI 登录界面,我必须修改以下两个文件:/etc/X11/xdm.Xservers 在这个文件中添加以下内容:
:0 local /usr/X11R6/bin/X : 0
:1 local /usr/X11R6/bin/X : 1
:1 local /usr/X11R6/bin/X : 1

另外一个文件是/etc/X11/xdm/xdm-confiG 在这个文件中将所有针对显示0 到显示1 和显示2 设置添加进去:
DisplayManager._0.authorize: true
DisplayManager._1.authorize: true
DisplayManager._2.authorize: true
DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0
DisplayManager._0.startup: /etc/X11/xdm/GiveConsole
DisplayManager._0.reset: /etc/X11/xdm/TakeConsole
DisplayManager._1.setup: /etc/X11/xdm/Xsetup_0
DisplayManager._1.startup: /etc/X11/xdm/GiveConsole
DisplayManager._1.reset: /etc/X11/xdm/TakeConsole
DisplayManager._2.setup: /etc/X11/xdm/Xsetup_0
DisplayManager._2.startup: /etc/X11/xdm/GiveConsole
DisplayManager._2.reset: /etc/X11/xdm/TakeConsole

以上操作可以让我在一台计算机上同时运行Gnome 和KDE 并且仍有三个空闲的GUI 终端。

4.3.8 如何遥控X-Windows?

- 在本地计算机上启动X-server,例如:
xinit
-由X-terminal 授权给远程计算机,允许它在你的本地计算机屏幕上输出显示内容。
xhost name_of_the_remote_server
在确保安全的环境下(比如在家中),我甚至可以使用以下命令给所有的服务器授权在我的屏幕上输出信息(注意,当连接到互联网时请勿使用此命令)。
xhost +

- 登陆远程服务器
在远程服务器上打开一个X-program 将信息直接显示输出在你的本地的机器上,例如,你可以打开一个窗口管理器:
startkde –display local_machine_name : 0.0 &
符号“&”使命令在后台运行,所以你的远程登录窗口对你来说仍然是有效的,0.0 表示 “display 0 server 0”。由于你的Linux 系统计算机可以运行多个X-session 此操作著名当前打开的是第一个显示区的第一屏幕。 如果你的当前终端中的环境变量由DISPLAY 命令给出正确的定位,则可以不必指定 ”- display”操作。例子中的命令格式是我的系统中的默认值,并不是所有的系统都是如此, 你可以使用以下命令,检查你的DISPLAY 变量设置
echo $DISPLAY

- 在结束远程的X-session 后,可以使用以下命令来恢复对X-server 的控制:
xhost -name_of_the_remote_server
或者
xhost -
例如,下面一系列指令将在远程计算机上运行Netscape,我们称之为“marie”,
startx
xhost marie
telenet marie
[登录]
netscape –display hacker : 0.0 &
[执行你的操作]
[退出]
xhost -marie

从原则上讲,你可以在网络上的任何一台计算机运行一个程序,将结果显示在另外一台计算机上(不一定是你正在操作的计算机)。 我在一台地配置的计算机上(486-33 8M 内存)使用X-windowsing 运行了很多大型的应用程序(如 kde, Word Perfect8, 以及Netscape 等),而在正常情况下这些程序在这台计算机上是不能运行的。同样在没有设置nfs mount 的远程计算机上进行文件操作也很方便快捷。

X-windows 是专为网络上远程运行程序设计的操作系统,遥控X-windowing 是一个非常有用的工具,若想获得更多的使用经验,请多作尝试。 你甚至可以在一个远程的Linux(或者任何Unix)系统中运行一个程序,然后重定向显示在一个本地的MS 操作系统的计算机上,前提条件是在MS Windows 中安装了X-windowing。若想得到更多的应用请查询:http://www.linuxworld.com/linuxworld/lw-2000-09/lw-
090legacy_1.html

4.3.9 我如何从MS Windows 分区安装TrueType 字体?

有些应用程序使用TrueType 字体,但是并没有附带TrueType 字体的库文件(或者作为选购产品)。这样你可能需要安装你自己的TrueType 字体。下面介绍一下我是如何手动安装TrueType 字体的。Mandrake 包括了一个GUI 工具传送MS Windows 字体到Linux,以下操作将会非常容易实现这个目标。

0. 从K-menu(KDE 菜单)中选择“system”-“Font Manager”(或者相应的程序)记录下你已经安装的字体。

1. 使用行命令,检查“free type”字体服务程序是否安装:
rpm –q freetype

这个命令使用rpm 包管理器检查“freetype”程序包是否安装。如果此包已经安装,跳到下一步。如果没有安装,那么就要从你的发行版CD 中安装它。我在安装RedHat 时采用全部安装已经将“free type”安装到我的计算机中。

2. 以根用户身份登录,建立一个目录,用来存放TrueType 字体:
cd /usr/X11R6/Lib/X11/fonts
mkdir TrueType

这个目录是由系统配置文件/etc/X11/XF86Config 指定,所以请确认你的安装目录与上述内容一致,如果你想在一个不同的目录下安装此文件,你需要编辑/etc/X11/XF86Config 文件,来调整相应的设置。在我的“默认安装”RedHat 配置中包含以下的一行内容:
FontPath “/usr/X11R6/X11/fonts/TrueType”

3. 以根用户身份登录,将*.ttf 文件由原始位置拷贝到你刚才建立的TrueType Font 目录,我是从我的MS Windows 分区中取得的TrueType 字体,也许你需要一个不同的文件源位置:
cd /usr/X11R6/lib/fonts/TrueType
cp /mnt/dos_hdaL/windows/fonts/my_private_fonts/*.ttf
当然在拷贝任何字体之前,请确认这些字库没有妨害到你的许可授权。

4. 以根用户身份登录,运行以下的命令:
cd /usr/X11R6/lib/X11/fonts/TrueType
ttmkfdir > fonts.dir
cp fonts.dir fonts.scaLe

5. 关闭所有的X-windows 应用程序,然后退出X-windows

6. 以根用户身份登录。重新启动X-font 服务程序(或者重新启动计算机):
/etc/rc.d/init.d/xfs stop
/etc/rc.d/init.d/xfs start

7. 重新登录你的KDE 然后从K 菜单中选择“System”-“Font Manager”来确认字体安装是否正确。 这部分的内容可以参考:http://www.computerbits.com/archive/20001000/linux0010.htm

4.3.10 如何进行拷贝粘贴操作?

在X-windows 下,使用鼠标选中要被复制的文本,切换到复制的目的地址。点击鼠标中键键执行粘贴操作。此方法既快捷又好用。注意在切换过程中请不要取消对选中文本的选择。如果你的鼠标只有两个按键,则同时按下两个键或者只按下有边的按键即可(这取决于你的设置)。这个是标准的X-windows 复制粘贴操作。

许多GUI 应用程序(不是所有的)也支持Mac/MS Windows 风格的复制粘贴操作,选中被复制的文本,使用菜单选项“编辑”中的“复制”(或者从下拉菜单中选择,亦可在鼠标右键的菜单中选择),切换到复制的目的地址,使用菜单选项“编辑”中的“粘贴”。如此操作,对那些使用同类工具的应用程序来说是很方便的。但是,并不是所有的应用程序都可以这样操作(诸如GNOME 和KDE 的应用程序之类)。

最后一个方法是键盘快捷键方式。我可以使用<CTRL><C>复制选中的文本使用<CTRL><v>进行粘贴操作。文本的选中也可以不使用鼠标,使用组合键<CTRL><Shift><RightArrow>亦可完成。

你也可以使用复制粘贴历史,运行klipper 程序(在X-terminal 中,KDE) 这两个复制的方法是两个完全独立的方法,所以它们之间应该是没有影响的。

为了将一个窗口的内容或者把整个屏幕存储成一个图形文件,我使用knapshot 这个软件。或者使用<ALT><PrintScreen>组合键对当前屏幕进行复制并把内容存储在剪贴板中。组合键<CTRL><ALT><PrintScreen>会将整个桌面都复制下来存储在剪贴板中。

若要复制文本控制台的内容(在GUI 控制台之外),我可以在X-terminal 使用以下命令(可能要以根用户身份登录):
cat /dev/vcs1
然后就可以在X 终端中使用鼠标操作我想复制和粘贴的内容了。若要在其他的终端进行复制粘贴操作可以调整“vcs1”中的数值。

如果你运行了gpm 后台程序,那么基于文本的控制台就可以支持鼠标了。通过输入gpm 来检测鼠标。如果鼠标已经经过了正确的设置,它将会运行得很好。(设置鼠标需要运行moUseconfiG 程序。)若要在系统启动时自动运行gpm 并使其驻留在内存中,选择gpm 后台程序在其中使用nt sysv 工具。gpm 是使用方法类似于GUI 复制粘贴操作:选中被复制的文本,将光标移动报复制的目的地址,然后点击鼠标中键(或者是双键亦或者只是单击右键)完成粘贴操作。

4.3.11 我如何使用VNC 来显示和控制一个遥控桌面?

(VNC= Virtual Networking Computing 虚拟网络计算机)。一个十分有用的应用程序。VNC 是一个多平台的工具,它允许我们通过标准的网络连接来显示一个遥控的图形桌面。例如,我可以通过VNC 在MS Windows PC 上遥控楼下的Linux 服务器的X-windows 系统,或者使用其他的途径。VNC 甚至可以运行在一个56K 的调制解调器接入的网络,这种接入方法只能够用来作娱乐使用或者在紧急情况下(相对于正常的网络连接这种接入实在是太慢了)。

最近,Mandrake 和RedHat 将在正式发行的光盘上包括VNC 服务。至于你所下载的MS Windows 系统是否支持这项服务请在以下网址下载更多的信息和详情:
http://www.uk.research.att.com/vnc/
在Linux 中,VNC 包括以下四各命令:vncserver,vncviewer,vncpasswd,和vncconnect。大多数情况下我只需要其中的两个命令:vncserver 和vncviewer。下面对这些命令详细描述:
vncserver
此服务程序必须在在主(或遥控)计算机上运行。你只能作为使用者(不需要根用户身份)使用此项服务。
vncviewer
本地应用程序,用于远程接入运行vncserver 的计算机并显示其环境。你需要知道远程计算机的IP 地址和vncserver 设定的密码。
vncpasswd
vncserver 的密码设置工具。vncserver 服务程序没有设置密码将不能运行(好习惯)。如果你没有设置,运行vncserver 时它会提示你输入一个密码。所以,一般我不会单独运行这个命令来设置密码。
vncconnect
告诉vncserver 连接到远程一个运行vncviewer 的计算机的IP 和端口号。这样我就可以避免给其他人一个接入的密码。
Xvnc
一个vnc“主控”程序,一般来书不需要直接运行。(vncserver 和vncviewer 实际上是Xvnc 的脚本)
查找所有可用的选项,运行:
Xvnc --help
出于安全的考虑,一般不建议直接以超级用户帐号运行vncserver 程序。如果你需要超级用户的环境,请以一般用户登录后再使用su 命令登录到超级用户帐号。

两个典型的例子如下:

例子1:在Windows 计算机上,我可以显示在远端的Linux 服务器上的X 窗口环境。

按如下步骤:
[ 在Windows 的机器上,启动DOS 终端输入以下命令 ]
telnet my_linux_server_name
[ 在Linux 服务器上用你的用户帐号登录,然后输入命令 ]
vncserver
[ 输入一个比较好的密码当系统提示输入密码时, 我的密码是 “357+Simon&Garfunkel”]
[ 再次输入相同密码确认 ]
[ 注意观察屏幕输出信息,看vnc 服务在哪一个屏幕窗口运行,我的是“4” ]
[ 在Windows 机器上,从“开始”->“程序”->“VNC”->运行“vnc viewer” ]
[ 在显示窗口里,输入远端Linux 机器的ip 地址和对应的屏幕窗口号,如下所示 ]
my_linux_server_ip_address:4
[ 在接下来出现的密码输入框里,输入密码 ]
357+Simon&Garfunkel
[ 你应该可以看到一个X-Windows 的窗口显示在Windows 的桌面上 ]
[ 就像平时你在X-Windows 的环境下执行你的操作 ]
[ 完成之后,切换到你的DOS 环境下的telnet 会话进程,输入以下两条命令 ]
vncserver – kill :4
logout

例子2:在Linux 的X 窗口环境下,我可以显示和远程控制MS-Windows 的计算机屏幕。但愿没有人正在使用那一台计算机,否则他会看到我在移动他的鼠标光标。

按如下步骤:
[ 走到Windows 的计算机上,因为你可能没有办法用telnet 来访问它 ]
[ 从“开始”菜单,选择“程序”-> “VNC” -> 运行“WIN VNC (App 模式)”]
[ 从 “SystemTray”,用鼠标右击vnc 的图标,选择“Properties”]
[ 在对话框出现后,输入密码。把对应的屏幕号码设为“auto”]
[ 走回你的Linux 服务器,开启桌面]
[ 启动X 终端输入命令]
vncviewer ms_windows_server_name_or_ip
[ 当提示出现时,输入密码 ]
[ 现在,你应该可以看到MS-Windows 的窗口出现在你的Linux 桌面上了 ]
[ 做你日常的工作 ]
[ 结束的时候,右击System Tray 的VNC 图标,选择“关闭VNC”]
4.4:基本配置

4.4.1 如何设置我的声卡?

试着运行(以root 用户)
sndconfig

除非你有一块非常特殊的声卡,这个程序会工作的很好。在设置过程的最后,是Linus 的声音告诉你他怎样读“Linux”(在RedHat 中,“sndconfig”也可以通过“设置”功能来调用——输入 setup)。

你可能想用命令行的播放器来试一试你的声卡和光驱。放一张音乐CD 到你的光驱,然后输入:
cdplay
如果这样不工作,可能是你没有/dev/cdrom?检查你是否能以root 身份mount 一张数据CD,然后创建/dev/cdrom 设备并将它链接到正确的设备(很可能是/dev/hdb)。例如(以root 用户):
ln –s /dev/hdb /dev/cdrom

如果cdplay 对root 用户工作,但对其他用户不工作,你可能需要给予所有用户对设备文件/dev/cdrom 的读/写许可,检查目录/mnt/cdrom 的许可,或者想前面解释的那样修改/etc/fstab 文件。比如:chmod 666 /dev/cdrom(/dev 目录是所有设备以文件形式出现的地方) 播放第三支歌,输入:
cdplay play 3

你可以用命令cdp 使用cdplay 的简单的命令行界面,但可能你更倾向于可在X-Windows 下使用的界面(例如:从KDE 的“K”菜单,选择:多媒体光驱播放器)。 按下光驱上的按钮或者发出下面任何一条命令都可以停止播放音乐:
eject
cdplay stop

故障处理 如果你的声卡出现问题,手工配置是另一个选择。这里是我设置一块16 位兼容声霸卡的过程,由于检测有误的缘故它总是在半速状态工作(很慢而且音量很小)。需要阅读的文档是/usr/src/linux-xxx/Documentation/sound(希望你安装了核心源码,这样才会有文档)。文件/etc/modules.conf 需要修改,关键的一行(修改后)是:
options sb esstype=1688 io=0x220 irq=5 dma=0 dma16=5 mpu_io=0x330
我要做的改动是插入“esstype=”选项。修改完毕后最好冷启动来测试你的设置(用shutdown 命令停机,然后重置电源)。

4.4.2 如何设置我的打印机?

打开一个X 终端,然后输入(作为root 用后,否则你会被提示输入root 密码):
printtool &

这个程序会完成全部的打印机设置,你只需要填入你的打印机类型信息以及它接在哪里。 指定正确的打印机端口是最重要的一步。如果你不知道是哪个,可以试着按如下方法配置:对于RedHat 5.2:lp1(第一个并行口),lp2(第二个并行口),或lp3(第三个并行口);对于RedHat 6.0 及以上版本:lp0(第一个并行口),lp1(第二个并行口),或者lp3(第三个并行口)。从RedHat 5.2 升级到6.0 后,由于并行口名字改变导致打印机停止工作。我不得不重新运行printtool 来调整打印端口。端口好的改变是为了与其它设备的编号总是从0 开始的情况一致。 试着向打印端口发送一张ASCII 文本测试页,只有当测试页打印正常的时候才算大功告成。如果你要配置的是一台远程打印机,确信你的机器对远程打印机有访问权限。访问权限是在连接那台远程打印机的机器中的/etc/hosts.lpd(安全程度较高)或/etc/hosts.equiv (安全程度较低)中设置的。这些文件只是简单地列出能够使用本地打印机的远程机器,一个机器名一行。我的文件看起来是这样的:
hacker
mars

我的系统中本来没有/etc/hosts.lpd,所以我创建了一个。
欲了解你机器中的打印机信息,可以察看文件/etc/printcap :
cd /etc/
cat printcap
这里是我的/etc/printcap 文件中某些代码的含义:
:域分隔符(分隔文件中的条目)
\ (出现在行尾)下一行继续
lp 打印机名。“lp”是你机器中默认的打印机名,默认情况下,多个打印机被顺序地命名为lp0,lp1 等等(或任何你喜欢的名字)。但是不要将打印机名和打印机连接的并行口设备名混淆。
sd=/var/spool/lpd/lp 我的脱机目录(sd)。
mx#0 打印任务的最大块数。“0”表示没有限制。
sh 我希望忽略打印标题页。标题页在你的打印任务前显示你的名字(如果你在家打印意味着浪费纸张)。
Rm=mars 远程机器名,我的系统里是“mars”(我的打印机连在另一台计算机上)。
Rp=lp 或者lp=/dev/lp0 远程打印机名,打印机在远程计算机上的名字(在我的家庭网络里,打印机“lp”连接在计算机“mars”上)。或者本地机器的设备名字。“/dev/lp0”在RedHat 6.x 中是第一个并行口(在RedHat 5.2 中曾经是/dev/lp1,并口号改变了)。
If=/var/spool/lpd/lp/filter 输入过滤器文件(if)。你的打印任务在被送到打印机前,将会被这个“过滤器”格式化。
Sf 禁止换页(sf)。通常情况下,当打印任务结束时会发送换页指令(设为禁止换页,如果你的打印机总是在每个打印任务的最后多打印一张空白页)。 打印机是通过命令lpc 来控制的(以root 身份)。用“?”察看选项。这个程序以它的怪异而声名狼藉,所以不要轻易地被它吓住。察看打印队列用命令lpq,清除打印任务用lprm,这两个命令适用于所有用户(不仅仅是root)。你能够从命令行用lpr 命令打印。在KDE 环境下,你能用“K- 按钮” —“Utilities”—“Print Queue”控制打印队列。

大多数打印机在Linux 下能工作得很好,但有的打印机可能不会发挥全部功能,这是由于厂商提供的信息或驱动程序不足造成。因此,购买打印机前,你可能要参考Linux 打印机数据库: http://www.linuxprinting.org/database.html。简而言之,最好选择这里列出的打印机类型(http://www.linuxprinting.org/suggested.html ):对于经济性彩色打印:一台Epson Stylus,比如:Stylus C80 (较好)或Stylus C60(较便宜)。比较而言,惠普喷墨打印为次选。请注意,喷墨打印机一般情况下进行黑白打印时表现不是很好。 而且,喷墨打印机是为个人用户设计的,并不适合处理大量的打印。当然它们能提供优质的彩色输出,特别是在优质纸张上。孩子们喜欢喷墨打印机。

- 低端激光打印:Lexmark 或者Brother 打印机。很多惠普激光打印机也能工作得很好,但是当你选择惠普打印机的时候一定要仔细挑选,因为它们提供的支持非常有限。廉价的激光打印机总是黑白的,但提供高质量的文本输出。如果你选择一台支持“Postscript”的打印机会避免很多麻烦。

4.4.3 Word Perfect 8 没有适合我的打印机的驱动程序

如果你已经在KDE 里通过printtool 安装了打印机,有一个驱动程序并且工作正常,那么设置Word Perfect 使用“passthru postscript”驱动程序。


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。