shell:脚本基础知识
1. shell程序在运维工作中的作用地位
- shell脚本很擅长处理纯文本类型的数据,而在linux中几乎所有的配置文件、日志文件(如nfs,rsync,httpd,nginx,lvs)等都是纯文本类型的文件,因此,如果学好shell脚本语言,就可以利用它在linux系统中发挥巨大的作用。
##2. 脚本语言的种类
-
在unix/linux中主要有两大类shell
-
Bourne shell(包括sh,ksh,and bash)
Bourne shell(sh) korn shell (ksh) Bourne Again shell(bash) Posix shell (sh)
-
C shell (包括csh and tcsh)
C shell (csh) tenex/tops C shell (tcsh)
-
shell脚本语言是弱类型语言,较为通用的shell有标准的Bourne shell(sh) 和 c shell(csh)。其中bourne shell(sh)已经被bash shell 取代。 ##3. 其他运维或开发人员常用脚本语言
-
php
- php是网页程序,也是脚本语言,更专注于web页面开发,例如:dedecms,discuz。
- 也可以处理系统日志,配置文件等。
-
perl
- perl脚本语言。比shell强大的多,前几年2010年前很火,语法灵活、复杂,实现方式很多,不易读,团队协作困难。
-
python
- 可以做脚本开发,也可以实现web开发。中等以上的公司都要求会python, ##4. shell与php/perl/python语言的区别和优势
-
shell的优势在于处理操作系统底层的业务,因为有大量的系统命令为它做支撑,2000多个命令都是shell编程的有力支撑,特别是grep,awk,sed等。例如:一键软件安装,优化,监控报警脚本,常规的业务应用,shell开发更简单快速,符合运维的大原则。
-
php,python优势在于开发运维工具,web界面的管理工具,以及web业务的开发等。处理一键软件安装、优化。报警脚本,常规的业务应用等php/python也是能够做到的,但是开发效率和复杂度要比用shell就差很多了。我们使用软件就是要根据业务需求来选择,扬长避短。 ##5. 常用操作系统的默认shell linux是 Bournc Again shell(bash) Solaris和freeBSD缺省的是Bourne shell(sh) aix下是korn shell (ksh) HP-UX缺省的是poslx shell (sh) 提示:这里我们将重点讲linux系统环境下的Bourne Again shell
##6. 企业考试题一例:centos linux系统默认的shell是() [root@1-241 scripts]# echo $SHELL /bin/bash [root@1-241 scripts]# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash