2007年1月9日

linux下字体安装

在linux下字体安装就是“程咬金三斧头”——

第一 拷贝字体文件
拷贝字体到 XF86Config-4 或 xorg.conf 文件里面特定的 FontPath 指定的目录。一般情况下,是拷贝到 /usr/share/fonts/ 下面或更下面的目录中。

第二 配置 Core 字体
进到你刚才所拷贝的字体目录,运行 ttmkfdir 生成一个字体描述方案,就是类似 -misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0 好多行凑成了这么一个文件fonts.dir 。再拷贝成 fonts.scale。这样 Core 字体系统就会根据这些描述调用具体的相关字体,只要 是同一个字体,就是通用的。总之这步,就是正确的生成两个一模一样的文件 fonts.dir 和 fonts.scale 。

第三 配置 Xft 字体
这步就简单了。fc-cache -fv 就会自动把字体加入到了列表。

判断 第二步 正确完成的标志是 你在 xlsfonts 列表里找到你刚刚安装的字体。
判断 第三步 正确完成的标志是 你在 fc-list 列表里找到你刚刚安装的字体。

由于 X 目前存在两个字体系统,所以才需要上面的 二三 两步。
当然总有一天,core字体是会消失的,xft字体是往后发展的主流。

阅读全文...

2007年1月8日

mldonkey的基本使用

现在用mldonkey的人并不是很多,但它还是有很多的好处的,支持很多流行的p2p网络,目前支持的协议有 eDonkey, Overnet, Bittorrent, Gnutella (Bearshare, Limewire,etc), Gnutella2 (Shareaza), Fasttrack (Kazaa, Imesh, Grobster), Soulseek (beta), Direct-Connect (alpha), Opennap (alpha)。通过插件形式,基本上大的p2p网络都支持了。 其它的好处如支持多个os平台,能安装在其它机器上进行远程管理,在使用ed2k的时候还可以同时连接多个服务器等等。

这个软件的核心是一个控制台程序 mldonkey,可以以一个daemon的方式运行,另外有三种远程的管理方式:telnet和www,还有基于GTK的图形化的前端mldonkey-gui。

主要配置文件有这样几个
~/.mldonkey/downloads.ini 基本的设置( 这个是for edonkey和其他协议的)
~/.mldonkey/servers.ini 服务器列表文件,可以在mldonkey-gui的console里面输入servers "/xxx/yyy/server.met"来导入网上下载的server.met服务器列表
~/.mldonkey/files.ini 当前已经完成的和未完成的文件列表
~/.mldonkey/friends.ini 好友列表
~/.mldonkey_gui.ini 图形前端的配置文件
另外其他的网络协议都有其单独的配置文件,一般都放在~/.mldonkey目录下

如何使用mldonkey:
在终端输入mlnet就可以了,如果想让它在后台运行,使用
mlnet &> /dev/null (加>/dev/null的目的是不让它生成无用的log文件)
然后任何时间运行mldonkey-gui就可以对其进行操作

基础的设置:
要手工修改设置文件,首先肯定mldonkey 并没有运行,否则它会覆盖你做的修改

client_name
设置nickname,这个和emule一样,有些server需要特殊的nickname才可以连上

shared_directories
共享的文件夹路径在这里设置,默认[]就是不共享

allow_browse_share
是否容许别人浏览你共享的文件,我是选false

gui_port = 4001
http_port = 4080
telnet_port = 4000
三种操控方式使用的端口,记得如果在这里修改了gui的端口,也要在gui的设置中同样更改

allowed_ips = ["127.0.0.1";]
容许控制端联接的ip列表,可以使用简单的通配符如*和?

max_hard_upload_rate
max_hard_download_rate
如果要限制传输速度,就设置这两个参数,0表示不限,单位是KB

enable_overnet
enable_bittorrent
enable_donkey
enable_opennap
enable_soulseek
enable_gnutella
enable_fasttrack
enable_directconnect
各种p2p协议,想使用的话就true,不想用就设置成false

