流行Linux和Windows脚本语言列表
上一篇 / 下一篇 2012-07-18 17:07:53 / 个人分类:杂谈
具备脚本知识的系统管理员与其他系统管理员有着明显的区别。脚本是一门“系统管理员”创造的艺术。这门艺术需要了解系统本身的相关知识,系统管 理命令的语法,编程和算法知识以及至少一门脚本编程语言。对系统管理员来说编写脚本有很多选择,每种脚本语言都有着自己独特的语法和优点。脚本语言之间几 乎没有相似之处,但也不会像外星语那样难以读懂。脚本语言既可用来管理系统,也可以用做Web开发。基于服务端和基于客户端的脚本语言很少。客户端脚本语 言大多数用来在浏览器里显示内容以及与用户进行交互。服务器端脚本语言通常用来管理系统或Web服务。本文中,我们只会关注那些用作系统管理的脚本语言。 让我们开始吧!51Testing软件测试网reAX5n?$A#W n
51Testing软件测试网J+}&n)M)S|2SR6J关于脚本应该知道的事情:51Testing软件测试网)E1^m"?\0m,oS
l}^JF N6Jw-S*U0 ● 脚本应该可以作为独立的命令执行,或者可以在终端命令行接口下使用脚本语言的二进制文件调用。
K3P]#z8EcP051Testing软件测试网y0x/Q0R Li({● 如果是可执行脚本,应该在开头写出下面这行特殊的代码:51Testing软件测试网YQ5tPTEk;w M
#!/path/of/the/cli |
T4l6fXL1Wm-J0 例如bash51Testing软件测试网B)b(^M MB
#!/bin/bash |
`-|O2z6p[,Fw0 或者perl
kWS.iX&R8BzY0#!/usr/bin/perl |
&JR9Aaxkmf0 ‘#!’这个符号代表了执行该脚本需要调用的程序。51Testing软件测试网%{q VJ,A5e
-_/W C'h9t!XU`j4w6S0 Bash51Testing软件测试网f,^8aHk:tR3^I
ask:W dsDN(|0 在Linux和UNIX世界里,bash脚本的数量最多。正如我们在很多文章中提到的那样,bash也是最受到大家喜爱的。基本上,bash是一个具有解释功能的命令行shell。 它能够用作编程并且满足大多数的基本编程需求。在使用变量之前无需声明,也不需要知道变量的类型。它的缺点在于,使用bash没有其他的库可以利用。你可 以使用的只有/bin/bash(或/bin/sh)。当你声明一个变量时,你无需在前面使用$符号,但是在使用时你需要在前面加上$表明它是一个“变 量”。bash非常容易编写,Linux、UNIX以及安装了cywin程序的Windows都带有bash。如果你身为一名系统管理员但是不会bash脚本编程,你最好马上开始学习。这篇文章里列举了很多好的参考书。下面是一段简单的bash脚本。
0q%M&`'bJr[/g0
|
0j4A kr*i)oD0 Perl
A)@?f V7p1Gb9Kv051Testing软件测试网V+~Z[/{^ua基本上,Perl可以看做UNIX和Windows系统上的(图灵)完备编程语言。Perl的含义是实用报表提取语言(Practical Extraction and Report Language)。Perl是一种通用编程语言,起初开发Perl是用于文字处理,现在的使用范围非常广泛,包括系统管理、Web开发、网络编程、甚至 GUI开发等许多场合。
8joe u*QE051Testing软件测试网e'[K D(xi它的优点是易于使用且同时支持面向过程和面向对象编程。Perl是模块化的,易于调用第三方模块。尽管设计的目 标是图灵完备的编程语言,但是自1993年面世开始Perl一直被用作编写系统管理脚本。Perl既支持编译也可以解释执行,因此Perl比bash脚本 更安全。当错误发生时,bash脚本并不知道;然而,如果在执行之前编译过程中有任何错误发生Perl会拒绝启动执行。一段小的Perl脚本会让你体会 Perl语言的风格。#之后的内容是注释。这段脚本会创建一个包含1000个随机数的数组,每个随机数包含16个数字:
i~/F/F/fmn)e7s0- #!/usr/bin/perl
- my @numbers;
- srand (time);
- for ($i=0; $i<1000; $i++)
- {
- $a=int 10000000000*rand();
- $b=int 10000000000*rand();
- $c = $a . $b;
- push @numbers,substr($c,0,16)."\n";
- }
- print @numbers;
qV6G,k\V)IH`}#W0 PHP51Testing软件测试网,[%I4u:HRY
S| D;\B*fhw0 大家都知道PHP“通常”被用作Web网站开发,但是它也可以像Perl一样执行系统管理任务。这就是为什么很多系统管理员使用PHP完成 cron任务和其他脚本工作。虽然与Perl功能相似,但是PHP的目标是生成HTML标准输出。通常它会被嵌入在Web服务器程序中运行。命令行版本的 PHP支持脚本编程。类似上面Perl示例,同样功能的PHP脚本如下:
OKb5a:SZ Ra|0V7v(~ cw4kp:rTb0
iC^Gh/G s Z/F0
|
.RV VH}'u1`3Sm m0 Python
Z[+Pjy PH;~m5]051Testing软件测试网u.M}(_'@1\很明显,我们是在讨论脚本语言而不是亚马逊丛林里的某种动物。Python是通用高级编程语言,它强调代码的可读性。Python的语法非常简 洁且富有表现力。与Perl类似,Python也有很多的扩展库。尽管Python具备函数式编程的能力,但是大多数时候它被看作一门面向对象语言。 Web开发方面,Python被用来开发Apache项目的mod_wsgi模块。如今,大多数Linux和UNIX发行版本都包含了Python,作为 脚本语言的一种很多系统工具采用Python进行开发。Python也支持为GUI环境编写代码。下面是一段简单的python代码:51Testing软件测试网lT+i;F5c+KEk2o
51Testing软件测试网+k"K:`+Nrs._$K.H~)[a0
|
sed
GU;X#O8Xg*Y051Testing软件测试网uh;N]7|Z}"esed是一个Unix文本解析工具,它提供一种编程语言可用来对文本解析和转换。sed是流编辑器(Stream Editor)的缩写,基本上是一个运行飞快的文本编辑器。sed不提供任何交互环境进行文件编辑。它逐行读取内容,对读取的内容执行命令行指定的操作即 sed脚本,然后输出执行结果。你可以对文件用sed快速执行文本操作。最近Perl被用来处理同样的工作,但是仍然有一些情形需要由专家级系统管理员使 用sed快速解决任务。下面是一个简单的示例: