哪种脚本语言最适合你!

本文译自 iSystemAdmin 的 《List Of Popular Scripting Languages for Linux and Windows》。

具备脚本知识的系统管理员与其他系统管理员有着明显的区别。脚本是一门“系统管理员”创造的艺术。这门艺术需要了解系统本身的相关知识,系统管理命令的语法,编程和算法知识以及至少一门脚本编程语言。对系统管理员来说编写脚本有很多选择,每种脚本语言都有着自己独特的语法和优点。脚本语言之间几乎没有相似之处,但也不会像外星语那样难以读懂。脚本语言既可用来管理系统,也可以用做web开发。基于服务端和基于客户端的脚本语言很少。客户端脚本语言大多数用来在浏览器里显示内容以及与用户进行交互。服务器端脚本语言通常用来管理系统或web服务。本文中,我们只会关注那些用作系统管理的脚本语言。让我们开始吧!

关于脚本应该知道的事情:

• 脚本应该可以作为独立的命令执行,或者可以在终端命令行接口下使用脚本语言的二进制文件调用。

• 如果是可执行脚本,应该在开头写出下面这行特殊的代码:


1

#!/path/of/the/cli

例如bash


1

#!/bin/bash

或者perl


1

#!/usr/bin/perl

‘#!’这个符号代表了执行该脚本需要调用的程序。

Bash

在Linux和UNIX世界里,bash脚本的数量最多。正如我们在很多文章中提到的那样,bash也是最受到大家喜爱的。基本上,bash是一个具有解释功能的命令行shell。它能够用作编程并且满足大多数的基本编程需求。在使用变量之前无需声明,也不需要知道变量的类型。它的缺点在于,使用bash没有其他的库可以利用。你可以使用的只有/bin/bash (或 /bin/sh)。当你声明一个变量时,你无需在前面使用$符号,但是在使用时你需要在前面加上$表明它是一个“变量”。bash非常容易编写,Linux、UNIX以及安装了cywin程序的Windows都带有bash。如果你身为一名系统管理员但是不会bash脚本编程,你最好马上开始学习。《10本适合于系统管理员的最佳书籍》这篇文章里列举了很多好的参考书。下面是一段简单的bash脚本。


1

2

3

4

5

6

7

8

9

10

11

12

13

#!/bin/bash

USER=$1

echo "Adding User $USER in group users..."

/usr/sbin/useradd -g users $USER

if [ $? == 0 ]; then

        /usr/bin/passwd $USER

else

        echo "Sorry, User addition failed"

fi

Perl

基本上,perl可以看做UNIX和Windows系统上的(图灵)完备编程语言。perl的含义是实用报表提取语言(Practical Extraction and Report Language)。Perl是一种通用编程语言,起初开发perl是用于文字处理,现在的使用范围非常广泛,包括系统管理、web开发、网络编程、甚至GUI开发等许多场合。

它的优点是易于使用且同时支持面向过程和面向对象编程。perl是模块化的,易于调用第三方模块。尽管设计的目标是图灵完备的编程语言,但是自1993年面世开始perl一直被用作编写系统管理脚本。perl既支持编译也可以解释执行,因此perl比bash脚本更安全。当错误发生时,bash脚本并不知道;然而,如果在执行之前编译过程中有任何错误发生perl会拒绝启动执行。一段小的perl脚本会让你体会perl语言的风格。#之后的内容是注释。这段脚本会创建一个包含1000个随机数的数组,每个随机数包含16个数字:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

#!/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;

PHP

大家都知道PHP“通常”被用作web网站开发,但是它也可以像perl一样执行系统管理任务。这就是为什么很多系统管理员使用PHP完成cron任务和其他脚本工作。虽然与perl功能相似,但是PHP的目标是生成HTML标准输出。通常它会被嵌入在web服务器程序中运行。命令行版本的PHP支持脚本编程。类似上面perl示例,同样功能的PHP脚本如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#!/usr/bin/php

function make_seed()

{

list($usec, $sec) = explode(‘ ‘, microtime());

return (float) $sec + ((float) $usec * 100000);

}

srand (make_seed());

for ($i=0; $i<1000; $i++)

{

$a=rand(1000000000,9999999999);

$b=rand(1000000000,9999999999);

$c = $a . $b;

$numbers[]=substr($c,0,16);

}

for ($i=0; $i<1000;$i++)

echo "$numbers[$i]\n";

Python

很明显,我们是在讨论脚本语言而不是亚马逊丛林里的某种动物。python是通用高级编程语言,它强调代码的可读性。python的语法非常简洁且富有表现力。与perl类似,python也有很多的扩展库。尽管python具备函数式编程的能力,但是大多数时候它被看作一门面向对象语言。web开发方面,python被用来开发Apache项目的mod_wsgi模块。如今,大多数Linux和UNIX发行版本都包含了python,作为脚本语言的一种很多系统工具采用python进行开发。python也支持为GUI环境编写代码。下面是一段简单的python代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

health = 10

trolls = 0

damage = 3

while health >0:        #!= 0:

trolls += 1

health = health - damage

print " " \

"but takes", damage, "damage points.\n"

print " ", trolls, "trolls."

sed

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


1

$ sed -e ‘s/foo/bar/g‘ myfile.txt

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

除了本文介绍的这些之外,还有像Ruby、VBScript、Java Script、JScript、TclAppleScriptFalcon等等很多其他的脚本语言。本文旨在介绍那些在系统管理中常用的脚本语言,希望你能够熟悉它们并提升你的工作效率。

