2007年4月 归档
在金字塔畔一块露出的巨大岩石头地雕刻着一个匍伏的狮身人面石雕,据说它就是传说中的斯芬达克斯。关于它还有一个猜谜故事。
这个狮身人面怪盘踞在一条通往开罗的必经之路上兴风作怪,凡遇到的人他都要提出一个谜语,凡是猜不着的,都作了它的美餐。但那条谜语非常奇特,没有人能够猜着,所以人们都不敢再走那条路了。要去开罗有非常急事的人都只好绕千里而去,或者干脆不去。
有一天,一位年轻的公子听说了这件事,他决定去试一试,别人都劝他不要去,因为去无异于送死。但他抱着为民除害的坚定信念执意要去。
斯芬达克斯一见有人来了,非常地高兴。看来又有一餐好吃,他照例出了那条谜语:“什么东西早上是四条腿,到了中午是两条腿,当太阳落山时又变为三条腿?”
“这个……”年轻人确实感到难猜。
“快点!”说着他就张开那血盆大口。恨不得一口把年轻人吞下。但他想这一顿是跑不了,还是看一看这小子有什么办法。
“是人。”
“什么!”他感到万分的惊慌,但仍不死心,“那是为什么?”
“因为人刚生下来还不会行走,所以他两手在地爬着走,这不是四条腿吗,当人长大些学会了走路,不是两条腿吗,当人老年迈之时走路必须拄着拐杖,这不就是三条腿吗。”
斯芬达克思被气得哑口无言,只得承认答对了,由于羞愧难当,他举手自尽了。从此这条路又恢复了往日的繁华。
配置文件/usr/lib/perl5/5.8.8/CPAN/Config.pm
如果第一次运行cpan命令
cpan提示进行交互的进行配置
当然我们根据自己的需要也可以手动的编辑此文件
以下是我系统中 /usr/lib/perl5/5.8.8/CPAN/Config.pm的内容:
# This is CPAN.pm's systemwide configuration file. This file provides
# defaults for users, and the values can be changed in a per-user
# configuration file. The user-config file is being looked for as
# ~/.cpan/CPAN/MyConfig.pm.
$CPAN::Config = {
'build_cache' => q[10],
'build_dir' => q[/root/.cpan/build],
'cache_metadata' => q[1],
'commandnumber_in_prompt' => q[1],
'cpan_home' => q[/root/.cpan],
'dontload_hash' => { },
'ftp' => q[/usr/kerberos/bin/ftp],
'ftp_passive' => q[1],
'ftp_proxy' => q[],
'getcwd' => q[cwd],
'gpg' => q[/usr/bin/gpg],
'gzip' => q[/bin/gzip],
'histfile' => q[/root/.cpan/histfile],
'histsize' => q[100],
'http_proxy' => q[],
'inactivity_timeout' => q[0],
'index_expire' => q[1],
'inhibit_startup_message' => q[0],
'keep_source_where' => q[/root/.cpan/sources],
'make' => q[/usr/bin/make],
'make_arg' => q[],
'make_install_arg' => q[],
'make_install_make_command' => q[/usr/bin/make],
'makepl_arg' => q[],
'mbuild_arg' => q[],
'mbuild_install_arg' => q[],
'mbuild_install_build_command' => q[./Build],
'mbuildpl_arg' => q[],
'ncftp' => q[],
'ncftpget' => q[],
'no_proxy' => q[],
'pager' => q[/usr/bin/less],
'prerequisites_policy' => q[ask],
'scan_cache' => q[atstart],
'shell' => q[/bin/bash],
'tar' => q[/bin/tar],
'term_is_latin' => q[1],
'term_ornaments' => q[1],
'unzip' => q[/usr/bin/unzip],
'urllist' => [q[http://cpan.linuxforum.net/]],
'wget' => q[/usr/bin/wget],
};
1;
__END__
另见文章perl命令行从中了解CPAN中的常用指令
页顶格式
在初始页的开头或每一新面的顶部发出。与之相关的变量: $= 页长 $- 剩下行数 随着write的使用$-会不段的减少。
定义一个页顶格式
format MYFORMAT_TOP=
PAGE @>
$#
--------------------------------------------------------------
.
此处的页顶格式与文件句柄MYFORMAT相关联
将格式指定到标准输出:
format STDOUT=
The magic word is "@<<<<<<"
$word
.
format STDOUT_TOP=
Page @>>
$#
----------------------------
.
对于主格式可省去STDOUT
对于其他文件句柄确定与指派格式
此处涉及到的两个特殊变量:
$~ 当前格式
$^ 当前页顶格式
设置格式时只要设置这两个变量就行了:
$topform=$^;
$^='MYFORMAT_TOP';
write;
$^=$topform;
注意保存原用的页顶格式
如果设置其他文件件句柄的格式可如下操作:
$oldfh=select MYHANDLE;
$~='MYFOMAT';
$^='MYFORMAT_TOP';
select $oldfh;
先将默认的文件句柄保存,并将MYHANDLE设为当前文件句柄,设定当前文件句柄的格式及页顶格式使用完后保存.
未完
脚本如下:
#!/usr/bin/perl
#evalformat.pl
#与STDOUT文件句柄相关联的动态计算的格式
use warnings;
use strict;
my @values=qw(first second third fourth fifth sixth penultimate utimate);
my $width=0;
foreach (@values){
my $newwidth=length $_;
$width=$newwidth if $newwidth > $width;
}
my $definition = "This is the \@".('<'x($width-1))." line\n".'$_'."\n.\n";
eval "format STDOUT=\n$definition";
write foreach @values;
运行结果:
[root@supersun text]# ./evalformat.pl
This is the first line
This is the second line
This is the third line
This is the fourth line
This is the fifth line
This is the sixth line
This is the penultimate line
This is the utimate line
分析脚本:
- 计算数组中元素的字串长度
- 将格式赋值给变量
- 用eval进行二次计算实现格式的定义
- 打印到标准输出
知识点:
定义一个格式:
format MYFORMAT=
this is a @<<<< justified field
"left"
.
注意格式的定义以 "."结束
将格式到印到与格式一样名称的文件句柄中
write MYFORMAT;
如果想将格式打印到标准输出可以用以下语句
$~='MYFORMAT';
write;
或上面脚本中的定义一个与STDOUT相关联的格式
变量赋值时表达式的使用
$definition = "This is the \@".('<'x($width-1))." line\n".'$_'."\n.\n";
eval的使用
格式中变量的使用
彼人颇喜吃火烧肉,下班后回家无事,尝试着按此法试了一次,感觉还行,因作料未准备齐,味道不是我所期望的那种,一个人凑合着吃吧,下次改进,呵呵!
原文链接:http://www.baise365.com/bbs/viewthread.php?tid=72901

将肉切成麻将牌大小正方形的块,肉不要切得太小,太小易缩易碎,没有卖相了。切完后,用冷水浸没,水中放半杯料酒。放在水中浸,可以浸去毛细血管中的 血水;水中加酒易于肉纤维吸收,去除肉腥。肉不宜多浸,多浸则鲜味尽失,一般浸十五分钟左右即可。

#!/usr/bin/perl
use warnings;
use strict;
use Net::Ping;
die "$0: 需要指定主机列表
" if !@ARGV ;
my $conf_file=shift;
my ($icmp,$udp,$tcp,$win32);
my @hostlist;
$win32 = $^O eq 'MSWin32';
$icmp=Net::Ping->new('icmp',3);
$udp=Net::Ping->new('udp',3);
$tcp=Net::Ping->new('tcp') if !$win32;
open FD,"$conf_file";
@hostlist=<FD>;
print "ICMP UDP TCP 主机 描述\n";
foreach my $i (@hostlist){
chomp $i;
my ($host,$comment)=split /\s+/,$i;
printf "%-8s",$icmp->ping($host) || 'undef';
printf "%-8s",$udp->ping($host) || 'undef';
printf "%-8s",$win32 ? '不可用' :($tcp->ping($host) || 'undef');
print "$host\t";
print "$comment\n";
}
$icmp->close;
$udp->close;
$tcp->close if !$win32;
主机列表文件格式:
127.0.0.1 本机
xxx.xxx.xxx.xxx 网关
xxx.xxx.xxx.xxx ISP接口
[root@supersun network]# ./netping.pl file
ICMP UDP TCP 主机 描述
1 1 1 127.0.0.1 本机
1 undef 1 xxx.xxx.xxx.xxx 网关
1 undef 1 xxx.xxx.xxx.xxx ISP接口
h 显示帮助信息
h command 显示command的信息如:
DB<5> h x
x expr Evals expression in list context, dumps the result.
p expr 相当于print函数
x [max-dep] expr 假设expr产生的结果为列表,并比较人性的将其打印出,如:
DB<11> x map $_,(1..5)
0 1
1 2
2 3
3 4
4 5
打印二维数组设定打印深度为2
DB<16> x 2 ([1,2,3],[4,5,6],[7,8,9])
0 ARRAY(0x8fbb83c)
0 1
1 2
2 3
1 ARRAY(0x8fc4ebc)
0 4
1 5
2 6
2 ARRAY(0x8f50a6c)
0 7
1 8
2 9
从网上下载的mp3文件的文件名命令方式各式各样,有的是数字命名,有的是拼音命名,平时用起来不是很方便。如果动手一个个的更改又太麻烦,下面的脚本通过模块MP3::Tag提取的歌曲和歌手标签来确定文件名。
前一段时间我将系统(fedora core 6 codepage:gb2312)中的mp3文件复制到移动硬盘(fat32)上,所有的中文文件名全乱了挂载t移动硬盘命令(mount -t vfat -o iocharset=cp936 /dev/sda1 /media)好象没错。
如:
[root@supersun music]# ls
125206413.mp3 new.pl ysdmh.mp3 实馨.睾.mp3
1997cmp-10holes-15.mp3 numb.mp3 一..mp3 小.咏.mp3
2005929152321527.mp3 OneStepCloser.mp3 一夜.mp3 慊?..mp3
65541180.mp3 ouruola.mp3 一夜.谢.mp3 殖.mp3
a papercut.mp3 业陌.一.mp3 水俸.mp3
BeyondTheHorizon.mp3 PointsOfAuthority.mp3 之..mp3 睾-寓.mp3
BreakTheHabit.mp3 porunacabez.mp3 值..mp3 硕要..mp3
Crawling.mp3 pushing_me_away.mp3 前..mp3 碌..mp3
delid3.mp3 ruguodeshi.mp3 卤一堑.mp3 职..mp3
faint.mp3 simpleid3.pl 同..mp3 蔚某.睾.mp3
HitTheFloor.mp3 somewhereIbelong.mp3 园芫.mp3 虏..mp3
id3iconv-0.2.1.jar tag.pl 坦..mp3 要薷.??.mp3
InThenEnd.mp3 te.pl 失.mp3 觳?.强.mp3
LyingFromYou.mp3 wget-log 女..mp3 魔.藕.mp3
mp3id3.pl xs.mp3 始..mp3
现在我们来运行脚本:
[root@supersun music]# for i in *.mp3 ;do ./tag.pl $i;done
通过脚本打印出环境变量:
#!/usr/bin/perl -T
#environment.cgi
use warnings;
use strict;
print "Content-Type: text/html\n\n";
print "<HTML><HEAD><TITLE>Environment</TITLE></HEAD>\n";
print "<BODY><ul>";
foreach (sort keys %ENV){
print "<li>$_:$ENV{$_}</li>\n";
}
print "</ul></body></html>\n";
将其放置于cgi目录中增加其执行权限:
chmod 755 environment.cgi
运行结果如下:
- DOCUMENT_ROOT:/var/www/html
- GATEWAY_INTERFACE:CGI/1.1
- HTTP_ACCEPT:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
- HTTP_ACCEPT_CHARSET:gb2312,utf-8;q=0.7,*;q=0.7
- HTTP_ACCEPT_ENCODING:gzip,deflate
- HTTP_ACCEPT_LANGUAGE:zh-cn,zh;q=0.5
- HTTP_CACHE_CONTROL:max-age=0
- HTTP_CONNECTION:keep-alive
- HTTP_HOST:192.168.1.107
- HTTP_KEEP_ALIVE:300
- HTTP_USER_AGENT:Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
- PATH:/sbin:/usr/sbin:/bin:/usr/bin
- QUERY_STRING:
- REMOTE_ADDR:192.168.1.174
- REMOTE_PORT:49270
- REQUEST_METHOD:GET
- REQUEST_URI:/cgi-bin/environment.cgi
- SCRIPT_FILENAME:/var/www/cgi-bin/environment.cgi
- SCRIPT_NAME:/cgi-bin/environment.cgi
- SERVER_ADDR:192.168.1.107
- SERVER_ADMIN:root@localhost
- SERVER_NAME:192.168.1.107
- SERVER_PORT:80
- SERVER_PROTOCOL:HTTP/1.1
- SERVER_SIGNATURE:Apache/2.2.0 (Fedora) Server at 192.168.1.107 Port 80
- SERVER_SOFTWARE:Apache/2.2.0 (Fedora)
下面对脚本做一点改进:
待续
top500 part1 的功能:解析出百度top500的排名数据
top500 part2 的功能:根据传给脚本歌手名 歌曲名从百度获得数据并解析出mp3文件的下载地址
而part3的功能就是检测这些链接的有效性,及文件的大小以获得完整的歌曲文件。
#!/usr/bin/perl
#验证文件的类型和大小
use warnings;
use strict;
use LWP::UserAgent;
use HTTP::Request;
my $url=shift;
#建立一个请求对象
my $request= new HTTP::Request ( HEAD => $url );
#建立一个用户代理
my $ua= new LWP::UserAgent;
$ua->agent("Perl_client/1.0(perl $],libwww-perl-$LWP::VERSION,$^O");
和这个脚本 查看一个页面的修改时间 基本一样的
#!/usr/bin/perl
#一个简单的web客户机
use warnings;
use strict;
use IO::Socket;
my @urls=@ARGV;
foreach my $url (@urls){
$url =~ m|(http://)?(.*?)(:(\d+))?(/.*)|;
my $remote_host=$2;
my $remote_port=$4?$4:80;
my $uri=$5;
print "host:$remote_host\nport:$remote_port\nuri:$uri\n";
my $socket = IO::Socket::INET->new
( PeerAddr => $remote_host,PeerPort => $remote_port,Proto => 'tcp',Timeout => '10',Type => SOCK_STREAM,) or die "Connect to $remote_host:$remote_port : $@\n";
print $socket "GET $uri HTTP/1.0\n\n";
my $response;
$response.= $_ while(<$socket>);
print $response;
close($socket);
}
So far,so good. 目前还不错
I have no idea what that is. 我不知道那是什么。
It is Just what I need. 这正是我所需要的。
As soon as possible! 越快越好!
A: How about going out for a walk? 出去散步怎么样?
B: Great! 太好了!
I’ll give her your message as soon as possible. 我将尽快地转达尼的留言给她。
How are things going? 事情进展得怎样?
May I ask you to postpone the meeting until the day after tomorrow?
可以要求你将会面时间延到后天吗?
Let me call back later again. Thank you. 我稍后再打电话来。谢谢你。
The view is great. 景色多么漂亮!
I'll fix you Up. 我会帮你打点的。
We have a party tonight. Would you like to come? 我们晚上有个派对,你来吗?
I'd love to. 我很愿意来。
Hold consultations with the organizations concerned.同有关单位磋商
简单的行计数
#!/usr/bin/perl
while(<>){
$count{$ARGV}++;
}
foreach $file (sort keys %count){
print "$file has $count{$file}\n";
}
注意点:巧妙的使用hash
运行结果
[root@rs1 root]# ./count.pl statistics tcp_deny.txt nohup.out serverstatistics
nohup.out has 3346
serverstatistics has 11
statistics has 22
tcp_deny.txt has 1
a:hover{
background-color:pink;
color:gray;
}
将其写到样式文件中
作者:blankzheng 时间: 2007-03-19
blankzheng的blog:http://www.planabc.net/

margin在中文中我们翻译成外边距或者外补白(本文中引用外边距)。他是元素盒模型(box model)的基础属性。
一、margin的基本特性
margin属性包括margin-top,margin-right,margin-bottom,margin-left,margin,可以 用来设置box的margin area。属性margin可以用来同时设置box的四边外边距,而其他的margin属性只能设置其自各的外边距。
margin属性可以应用于几乎所有的元素,除了表格显示类型(不包括 table-caption, table and inline-table)的元素,而且垂直外边距对非置换内联元素(non-replaced inline element)不起作用。
或许有朋友对非置换元素(non-replaced element)有点疑惑,稍微帮助大家理解一下。非置换元素,W3C中没有给出明确的定义,但我们从字面可以理解到,非置换元素对应着置换元素 (replaced element),也就是说我们搞懂了置换元素的含义,就懂了非置换元素。置换元素,W3C中给出了定义:
引用:
“An element that is outside the scope of the CSS formatter, such as an image, embedded document, or applet”
从定义中我们可以理解到,置换元素(replaced element)主要是指img,input,textarea,select,object等这类默认就有CSS格式化外表范围的元素。进而可知,非置 换元素(non-replaced element)就是除了img,input,textarea,select,object等置换元素以外的元素。
margin始终是透明的。
其实只要我们掌握一些病毒的命名规则,我们就能通过杀毒软件的报告中出现的病毒名来判断该病毒的一些公有的特性了。
世界上那么多的病毒,反病毒公司为了方便管理,他们会按照病毒的特性,将病毒进行分类命名。虽然每个反病毒公司的命名规则都不太一样,但大体都是采用一个统一的命名方法来命名的。
一般格式为:<病毒前缀>.<病毒名>.<病毒后缀> 。
病毒前缀是指一个病毒的种类,他是用来区别病毒的种族分类的。不同的种类的病毒,其前缀也是不同的。比如我们常见的木马病毒的前缀 Trojan ,蠕虫病毒的白菏?Worm 等等还有其他的。
要想买到称心如意的服装,在购买时应注意以下几个方面:
选择面料 不同的面料,其质地、价格各不相同。消费者在购买时,如能懂得一点面料知识,就能既根据自己的需求选择相应面料的服装,又能防止上当。选择面料时,首先看有无明显瑕疵、有无色差以及虫蛀、鼠啮等。若有,则不符合质量要求。
绸面料既有轻盈飘逸、凉爽透气的品种,适宜做衬衣、连衣裙,也有厚实庄重、光华富贵的品种,适宜做棉衣外套、旗袍等。真丝织品,手感光滑、轻柔,将面料互 相摩擦时,会发出清脆的声响,称为丝鸣或绢鸣,缩水率一般在5—10%;假丝绸手感粗硬,易起皱,颜色艳丽,缩水率一般小于5%;真麻织品,布面细洁光 亮,带有自然的小疙瘩,手感粗而硬,表面容易起毛,易出折痕;假麻织品,抗皱性好,但是吸湿性较差,穿着时感觉比较闷气。老年人在选择衣料时,要考虑衣料 的吸湿性、散热性、保温性和透气性。内衣质地宜用棉布或棉织品;外衣的质地则应厚挺;夏季的衣料应舒适凉快;冬季的衣料宜选用松软、厚实和保暖性好的面 料。
查看做工 仔细查看针脚是否均匀,熨烫是否平整,领、袖、口袋是否对称,衣袖、裤腿长短肥瘦是否一致等。
检查商标 正规的商标,应该注有规格、型号、厂名、厂址等内容,只笼统地冠以“北京服装”、“上海服装”等字样的,多是冒牌货。
核对规格 目前,服装的规格型号基本上是统一的,“号”是指人的身高,它影响的部
who |perl -ne '@F=split;print "$F[0]\n";'
开关n指的是对于输入逐行执行
开关e指执行后面的代码
split函数默认从$_中获得输及以/\s*/作表达式分隔字串
进一步简化命令
who |perl -ane 'print "$F[0]\n"';'
开关a 实现使用split分隔$_给数组@F
who |perl -lane 'print "$F[0]";'
开关l相当于 $\=$/将输入域分隔符的值赋给输出域分隔符
who |perl -lape '$_=$F[0]'
开关p相关于语句print打印默认输出并进行循环
看下面的代码
#!/usr/bin/perl
$\ = $/; # from -l
while (<>) { # from -p
chop; # from -l
@F = split; # from -a
$_ = $F[0]; # argument to -e
print; # from -p
}
当需要定义输入域分隔符时使用选项 -F
perl -aF: -lne 'print $F[0]' /etc/passwd
更改后比原来脚本批量下载歌曲TOP500更简洁一些
脚本第一部分为top500 part1
此部分对不提供歌手名情况的处理比直接使用if语句更舒服一些
#!/usr/bin/perl
#脚本功能:通过传入的歌名和歌手名,从百度搜索引擎的结果中解析出歌曲的下载地址
#use warnings;
use strict;
use LWP::Simple;
my ($song,$singer) = @ARGV;
my $url = defined $singer ? "+$singer" : "";
$url = 'http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word='.$song.$url.'&lm=0';
my $content = get $url;
my @links;
演示:
[root@supersun perl]# ./localtime.pl
时间: 10:32:2
日期: Apr 12,2007
星期: Thursday
一年中的第101天
现在是白天
脚本的内容:
#!/usr/bin/perl -w
#localtime的输出:秒 分 时 日 月 年(相对于1900年的天数) 星期 the day of the year(0..364) 白天(0)/黑夜(非0)
use strict;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime;
$year+=1900;
my @month=qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
my @week=qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday);
print "时间: $hour:$min:$sec\n日期: $month[$mon] $mday,$year\n星期: $week[$wday]\n一年中的第$yday天
现在是",($isdst?"晚上":"白天"),"\n";
相信看过《黑客帝国》系列的朋友都不会对主人公尼奥感到陌 生,这位闯入虚拟世界的程序员一次又一次演绎了“救世主”的角色,保护了城市居民,其形象早已深入人心。而离开电影后,我们广大的计算机用户要面对的又是 另一种亦真亦假的数字虚拟世界——网络,这里同样潜伏着许多危险,同样存在“黑客帝国”,但这里却没有尼奥这个人的存在,我们能看到的,只有形形色色的安 全厂商和他们所提供的安全工具,除此之外,似乎已经没有别的选择。
于是乎,许多用户把各种安全工具看成了这个世界中的“救世主”,我们看 到许多关于安全工具的广告,我们购买市面上流行的防病毒软件,我们在听闻每周一次的“新病毒预警”时赶紧升级病毒特征库,我们每周都对电脑进行一次漫长的 病毒扫描……许多人都这样做,许多人不得不这样做,因为我们把一切都交给杀毒工具了,我们什么都不需要做了,我们只管肆无忌弹的上网聊天看电影下软件,因 为我们有杀毒工具,这些工具都具备一个“实时监测”的功能,它每时每刻都会检查我们刚下载的文件,我们感到自己很安全,我们以为这就是网络中的防御。
灰鸽子远程监控软件分两部分:客户端和服务端。黑客操纵着客户端,利用客户端配置生成出一个 服务端程序。服务端文件的名字默认为G_Server.exe,然后黑客通过各种渠道传播这个服务端(俗称种木马)。种木马的手段有很多,比如,黑客可以 将它与一张图片绑定,然后假冒成一个羞涩的MM通过QQ把木马传给你,诱骗你运行;也可以建立一个个人网页,诱骗你点击,利用IE漏洞把木马下载到你的机 器上并运行;还可以将文件上传到某个软件下载站点,冒充成一个有趣的软件诱骗用户下载……,这正违背了我们开发灰鸽子的目的,所以本文适用于那些让人非法 安装灰鸽子服务端的用户,帮助用户删除灰鸽子 Vip 2005 的服务端程序。本文大部分内容摘自互联网。
G_Server.exe运行后将自己拷贝到Windows目录下(98/xp下为系统盘的windows目录,2k/NT下为系统盘的Winnt目 录),然后再从体内释放G_Server.dll和G_Server_Hook.dll到windows目录下。G_Server.exe、 G_Server.dll和G_Server_Hook.dll三个文件相互配合组成了灰鸽子服务端,有些灰鸽子会多释放出一个名为 G_ServerKey.dll的文件用来记录键盘操作。注意,G_Server.exe这个名称并不固定,它是可以定制的,比如当定制服务端文件名为 A.exe时,生成的文件就是A.exe、A.dll和A_Hook.dll。
很想试试Mandriva了,速度还可以。
32位和64位DVD,1张光盘(1张光盘可供两种架构使用,安装时自动选择,也可手动选择)
32位和64位CD,1张光盘(1张光盘可供两种架构使用,安装时自动选择,也可手动选择,注意只包含最基本的软件包,默认不支持中文)
32位和64位KDE版本,1张光盘,包含部分非开源软件,支持中文
32位和64位GNOME版本,1张光盘,包含部分非开源软件,默认不支持中文
32位和64位KDE版本,1张光盘,全部为开源软件,默认不支持中文
32位和64位GNOME版本,1张光盘,全部为开源软件,默认不支持中文
下载:安装版32位CD,4张光盘
下载:安装版64位CD,4张光盘
下载:32位和64位DVD,1张光盘
下载:Mini版本(只包含基础软件包)
下载:32位和64位KDE版本 包含部分非开源软件
下载:32位和64位GNOME版本 包含部分非开源软件
下载:32位和64位KDE版本 全部为开源软件
下载:32位和64位GNOME版本 全部为开源软件
如果你的第二块网卡上绑了一个虚拟接口如:
eth1 Link encap:Ethernet HWaddr 00:D8:71:F8:6B:Q1
inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:88570611 errors:0 dropped:0 overruns:0 frame:0
TX packets:17127317 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3042900165 (2901.9 Mb) TX bytes:105310762 (100.4 Mb)
Interrupt:26
eth1:0 Link encap:Ethernet HWaddr 00:D8:71:F8:6B:Q1
inet addr:192.168.5.13 Bcast:192.168.5.255 Mask:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:88570611 errors:0 dropped:0 overruns:0 frame:0
TX packets:17127317 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3042900165 (2901.9 Mb) TX bytes:105310762 (100.4 Mb)
Interrupt:26
那么使用命令ifconfig eth1 down 或service network restart是并没有将接口eth1:0关闭
要关闭它我们只能明确的指定它的接口名
ifconfig eth1:0 down
之前写的脚本批量下载歌曲TOP500太烂,闲着没事,改一改
#!/usr/bin/perl -w
use strict;
use LWP::Simple;
my $url="http://list.mp3.baidu.com/topso/mp3topsong.html?id=1?top2";
my $content=get($url);
my @utils=split qr(>[0-9]+?.</td>),$content;
shift @utils;
my @songdata;
for my $i (@utils)
{
my @song;
$i =~ s|<a .*?>(.*?)</a||;
$song[0]=$1;
if($i =~ m^<[A|a] .*?>(.*?)</[A|a]^){
$song[1]=$1;
}
else{
$song[1]="";
}
push @songdata,\@song;
}
for (0..$#songdata){
print "$_\t$songdata[$_][0]\t$songdata[$_][1]\n";
}
重新写了一部分,对页面中数据的处理采用新的思路觉得比原来好了许多,
此处的要点主要在对于匹文配的提取直接使用圆括号编号变量,而不再使用$&(匹配字串)$`(匹配之前字串)$'(匹配之后字串)也不再使用通过函数substr()及变量$-[0]最近一此成功匹配的最前指针位置 $+[0]最近一次成功匹配的最后指针位置
如 substr($test,$-[0],$+[0]-$-[0])就可以提取出匹配的文本
另外此处使用了二维数组 ,注意点在二维数组的创建和数组中元素的使用
脚本的第二部分:top500 part2 从百度搜索引擎的结果中解析出歌曲的最终下载地址
原 文:http://www.stonehenge.com/merlyn/UnixReview/col41.html
中文版:http://www.perlchina.org/archive/archive.php?action=archive&page=44
完整的脚本:
#!/usr/bin/perl
sub ping_a_host {
my $host = shift;
`ping -i 1 -c 1 $host 2>/dev/null` =~ /0 packets rec/ ? 0 : 1;
}
my %pid_to_host;
my %host_result;
sub wait_for_a_kid {
my $pid = wait; #wait的返回值为子进程进程IDreturn 0 if $pid < 0;
my $host = delete $pid_to_host{$pid} #从hash中删除已回收子进程的键值对
#注意到此处的delete的返回值是已删hash元素的值
or warn("Why did I see $pid ($?)\n"), next;
warn "reaping $pid for $host\n";
$host_result{$host} = $? ? 0 : 1;
1;
}
my @hosts = map "10.0.1.$_", "001".."254";
for (@hosts) {
wait_for_a_kid() if keys %pid_to_host > 10; #如果子进程数超过10,就开始回收子进程
if (my $pid = fork) {#在父进程中$pid的值为子进程的进程ID
## parent does...
$pid_to_host{$pid} = $_;
warn "$pid is processing $_\n";
} else { # child does
## child does...
#子进程中$pid的值为0
exit !ping_a_host($_); #子进程ping一台主机
}
}
## final reap:此处回收所有子进程
1 while wait_for_a_kid();
#打印结果,此处的print的语句中嵌入表代式是一个小的知识点,注意用法
for (sort keys %host_result) {
print "$_ is ", ($host_result{$_} ? "good" : "bad"), "\n";
}
字体字库在线:http://www.youmade.com/font/index.asp
制作印章:http://www.makepic.com/print.php
邮址图片生成:http://www.makepic.com/email.php
条形码生成:http://www.makepic.com/barcode.php
Kiss学堂 颁发结业证:http://www.makepic.com/kiss/cert.php
生成头像:http://www.eoool.com/ImageDIY/DIYChooseImg.aspx?ImgSize=96x96x1
邮件:http://www.eoool.com/Sevice.aspx?TypeID=1
作者:sanandi 来源:赛迪网技术社区
进程结构
进程是操作系统中的一种机制,它可执行一系列的操作步。在有些操作系统中使用作业(JOB)或任务(TASK)的术语。一个进程通常有它自己的专用存储区。ORACLE进程的体系结构设计使性能最大。
ORACLE实例有两种类型:单进程实例和多进程实例。
单进程ORACLE(又称单用ORACLE)是一种数据库系统,一个进程执行全部ORACLE代码。由于ORACLE部分和客户应用程序不能分别以进程执行,所以ORACLE的代码和用户的数据库应用是单个进程执行。
在单进程环境下的ORACLE 实例,仅允许一个用户可存取。例如在MS-DOS上运行ORACLE 。
多进程ORACLE实例(又称多用户ORACLE)使用多个进程来执行ORACLE的不同部分 ,对于每一个连接的用户都有一个进程。
在多进程系统中,进程分为两类:用户进程和ORACLE进程。当一用户运行一应用程序,如PRO*C程序或一个ORACLE工具(如SQL*PLUS),为用户运行的应用建立一个用户进程。ORACLE进程又分为两类:服务器进程和后台进程。服务器进程用于
处理连接到该实例的用户进程的请求。当应用和ORACELE是在同一台机器上运行, 而不再通过网络,一般将用户进程和它相应的服务器进程组合成单个的进程,可降低系统开销。然而,当应用和ORACLE运行在不同的机器上时,用户进程经过 一个分离服务器进程与ORACLE通信。它可执行下列任务:
对应用所发出的SQL语句进行语法分析和执行。
从磁盘(数据文件)中读入必要的数据块到SGA的共享数据库缓冲区(该块不在缓冲区时)。
将结果返回给应用程序处理。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
修改为:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
作者:Jackie 来源:赛迪网Java论坛
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段 (Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片 段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无 Plugin,无ActiveX,无Java Applet,甚至无Frame。
JSP的优点:
· 对于用户界面的更新,其实就是由 Web Server进行的,所以给人的感觉更新很快。
· 所有的应用都是基于服务器的,所以它们可以时刻保持最新版本。
· 客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。
作者:未知
servlet是用java编写的server端程序,它与协议和平台无关。servlet运行于java-enabled web server中。java servlet可以动态地扩展server的能力,并采用请求-响应模式提供web服务。
最早支持servlet技术的是javasoft的java web server。此后,一些其它的基于java的web server开始支持标准的servlet api。servlet的主要功能在于交互式地浏览和修改数据,生成动态web内容。这个过程为:
客户端发送请求至服务器端;
servlet生成响应内容并将其传给server。响应内容动态生成,通常取决于客户端的请求
服务器将响应返回给客户端
servlet看起来像是通常的java程序。servlet导入特定的属于java servlet api的包。因为是对象字节码,可动态地从网络加载,可以说servlet对server就如同applet对client一样,但是,由于 servlet运行于server中,它们并不需要一个图形用户界面。从这个角度讲,servlet也被称为faceless object。
java servlet的优势:
servlet可以和其他资源(文件、数据库、applet、java应用程序等)交互,以生成返回给客户端的响应内容。如果需要,还可以保存请求-响应过程中的信息。
前 言
杀毒软件风靡全球的今天,各式各样的病毒仍然在网络上横行,其形式的多样化,自身之隐蔽性都大大的提高。其中,网页病毒、网页木马就是这个新型病毒大军中 危害面最广泛,传播效果最佳的。之所以会出此篇,也是在考虑到太多的人都在网页病毒中“应声倒下”,却不知自己是如何中毒,以及中毒后如何去处理。就此问 题,我们开始以下,对网页病毒、网页木马这一“新概念”做个详细的剖析。
注:为什么会用这么大的篇幅去介绍网页病毒、网页木马的常识和运行机理,而非机械地去介绍如何如何做,大家在通读全文后便有个新的了解。
第一章 恶意网页的基本常识
$. 最近一次执行read操作、seek操作、tell操作的当前行数
$/ 输入记录分隔符
$\ 输出记录分隔符
$| 进行写操作时是否进行缓冲
$, 输出字段分隔符
$" 双引号字符串中列表分隔符
$; 表示多维数组计算的下标分隔符



