毫无疑问,UNIX/Linux最重要的软件之一就是shell,目前最流行的shell被称为Bash(Bourne Again Shell)。作为系统和用户之间的交互接口,shell几乎是你在 UNIX工作平台上最亲密的朋友。 学好shell是学习Linux/UNIX的开始。
想真正学习脚本编程的唯一途径就是编写脚本。
shell是一个命令解释器,是介于操作系统kernel和用户之间的一个绝缘层。一个shell程序被称为一个脚本。所有的UNIX命令和工具再加上公共程序,对于shell脚本来说,都是可调用的。而且shell内建命令,比如test与循环结构,也会给脚本带来强力的支持和增加灵活性。
为什么使用shell编程?
没有程序语言是完美的。甚至没有一个唯一的最好的语言。只有对于特定目的,比较适合和比较不适合的程序语言。
shell脚本的语法是简单并且直观的,编写脚本很像是在命令行上把一些相关命令和工具连接起来,并且只有很少一部分规则需要学习。shell脚本遵循典型的UNIX哲学,就是把大的复杂的工程分成小规模的子任务,并且把这些部件和工具组合起来。
什么时候不使用shell脚本:
(1)资源密集型的任务,尤其在需要考虑效率时;
(2)需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算;
(3)有跨平台移植需求;
(4)复杂的应用,在必须使用结构化编程的时候;
(5)对于影响系统全局性的关键任务应用;
(6)对于安全有很高要求的任务;
(7)项目由连串的依赖的各个部分组成;
(8)需要大规模的文件操作;
(9)需要多维数组的支持;
(10)需要数据结构的支持,比如链表等数据结构;
(11)需要产生或操作图形化界面GUI;
(12)需要直接操作系统硬件;
(13)需要I/O或socket接口;
(14)需要使用库或者遗留下来的老代码的接口;
(15)私人的,非开源的应用(要知道shell脚本把代码就放在文本文件中,全世界都能看到);
即使你使用更高级的语言来开发你的应用,使用shell来原型开发你的应用,在开发步骤中也是非常有用的。
Bash是"Bourne-Again Shell"首字母的缩写;Bash已经成为了所有UNIX中shell脚本的事实上的标准了。根据惯例,用户编写的Bourne Shell脚本应该在脚本的名字后边加上".sh"扩展名。一些系统脚本,比如那些在/etc/rc.d中的脚本,则不遵循这种命名习惯。