本文摘自http://blog.jobbole.com/22838/

时间: 2024-10-28 21:44:39

哪种脚本语言最适合你!的相关文章

L脚本语言语法手册 0.10版

L脚本语言语法手册 0.10版 赵亮       简  介 L脚本语言是一个轻量级的,旨在接近自然语言的编程语言,目前支持在中文.英文基础上的编程.并可扩展为任意语种.L脚本语言的语法结构简单,程序结构相对松散,易学易用. 目前L脚本语言仍处于开发初期,功能尚不完善.目前提供了一个简单的源码编辑器,建议使用notepad++或者ultraedit进行源码编辑. 目录 一.        介绍.. 2 二.        注释.. 3 三.        对象定义和引用.. 3 四.       

脚本语言,面向对象语言,面向并发语言-杂谈

我 15:40 我看python写的是初学者的语言 这个有几层含义呢 是这个语言不够强大么? 永神 15:41 嗯 我 15:41 还是说这个语言简单易学? 永神 15:41 比较简单 应该是脚本类的语言 肯定不如JAVA C++强大 一般程序员,拿来作为一个辅助的技能 而不是专门作为一个职业 我 15:42 那java这些算什么语言啊 高级程序开发语言? 永神 15:42 JAVA啊,面向对象语言,是一个体系 高级程序语言指的是对计算机来说高级 我 15:43 那linux的shell呢?和p

Linux和Windows脚本语言

本文译自 iSystemAdmin 的 <List Of Popular Scripting Languages for Linux and Windows>. 具备脚本知识的系统管理员与其他系统管理员有着明显的区别.脚本是一门“系统管理员”创造的艺术.这门艺术需要了解系统本身的相关知识,系统管理命令的语法,编程和算法知识以及至少一门脚本编程语言.对系统管理员来说编写脚本有很多选择,每种脚本语言都有着自己独特的语法和优点.脚本语言之间几乎没有相似之处,但也不会像外星语那样难以读懂.脚本语言既可

shell、cmd、dos和脚本语言区别和联系

问题一:DOS与windows中cmd区别   在windows系统中,"开始-运行-cmd"可以打开"cmd.exe",进行命令行操作. 操作系统可以分成核心(kernel)和Shell(外壳)两部分,其中,Shell是操作系统与外部的主要接口,位于操作系统的外层,为用户提供与操作系统核心沟通的途径.在windows系统中见到的桌面即explorer.exe(资源管理器)是图形shell,而cmd就是命令行shell.这算是cmd与dos的最大区别,一个只是接口.

客户端脚本语言javascript

2015.11.27  客户端脚本语言javascript. (叫这个名字的原因.想要攀高枝,希望变得和他一样通用.关于名字之间的关系类似于雷锋和雷峰塔,巴基斯坦和卡巴斯基,苏格拉底跟格拉苏蒂的关系一样.阿迪王 和阿迪达斯)康师傅和康帅博 也是javaweb中的一个环节,javascript现在做的也很强大.主要应用于b/s部分的b也就是浏览器客户端的部分. 1.javascript语言,在运行的时候是不需要服务器的,只有浏览器就可以对js代码进行解释. 2.脚本语言:自身无法独立在浏览器端运行

Java SE 6 新特性: 对脚本语言的支持

2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Mustang 在性能方面有了不错的提升.与 Tiger 在 API 库方面的大幅度加强相比,虽然 Mustang 在 API 库方面的新特性显得不太多,但是也提供了许多实用和方便的功能:在脚本,WebService,XML,编译器 API,数据库,JMX,网络 和 Instrumentation 方面都有不

动态网页脚本语言

在ASP .PHP.JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑.普通的 HTML页面只依赖于Web服务器,而ASP .PHP.JSP页面需要附加的语言引擎分析和执行程序代码.程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器.ASP .PHP.JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持. 二.技术特点: (一)ASP的技术特点: 1. 使用VBScript .JScript等简单易懂的脚本语言,结合HTML代

SiKuli 图形脚本语言【转载】

Sikuli 是一种新颖的图形脚本语言,或者说是一种另类的自动化测试技术.它与我们常用的自动化测试技术(工具)有很大的区别. 当你看到上图sikuli的脚本时,一定会惊呼,这样都可以~!脚本加截图~~~ OK ,在惊讶过后,我们一起来大体的了解一下这个技术. 什么是Sikuli? Sikuli脚本自动化,你在屏幕上看到的任何东西.它使用图像识别,识别和控制GUI组件.这是有用的,当有一个GUI的内部或源代码的访问是不容易的. Sikuli(在墨西哥维乔印第安人的语言里是”上帝之眼”的意思)是由美

主流脚本语言的比较和选择

主流脚本语言的比较和选择 —— Hywhy 过去这一年的时间里,我买了不少书,查了很多资料,可以算是认真的学习了几种主流的脚本 语言,因为我一直想搞一个好用的自动化工具,来方便我们的系统维护.虽然这个愿望还没有达成,但是在这个过程中,还是学到了很多东西.今天下午,跟同事们 聊天时,说到了脚本语言,这是比较难得的,也正好借这个契机,把我的一些看法说一说,有不妥和错误的地方,请大家多指正. 为什么选择脚本语言 为什么选择脚本语言,可能每个人面对的实际情况都不一样.语言本身没有好坏之分,只有合适或者不