max_concurrent_downloads
最大容许的同时下载线程,默认是60,如果对自己带宽有信心可以设大点,我 512K adsl远远用不了60,所以不动

temp_directory
incoming_directory
auto_commit
下载中未完成的文件存放路径和完成的文件存放的路径,auto_commit表示mldonkey会自动把下载完成的文件从temp_directory移动到incoming_directory里面

ask_for_gui
启动时询问是否开启mldonkey_gui,如果觉得这个对话框很烦就设置成false,以后自己手动运行mldonkey_gui随时都可以连的上
start_gui
是否自动运行gui界面

阅读全文...

2007年1月7日

谜

在这个特殊的日子,写下这一段谜一样的文字。

和平来自不易,即使是表面的平静也是好的。

因为仅仅是表面平静,其实已经无法整理。

一旦整理,就会有轩然大波。

之后或许会得到真正的平静,但是更大的可能是永无宁日,即使这种虚假的平静也会不复存在。

阅读全文...

2007年1月6日

心烦意乱

最近不知为什么,总是觉得心烦意乱,没有好心情,也没有兴趣做事情。

不知为什么,难道是年底综合症?一年过去了,很多事情告一段落,新的事情还没有打算,现在处于青黄不接的时候,忙了一年后感觉无所事事,落差还没有适应过来。

阅读全文...

2007年1月5日

孩子的奇怪动作

小孩子有一个奇怪的动作——

每次跌跤后,不哭也不闹,先不忙着爬起来,而是先拿小手拍拍地板;如果是哪里撞了一下,比如墙上或是桌子上,就用小手拍两下那个地方,然后爬起来。

看到这个现象,我很好笑。但是看着孩子认真的严肃的样子,突然想到一个字眼——仪式。没错,任何的仪式在不相信的人的眼里,都是那么可笑,但对于仪式的参与者、实行者他们都是那么认真投入。孩子在这么做的时候,他自己肯定认为是神圣伟大的动作,可以消除疼痛,并得到心灵上的安慰。如同教徒在祈祷的时候一样的虔诚。

这个动作想必是爷爷奶奶领的时候,一旦孩子摔倒,为了安慰孩子,打几下地板或是桌子什么的,孩子就学会了。

有人说这样子不好,因为专家说了,这样的孩子今后就学会了推卸责任,对社会不好。但不管怎么样,孩子只要不哭,就很好。再说了现在的社会,如果不学会推卸责任,真不知该如何生存。

话说回来,这个小孩确实有点勇敢,不怕疼,力气又大,以后大概也会向武的这方面发展。这样也好,他的爸爸妈妈太文弱了。

不知道为什么,从一个小动作想到了这么多,杂七杂八扯了这么多。

阅读全文...

2007年1月4日

轻松获得网通、电信、铁通IP地址分配段

  APNIC是管理亚太地区IP地址分配的机构 ,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!下面就让我们看看如何在Linux下获得一些电信运营商的IP地址分配情况:

shell> wget http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gz
shell> tar xzvf ripe-dbase-client-v3.tar.gz
shell> cd whois-3.1
shell> ./configure
shell> make
完成上述编译安装工作后,我们开始获取IP地址段;

  中国网通:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP > /var/cnc

  中国电信:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > /var/chinanet

  中国铁通:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CRTC > /var/crtc

  打开获取后的文件可以看到里面的信息非常详细,甚至可以看到各个分公司的负责人、电话、电子邮件等等信息。如果想得到一份整齐干净的IP地址段文件,只要用grep和awk简单过滤就可以了。

阅读全文...

2007年1月3日

awk 用法

awk 用法:awk ‘ pattern {action} ‘

变量名 含义
ARGC 命令行变元个数
ARGV 命令行变元数组
FILENAME 当前输入文件名
FNR 当前文件中的记录号
FS 输入域分隔符,默认为一个空格
RS 输入记录分隔符
NF 当前记录里域个数
NR 到目前为止记录数
OFS 输出域分隔符
ORS 输出记录分隔符


