Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7631663 建立时间:2006年5月29日 |

| |
[网络与系统管理]Debian学习笔记3 软件技术
lhwork 发表于 2007/2/2 10:09:26 |
Chapter 4. Nautilus
Table of Contents
4.1. 使用Nautilus脚本扩展文件管理功能
4.2. 性能调整
Nautilus是一个文件管理器,与Windows中的资源管理器类似。它是一个开源软件,是GNOME桌面环境默认的文件管理器,项目网址是:http://www.gnome.org/projects/nautilus/。
4.1. 使用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/。
4.2. 性能调整
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菜单的“编辑--首选项--预览--统计项目数量\\“路径进行设置。
Chapter 5. GConf配置系统
GConf是GNOME2.0桌面系统的一个应用程序参数配置系统,它可集中存储和管理各种应用程序的配置参数,就象Windows平台的注册表一样。该系统对系统管理员来说是很有用的,系统管理员可通过该工具方便地管理他们的系统。GConf还有一个非常COOL的功能,就是“process transparent”(进程无关性),也就是说,如果我在一个应用程序中修改了一个参数,马上其它使用同一参数的应用程序同样会感受到参数的改变。网上资源:http://www.gnome.org/projects/gconf/
Chapter 6. 国际化(Internationalization,简写为I18N)
国际化是指软件能用于多国语言环境的能力。在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没有安装,则不能显示系统的中文提示信息,只会显示英文提示信息。
Chapter 7. XFree86中的字体
Table of Contents
7.1. 两个字体系统
7.1.1. Xft
7.1.2. X11核心字体系统
7.2. 参考资料
字体设置在X系统中是一项较复杂而又非常重要的内容,字体是我们一进入X window就必须整天面对的,清晰、美观的字体会使我们工作起来赏心悦目,轻松愉快。XFree86是X系统在X86架构中的免费实现(现在好象不是GPL的了),也是现在Linux系统默认的X系统。为了设置好字体,我们需了解XFree86系统中的字体系统的原理和实现技术。只是照抄网上的设置可能也可配置出一套效果不错的字体,但这样我们只会知其然而不其所以然,不能融会贯通,灵活应用。请随我慢慢进入XFree86中的字体系统,一窥其中的奥秘。
500)this.width=500'>
有关X系统和XFree86的资料可参考我整理的X window学习笔记,里面对这两个系统的历史渊源有详细介绍。
7.1. 两个字体系统
XFree86系统有两套的字体系统,这也是为什么X window中字体设置较复杂的原因之一。这两套的字体系统分别是:核心X11字体系统和Xft字体系统。核心X11字体系统是应用最广泛的一套字体系统,所有的X系统都支持。Xft字体系统是一个新的字体技术,只能用在基于XFree86系统的X系统上,但该套字体系统配置简单,容易使用,将是未来发展的方向。
7.1.1. Xft
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工具。
7.1.2. X11核心字体系统
配置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
从XFree86转到X.org后,配置文件使用/etc/X11/xorg.conf代替原来的XF86Config-4。在X.org中,使用开源的freetype模块,所以要注释掉xtt模块,重新启用freetype。Section "Module"
# Load "xtt"
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"
EndSection
如果没启用freetype模块,则系统会找不到GB2312和GB18030编码的X11核心中文字体,影响freemind、xmms等要使用X11核心字体程序的中文显示。
字体模块列表:
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中文字体了,或者使用xset fp rehash命令重新刷新字体。xlsfonts命令可列出系统中已安装的X11核心字体。
500)this.width=500'>
如果你是使用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字体。
7.2. 参考资料
Documentation for XFree86[tm] version 4.4.0
XFree86 Font De-uglification HOWTO
XFree86中的字体
Chapter 8. 网络
Table of Contents
8.1. 网络基础
Linux的网络功能是非常强大和先进的,这也是Linux成为很多公司服务器的首选软件的原因之一。本章记录Debian系统下的网络配置。
8.1. 网络基础
电脑通过网卡连接网络,每块网卡都有一个独一无二的48位地址,为便以记忆,我们把这些地址写成6组以冒号分隔的的十六进制数字,如:00:20:E0:C1:0F:F6。前3组是网卡制造商的标识码,由IANA分配。这种地址我们称它为介质访问控制器地址(MAC地址,Media Access Controller Address)。在网络通信中,最终是使用该地址来标识每台电脑的。
每台联网的电脑都需要有一个唯一的IP地址标识,就好象我们家的门牌号码一下。IP地址可以手工分配,也可以由电脑自动分配。手工分配是IP地址是固定不变的,叫静态IP地址分配模式。由电脑通过DHCP服务器自动分配的IP地址是不固定的,叫动态IP分配模式。动态IP分配模式一般在网络较大的环境下使用。电脑自动维护一个IP地址池,当客户有需要时从这个IP地址池中临时租用一个IP地址来使用。使用动态IP能有效减少网管员的维护工作量。
特殊的IP地址
0.0.0.0
表示默认的网络和主机的集合。
255.255.255.255
广播地址,代表本网段的所有主机。
127.0.0.1
本机回环地址,主要用于测试本机网络功能。
224.0.0.1
组播地址。224.0.0.1特指所有主机,224.0.0.2特指所有路由器。
169.254.x.x
当动态获取IP地址的主机不能从DHCP服务器正常取IP时,电脑就会自动指定一个169.254.x.x地址。
10.x.x.x、172.16.x.x~172.31.x.x、192.168.x.x
私有地址,只能用于企业内部。保留这此地址是为了区分Internet地址和企业内部网地址,避免内部网连接Internet时造成IP地址冲突和混乱。私有地址是不能和Internet连接的,如果内部网要连接Internet,需进行私有地址到公共地址的转换(NAT)。
500)this.width=500'>
对于一台网络主机,它只能接收要本机IP地址广播地址和组播地址。
IP地址伪装(IP masquerading,也称为IPMASQ)技术允许私有网络中的一台或多台没有公共IP地址的计算机与Internet通信。充当IPMASQ服务器的电脑相当于一个网关,私有网络中的电脑对外网来说是完全不可见的。外网看到的只是作为IPMASQ服务器的IP地址。因为当私有网络需与Internet通信时,数据包会被发送到IPMASQ服务器,IPMASQ服务器会改写数据包的IP报头使它们看上去就好象全部出自IPMASQ服务器。当外部的应答数据包到达时,IPMASQ服务器持先反转对刚才外出数据包的IP报头所做的改写,再把它们转发给相应的内部电脑。从而实现内部私有网络对Internet的访问。
网络地址转换(NAT,Network Address Translation)是另一种应用范围更广的技术,具有NAT功能的网络设备能把某个IP空间里IP地址转换为另一个IP地址空间里的IP地址。它与IP伪装技术的主要区别是:NAT技术可以把某个内部网络里的每一个IP地址分别转换成独立的外部IP地址。另外,当转换后,外部地址也可以访问内部地址。 |
|
|