Copyright © 2004,2005, 本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。
发布时间:2004年11月16日
最近更新:2006年02月16日,增加设置cron计划任务的内容。
Abstract
Debian是Linux发行版当中最自由的一种。由位于世界各地上千名的自愿者不断开发和维护。它不属于任何的商业公司,完全由开源社区所有。本笔记记录Debian的相关知识和我在学习中遇到的各种问题及解决方法。该笔记也可说是我学习Linux过程中的积累成果。希望这些文字能帮到正在用Linux或正想进入Linux这个奇妙世界的朋友。
Sarge经过三年多的开发于2005年6月6日正式发布,替代Woody成为最新的Stable。testing的代号改为etch,unstable的代号还是sid。
Table of Contents
List of Tables
文件系统是一个操作系统的重要组成部分,Linux支持各种常用的文件系统。
Table 1.1. Linux文件系统类型
| 文件系统 | 类型名称 | 用途 |
|---|---|---|
| Second Extended filesystem | ext2 | 最常用的Linux文件系统 |
| Three Extended filesystem | ext3 | ext2的升级版,带日志功能 |
| Minix filesystem | minix | Minix文件系统,很少用 |
| RAM filesystem | ramfs | 内存文件系统,速度超快 |
| Network File System(NFS) | NFS | 网络文件系统,由SUN发明,主要用于远程文件共享 |
| DOS-FAT filesystem | msdos | ms-dos文件系统 |
| VFAT filesystem | vfat | Windows95/98采用的文件系统 |
| NT filesystem | ntfs | Windows NT采用的文件系统 |
| HPFS filesystem | hpfs | OS/2采用的文件系统 |
| /proc filesystem | proc | 虚拟的进程文件系统 |
| ISO 9660 filesystem | iso9660 | 大部份光盘所用的文件系统 |
| UFS filesystem | ufs | Sun OS所用的文件系统 |
| Apple Mac filesystem | hfs | Macintosh机采用的文件系统 |
| Novell filesystem | ncpfs | Novell服务器所采用的文件系统 |
| SMB filesystem | smbfs | Samba的共享文件系统 |
| XFS filesystem | xfs | 由SGI开发的先进的日志文件系统,支持超大容量文件 |
| JFS filesystem | jfs | IBM的AIX使用的日志文件系统 |
| ReiserFS filesystem | reiserfs | 基于平衡树结构的文件系统 |
使用mount命令就可在Linux中挂载各种文件系统,如:
debian:~# mount -t vfat /dev/hda1 /mnt/hda1
上面这条命令就把/dev/hda1这个fat分区挂载到了/mnt/hda1目录下。“-t”参数指定文件系统类型,常见的文件类型见上面“Linux文件系统类型”一表的内容。在挂载硬盘时,还有一个“-o”参数,它可指定挂载文件系统时的一些选项,如:
codepage=xxx,指定代码页,如936(简体中文)、437(英文)等。
iocharset=xxx,指定字符集,如utf8、gb2312等。
ro,以只读方式挂载。
rw,以读写方式挂载。
mount命令的参数选项是很丰富的,以上介绍的只是常用一些功能,详细介绍请参考man手册。
使用mkfs命令可以创建文件系统,如:
debian:~# mkfs -t ext2 /dev/fd0 1400
这条命令在软盘上创建一个容量为1.44M的ext2文件系统。
使用fsck命令可以检查文件系统,如:
debian:~# fsck -t ext2 /dev/hda3
使用mkswap命令可以创建swap空间,如:
debian:~# mkswap -c /dev/hda4 debian:~# swapon /dev/hda4 #启用新创建的swap空间,停用可使用swapoff命令
设备文件是Linux中一种特殊的文件,它对应每种硬件设备,如硬盘、软驱等。它可以像文件一样对它进行读写操作。设备文件位于/dev目录下,/dev/hda代表第一个IDE硬盘,/dev/fd0代表第一个软驱。/dev/null是一个虚设的设备,它就像一个无底的黑洞,任何对/dev/null的写入都会成功,但数据会消失得无影无踪,没有任何反馈。所以我们经常把不想在屏幕显示的信息全部送到/dev/null中。下面是一个设备文件的信息:
brw-rw---- 1 root disk 3, 0 2005-07-07 05:29 /dev/hda
大家注意文件的size列,它是由逗号分隔的两个数字(3,0),第一个值代表主设备号(major device number),第二个值代表次设备号(minor device number)。主设备号对应内核相应的功能,而次设备号对应由驱动程序管理的特定设备。所以同一类设备的主设备号都是相同的,次设备号则不同。内核根据主设备号将I/O的要求导向到适当的驱动程序上,而该驱动程序以次要编号来判断出指定要使用的设备。系统安装同,默认已安装了大部份的设备文件,在/dev目录下可查询到很多的设备文件。但有时我们也需新增一设备文件,这时我们可使用mknod命令,命令格式如下:
mknod -m permissions name type major minor -m permissions参数可有可无,主要用于设置设备文件的权限 name是所要创建的设备名,要有完整的路径,如/dev/rhda type是设备文件的类型,c代表字符设备,b代表块设备 major指定设备的主编号 minor指定设备的次编号
使用dumpe2fs device | more可显示文件系统的详细信息。如:
debian:/var/log# dumpe2fs /dev/hdb1 |more dumpe2fs 1.37 (21-Mar-2005) Filesystem volume name: <none> Last mounted on: <not available> Filesystem UUID: ef214b73-810a-4098-bf01-ab9a85d9c651 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: filetype sparse_super Default mount options: (none) Filesystem state: not clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 3662848 Block count: 7323624 Reserved block count: 366181 Free blocks: 428630 Free inodes: 3470727 First block: 0 Block size: 4096 Fragment size: 4096 Blocks per group: 32768 #文件系统中每个块组的大小 Fragments per group: 32768 Inodes per group: 16352 Inode blocks per group: 511 Last mount time: Thu Jul 7 20:09:57 2005 Last write time: Thu Jul 7 23:42:51 2005 Mount count: 15 Maximum mount count: 30 Last checked: Fri Jun 17 05:31:36 2005 Check interval: 2592000 (1 month) Next check after: Sun Jul 17 05:31:36 2005 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128
superblock是每个分区中最重要的信息,如果分区的superblock信息被破坏,则分区就不能使用。所以每个分区的superblock都被备份了。如果ext2文件系统的块组大小是32768,则superblock备份就存放在以32769开始的块组中。使用e2fsck -f -b 32769 /dev/hdb1就可用superblock备份信息修复文件系统的superblock
Linux系统以安全性高著称,它有完善的文件和目录权限控制机制。使用ls -l命令可查看系统中文件和目录的权限。如:
debian:~# ls -l drwxr-xr-x 3 root root 4096 2005-05-05 02:01 SAPGUI -rw-r--r-- 1 root root 66842 2005-03-27 17:20 Screenshot.png -rw-r--r-- 1 root root 72 2005-03-03 20:24 setup.log -rwxr-xr-x 1 root root 268 2005-03-13 15:44 test ...
最左边的一串字符是文件和目录的权限控制字符串,权限字符串的第一个字母代表文件类型,不同字符代表不同的意思:
-,一般文件
d,目录
l,符号连接
b,块特殊文件
c,字符特殊文件
s,socket套接字
p,命名管道
后面9个字符分成三组,分别代表user(用户),group(组)和other(其它)的许可权限。每组有三个权限位,代表具体的权限:
r,表示文件可读或目录可读,位于三位权限组的第一位置。
w,表示文件可修改或目录可修改,位于三位权限组的第二位置。
x,表示文件可执行或目录中的文件可执行,位于三位权限组的第三位置。
s,表示set UID或set GID。位于user或group权限组的第三位置。如果在user权限组中设置了s位,则当文件被执行时,该文件是以文件所有者UID而不是用户UID执行程序。如果在group权限组中设置了s位,当文件被执行时,该文件是以文件所有者GID而不是用户GID执行程序。s权限位是一个敏感的权限位,容易造成系统的安全问题。请在设置时小心,并注意系统中已有的SUID或SGID文件和目录。
t,表示粘着位(sticky)。位于other权限组的第三位置。具有该位的文件和目录只有创建者才能删除。
-,表示没有权限。该字符可出现在任何位置,表示没有许可权限。
当我们在linux中创建一个文件或目录时,系统通过umask环境变量来控制默认的权限位设置。umask的值多为022,在profile文件里设置。设置格式如下:
... umask 022 ...
使用lsattr和chattr命令可以显示和改变文件属性。
s(secure deletion),当文件被删除时,分配在该文件中的所有块都会清零,并写入磁盘,保证文件的数据被彻底清除,不能被访问。
u(undelete),该属性可保存被删除的文件内容。
c(compress),当文件保存在磁盘时,内核会自动压缩该文件。
S(synchronous),当修改具有该属性的文件时,所有更改将同步写入磁盘。
i(immutable),设置了该属性的文件不允许更改。
a(append only),文件只能以追加模式打开,只有root才能设置或删除主该属性。
d(no dump),具有该属性的文件不能被dump工具备份。
A(no atime),不更新atime值,atime是文件文件的访问时间戳。
传统的Linux文件系统的权限控制是通过user、group、other与r(读)、w(写)、x(执行)的不同组合来实现的。随着应用的发展,这些权限组合已不能适应现时复杂的文件系统权限控制要求。例如,我们可能需把一个文件的读权限和写权限分别赋予两个不同的用户或一个用户和一个组这样的组合。传统的权限管理设置起来就力不从心了。为了解决这些问题,Linux开发出了一套新的文件系统权限管理方法,叫文件访问控制列表(Access Control Lists,ACL)。
要启用ACL,需内核提供ACL支持和安装ACL管理工具。现在的2.6内核都提供ACL支持,在编译内核时只要在file systems分支下,把Ext2 POSIX Access Control Lists或Ext3 POSIX Access Control Lists选中就可以了。用以下命令挂接硬盘启用文件系统ACL。
debian:~# mount -t ext2 -o acl /dev/hda1 /mnt/hda1
我们也可把选项写到/etc/fstab文件中,在需启用acl的分区选项包含acl参数。
ACL有两种,一种是存取ACL(access ACLs),针对文件和目录设置访问控制列表。一种是默认ACL(default ACLs),只能针对目录设置。如果目录中的文件没有设置ACL,它就会使用该目录的默认ACL。要设置ACL,首先要安装管理工具,它们分别是getfacl和setfacl,在debian中只要安装acl软件包即可。
debian:~# apt-get install acl
setfacl工具可为文件和目录ACL,命令格式如下:
setfacl -m <rules> <files>
rules的格式如下,多条规则间可用逗号分隔。
u:uid:perms #为用户设置ACL,perms为r、w、x的组合 g:gid:perms #为组设置ACL o:perms #为其它组设置ACL m:perms #设置有效权限屏蔽
下面是setfacl的实例:
debian:~# setfacl -m u:jims:rw testfile.txt #-m选项表示添加或修改文件或目录的权限访问列表 debian:~# setfacl -x u:jims:rw testfile.txt #-x选项表示删除文件或目录的访问列表
要设置默认的ACL,只在rules前加一个d:,以表示指定一个目录,如:
debian:~# setfacl -m d:o:rx /data
getfacl用以显示文件或目录的ACL,如:
debian:getfacl debian.xml # file: debian.xml # owner: jims # group: jims user::rwx group::r-- other::r--
![]() | |
| tar和dump工具不能备份ACL文件,如果我们要备份ACL文件系统,可以使用star工具。另外,samba可通过--with-acl-support编译选项支持ACL。 | |
软件包管理是区分不同发行版的一大特征,如RedHat使用RPM软件包来管理软件,Debian使用Deb软件包来管理软件。apt-get是Debian的Deb软件包管理工具,它的最低底层还是调用dpkg包管理程序,通过apt-get工具可使我们很好地解决软件包的依赖关系,方便软件的安装和升级。它是Debian发行版的最大特色,一定要好好掌握。
要使用好apt-get就要配置好一个名为sources.list的资源列表,资源列表指向Debian系统的软件库,apt-get会从该软件库安装各种软件包。sources.list文件位于/etc/apt目录下,下面是Sarge、Etch和Sid三个版本的写法,你可任选一种,最好不要多版本混用:
#sources.list for Sarge(stable): deb http://http.us.debian.org/debian stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org stable/updates main contrib non-free #Uncomment if you want the apt-get source function to work #deb-src http://http.us.debian.org/debian stable main contrib non-free #deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free #sources.list for Etch(testing): deb http://http.us.debian.org/debian testing main contrib non-free deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free deb http://security.debian.org testing/updates main contrib non-free #Uncomment if you want the apt-get source function to work #deb-src http://http.us.debian.org/debian testing main contrib non-free #deb-src http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free #sources.list for Sid(unstable): deb ftp://ftp.us.debian.org/debian unstable main contrib non-free deb ftp://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free #Uncomment if you want the apt-get source function to work #deb-src http://http.us.debian.org/debian unstable main contrib non-free #deb-src http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free
sources.list文件的内容决定了Debian的版本。安全更新只存在于stable和testing版中,unstable没有安全更新。进入stable的软件都经过严格的依赖测试和安全测试,所以如果你想系统稳定,用于工作,最好使用stable,如果你想使用最新版的软件,就使用testing或unstable。Woody、Sarge和Sid是Debian 3.x三个版本中的代号,我们一般都是以代号来称呼debian不同版本。所有Debian发行版的代号全都取自电影Toy Story,Woody是那个牛仔,Sarge是绿色塑胶军队的领导,Sid是破坏玩具的小孩。
apt-get update
更新软件包信息库。在Debian中,软件包是通过一个数据库来管理的,通过这个数据库中可跟踪你系统中已安装、没有安装和现在可安装的软件包信息。apt-get安装软件包时就是依靠这个数据库来解决软件包间的依赖关系,从而可自动安装相关软件。我们需定期运行该命令,从而保持数据库的信息为最新。
apt-get install package_name1 package_name2 package_name3 ...
安装软件包。如果软件包需其它软件包支持,apt-get会通过搜索软件包数据库找到这种依赖关系,一起下载相关软件。在一个命令行中可同时安装多个软件包,中间用空格隔开即可。安装的软件包默认会存放在/var/cache/apt/archives目录下,以便以后重新安装。如果已安装的软件包损坏了,你可通过--reinstall选项来重新安装。如:
# apt-get --reinstall install package_name
![]() | |
| 在需安装的软件包名后加一个减号会删除软件包,如:apt-get install package_name-。 | |
只是下载软件,不解包和安装使用-d选项,如:
# apt-get -d install package_name
使用--dry-run选项可使apt-get在安装软件包前进行测试,如:
# apt-get install package_name --dry-run
Debian软件包的名字和软件名不同,所以在安装前如不知道软件包的名字,可到Debian的官方软件库查询,网址是:http://www.debian.org/distrib/packages/。或者用下面介绍的apt-cache search package_name命令来查询。
apt-get remove package_name1 package_name2 package_name3 ...
删除软件包。如果你想删除没用的软件包,只要使用该命令即可。如果你想把该软件的配置文件也删除,可以用--purge选项,如:
# apt-get --purge remove package_name
![]() | |
| 类似地,在删除软件包名后加一个加号会安装软件包,如:apt-get remove package_name+。 | |
apt-get source package_name1 package_name2 package_name3
下载软件包的的源码版本。
apt-get upgrade package_name1 package_name2 package_name3 ...
软件包升级功能是APT系统这么成功的主要原因。通过该命令,我们就可把软件升级到最版本。在使用该命令前,最好先运行apt-get update命令,以更新软件包数据库。但该方案不是更新系统最好的方法,一些包会因为包依赖问题而保留(kept back)一些旧的软件包。Debian提供了一个更好的升级方案,就是用dis-upgrade。下面一节会详细介绍。
apt-get dist-upgrade
更新整个Debian系统。可从网络或本地更新整个系统。它会重新安排好包的依赖性。如果有些包由于一些原因实在不能更新,我们可通过以下命令查询原因:
# apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
![]() | |
| 用apt-show-versions -u可获得可升级软件包的列表。该命令还有一些有用的选项,可用-h选项查看详细帮助,了解更多功能。 | |
apt-get clean
删除下载了的软件包,当我们通过apt-get安装软件包时,APT会把软件包下载到本地/var/cache/apt/archives/目录。该命令会删除该文件夹内的除锁住外的所有软件包。
apt-get autoclean
删除已下载的旧版本的软件包。该命令类似于上面的命令,但它会有选择地删除旧版本的软件包。
apt-get dselect-upgrade
通过dselect的“建议”和“推荐”功能更新系统。dselect是Debian中一个功能强大的包管理工具。它可帮助用户选择软件包来安装,其中一个有用功能是它会建议和推荐安装其它相关软件包。我们可在APT中使用它这个功能。
apt-get check
检查系统中已安装软件包的依赖性。
apt-cache是一个apt软件包管理工具,它可查询apt的二进制软件包缓存文件。通过它我们可查询软件包的状态信息。
apt-cache show package_name
显示软件的信息,包括版本号,安装状态和包依赖关系等。
apt-cache search package_name
搜索软件包,可用正则表达式。
apt-get是命令行方式的dpkg前台程序,不喜欢命令行方式的朋友也可以试试aptitude和synaptic这两个软件包。aptitude是一个字符界面的dpkg前端程序,synaptic是一个GTK界面的dpkg前端程序。
我们有时喜欢用一个Debian版本作为主系统,并使用其它版本的软件包,如我们用testing版为主系统,但有时又会用到unstable版里的新软件包。设置主系统你需编辑/etc/apt/apt.conf文件,在文件中加入以下内容:
APT::Default-Release "version";
这里的version就是Debian的发行版本,包括stable,testing和unstable。要从Debian另外的版本中安装软件包,需用以下的APT命令:
# apt-get -t version install package
为使上面的命令正常工作,需要在sources.list包含有相应的version资源连接。
你也可用以下命令指定安装软件包的版本。如:
# apt-get install nautilus=2.2.4-1
![]() | |
| 安装不同版本的软件包容易造成系统包依赖性出错,所以应尽量避免在工作环境中使用。 | |
apt-show-versions可显示已安装软件包的版本,它提供了一种安全的方法从混合版本环境中升级指定版本的软件包。如以下命令只升级unstable的软件包:
# apt-get install `apt-show-versions -u -b | grep unstable`
Table of Contents
Nautilus是一个文件管理器,与Windows中的资源管理器类似。它是一个开源软件,是GNOME桌面环境默认的文件管理器,项目网址是:http://www.gnome.org/projects/nautilus/。
Nautilus是GNOME桌面环境中一个优秀的图形化文件管理工具,通过该工具,我们能方便地管理和浏览我们的文件。它是为文件管理而设计的,但它也可作为ftp,smb,WebDAV等基于WEB的应用程序的客户端。除了固定的功能外,我们还可通过编写自已的脚本来扩展它的功能,下面介绍如何使用该功能。
建立一个shell或python、perl等的脚本,并设置可执行权限。
把脚本拷贝到~/.gnome2/nautilus-scripts目录下。
用nautilus访问一次该目录,这样就可通过右击文件,选“脚本”来调用该脚本了。
以后每新建一个脚本,都要使用nautilus访问一次~/.gnome2/nautilus-scripts才能使新脚本生效。这种用户可随意添加脚本的功能使nautilus的功能可无限扩展。Nautilus官方网站上已有很多脚本可下载使用。网址是:http://www.gnome.org/projects/nautilus/。
Nautilus文件管理器是Gonme中使用频率最高的工具之一,下面介绍几个提高Nautilus性能的方法,使我们能有效地使用该工具。
在Nautilus中,与性能相关的首选项通常都可有三个可选项值,通过调整这三个选项值可达到调整Nautilus性能的目的,这三个选项值分别是:
总是(always)---对本地文件和其它文件系统上的文件都有效。性能最差,占用CPU资源和网络带宽最多。
本地文件(local_only)---只对本地文件有效。性能较好,能减少对CPU资源的占用。
从不(never)---选项无效。性能最好,能大大减少CPU资源和网络带宽的占用。
下面介绍使用这些选项的首选项,每一个首选项代表Nautilus的一个功能。你可用上面介绍的选项值进行配置,以达到性能最优。
图标中显示文字(show_icon_text)
该选项的功能是控制是否在图标中显示文件中的内容片段。可通过以下命令设置为never:
# gconftool-2 --type string --set /apps/nautilus/preferences/ show_icon_text never
此外,还可通过Nautilus菜单的“编辑--首选项--预览--图标中显示文字”路径进行设置。
显示缩略图(show_image_thumbnails)
该选项控制是否在文件管理器内显示图像的缩略图。可通过以下命令设置为never:
# gconftool-2 --type string --set /apps/nautilus/preferences/ show_icon_text never
此外,还可通过Nautilus菜单的“编辑--首选项--预览--显示缩略图”路径进行设置。
预听声音文件(preview_sound)
该选项控制是否预听声音文件。可通过以下命令设置为never:
# gconftool-2 --type string --set /apps/nautilus/preferences/preview_sound never
此外,还可通过Nautilus菜单的“编辑--首选项--预览--预听声音文件“路径进行设置。
统计项目数量(show_directory_item_counts)
该选项控制是否显示文件夹内项目的数量,如果文件夹内的文件很多,开启该选项将使文件夹的打开速度减慢。建议关闭该功能。设置方法如下:
# gconftool-2 --type string --set /apps/nautilus/preferences/ show_directory_item_counts never
此外,还可通过Nautilus菜单的“编辑--首选项--预览--统计项目数量\\“路径进行设置。
GConf是一个应用程序参数配置系统,它可集中存储和管理各种应用程序的配置参数,就象Windows平台的注册表。该系统对系统管理员来说是很有用的,系统管理员可通过该工具方便地管理他们的系统。GConf还有一个非常COOL的功能,就是“process transparent”(进程无关性),也就是说,如果我在一个应用程序中修改了一个参数,马上其它使用同一参数的应用程序同样会感受到参数的改变。下面我将会详细介绍GConf系统的配置和使用。网上资源:http://www.gnome.org/projects/gconf/
国际化是指软件能用于多国语言环境的能力。在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置:
LC_COLLATE
定义该环境的排序和比较规则
LC_CTYPE
用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
LC_MONETARY
货币格式
LC_NUMERIC
非货币的数字显示格式
LC_TIME
时间和日期格式
LC_MESSAGES
提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。
LANG
LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL。
LC_ALL
它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响。
一个例子:
设置前,使用默认locale: debian:~# locale LANG="POSIX" LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL= 设置后,使用zh_CN.GDK中文locale: debian:~# export LC_ALL=zh_CN.GBK debian:~# locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.GBK" LC_NUMERIC="zh_CN.GBK" LC_TIME="zh_CN.GBK" LC_COLLATE="zh_CN.GBK" LC_MONETARY="zh_CN.GBK" LC_MESSAGES="zh_CN.GBK" LC_PAPER="zh_CN.GBK" LC_NAME="zh_CN.GBK" LC_ADDRESS="zh_CN.GBK" LC_TELEPHONE="zh_CN.GBK" LC_MEASUREMENT="zh_CN.GBK" LC_IDENTIFICATION="zh_CN.GBK" LC_ALL=zh_CN.GBK
"C"是系统默认的locale,"POSIX"是"C"的别名。所以当我们新安装完一个系统时,默认的locale就是C或POSIX。
在Debian中安装locales的方法如下:
通过apt-get install locales命令安装locales包
安装完成locales包后,系统会自动进行locale配置,你只要选择所需的locale,可以多选。最后指定一个系统默认的locale。这样系统就会帮你自动生成相应的locale和配置好系统的locale。
增加新的locale也很简单,用dpkp-reconfigure locales重新配置locale即可。
我们也可手动增加locale,只要把新的locale增加到/etc/locale.gen文件中,再运行locale-gen命令即可生成新的locale。再通过设置上面介绍的LC_*变量就可设置系统的locale了。下是一个locale.gen文件的样例。
# This file lists locales that you wish to have built. You can find a list # of valid supported locales at /usr/share/i18n/SUPPORTED. Other # combinations are possible, but may not be well tested. If you change # this file, you need to rerun locale-gen. # zh_CN.GBK GBK zh_CN.UTF-8 UTF-8
要在Shell中正常显示系统的中文提示信息和支持中文输入。LANG和shell的编码配置需一致,并安装有中文locale。如:LANG和shell的编码都配置成zh_CN.utf8,并安装有zh_CN.utf8这个locale。如果shell和LANG配置不同,则中文显示乱码;如果LANG里设置的locale没有安装,则不能显示系统的中文提示信息,只会显示英文提示信息。
Table of Contents
字体设置在X系统中是一项较复杂而又非常重要的内容,字体是我们一进入X window就必须整天面对的,清晰、美观的字体会使我们工作起来赏心悦目,轻松愉快。XFree86是X系统在X86架构中的免费实现(现在好象不是GPL的了),也是现在Linux系统默认的X系统。为了设置好字体,我们需了解XFree86系统中的字体系统的原理和实现技术。只是照抄网上的设置可能也可配置出一套效果不错的字体,但这样我们只会知其然而不其所以然,不能融会贯通,灵活应用。请随我慢慢进入XFree86中的字体系统,一窥其中的奥秘。
![]() | |
| 有关X系统和XFree86的资料可参考我整理的X window学习笔记,里面对这两个系统的历史渊源有详细介绍。 | |
XFree86系统有两套的字体系统,这也是为什么X window中字体设置较复杂的原因之一。这两套的字体系统分别是:核心X11字体系统和Xft字体系统。核心X11字体系统是应用最广泛的一套字体系统,所有的X系统都支持。Xft字体系统是一个新的字体技术,只能用在基于XFree86系统的X系统上,但该套字体系统配置简单,容易使用,将是未来发展的方向。
Xft是一个library,它没有自已的配置机制,它依靠fontconfig库来配置和定制字体,Xft负责字体的显示。也就是说,fontconfig是一种让X系统可以找到某种字体的库,而Xft是负责在X系统中把fontconfig库找到的字体如何显示出来的库。所以讨论Xft字体配置其实就是讨论fontconfig。fontconfig包含在XFree86发布版中。
fontconfig的作用:
自动搜索字体路径,发现新拷贝的字体。
当需显示的字体不存在时,会自动选择其它字体代替显示。这也就是我们在美化字体时为什么要调整字体的排列顺序的原因。
配合Xft等X系统的渲染引擎,实现质量的字体输出。
fontconfig的配置文件有三个,一个是系统级的配置文件,位于/etc/fonts/fonts.conf,该目录下还有一个local.conf,一般我们只修改local.conf文件,fonts.conf一般不建议去修改。第三个配置文件是用户主目录下的~/.fonts.conf,它是用户级的字体配置文件,只对当前用户有效。这三个文件的格式是一样的,都是一个XML格式的文件。该XML文件的语法规则在fonts.dtd里定义。详细的配置介绍请参考中国Linux公社中的“Linux高质量字体研究”论坛。
在Xft字体系统中安装新的字体是很简单的,只需把字体文件拷贝到fonts.conf中指定的字体文件目录即可,fontconfig会自动感知新字体。默认的字体目录有四个,分别是:
/usr/share/fonts
/usr/X11R6/lib/X11/fonts/Type1
/usr/local/share/fonts
~/.fonts
把新字体文件拷贝到字体目录后,我们就可用fc-list命令列出新安装的字体,如果没有,可用fc-cache命令手动更新系统字体配置。这样,再运行fc-list就应该可以看到新安装的字体了。使用Xft字体系统是不用配置/etc/X11/XF86config-4的,也不用重启X服务器使配置生效。Xft字体系统比起传统的X11核心字体系统来说真的是方便很多。所以它是未来的发展方向。目前,并不是所有的应用程序都支持Xft字体系统。下面是各类程序对Xft字体系统的支持情况介绍:
GTK+2.x和QT程序都可以使用Xft字体系统,但GTK+1.x程序是不支持Xft字体系统的,它只能使用X11核心字体系统。
GTK+2.2版本及以上的程序默认使用Xft字体系统,不用进行配置。GTK+2.0程序如果要使用Xft,则需设置环境变量GDK_USE_XFT=1。
GTK+2.x程序字体配置可通过gnome桌面系统提供的gnome-font-properties工具来配置,该工具可在GNOME桌面环境中的"应用程序"--"桌面首选项"--"字体"中找到。GTK+2.x程序还有一个全局配置文件/etc/gtk-2.0/gtkrc,里面可设置GTK+2.x程序所用字体,该文件的内容如下:
style "gtk-default-zh-cn" {
font_name = "Bitstream Vera Sans 10,SimSun 10"
}
class "GtkWidget" style "gtk-default-zh-cn"
这样GTK+2.x程序的英文会用10号的Bitstream Vera Sans字体显示,中文会用10号的SimSun字体显示。
QT程序的默认字体可在KDE的“控制中心”--“外观和主题”--“字体”中设置,也可运行qtconfig图形化配置工具设置。但好象控制中心的设置优先级高于qtconfig工具。
配置X11核心字体有两步,第一步是建立字体目录,在该目录中包含字体文件。第二步是配置X服务器,使它能使用这些字体。下面我以配置simsun.ttc字体为例说明:
X服务器的字体目录一般默认已建好,如/usr/X11R6/lib/X11/fonts/truetype。我们把simsun.ttc拷贝到该目录。
生成字体索引文件,如果是位图字体则只有一个fonts.dir索引文件,如果是像simsun.ttc这样的可缩放字体则还需要一个fonts.scale索引文件。索引文件可通过工具自动生成,如果是TrueType字体,可使用ttmkfdir工具。其它的字体可用mkfontdir和mkfontscale这两个工具来生成。simsun.ttc是TrueType字体,所以我用ttmkfdir工具生成fonts.scale:
debian:/usr/X11R6/lib/X11/fonts/truetype# ttmkfdir
fonts.dir文件和fonts.scale内容是一样的,所以可直接拷贝。如果不用拷贝的方式,用mkfontdir命令也可以,结果是一样的。
设置XF86config-4配置文件,确定包含上述字体路径和正确加载X字体模块。
Section "Files"
# FontPath "unix/:7110" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/X11R6/lib/X11/fonts/truetype"
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/CID"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
EndSection
Section "Module"
# Load "GLcore"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
# Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
Load "xtt"
EndSection
字体模块列表:
bitmap:位图字体,支持的字体文件有*.bdf,*.pcf和*.snf。
type1:Type1字体,支持的字体文件有*.pfa和*.pfb,还有CIDFonts。
speedo:Bitstream Speedo字体,支持的字体文件有*.spd。
freetype:TrueType字体,支持的字体文件有*.ttf和*.ttc。,在X.org系统中,xtt模块功能合并到该模块中。
xtt:另一个的TrueType字体模块,支持的字体文件有*.ttf和*.ttc。在X.org系统中,不使该模块,该模块的功能合并到freetype模块中。
重启X服务器后就可使用simsun中文字体了。xlsfonts命令可列出系统中已安装的X11核心字体。
![]() | |
| 如果你是使用Debian系统,则可使用defoma(Debian Font Manager)工具来帮你完成以上设置。该工具的使用请参考本文“Debian的安装和配置”一章的内容。 | |
GTK+1.x程序使用X11核心字体系统。要在GTK+1.x程序中使用simsun字体,需配置/etc/gtk/gtkrc.zh_CN文件,内容如下:
# This file defines the fontsets for Chinese language (zh) using
# the simplified chinese standard GuoBiao as in mainland China (CN)
#
# 1999, Pablo Saratxaga <pablo@mandrakesoft.com>
#
style "gtk-default-zh-cn" {
fontset = "-*-bitstream vera Serif-medium-r-normal-*-*-120-*-*-p-*-microsoft-cp1252,\
-*-simsun-medium-r-normal-*-12-*-*-*-*-*-gbk-0"
}
class "GtkWidget" style "gtk-default-zh-cn"
这样GTK+1.x程序可显示中文了,中文使用simsun字体,英文使用bitstream vera sans字体。
Table of Contents
Linux等开源软件的优点是可配置性强,同一种功能可通过不同的方法来实现,所以我们使用的系统都会有差别,配置方式也不尽相同。为了积累知识和备忘,我把我在安装和配置Debian桌面系统的所有操作都记录在该章节中。
Debian发行版为我们提供了灵活的安装方式,可以先安装一个很小的(几十兆)base系统,再通过网络更新系统和安装其它应用软件。这种方式要求有较好的网络环境,比如ADSL。我就是采用这种方式安装的,下面是我的具体操作步骤:
到http://people.debian.org/~blade/boot-floppies/netinst-full-pre/下载bootbf2_4_iso.zip安装镜像。解压密码是:“Yes, I know that this data may be harmful!”。注意密码串中的标点符号和空格都要正确输入。解压后,刻录成启动光盘。
用启动光盘启动电脑,在出现boot:提示符状态后直接按回车载入内核。
对硬盘分区,我的分区在安装之前已用分区工具分好,所以可直接挂接。我设置了一个交换分区(swap)和一个linux分区(ext2)。完成格式化后把分区挂接为根分区。接着就可配置主机名和网络了,我的网卡需加载设备驱动模组才能识别,我的网卡是最常见的RTL-8139,选择“ne”模组支持即可。最后选安装基本系统开始安装。
![]() | |
| 如果启动盘找不到硬盘,可用我的方法,先用一些分区工具分好区再装,或下载500多兆那个启动盘,在出现boot:提示符时打bf24启动应该就可以找到硬盘了。 | |
安装完基本系统后,需配置系统的启动信息。Debian默认使用lilo做为启动管理器,我的系统中本来已有windows XP系统,我用lilo来统一管理双系统的启动,所以我把lilo安装到MBR中。
取出光盘重启电脑,成功启动Linux后,系统会自动运行base-config程序进行系统的初始配置,配置的内容有:
时区设置:亚洲/上海
设置root用户密码和启动shadow
设置sorucelist为http方式
我不想用exim作为我的邮件客户端,所以不配置exim程序。
进入Debian系统后,首先配置ADSL拔号程序,运行pppoeconfig进行配置。按提示填上ADSL帐号和密码即可。注意,eth0的网关不要设,否则会连接不上外网。
成功连接Internet后就可进行下一步安装了,首先把系统升级到testing。把/etc/apt/sources.list里所有的stable改成testing。再运行apt-get update获取最新的软件包信息,最后运行apt-get dist-upgrade更新整个系统。以后升级系统中的软件只需运行apt-get update和apt-get upgrade两步即可。apt-get dist-upgrade只用于debian系统版本的升级,如stable升级到testing。
更新完系统后,需运行lilo -v -v -v更新启动信息,否则在系统重启时会出现LI两个字符后停住,不能正常启动系统。
光盘上的内核较旧,所以成功安装完成系统后,一般都要更新内核,以支持更多的硬件和提高系统性能。在Debian发行版中,更新内核也可使用apt-get install kernel-image-2.x.x方式来直接更新。但这样更新有两个问题,一是内核包的更新要滞后于Linux内核的更新速度,也就是说采用该方式你用不到最新的内核;二是内核包不是针对你的计算机编译的,所以性能和配置可能会不符合你的要求。我一般不用这种方式更新我的内核,而是采用直接编译内核源码,再用make-kpkg命令打包的方式来安装。make-kpkg是Debian的内核打包工具,它可编译Linux源码,并打包成Debian格式的内核安装包。这样我们即可使用最新的Linux内核,又可用Debian的方式安装和管理内核包,一举两得。现在来看看具体的安装过程,我把2.4.20内核更新到最新的2.6.10。
到http://www.kernel.org下载最新的2.6.10内核,解压到/usr/src目录下。
安装编译2.6内核所需的软件
# apt-get install kernel-package ncurses-dev fakeroot module-init-tools
在/usr/src/linux-2.6.10目录下运行以下命令配置和编译新内核:
# make menuconfig # make-kpkg clean # fakeroot make-kpkg --revision=mykernel.1.0 kernel_image
![]() | |
| 如果编译失败,可用make clean和make menuconfig重新配置和编译。配置信息默认会保存在/usr/src/linux-2.6.10/.config文件中。 | |
内核编译完成后在/usr/src目录下就会生成一个kernel-image-2.6.10_mykernel.1.0_i386.deb软件包,用以下命令安装:
# dpkg -i kernel-image-2.6.10_mykernel.1.0_i386.deb
这样,在/boot目录下会生成System.map-2.6.10,vmlinuz-2.6.10文件。在安装内核时会提示是否制作启动盘和是否自动配置LILO,我都选择NO。用手动方式设置LILO。打开/etc/lilo.conf文件,修改相关部份的内容,修改的内容如下:
...
#使用图形菜单
bitmap=/boot/coffee.bmp
bmp-colors=14,11,,15,9,0
#bmp-table=120p,173p,1,15,17
bmp-timer=254p,432p,1,0,0
# Installs the specified file as the new boot sector
# You have the choice between: bmp, compat, menu and text
# Look in /boot/ and in lilo.conf(5) manpage for details
#
install=bmp
...
#内核配置
default=Linux2.6.10
image=/boot/vmlinuz-2.6.10
label=Linux2.6.10
read-only
# restricted
# alias=1
image=/boot/vmlinuz-2.4.20-bf2.4
label=Linuxold
read-only
optional
# restricted
# alias=2
...
用lilo -v -v -v更新启动信息。如果没有出错信息则可重启电脑,默认是以新内核来启动的。用上下光标可选择不同的启动内核。
![]() | |
| 如想用dpkg -i 重新安装相同内核,要做一些清理工作。需把/boot/System.map-2.6.10、/boot/vmlinuz-2.6.10和/lib/modules/2.6.10改名备份起来或删除掉,但为了安全,建议采用改名备份方式。安装时会提示需重启来重建/lib/modules/2.6.10目录,按继续即可。 | |
2.6.10内核配置备忘录
内核配置完成后,在退出配置菜单时如果选择保存配置,则会在当前目录中生成一个.config文件,以文本的形式记录内核的所有配置参数。该配置文件会在下次用make menuconfig命令配置内核时自动导入。我们也可以通过内核配置菜单最下面的导入和存盘功能导入其它内核配置文件和把当前配置以任意的名字保存在其它地方。
Loadable module support-->Module unloading选项可允许卸载已加载的内核模块。通过该功能,我们可以通过rmmod module_name和modprobe module_name命令改变内核模块的加载参数。
如需支持富士FinePix 2800 Zoom数码相机,需选中Device Drivers-->USB support-->UHCI HCD(most Intel and VIA) support支持。如果成功配置,在启动时会自动检测到数码相机,并自动把相机的存储卡挂接在/media/usbdisk目录下。如果对自已机器上的USB设备接口不清楚,可用# lspci -v命令来列出本机的设备信息。
在我的Fosa手提电脑上编译内核2.6.10以支持USB鼠标和触摸板。用lspci -v命令列出本机USB设备的硬件信息如下:
0000:00:01.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 07) (prog-if 10 [OHCI])
Subsystem: Silicon Integrated Systems [SiS] USB 1.0 Controller
Flags: bus master, medium devsel, latency 64, IRQ 11
Memory at 000d0000 (32-bit, non-prefetchable) [size=4K]
USB设备接口类型是OHCI的,所以配置内核时选中Device Drivers--->Usb Support--->OHCI HCD support,并把它编译进内核。重启手提电脑,自检时出现如下信息,驱动成功。
ohci_hcd 0000:00:01.2: Silicon Integrated Systems [SiS] USB 1.0 Controller ohci_hcd 0000:00:01.2: USB HC TakeOver from BIOS/SMM ohci_hcd 0000:00:01.2: irq 11, pci mem 0xd0000 ohci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1 ohci_hcd 0000:00:01.2: resetting from state 'reset', control = 0x0 ohci_hcd 0000:00:01.2: enabling initreset quirk ohci_hcd 0000:00:01.2: OHCI controller state ohci_hcd 0000:00:01.2: OHCI 1.0, with legacy support registers ohci_hcd 0000:00:01.2: control 0x083 HCFS=operational CBSR=3 ohci_hcd 0000:00:01.2: cmdstatus 0x00000 SOC=0 ohci_hcd 0000:00:01.2: intrstatus 0x00000044 RHSC SF ohci_hcd 0000:00:01.2: intrenable 0x8000000a MIE RD WDH ohci_hcd 0000:00:01.2: hcca frame #0003 ohci_hcd 0000:00:01.2: roothub.a 01000203 POTPGT=1 NPS NDP=3 ohci_hcd 0000:00:01.2: roothub.b 00000000 PPCM=0000 DR=0000 ohci_hcd 0000:00:01.2: roothub.status 00008000 DRWE ohci_hcd 0000:00:01.2: roothub.portstatus [0] 0x00010301 CSC LSDA PPS CCS ohci_hcd 0000:00:01.2: roothub.portstatus [1] 0x00000100 PPS ohci_hcd 0000:00:01.2: roothub.portstatus [2] 0x00000100 PPS usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: default language 0x0409 usb usb1: Product: Silicon Integrated Systems [SiS] USB 1.0 Controller usb usb1: Manufacturer: Linux 2.6.10 ohci_hcd usb usb1: SerialNumber: 0000:00:01.2 usb usb1: hotplug usb usb1: adding 1-0:1.0 (config #1, interface 0) usb 1-0:1.0: hotplug hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id hub 1-0:1.0: USB hub found hub 1-0:1.0: 3 ports detected hub 1-0:1.0: standalone hub hub 1-0:1.0: no power switching (usb 1.0) hub 1-0:1.0: global over-current protection hub 1-0:1.0: power on to power good time: 2ms hub 1-0:1.0: local power source is good hub 1-0:1.0: no over-current condition exists ohci_hcd 0000:00:01.2: created debug files hub 1-0:1.0: state 5 ports 3 chg ffff evt ffff usbcore: registered new driver hiddev ohci_hcd 0000:00:01.2: GetStatus roothub.portstatus [0] = 0x00010301 CSC LSDA PPS CCS hub 1-0:1.0: port 1, status 0301, change 0001, 1.5 Mb/s hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x301 ohci_hcd 0000:00:01.2: GetStatus roothub.portstatus [0] = 0x00100303 PRSC LSDA PPS PES CCS usb 1-1: new low speed USB device using ohci_hcd and address 2 ohci_hcd 0000:00:01.2: GetStatus roothub.portstatus [0] = 0x00100303 PRSC LSDA PPS PES CCS usb 1-1: skipped 1 descriptor after interface usb 1-1: new device strings: Mfr=0, Product=2, SerialNumber=0 usb 1-1: default language 0x0409 usb 1-1: Product: USB OpticalWheel Mouse usb 1-1: hotplug usb 1-1: adding 1-1:1.0 (config #1, interface 0) usb 1-1:1.0: hotplug hub 1-0:1.0: port 2, status 0100, change 0000, 12 Mb/s hub 1-0:1.0: port 3, status 0100, change 0000, 12 Mb/s usbhid 1-1:1.0: usb_probe_interface usbhid 1-1:1.0: usb_probe_interface - got id input: USB HID v1.10 Mouse [USB OpticalWheel Mouse] on usb-0000:00:01.2-1 usbcore: registered new driver usbhid drivers/usb/input/hid-core.c: v2.0:USB HID core driver mice: PS/2 mouse device common for all mice input: AT Translated Set 2 keyboard on isa0060/serio0 Synaptics Touchpad, model: 1 Firmware: 4.6 180 degree mounted touchpad Sensor: 18 new absolute packet format Touchpad has extended capability bits -> four buttons -> multifinger detection -> palm detection input: SynPS/2 Synaptics TouchPad on isa0060/serio4
/etc/X11/XF86config-4配置文件中与鼠标配置相关的内容如下:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "Auto"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Generic Mouse"
Driver "mouse"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "Auto"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
...
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse" #这里的两个Mouse设备标识名要对应上面
InputDevice "Generic Mouse"
EndSection
配置内核支持图形化启动界面。以下网站http://www.bootsplash.org/有详细介绍。为了支持图形化启动界面,我们需为内核打补丁。我的内核版本是2.6.10。到http://www.bootsplash.de/files/下载与内核对应的补丁文件bootsplash-3.1.4-2.6.10.diff。用以下命令为内核源码打上该补丁:
# cd /usr/src/linux-2.6.10 # patch -p1 < bootsplash-3.1.4-2.6.10.diff
接着配置内核,选中以下选项,以下所有选项不能以内核模块形式编译,都要直接编译进内核:
Device Drivers --> Block Devices --> Initial RAM disk(initrd) support
Device Drivers --> Graphics Support --> VGA 16-color graphics support
Device Drivers --> Graphics Support --> VESA VGA graphics support
Device Drivers --> Graphics Support --> Console display driver support --> Framebuffer Console support
Device Drivers --> Graphics Support --> Bootsplash configuration --> Bootup splash Screen
![]() | |
| 该选项在打了内核补丁后才会出现。 | |
File systems --> Miscellaneous filesystems --> Compressed ROM file system support (cramfs)
配置内核后就可以用上面介绍的方法重新编译内核了。下一步是安装bootsplash工具。把下面这句加到/etc/apt/source.list里。
deb http://www.bootsplash.de/files/debian/ unstable main
用以下方法安装:
# apt-get update # apt-get install bootsplash # apt-get install sysv-rc-bootsplash 该软件包启用进度条和动画
在配置bootsplash时会问你是否安装一个新的bootsplash主题替换已存在的主题。如果你是第一次安装,请选择none,这样将会自动生成一个/boot/initrd.splash映像,并设置一个默认的newlinux主题。
接下来要更新启动器了,我是用lilo的,配置内容如下:
default=Linux2.6.10
image=/boot/vmlinuz-2.6.10
label=Linux2.6.10
read-only
initrd=/boot/initrd.splash #新增选项,指出映像文件
vga=791 #新增选项,设置显示像素1024X768
append="splash=verbose" #新增选项,设置显示模式为详细
# restricted
# alias=1
vga的取值见下表:
Table 7.1.
| Colors | 640X480 | 800X600 | 1024X768 | 1280X1024 |
|---|---|---|---|---|
| 256(8 bit) | 769 or 0x301 | 771 or 0x303 | 773 or 0x305 | 775 or 0x307 |
| 32000(15 bit) | 784 or 0x310 | 787 or 0x313 | 790 or 0x316 | 793 or 0x319 |
| 65000(16 bit) | 785 or 0x311 | 788 or 0x314 | 791 or 0x317 | 794 or 0x31A |
| 16.7 Mill.(24 bit) | 786 or 0x312 | 789 or 0x315 | 792 or 0x318 | 795 or 0x31B |
![]() | |
| 791为十进制表示法,0x317为十六进制表示法。较旧的lilo不支持十六进制,需用十进制表示法。 | |
运行lilo命令更新启动信息,重启电脑就可看到有底图的开机画面了。如果选择append="splash=silent",则不会显示启动信息,只会显示一幅开机图和一条进度条,就象Windows一样。
安装其它主题的方法也很简单,用apt-cache search bootsplash查出主题的名称再用apt-get安装即可,使用Debian就是方便。
用新内核重启时提示VFS不能挂接问题(由kennycx兄分享)
提示出错信息类似以下内容:
VFS:Cannot open root device "hdb2" or unknow-block(0,0) Please append a correct "root=" boot option kernel panic-not syncing: VFS:Unable to mount root fs on unknow-block(0,0)
以下是由网友提供的一些解决方法,以供参考:
原因一:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。
原因二:如果使用initrd.img启动系统,则cromfs必须编译进内核。(由西安交通大学的张成分享)
使用Grub启动器代替LiLo启动。
首先用apt-get install gurb安装相关软件。
再用gurb-install /dev/hda命令在分区上创建启动信息。
使用update-grub命令自动生成menu.lst文件。
编辑/boot/grub/menu.lst文件以满足你的需求,最后重启计算机。
![]() | |
| 如果启动失败,可用Live系统(如Knoppix)或rescure模式启动计算机,再mount启动分区,chroot到故障系统来进行修复。 | |
安装基本的X系统
# apt-get install x-window-system-core
安装GNOME桌面环境
# apt-get install gnome
到现在为止,我们已成功安装完成gnome桌面环境了,但桌面的语言环境默认是英文的,为了能显示中文,我们需安装中文字体和中文locales,开源的中文字体现在很少,且效果都不是很理想,所以Linux中文化还有很多工作要做。其中较好的有文鼎科技贡献的arphic TrueType字体,在Debian中字体包的名字分别是:
ttf-arphic-bkai00mp:文鼎PL中楷(Big5码)
ttf-arphic-bsmi00lp:文鼎PL细上海宋(Big5码)
ttf-arphic-gbsn00lp:文鼎PL简报宋(GB码)
ttf-arphic-gkai00mp:文鼎PL简中楷(GB码)
使用apt-get工具就可方便地安装,并能自动设置好Xft字体系统和X11核心字体系统。如果只是安装文鼎的字体,桌面中文字体的表现不佳,尤其是小字体,会出现模糊不清的情况。台湾的萤火飞(Firefly)在文鼎开源字体的基础上作了修改,形成文鼎PL新宋体(AR PL New Sung,fireflysung.ttf),令字体显示清晰很多,基本上可达到Windows上的效果。所以建议安装,安装方法如下:
把以下的deb源加到/etc/apt/source.list中:
deb http://apt.debian.org.tw unstable main
之后运行以下命令自动安装:
debian:~# apt-get update debian:~# apt-get install ttf-arphic-newsung
安装完成后就可使用该AR PL New Sung字体了。除了用apt-get工具安装外,我们还可手动安装。详细的安装方法可参考本文“XFree86中的字体”一章的内容。字体文件fireflysung.ttf可到http://www.study-area.org/apt/firefly-font/这个网址,或http://cle.linux.org.tw/fonts/FireFly/这个网址下载。
有版权的中文字体有很多,下面我以最常用的simsun字体为例介绍一下使用defoma(Debian Font Manager)工具安装的过程。全手动的安装过程请参考本文中的“XFree86中的字体”一章中的内容。
把windows系统中Fonts目录下的simsun.ttc拷贝到X系统的字体目录下。字体目录可以是/usr/share/fonts/,也可以是/usr/X11R6/lib/X11/fonts。我把simsun.ttc放到/usr/X11R6/lib/X11/fonts/truetype目录下。为方便管理字体,我需安装defoma字体管理程序。安装方法如下:
![]() | |
| dfontmgr是defoma的GUI介面,可选安装。 | |
#apt-get install defoma #apt-get install x-ttcidfont-conf 这个是truetype字体配置工具可自动生成fonts.dir和fonts.scale文件。 #apt-get install libft-perl libttf2 这些是字体管理需用到的函数库 #defoma-hints truetype simsun.ttc > simsun.hints 上面这个命令可生成simsum.hints文件,把该文件放到/etc/defoma/hints目录中。该文件的内容根据你的选择配置会有所不 同,下面内容与你实际生成的文件内容会有所区别: category truetype begin /usr/X11R6/lib/X11/fonts/truetype/simsun.ttc Family = Sim-Sun FontName = SimSun-Medium Encoding = Unicode Location = Chinese-China English Charset = ISO10646-1 GB2312 BIG5 ISO8859-1 UniCharset = GB2312 BIG5 ISO8859-1 GeneralFamily = SimSun Weight = Medium Width = Fixed Shape = Upright Alias = Sim-SunGB SimSunGB Foundry = Sim Priority = 20 X-Family = SimSun X-ElementAlias=foundry=default:family=simsun:resx=72:resy=72 TTCap = halfwidth-bw=0.5 italic-angle=0.167 no-roblique no-oblique no-ritalic end 注册字体: #defoma-font reregister-all simsun.hints 在/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType目录会自动生成fonts.dir和fonts.scale文件,并建立一个到字体文件的链接。 如果要删除字体,请用以下命令,现在当然不用删除了。 #defoma-font unreregister-all simsun.hints
用apt-get install locales安装zh_CN.GB2312,zh_CN.GBK和zh_CN.UTF8三种中文编码环境。并设置UTF-8为系统默认编码
#apt-get install gdm安装Gnome的显示管理器,最后重启系统即可。显示管理器的作用是用来管理X会话,提供图形化的登录界面。
安装完GNOME后,在应用程序栏中有一个“Debian菜单”项,默认是空白的,什么菜单项也没有。这个“Debian菜单”栏是Debian系统特有的,它参考了一些窗口管理器(FVWM2)的菜单管理方式,设计成一个通用的Debian菜单管理系统,不论你使用什么桌面环境或窗口管理器,在“Debian菜单”栏中都能找到Debian系统所安装的软件。要使用该菜单,需安装menu软件包,并用update-meuns命令生成Debian菜单项。
![]() | |
| 第一次运行update-menus后,需重启X会话才能生成Debian菜单。 | |
基本上每一个Debian系统的应用程序都会有一个菜单配置文件,用以定义该程序的菜单项名称、位置和命令行选项等参数。该配置文件一般位于/usr/lib/menu、/etc/menu或~/.menu目录下。下面是Gnumeric程序菜单项的配置文件格式示例:
?package(gnumeric):\ 定义软件包名,每条配置信息要在一行中写完,所以要用反斜杠续行
needs="X11"\ 定义该菜单项需在X11环境中使用
section="Apps/Math"\ 定义菜单项的路径位置
title="Gnumeric"\ 定义菜单项的标题
command="gnumeric" \ 定义命令和选项
hints="Gnome,Spreadsheets" \ 定义一些提示信息
icon="/usr/share/pixmaps/gnumeric.xpm" 定义菜单项的图标
该配置文件一般由Debian软件包管理者维护,在软件安装时通过软件配置脚本,把配置文件拷贝到相应的menu路径,并调用update-menus命令更新“Debian菜单”栏。这样,每安装一个新软件包,在“Debian菜单”栏就可找到它的菜单项了,且不受桌面系统或窗口管理器的限制,实现了统一的菜单界面接口。
有关Debian菜单系统的详细介绍可参考Debian的官方文档,位于http://www.nl.debian.org/doc/packaging-manuals/menu.html/index.html。
xfce是一个轻量级的桌面环境,可运行在多种类UNIX平台。它的口号是“让一切运行得更快”。它有自已的一套窗口管理器、文件管理器和面板管理器等组件。安装方法很简单,用以下命令安装即可:
debian:~# apt-get install xfce4
相关的依赖软件包都会自动安装,我是用startx命令启动X系统的。以前我在系统中安装了KDE,所以默认是进入KDE桌面环境。现在我要把默认的桌面环境切换到Xfce4。要实现该功能,我们只要使用update-alternatives命令把默认的窗口管理器换成Xfce4的即可。
可用以命令显示当前系统安装的窗口管理器:
debian:~# update-alternatives --display x-window-manager x-window-manager - status is manual. link currently points to /usr/bin/kwin /usr/bin/kwin - priority 50 /usr/bin/xfwm4 - priority 60 slave x-window-manager.1.gz: /usr/share/man/man1/xfwm4.1.gz Current `best' version is /usr/bin/xfwm4.
用以下命令设置:
update-alternatives --config x-window-manager
There are 2 alternatives which provide `x-window-manager'.
Selection Alternative
-----------------------------------------------
1 /usr/bin/kwin
*+ 2 /usr/bin/xfwm4
Press enter to keep the default[*], or type selection number: 2
Using `/usr/bin/xfwm4' to provide `x-window-manager'.
用startx启动X系统时就会自动进入Xfce4桌面环境了,Xfce的Logo是一个奔跑的小老鼠,喻意小巧、快速。进入Xfce4桌面环境,我们可看到一个很简洁的桌面。屏幕顶部是一条任务栏,屏幕底部是一组快捷按钮。Xfce的中文支持做得不错,界面基本上都是中文的,使用起来很方便。要配置Xfce,我们可点击屏幕底部的“设置”快捷按钮来配置。它会打开一个Xfce配置管理器,可对Xfce桌面环境的窗口管理器、文件管理器和会话管理器等进行配置。通过右击桌面还可显示一个弹出菜单,Xfce所有的功能都可在这里配置和使用。
用过Xfce后,感觉它的菜单反应速度真的很快,基本上是即点即出。装载程序也比在KDE和GNOME里快了一点。喜欢简洁、快捷桌面环境的朋友赶快安装Xfce试一试吧。
NVIDIA显卡是现时市面上最常用的显卡,下面介绍在Debian系统中NVIDIA显卡驱动程序的安装方法。我的Linux内核是2.6.10,到NVIDIA的官方网站http://www.nvidia.com下载最新for linux IA32的驱动程序。我安装时的最新版本是Version 1.0-7174,下载的驱程文件名为NVIDIA-Linux-x86-1.0-7174-pkg1.run。这个版本的驱动可在2.6内核中正常工作,旧一些的版本在2.6内核的Linux系统中安装会出现问题。具体的安装过程如下:
修改驱动程序的文件属性为可执行。
debian:~# chmod +x NVIDIA-Linux-x86-1.0-7174-pkg1.run
退出X Window到多用户环境下的字符终端模式。在驱动程序所在目录下输入以下命令开始驱动程序的安装。
debian:~/inst# ./NVIDIA-Linux-x86-1.0-7174-pkg1.run
安装完成后,修改/etc/X11/XF86config-4文件。在修改前最好把源文件备份一下。
把显示驱动设置章节的内容改成:
Section "Device"
Identifier "Generic Video Card"
Driver "nvidia"
EndSection
修改加载模块设置章节的内容,确保加载了以下模块
Load "glx"
并取消以模块的加载
Load "dri"
Load "GLcore"
重启X Window,使驱动生效。如果成功安装,在启动X Window时会出现NVIDIA的标志。进入系统后也可用lsmod命令列出加载的nvidia模块信息。
在/usr/share/doc/NVIDIA_GLX-1.0目录下的README文件中有nvidia驱动程序的安装说明和配置说明。在安装NVIDIA驱动程序时,最好先浏览一下该文档。我们还可通过nvidia-settings程序来调整显卡的参数。
参考http://www.xfree86.org/4.4.0/里的Mouse Support in XFree86一章的内容,配置XF86Config-4文件,内容如下:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/ttyS0"
Option "Protocol" "IntelliMouse"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
关键是要选对Protocol,不要用Auto。可手工配置/etc/X11/XF86config-4文件,也可用dpkg-reconfigure xserver-xfree86命令自动配置。配置后重启X服务器使配置生效。串口鼠标的滑轮可正常工作,左右键同时按可粘贴鼠标选中的内容,相当于Ctrl+v的复制功能。
![]() | |
| Protocol不能设为“Auto”,否则,滑轮不能正常使用。 | |
中文字体模糊不清的原因是字体配置不好引起的,有关X window的字体系统在上面已讲过,这里就不再细讲了。现在多数的程序都支持Xft字体系统的fontconfig库,所以调整该字体系统就可使程序达到很好的显示效果。具体调整方法是把以下代码加入到~/.fonts.conf中的<fontconfig>和</fontconfig>元素内。Xft字体的配置文件有三个,其中/etc/fonts/local.conf是本地字体配置文件,我们可在该文件内添加或修改字体配置,但好象新版的Xft的配置文件又有了变化,不使用local.conf文件了。fonts.conf是系统级的字体配置文件,一般不要修改该文件,它通过include指令应用local.conf文件里的配置信息。~/.fonts.conf是用户级字体配置文件,优先级最高。
![]() | |
| ~/.fonts.conf默认是没有的,我们可参照/etc/fonts/local.conf手工创建或直接拷贝该文件。 | |
<!--my fonts additions configure-->
<!-- 关闭所有10至15号字体的抗锯齿功能-->
<match target="font" >
<test compare="more" name="pixelsize" qual="any">
<double>10</double>
</test>
<test compare="less" name="pixelsize" qual="any">
<double>15</double>
</test>
<edit mode="assign" name="antialias" >
<bool>false</bool>
</edit>
</match>
<!-- 调整文字间距过大问题 -->
<match target="font">
<test target="pattern" name="lang" compare="contains">
<string>zh-tw</string>
<string>zh-cn</string>
<string>ja</string>
<string>ko</string>
</test>
<edit name="spacing">
<const>proportional</const>
</edit>
<edit name="globaladvance">
<bool>false</bool>
</edit>
</match>
<!-- 重排字体显示的优先级,使中英文字体更美观,排在最前面的字体会优先显示,如果没有该字体,则使用下一行的字体,以次类推。 -->
<alias>
<family>serif</family>
<prefer>
<family>Bitstream Vera Serif</family>
<family>Times New Roman</family>
<family>Times</family>
<family>AR PL New Sung</family>
<family>AR PL Mingti2L Big5</family>
<family>AR PL SungtiL GB</family>
<family>Ming(ISO10646)</family>
<family>SimSun</family>
<family>Kochi Mincho</family>
<family>Baekmuk Batung</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Bitstream Vera Sans</family>
<family>Arial</family>
<family>Verdana</family>
<family>Helvetica</family>
<family>AR PL New Sung</family>
<family>Ming(ISO10646)</family>
<family>AR PL kaitiM Big5</family>
<family>AR PL kaitiM GB</family>
<family>Kochi Gothic</family>
<family>Baekmuk Dotum</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Bitstream Vera Sans Mono</family>
<family>Courier New</family>
<family>Courier</family>
<family>AR PL New Sung</family>
<family>Ming(ISO10646)</family>
<family>Kochi Mincho</family>
<family>Baekmuk Batung</family>
</prefer>
</alias>
Firefox是基于Mozilla的一种轻便型Web浏览器,以快速、灵活和功能强大而深得自由软件爱好的青睐。在Debian中有现成的deb软件包,安装很简单方便。用以下命令即可完成Firefox中文版的安装:
debian:~# apt-get install mozilla-firefox mozilla-firefox-locale-zh-cn
界面字体配置:Firefox是一个GTK+2程序,所以有关Firefox菜单界面的字体配置可参考GTK+2程序字体配置进行配置。
网页显示字体配置:进入”编辑--首选项--基本信息--字体和颜色“菜单路径设置即可。要网页显示的字体好看和清晰关键是配置好Debian系统的中文字体显示。可参考本学习笔记的相关内容。
支持Java的配置:
首先要在firefox中启用java支持功能,在”编辑--首选项--网页特性“路径下把”启用java“这个选项选上。
接着配置java的插件,下面介绍的是手动配置的方法,如果我们使用上面介绍的Debian方式安装java软件包的话,则这些链接已自动建立好了,不用手工配置的。这里介绍手工配置方式主要是想说明java插件在Foxfire中的配置原理。在正确安装Java运行环境的前题下,进入/usr/lib/mozilla-firefox/plugins/目录。运行以下命令生成到java插件的一个链接:
debian:/usr/lib/mozilla-firefox/plugins# ln -s /usr/lib/j2re1.5-sun/plugin/i386/ns7/libjavaplugin_oji.so
如果你有使用Debian的alternatives配置系统,则在/etc/alternatives目录下应该已有一个firefox-javaplugin.so链接文件指向/usr/lib/j2re1.5-sun/plugin/i386\/ns7/libjavaplugin_oji.so。所以在这里你只需建一个指向该链接的链接即可。如:
debian:/usr/lib/mozilla-firefox/plugins# ln -s /etc/alternatives/firefox-javaplugin.so libjavaplugin.so
是不是很复杂,其实归根到底就是要在/usr/lib/mozilla-firefox/plugins目录下建一个到/usr/lib/j2re1.5-sun/plugin/i386/ns7/libjavaplugin_oji.so链接。
支持在线pdf文件显示:
以Adobe Reader 7.0 for Linux软件提供的pdf插件为例进行说明。同样,在配置前需完成Adobe Reader 7.0 for Linux软件包的安装,并确保acroread命令所在路径包含在系统环境的搜索路径中,也就是说能在系统任何路径中打acroread命令都能正常启动程序。我的acroread是安装在/usr/local/Adobe/Acrobat7.0/bin目录下的,所以我要把它拷贝到/usr/bin目录下。
acroread的pdf插件位于/usr/local/Adobe/Acrobat7.0/Browser/intellinux目录下,名为nppdf.so。用以下命令在firefox的插件目录创建一个到该文件的链接即可,如:
debian:/usr/lib/mozilla-firefox/plugins# ln -s /usr/local/Adobe/Acrobat7.0/Browser/intellinux/nppdf.so
安装好插件后,如果用firefox点击一个网页中的pdf文件链接,firefox会自动调用acroread程序来显示该pdf文件。
访问http://toolbar.google.com网址可以安装Google ToolBar工具。
在FireFox中,可在地址栏打上about:加配置关键字来配置FireFox或者显示一些信息。下面列出一些常用的关键字,以供参考:
about: -- 显示FireFox版本信息。
about:config -- 配置FireFox的所有参数。
about:credits -- 显示开发者及对Mozilla作出贡献的人。
about:blank -- 打开一个空白页面。
about:buildconfig -- 显示FireFox的编译时的参数。
about:cache -- 这个不用介绍了吧,显示缓存内容。
about:plugins -- 显示已安装的插件信息。
about:mozilla -- 显示Mozilla宣言。
默认情况下,Firefox左上角的Google搜索栏不能直接打入关键字进行搜索,而是直接链接到google的主页上,很多人都不喜欢这种设置,也包括我自己啦。下面让我们修改一下Firefox的配置,使我们能在搜索栏上直接搜索。首先,在地址栏上打入about:config进入配置面页,过滤google关键字可找到两个选项,分别是:browser.search.param.Google.1.custom和browser.search.param.Google.1.default。把这两个选项的值都删掉。现在,我们就可在搜索栏直接用google进行搜索。
现在Google已提供Firefox的Toolbar插件,在Toolbar中就可直接搜索了,Firefox自带的搜索栏都很少用了。
firefox可通过Extension扩展自身的功能,现在网上已有大量的扩展套件可供下载。每个扩展套件是使用XUL开发的xpi程序,在网上点击即可安装。下面介绍我接触和使用过的一些套件。
Google Toolbar,Google工具栏。下载地址:http://toolbar.google.com/
Web Developer Extension,Web开发者工具栏,可实时控制CSS、图片、cookies等元素,是网页设计师的必备套件。下载地址:http://chrispederick.com/work/webdeveloper/
sage,一个RSS阅读器扩展套件。下载地址:http://sage.mozdev.org/
ScrapBook,抓取网页的工具,可把喜欢的页面保存下来。http://amb.vis.ne.jp/mozilla/scrapbook/
在Debian系统中暂时还没有acroread包,所以我们需到Adobe网站下载源码或rpm文件安装。下载的地址是:ftp://ftp.adobe.com/pub/adobe/reader/unix/7x/7.0/。我下载的是rpm包,用rpm -ivh安装即可。默认它是安装在/usr/local/Adobe/Acrobat7.0目录。
rxvt是一个功能强大的的终端,它占用资源少,启动速度快,很多人都喜欢使用它。所以我在这里介绍一下Debian系统中rxvt中文终端的安装。在Debian中有很多个rxvt包,可用apt-cache search rxvt命令查询。主要有以下三类,一个就叫rxvt,不支持中文显示;一个叫rxvt-ml,支持GB和BIG5中文编码;还有一个叫rxvt-unicode,支持unicode编码。第一种不支持中文,这里就不讨论了。下面分别讨论rxvt-ml和rxvt-unicode两种rxvt终端的安装。
![]() | |
| 在使用rxvt中文终端前,需先把GNOME或KDE桌面的中文环境配置好。这样才能在rxvt中正常显示中文和使用中文输入法(我用fcitx)。 | |
安装rxvt-ml
debian:~# apt-get install rxvt-ml
安装完成后,在/usr/bin目录下会生成几个rxvt程序,分别是crxvt crxvt-big5 crxvt-gb grxvt krxvt 和一个指向/etc/alternatives/rxvt的链接文件rxvt。这六个程序分别对应不同的语言编码环境,crxvt-gb用于中文GB编码环境;crxvt-big5用于大五码编码环境;krxvt用于日文环境,我测试过,krxvt也可用于中文环境;grxvt用于greek键盘环境;crxvt也是用于大五码环境;rxvt链接默认指向krxvt。
对于我们来说,只需使用crxvt-gb这个程序就可以了。为了能正常显示中文,我们需把locale环境配置成zh_CN.GB2312。具体配置方式可参见GNOME和KDE桌面环境中的locale配置。重启X会话使locale生效,这样就可用crxvt-gb使用rxvt中文终端了。
安装rxvt-unicode
debian:~# apt-get install rxvt-unicode
安装完成后,直接运行rxvt或rxvt-unicode即可,对locale好象没有什么要求。rxvt-unicode还有两个程序,一个是urxvtd(daemom),一个是urxvtc(client)。通过这对程序可用一个线程打开任意多个终端窗口,大大提高程序启动的速度,并有效减少内存的占用。rxvt-unicode可支持多国语言,但程序启动比crxvt-gb慢好多,而且对中文字符的支持也不是太好,比如全角的双引号,在rxvt-unicode中会变得很大,很不协调。所以功能和性能,不可能两全其美哦。
rxvt的配置选项是很丰富的,你可通过命令行或X资源文件来配置。命令行方式只能一次性改变rxvt的设置,如:
debian:~# rxvt -fn 8X16 -fg black -bg white 上句的设置表示使用8X16的字体,终端屏幕为白底黑字。
有时我想把调整好的配置保存起来,不用每次都在命令行输入大量的配置信息。这时我们可以用X系统的资源文件~/.Xresources,如果用户主目录如没有可自行创建。内容如下:
! my rxvt setting Rxvt.background:black Rxvt.foreground:white Rxvt.colorBD:yellow Rxvt.colorUL:green Rxvt.multichar_encoding:gb2312 Rxvt.scrollBar:True Rxvt.scrollBar_right:True Rxvt.scrollBar_floating: False Rxvt.scrollstyle: next Rxvt.saveLines:1500 Rxvt.color0:black Rxvt.color1:red Rxvt.color2:#3a5da3 Rxvt.color3:#4b76cc Rxvt.color4:RoyalBlue4 Rxvt.color5:magenta Rxvt.color6:#a1b5dd Rxvt.color7:#8a95aa Rxvt.color8:#616668 Rxvt.color9:#075982 Rxvt.color10:#0f82bc Rxvt.color11:#13a9f4 Rxvt.color12:SkyBlue2 Rxvt.color13:#63c2f2 Rxvt.color14:#6caccc Rxvt.color15:#dbeff9 Rxvt.font:-b&h-lucidatypewriter-medium-r-normal-*-14-*-*-*-*-*-iso8859-* Rxvt.mfont:-*-*-medium-r-normal-*-16-*-*-*-c-*-gb*-* Rxvt.menu:/etc/X11/rxvt.menu Rxvt.preeditType:Root
![]() | |
| 在rxvt-unicode中资源文件的名称前缀改为rxvt,而不是Rxvt。 | |
修改完资源文件后,需运行以下命令使配置生效,或重启X会话。一般我们选择前者:
debian:~# xrdb .Xresources
rxvt的配置参数有很多,可使我们定置出个性化的终端。详细的参数可查询man页或用rxvt --help列出。配置很简单方便的,有兴趣的朋友可测试一下。我在这里就不一一介绍了。
![]() | |
| GNOME和KDE环境下rxvt中文终端的设置方式是一样的。 | |
fcitx输入法在rxvt中好象不能通过设置单击L_SHIFT键进行中英文切换,只能设置“双击中英文切换=1”,通过双击L_SHIFT进行中英文切换。
KDE是一个强大的桌面环境,用QT开发,发展到现在,已与Windows平台十分地相似,使用起来十分方便。下面介绍在Debian下安装中文KDE桌面环境的过程
首先,我们需安装x-window系统,与安装gnome桌面环境一样:
debian:~# apt-get install x-window-system-core
接着就可安装kde系统,为了减少不必要的软件包,我只安装了KDE的核心软件包:
debian:~# apt-get install kde-core
好了,现在基本的kde环境已安装好,我们可用startx命令启动它。现在的kde是英文环境的。接下来我们要安装kde的国际化包kde-i18n-zh*,这里用星号表示安装所有的中文国际化软件包,你也可根据实际情况选择。这些国际化软件包里包含了KDE桌面环境的中文显示信息。
debian:~# apt-get install kde-i18n-zh*
在kde中要显示中文还要安装中文字体。有关字体的安装请参照上一节“安装gnome中文桌面环境”中有中文字体安装的内容。这里就不再介绍了。装完中文字体后,就可在KDE“控制中心”-->“区域和辅助功用”-->“国家/地区和语言”里添加中文语言,记住,要把中文语言放到第一位。这样,英文的KDE桌面环境就变成中文的了。
安装中文locales,方法同GNOME桌面系统。
开源软件都是跨平台的,在KDE中我们也可使用GNOME平台(基于GTK+)的程序,如firefox。在Debian系统的KDE中有一个软件包叫gtk2-engines-gtk-qt,可帮我们在KDE平台下管理GTK+程序的主题和字体配置,使GTK+程序就就像QT程序一样方便地进行配置。该套软件包中的主题配置引擎叫GTK-Qt Theme Engine,是由Freedesktop.org维护的,Freedesktop.org通过开发软件和制定标准,志在消除各X window桌面平台间的差异。GTK-Qt Theme Engine的网址是:http://www.freedesktop.org/wiki/Software_2fgtk_2dqt。在KDE中安装和配置gtk2-engines-gtk-qt软件包的方法如下:
用以命令安装gtk2-engines-gtk-qt软件包:
debian:~# apt-get install gtk2-engines-gtk-qt
安装完成后,就可在KDE的“控制中心”-->“外观和主题”-->“GTK Styles and Fonts”中配置GTK+程序的主题和字体。通过该工具,GTK+程序就可使用QT丰富的主题,并可在控制中心中方便地修改GTK+程序的字体。
这里以KDE环境为例说明,GNOME和其它桌面环境也大同小异。我安装了kde-core软件包,所以只有基本的kde系统,很多功能还没有,要手工配置,其中多媒体声音系统就是其中之一。我是以2.6.10内核,ES1371声卡为例进行说明的,具体的安装步骤如下:
首先是要编译内核,我选用了较新的Advanced Linux Sound Architechture(ALSA)系统,取消Open Sound System(OSS)系统。并在ALSA下选择你的声卡驱动,把它编译进内核。用这个新内核启动系统。
进入KDE桌面环境后,用以下命令安装alsa-base和kmix软件包,alsa-base软件包提供alsa声音系统所需的软件支持,alsa-utils提供一个alsa系统管理工具集。kmix是一个KDE的混音器,用以调节音量。GNOME的混音器包含在GStreamer多媒体架构中:
如果是KDE环境,用以下命令安装:
debian:~# apt-get install alsa-base alsa-utils kmix
如果是GNOME环境,用以下命令安装:
debian:~# apt-get install libgstreamer0.8-0 gstreamer0.8-alsa
安装完相关软件后,要运行以下命令配置alsa系统:
debian:~# alsaconf
按提示选择你的声卡。如果选择正确,最终将显示成功配置alsa系统的提示信息。
最后,就可用kmix或gstreamer调节音量,这样就可在kde控制中心的多媒体配置中进行声音测试了。如果是GNOME的话可在“应用程序”--“桌面首选项”--“音效”里进行测试。
minicom是一个串口通信工具,就像Windows下的超级终端。可用来与串口设备通信,如调试交换机和Modem等。它的Debian软件包的名称就叫minicom,用apt-get install minicom即可下载安装。
第一次运行minicom时会提示没有默认的配置文件,但不影响使用。进入minicom程序后会自动连接串口设备,我连接的串口设备是实达捷豹2000。如果成功连接,则显示OK和一些初始化信息。如:
Welcome to minicom 2.1
OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n
Compiled on Dec 9 2004, 08:45:12.
Press CTRL-A Z for help on special keys
OK
AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
OK
在这个状态下我们就可用Modem的AT命令与modem交互。如:
at&v #显示配置表
---ACTIVE PROFILE---
B0 L2 M1 X4 W2 N1 E1 Q0 V1 T &O0 &Q0 &P0 &Y0 &J0 &R1 &D2 &C1 &S0 &U0 &K3 \N5 \V
S0:0 S1:0 S2:43 S3:13 S4:10 S5:8 S6:6 S7:60 S8:2 S9:6 S10:14 S11:95 S12:100 S13
---STORED PROFILE 0---
B0 L2 M1 X4 W2 N1 E1 Q0 V1 T &O0 &Q0 &P0 &Y0 &J0 &R1 &D2 &C1 &S0 &U0 &K3 \N5 \V
S0:0 S2:43 S3:13 S4:10 S5:8 S6:6 S7:60 S8:2 S9:6 S10:14 S11:95 S12:100 S19:0 S2
---STORED PROFILE 1---
B0 L2 M1 X4 W2 N1 E1 Q0 V1 T &O0 &Q0 &P0 &Y0 &J0 &R1 &D2 &C1 &S0 &U0 &K3 \N5 \V
S0:0 S2:43 S3:13 S4:10 S5:8 S6:6 S7:60 S8:2 S9:6 S10:14 S11:95 S12:100 S19:0 S2
---TELEPHONE NUMBER---
&Z0=
&Z1=96169
&Z2=2025819220065
OK
atdt96169 #拔96169
CONNECT 48000/V42BIS
*********************************
* Quidway A8010 Internet Server *
* welcome!! *
*********************************
please input username:1
please input password:*
Entering PPP mode.
Async interface address is unnumbered(Ethernet0)
Header compression will match your system.
Your IP address is: 218.20.82.129 MTU is 1500 bytes
要挂机的话可先按Ctrl+A切换到命令模式,再H键。当屏幕很花时,在命令模式下按C键可清屏。AT命令还有很多,下面给出一些常用的以供参考。
AT&F 恢复出厂设置 ATZ0 软复位 AT&V 显示配置表 AT&W0,1 存写配置表0,1 ATDT96169 音频拔号96169 AT&Z0=96169 保存电话号码到Z0位置,从配置表可查看位置信息 ATDS 0 拔第一个位置的号码 AT&S0=0 禁止自动应答功能 AT&S0=N(1-255) 振铃N次后自动应答 ATM0 关闭扬声器声音 ATM1 接收载波时(拔通后)关闭扬声器声音 ATM2 扬声器一直处于开状态 ATM3 正在接收载波和拔号时关闭扬声器声音 ATL1,2,3 设置扬声器的音量
默认的minicom配置文件位于/etc/minicom目录下,文件名为minirc.dfl。
一般来说,在使用minicom前需进行配置,以便正确连接串口设备。有两种方式可配置minicom,一种是用minicom -s命令直接从命令行进入配置菜单;另一种方式是用不带参数的minicom命令进入minicom后,在命令模式中配置。minicom的命令模式可Ctrl+A进行切换。按Z键可查看所有的命令。按O键,可进入minicom的配置菜单。在这里我们可配置上传下载文件保存的路径、串口的参数、拔号参数等。配置完成后,可用Save setup as..菜单把配置参数以文件的形式保存起来,下次就可直接用minicom filename命令调用该参数文件了。用Save setup as dfl命令可把配置存在minirc.dfl这个默认配置文件中。
minicom的使用不难,关键是要先了解你所连接串口设备的参数。用man minicom可查看详细的帮助。
Modem拔号网络的速度慢,但在一些环境下还是很有用。如传真和点对点连接。下面这篇有关Modem设置的文章就是我在配置Fax服务器时记录下来。
在配置拔号网络前,请先用上面介绍的Minicom工具与Modem通信,确定Modem在Linux下能正常工作。Modem拔号采用PPP协议与远程的拔号服务器建立连接。在Debian系统下,有一个叫pppconfig配置可帮助我们快速配置pppd拔号网络。运行pppconfig,按向导一步下配置下去就可以了。配置完成保存后,在/etc/ppp/peers目录下会生成一个配置文件,默认是provider。用以下命令启动拔号连接:
debian:~# pon provider #如果你的连接名不是provider,请用你所起的连接名代替
用以下命令可查看连接日志:
debian:~# plog Aug 29 09:54:01 debian pppd[1708]: sent [IPCP ConfReq id=0x3 <addr 218.20.81.4> <ms-dns1 61.144.56.101> <ms-dns3 202.96.128.86>] Aug 29 09:54:01 debian pppd[1708]: rcvd [IPCP ConfAck id=0x3 <addr 218.20.81.4> <ms-dns1 61.144.56.101> <ms-dns3 202.96.128.86>] Aug 29 09:54:01 debian pppd[1708]: Cannot determine ethernet address for proxy A RP Aug 29 09:54:01 debian pppd[1708]: local IP address 218.20.81.4 Aug 29 09:54:01 debian pppd[1708]: remote IP address 218.20.64.62 Aug 29 09:54:01 debian pppd[1708]: primary DNS address 61.144.56.101 Aug 29 09:54:01 debian pppd[1708]: secondary DNS address 202.96.128.86 Aug 29 09:54:01 debian pppd[1708]: Script /etc/ppp/ip-up started (pid 1711) Aug 29 09:54:02 debian pppd[1708]: Script /etc/ppp/ip-up finished (pid 1711), status = 0x0
用以下命令关闭连接:
debian:~# poff
用以下命令显示连接状态信息:
debian:~# pppstats
IN PACK VJCOMP VJUNC VJERR | OUT PACK VJCOMP VJUNC NON-VJ
9532 145 0 0 0 | 97 5 0 0 5
另外一种方法是利用wvdial这个拔号工具实现Modem拔号上网。操作方法也很简单,先下载wvdial软件包:
debian:~# apt-get install wvdial
下载完软件后会自动运行wvdial的配置程序,要求输入电话号码、用户名和密码。配置程序会自动检测你的Modem并生成