设为首页 收藏本站
查看: 1323|回复: 0

[经验分享] Linux下Perl的安装

[复制链接]

尚未签到

发表于 2015-12-26 13:28:37 | 显示全部楼层 |阅读模式
DSC0000.gif DSC0001.gif


wget http://www.cpan.org/src/5.0/perl-5.20.1.tar.gz
tar -xzf perl-5.20.1.tar.gz
cd perl-5.20.1
./Configure -des -Dprefix=$HOME/localperl
make
make test
make install
View Code  上述这个过程大约耗时10多分钟
  编辑第一个perl程序:



#!/usr/local/bin/perl
$value = 9.01e+21 + 0.01 - 9.01e+21;
print ("first value is ", $value, "\n");
$value = 9.01e+21 - 9.01e+21 + 0.01;
print ("second value is ", $value, "\n");
  运行第一个perl程序:





[iyunv@mdw zcw]# perl program3_3.pl
first value is 0
second value is 0.01
View Code  附Mac平台下的:
  http://www.perl.org/get.html#osx
  小例子:
  以一个简单的文本查找来举例:
有一个pass.txt,里面存了很多用户名和密码的32位MD5值等信息,我现在要把里面的MD5值全找出并在屏幕上输出,pass.txt内容如下:
raymond:ec27bae8a6a68e7540e9
81c0f888dc92 ,jake:0d4cbaad3bbd
67c1bcd603b2a01468e8 ,This world nev
er dies:e8a7e2db3141e0c9baf819a8e495f651 ,da
mesdale:b2ee7d25dc385b3cb5d596d5cb2d6
47b ,shekinah:5da4266d3de6dbaf425a2
d4fc16225d0 ,jhin:3360d0103043bca029a5
a9b3561c9fc5 ,ajmp_4444:f6e28e2a2d1b1b
14adbc47534da454b5 ,ichoi:1b4d3c02d20d2f306
acdeff8469715fc ,kathrinasayan:8320c41f1ddc956da42d7ff
46ad46203 ,buenferdinan
d:b9a1ee8824e58db7c1c5f4014
691bdca ,jinieuge_22:f8ba79b96fb
634fc450052686efe46d8 ,gilmore12
2002:17c79b29567c1f39a4391cfce06da5e0 ,mi
stymwah:64d6bbb2a411ef0561afc6300f1e57d1 ,serjs
88:898dd88cca7b2f65461bc491dacb9b25 ,serjs8
8:898dd88cca7b2f65461bc491dacb9b25 ,sheryld
aquioag:4d54f483e2eaf8ce64010
0d88f8a29eb ,jayson:9eef6a1f927654f24801f58
fe67bb1d4 ,Geraldine:8002d34dc747d707ccb
fb93fdaab9bce
可以看到,内容很乱,不但有用户名的干扰,还有逗号,冒号,换行等符号的干扰。
如果想用C等语言把里面的MD5整理出来是件很麻烦的事,在Perl下则不同了。
下面是我写的代码(find.pl):
# F:\Perl -w
while (<>)                        #打开参数文件并读入一行
{
    chomp($a.=$_);           #去掉行尾换行符,并接到上一行剩余字符串后面
    while($a=~/([\w]{32})/) #匹配32位MD5字符串(正则表达式处理文本,效率真是一流)
    {
        print $1."\n";            #输出匹配的MD5字符串
        $a=~s/.*$1//;             #删除匹配过的MD5字符串,以便下一次匹配
    }
}
然后在命令行下输入:
Perl find.pl pass.txt
就会把pass.txt里面的所有MD5值全输出的屏幕上。
运行结果如下:
  ec27bae8a6a68e7540e981c0f888dc92
0d4cbaad3bbd67c1bcd603b2a01468e8
e8a7e2db3141e0c9baf819a8e495f651
b2ee7d25dc385b3cb5d596d5cb2d647b
5da4266d3de6dbaf425a2d4fc16225d0
3360d0103043bca029a5a9b3561c9fc5
f6e28e2a2d1b1b14adbc47534da454b5
1b4d3c02d20d2f306acdeff8469715fc
8320c41f1ddc956da42d7ff46ad46203
b9a1ee8824e58db7c1c5f4014691bdca
f8ba79b96fb634fc450052686efe46d8
17c79b29567c1f39a4391cfce06da5e0
64d6bbb2a411ef0561afc6300f1e57d1
898dd88cca7b2f65461bc491dacb9b25
898dd88cca7b2f65461bc491dacb9b25
4d54f483e2eaf8ce640100d88f8a29eb
9eef6a1f927654f24801f58fe67bb1d4
8002d34dc747d707ccbfb93fdaab9bce
  这段代码除去注释和大括号,只有短短5句代码,Perl的精辟可见一斑!
注:代码中判断32位MD5我用的是/([\w]{32})/,如果怕其它字符干扰还可以改为/([0-9a-fA-F]{32})/。
我开始写的代码在处理有换行符的时候,是先把读入的文件保存到一个变量里,使它变成一行,但觉得那样效率/内存占用率等方面会不太好,所以改成了现在这个样子,读一行判断一次,有匹配的就输出,没有则把读入的内容加到下一行。
国外很多黑客网站公布的脚本漏洞的exp都是用Perl写的,我想这也是Perl使用方便的原因吧。
  教程网址:
  http://www.yiibai.com/perl/perl_variables.html
  例子二:(I/O)





#!/usr/bin/perl
open(DATA, "<file.txt");
while(<DATA>)
{
print "$_";
}
View Code  可参考资料:
  http://www.yiibai.com/perl/perl_operators.html#perl_operators

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156586-1-1.html 上篇帖子: perl中的特殊内置变量(转) 下篇帖子: perl DBI高级编程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表