shell,perl,python的区别

shell+sed+awk
严格的讲, shell不是一种编程语言, 可是shell有本身的控制流结构(判断,循环,选择),运算以及函数等编程语言特性, 加上shell命令组织在一块儿构成脚本, 可以完成通常编程语言作到的事情.sed和awk通常融入到shell里面应用, bash是shell的一种, 也是linux的默认shell. shell是linux内核和用户命令的沟通桥梁, 你输入的任何命令都是经过shell去解释, linux内核才知道你要作什么.
三者中功能最弱,没有调试程序,大多数操做必须经过运行其余程序才能执行,因此须要更多时间、内存并在进程表中占有位置。内置的算术运算颇有限,数组下标必须是数字等。但它对运行环境要求低,小巧便捷,是学习系统脚本编程,系统维护和操做的基础。系统管理的基础是shell, 这取决于shell的桥梁做用. 能够说, shell脚本几乎能够完成全部linux下的自动化任务.html


Perl
设计之初就是为了方便编写复杂高效的系统脚本,它也是应该最为普遍的脚本编程语言。它在编程方面至关于瑞士军刀,对字符、文本文件处理能力很强,用做文本处理比较好,能够做为系统的辅助工具,之前要求 shell+sed+awk+C才能完成的任务,只需perl脚本就能够完成了。并且应用领域一直在拓宽,支持面向对象程序设计。perl最大的优点在于它的字符串模式匹配能力,其提供了一个十分强大的正则表达式匹配引擎。然而perl语言的晦涩和对符号语法的过分使用,让解读变得很困难。这些语法令初学者不得精要,为他们的学习带来不小的阻碍。一般当你想阅读几个月前写的perl脚本的时候都不得不求助参考书。python


Python
面向对象的动态公共语言,适于脚本编程和快速开发,它最显著的特色是做为编译语言(如C)和脚本语言(如perl)之间的桥接语言,它具备的强大功能,可扩充性,跨平台能力好及彻底面向对象的特征使其成为大规模应用程序开发工具。
perl和python相比于shell, 是严格意义上的编程语言(举个不恰当的例子,shell至关于批处理,如dos下的bat文件,固然要比bat强大了许多许多,perl至关与c语言). 功能比shell固然会复杂不少, 语法上也稍微复杂一些.
perl/python处理某些问题可能比shell简单,高效, 能够说是提高系统管理水平的进阶手段.linux


总结
因而可知Perl比shell+sed+awk更强大,但学习二者并不冲突,一般是学习shell作为脚本编程的入门基础。而Python在应用领域则与前二者有很大的差异,无太大的可比性。面向不一样的任务,能够只需用到其中的一种,也可能三种都要用到,因此究竟该学谁不学谁,须要由面对的任务来决定。总之, shell是基础, 其余是进阶辅助正则表达式

bash - GNU Bourne-Again SHell 相似dos的command,没他你就别想执行命令
gawk - pattern scanning and processing language 主要用于文本相关的处理的编程语言
sed - a Stream EDitor 用于对字符流进行操做
perl - Practical Extraction and Report Language 一种程序语言,特别用于对字符串处理和做为cgi程序
后三种在linux中是经过bash进行调度执行的
bash你必须用,其余三个要看你的须要了,呵呵
bash、awk、sed、perl
联系是均可以做为 命令解释器
功能大小
大=====〉小 shell

perl /*powerful like ksh, fast, use widely
awk /*power two, basic using in shell script, also write awk script
bash, provide user interface, also provide some command
sed , line editor oriented lines
perl 是一种很强的编程语言,你几乎能够用它作任何事情,awk 则简单多了,主要用来处理具备必定格式的文件。若是是 shell 编程,awk、sed 等都是不可缺乏的工具,固然 perl 彻底能够替代 awk、sed、grep 等命令编程

转自 http://raclinux.blog.163.com/blog/static/1899371622012218104842567/
http://blog.sina.com.cn/s/blog_5edf897701010hxt.html
http://www.360doc.com/content/12/0501/23/507289_208001203.shtml数组

相关文章
相关标签/搜索