1、
awk ‘/101/’ file 显示文件file中包含101的匹配行。
awk ‘/101/,/105/’ file
awk ‘$1 == 5′ file
awk ‘$1 == “CT”‘ file 注意必须带双引号
awk ‘$1 * $2 >100 ‘ file
awk ‘$2 >5 && $2<=15' file

2、
awk '{print NR,NF,$1,$NF,}' file 显示文件file的当前记录号、域数和每一行的第一个和最后一个域。
awk '/101/ {print $1,$2 + 10}' file 显示文件file的匹配行的第一、二个域加10。
awk '/101/ {print $1$2}' file
awk '/101/ {print $1 $2}' file 显示文件file的匹配行的第一、二个域,但显示时域中间没有分隔符。

3、
df | awk '$4>1000000 ‘ 通过管道符获得输入,如:显示第4个域满足条件的行。

4、
awk -F “|” ‘{print $1}’ file 按照新的分隔符“|”进行操作。
awk ‘BEGIN { FS=”[: \t|]” } {print $1,$2,$3}’ file 通过设置输入分隔符(FS=”[: \t|]”)修改输入分隔符。

Sep=”|”
awk -F $Sep ‘{print $1}’ file 按照环境变量Sep的值做为分隔符。
awk -F ‘[ :\t|]’ ‘{print $1}’ file 按照正则表达式的值做为分隔符,这里代表空格、:、TAB、|同时做为分隔符。
awk -F ‘[][]’ ‘{print $1}’ file 按照正则表达式的值做为分隔符,这里代表[、]

5、
awk -f awkfile file 通过文件awkfile的内容依次进行控制。
cat awkfile /101/{print “\047 Hello! \047″} –遇到匹配行以后打印 ‘ Hello! ‘.\047代表单引号。
{print $1,$2} –因为没有模式控制,打印每一行的前两个域。

6、
awk ‘$1 ~ /101/ {print $1}’ file 显示文件中第一个域匹配101的行(记录)。

7、
awk ‘BEGIN { OFS=”%”} {print $1,$2}’ file 通过设置输出分隔符(OFS=”%”)修改输出格式。

8、
awk ‘BEGIN { max=100 ;print “max=” max} BEGIN 表示在处理任意行之前进行的操作。{max=($1 >max ?$1:max); print $1,”Now max is “max}’ file 取得文件第一个域的最大值。
(表达式1?表达式2:表达式3 相当于:
if (表达式1)
表达式2
else
表达式3
awk ‘{print ($1>4 ? “high “$1: “low “$1)}’ file

9、
awk ‘$1 * $2 >100 {print $1}’ file 显示文件中第一个域匹配101的行(记录)。

10、
awk ‘{$1 == ‘Chi’ {$3 = ‘China’; print}’ file 找到匹配行后先将第3个域替换后再显示该行(记录)。
awk ‘{$7 %= 3; print $7}’ file 将第7域被3除,并将余数赋给第7域再打印。

11、
awk ‘/tom/ {wage=$2+$3; printf wage}’ file 找到匹配行后为变量wage赋值并打印该变量。

12、
awk ‘/tom/ {count++;}
END {print “tom was found “count” times”}’ file END表示在所有输入行处理完后进行处理。

13、
awk ‘gsub(/\$/,”");gsub(/,/,”"); cost+=$4; END {print “The total is $” cost>”filename”}’ file gsub函数用空串替换$和,再将结果输出到filename中。
1 2 3 $1,200.00
1 2 3 $2,300.00
1 2 3 $4,000.00

awk ‘{gsub(/\$/,”");gsub(/,/,”");
if ($4>1000&&$4<2000) c1+=$4;
else if ($4>2000&&$4<3000) c2+=$4;
else if ($4>3000&&$4<4000) c3+=$4;
else c4+=$4; }
END {printf "c1=[%d];c2=[%d];c3=[%d];c4=[%d]\n",c1,c2,c3,c4}"' file
通过if和else if完成条件语句

awk '{gsub(/\$/,"");gsub(/,/,"");
if ($4>3000&&$4<4000) exit;
else c4+=$4; }
END {printf "c1=[%d];c2=[%d];c3=[%d];c4=[%d]\n",c1,c2,c3,c4}"' file
通过exit在某条件时退出,但是仍执行END操作。
awk '{gsub(/\$/,"");gsub(/,/,"");
if ($4>3000) next;
else c4+=$4; }
END {printf “c4=[%d]\n”,c4}”‘ file
通过next在某条件时跳过该行,对下一行执行操作。

