Linux和Windows脚本语言

本文译自 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、Tcl、AppleScript和Falcon等等很多其他的脚本语言。本文旨在介绍那些在系统管理中常用的脚本语言,希望你能够熟悉它们并提升你的工作效率。

英文原文 iSystemAdmin  编译:伯乐在线 – 唐尤华

时间: 2024-10-06 09:06:20

Linux和Windows脚本语言的相关文章

windows下的c语言和linux 下的c语言以及C标准库和系统API

1.引出我们的问题? 标准c库都是一样的!大家想必都在windows下做过文件编程,在linux下也是一样的函数名,参数都一样.当时就有了疑问,因为我们非常清楚 其本质是不可能一样的,源于这是俩个操作系统啊!但由于c标准库的封装就实现了接口一样.但是如果往深入,我们就非常清楚了在这层封装上还有一层封装其实就是操作系统对文件操作的封装,也就是文件IO.而我们c语言的封装叫标准IO,他们有什么区别那?显然标准iO是基于文件io的,标准IO调用了文件IO,也优化了文件IO,例如引入缓存机制. 2.上面

windows下编写的bash脚本拖入linux环境下脚本出错之编码问题

windows下编写的bash脚本拖入linux环境下脚本出错之编码问题         脚本经常在windows下写好,拖入到linux环境中运行.但是在运行过程中,经常出现编码问题,这里记录一下.方便自己日后查看,或者给刚好遇到这样的问题的同学一个尝试的方法. 在linux环境下vim 进入拖入的bash脚本.执行命令 :set ff=unix

java脚本语言学习心得

第一篇技术博客,一定要认真! 第一篇技术博客,一定要认真! 第一篇技术博客,一定要认真! 好了,进入正题: 一 什么是脚本语言? 程序的运行方式有两种:编译运行和解释运行 1.1 前者的典型代表是java, 从文件角度看分为三步: write[编写]: a.java文件(拿个记事本就能写,扩展名是.java), compile[编译]: 编译(cmd命令是java a.java,ide集成了编译器运行之前自动编译)之后产生了a.class文件(是一堆二进制码,人看不懂,是给虚拟机看的) 运行[r

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

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

动态网页脚本语言

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

linux 操作系统下c语言编程入门

2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux程序设计入门--网络编程 9)Linux下C开发工具介绍 1)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编

L脚本语言语法手册 0.10版

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

哪种脚本语言最适合你!

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

linux和windows互传文件/用户配置文件和密码配置文件/用户组管理/用户管理

2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 linux和windows互传文件 显示日期date [[email protected]_1 ~]# date 2017年 11月 21日 星期二 08:38:25 CST 显示系统语言 [[email protected]_1 ~]# echo $LANG zh_CN.UTF-8 [[email protected]_1 ~]# stat 1.txt.bak 文件:"1.tx