流行Linux和Windows脚本语言列表

上一篇 / 下一篇  2012-07-18 17:07:53 / 个人分类:杂谈

51Testing软件测试网 qR`1J7dF"|u z

  具备脚本知识的系统管理员与其他系统管理员有着明显的区别。脚本是一门“系统管理员”创造的艺术。这门艺术需要了解系统本身的相关知识,系统管 理命令的语法,编程和算法知识以及至少一门脚本编程语言。对系统管理员来说编写脚本有很多选择,每种脚本语言都有着自己独特的语法和优点。脚本语言之间几 乎没有相似之处,但也不会像外星语那样难以读懂。脚本语言既可用来管理系统,也可以用做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软件测试网YQ5tPT Ek;w M

#!/path/of/the/cli

T4l6fX L1Wm-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

a sk: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
  1. #!/bin/bash  
  2.    
  3. USER=$1  
  4.    
  5. echo "Adding User $USER in group users..."  
  6.    
  7. /usr/sbin/useradd -g users $USER  
  8.    
  9. if [ $? == 0 ]; then  
  10.         /usr/bin/passwd $USER  
  11. else  
  12.         echo "Sorry, User addition failed"  
  13. fi

0j4A kr*i)oD0  Perl

A)@?f V7p1Gb9Kv051Testing软件测试网V+~Z[/{^u a

   基本上,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
  1. #!/usr/bin/perl  
  2.    
  3. my @numbers;  
  4. srand (time);  
  5.    
  6. for ($i=0; $i<1000; $i++)  
  7. {  
  8. $a=int 10000000000*rand();  
  9. $b=int 10000000000*rand();  
  10. $c = $a . $b;  
  11.    
  12. push @numbers,substr($c,0,16)."\n";  
  13. }  
  14. 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|0

V7v(~ cw4kp:rTb0

iC^Gh/Gs Z/F0
  1. #!/usr/bin/php  
  2.    
  3. function make_seed()  
  4. {  
  5.    
  6. list($usec, $sec) = explode(' ', microtime());  
  7.    
  8. return (float) $sec + ((float) $usec * 100000);  
  9. }  
  10.    
  11. srand (make_seed());  
  12.    
  13. for ($i=0; $i<1000; $i++)  
  14. {  
  15. $a=rand(1000000000,9999999999);  
  16. $b=rand(1000000000,9999999999);  
  17. $c = $a . $b;  
  18.    
  19. $numbers[]=substr($c,0,16);  
  20. }  
  21. for ($i=0; $i<1000;$i++)  
  22.    
  23. echo "$numbers[$i]\n";

.RV VH}'u1`3Smm0  Python

Z[+PjyPH;~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+KE k2o

51Testing软件测试网+k"K:`+Nrs

._$K.H~)[a0
  1. health = 10 
  2. trolls = 0 
  3. damage = 3 
  4.    
  5. while health >0:        #!= 0:  
  6.    
  7. trolls += 1  
  8.    
  9. healthhealth = health - damage  
  10.    
  11. print " " \  
  12.    
  13. "but takes", damage, "damage points.\n"  
  14.    
  15. print " ", trolls, "trolls."
51Testing软件测试网A$Yxf I,Mq"n(A8c

  sed

G U;X#O8Xg*Y051Testing软件测试网uh;N]7|Z}"e

  sed是一个Unix文本解析工具,它提供一种编程语言可用来对文本解析和转换。sed是流编辑器(Stream Editor)的缩写,基本上是一个运行飞快的文本编辑器。sed不提供任何交互环境进行文件编辑。它逐行读取内容,对读取的内容执行命令行指定的操作即 sed脚本,然后输出执行结果。你可以对文件用sed快速执行文本操作。最近Perl被用来处理同样的工作,但是仍然有一些情形需要由专家级系统管理员使 用sed快速解决任务。下面是一个简单的示例:

K;Q` Hcff0

]3@g0^Al iC051Testing软件测试网?9?fXq2iNW

$ sed -e 's/foo/bar/g' myfile.txt
51Testing软件测试网%hH%Z5[wU}

  这个命令会查找myfile.txt文件中所有的foo并替换成bar然后把结果输出到屏幕上。sed的主要命令是‘s/foo/bar/g’,该命令在vi或vim在交互式编辑模式下同样支持。51Testing软件测试网 ^4o'G,E&kKe

ps$j^];}0  除了本文介绍的这些之外,还有像Ruby、VBScript、Java Script、JScript、Tcl、AppleScript和Falcon等等很多其他的脚本语言。本文旨在介绍那些在系统管理中常用的脚本语言,希望你能够熟悉它们并提升你的工作效率。51Testing软件测试网iP%Kj`1D


TAG:

 

评分:0

我来说两句

Open Toolbar