14、
awk ‘{ print FILENAME,$0 }’ file1 file2 file3>fileall 把file1、file2、file3的文件内容全部写到fileall中,格式为
打印文件并前置文件名。

15、
awk ‘ $1!=previous { close(previous); previous=$1 }
{print substr($0,index($0,” “) +1)>$1}’ fileall 把合并后的文件重新分拆为3个文件。并与原文件一致。

16、
awk ‘BEGIN {”date”|getline d; print d}’ 通过管道把date的执行结果送给getline,并赋给变量d,然后打印。

17、
awk ‘BEGIN {system(”echo \”Input your name:\\c\”"); getline d;print “\nYour name is”,d,”\b!\n”}’
通过getline命令交互输入name,并显示出来。
awk ‘BEGIN {FS=”:”; while(getline< "/etc/passwd" >0) { if($1~”050[0-9]_”) print $1}}’
打印/etc/passwd文件中用户名包含050x_的用户名。

18、
awk ‘{ i=1;while(i awk '{ for(i=1;i type file|awk -F "/" '
{ for(i=1;i { if(i==NF-1) { printf "%s",$i }
else { printf "%s/",$i } }}' 显示一个文件的全路径。
用for和if显示日期
awk 'BEGIN {
for(j=1;j<=12;j++)
{
flag=0;
printf "\n%d月份\n",j;
for(i=1;i<=31;i++)
{
if (j==2&&i>28) flag=1;
if ((j==4||j==6||j==9||j==11)&&i>30) flag=1;
if (flag==0) {printf “%02d%02d “,j,i}
}
}
}’

19、
在awk中调用系统变量必须用单引号,如果是双引号,则表示字符串
Flag=abcd
awk ‘{print ‘$Flag’}’ 结果为abcd
awk ‘{print “$Flag”}’ 结果为$Flag

阅读全文...

2007年1月2日

O Sole Mio



Che bella cosa na jurnata 'e sole,
n'aria serena doppo na tempesta!
Pe' ll'aria fresca pare gia' na festa
Che bella cosa na jurnata 'e sole.
 

Ma n'atu sole
cchiu' bello, oi ne'.
'O sole mio
sta 'nfronte a te!
'O sole, 'o sole mio
sta 'nfronte a te,
sta 'nfronte a te!
 

Lùcene 'e llastre d''a fenesta toia;
'na lavannara canta e se ne vanta
e pe' tramente torce, spanne e canta
lùcene 'e llastre d'a fenesta toia.

Ma n'atu sole
cchiu' bello, oi ne'.
'O sole mio
sta 'nfronte a te!
 

Quanno fa notte e 'o sole se ne scenne,
me vene quase 'na malincunia;
sotto 'a fenesta toia restarria
quanno fa notte e 'o sole se ne scenne.

Ma n'atu sole
cchiu' bello, oi ne'.
'O sole mio
sta 'nfronte a te!

阅读全文...

2007年1月1日

新年展望

新年到了,新的希望也来了。

1.家庭是最重要的。在新年要好好维护家庭,有温馨美好的家庭才有一切。

2.要学习——时间有限啊,要学习的东西太多了:深入学习linux,最好学会linux下编程;学会做人,真正到社会中去好好学习、探索这个社会,而不是通过网络和他人。

3.让孩子健健康康的成长——孩子是我的未来,我的希望,我可以什么都不要,但就是舍不得这个可爱的宝宝。

4.要写一些故事——酝酿很久了,想必今后肯定要给孩子讲故事的,我先编故事吧,大概今后也能出个1001夜或是xx童话之类的:P

5.开心过好每一天。不过这个最简单的愿望,其实是最难的事情。

阅读全文...