南昌网站制作,建行的官方网站,西安网站建设服务,广州花都网页设计为什么学习和使用Shell编程 什么是Shell shell的起源 shell的功能 shell的分类 如何查看当前系统支持的shell#xff1f; 如何查看当前系统默认shell#xff1f; 驼峰语句 shell脚本的基本元素 shell脚本编写规范 shell脚本的执行方式 shell脚本的退出状态 #xf… 为什么学习和使用Shell编程 什么是Shell shell的起源 shell的功能 shell的分类 如何查看当前系统支持的shell 如何查看当前系统默认shell 驼峰语句 shell脚本的基本元素 shell脚本编写规范 shell脚本的执行方式 shell脚本的退出状态 查看状态echo $? 执行脚本的方法 为什么学习和使用Shell编程 对于一个合格的系统管理员来说学习和掌握Shell编程是非常重要的。通过编程可以在很大程度 上简化日常的维护工作使得管理员从简单的重复劳动中解脱出来。 shell程序的特点 1、简单易学 2、解释性语言不需要编译即可执行 什么是Shell 在学习Shell编程之前必须弄清楚什么是Shell。为了能够使读者在学习具体的Shell编程之前对 Shell有个基本的了解本节将对Shell进行概括性的介绍包括Shell的起源和功能。 shell的起源 1964年美国ATT公司的贝尔实验室、麻省理工学院及美国通用电气公司共同参与开始研发一套 可以安装在大型主机上的多用户、多任务的操作系统该操作系统的名称为Multics。 1970年丹尼斯•里奇和汤普逊启动了另外一个新的多用户、多任务的操作系统的项目他们把这 个项目称之为UNICS。 1973年使用C语言重新编写了Unix。通过这次编写使得Unix得以移植到其他的小型机上面。 1979年第一个重要的标准UNIX Shell在Unix的第7版中推出并以作者史蒂夫•伯恩Stephen Bourne的名字命名叫做Bourne Shell简称为sh。 20世纪70年代末C Shell作为2BSD UNIX的一部分发布简称csh。 之后又出现了许多其他的Shell程序主要包括Tenex C Shelltcsh、Korn Shellksh以及 GNU Bourne-Again shellbash。 shell的功能 Shell又称命令解释器它能识别用户输入的各种命令并传递给操作系统。它的作用类似于 Windows操作系统中的命令行但是Shell的功能远比命令行强大的多。在UNIX或者localhost中 Shell既是用户交互的界面也是控制系统的脚本语言。 shell的分类 Bourne Shell标识为sh该Shell由Steve Bourne在贝尔实验室时编写。在许多Unix系统中该 Shell是root用户的默认的Shell。 Bourne-Again Shell标识为bash该Shell由Brian Fox在1987年编写是绝大多数localhost发行 版的默认的Shell。 Korn Shell标识为ksh该Shell由贝尔实验室的David Korn在二十世纪八十年代早期编写。它完 全向上兼容 Bourne Shell 并包含了C Shell 的很多特性。 C Shell标识为csh该Shell由Bill Joy在BSD系统上开发。由于其语法类似于C语言因此称为C Shell。 如何查看当前系统支持的shell [rootlocalhost ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin 如何查看当前系统默认shell [rootlocalhost ~]# echo $SHELL /bin/bash 驼峰语句 什么是驼峰语法 骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起而构成的唯一识别字时第 一个单词以小写字母开始从第二个单词开始以后的每个单词的首字母都采用大写字母例如 myFirstName、myLastName这样的变量名看上去就像骆驼峰一样此起彼伏故得名。 除了驼峰命名法另外还有匈牙利命名法。基本原则是变量名属性类型对象描述。匈牙利命 名法关键是标识符的名字以一个或者多个小写字母开头作为前缀前缀之后的是首字母大写的一个单 词或多个单词组合该单词要指明变量的用途。比如m_lpszStr, 表示指向一个以0字符结尾的字符串的长 指针成员变量。 另外有些程序员喜欢用下划线。比如file_name。 shell脚本的基本元素 对于一个基本的Shell程序来说应该拥有以下基本元素 声明声明用哪个命令解释器来解释并执行当前脚本文件中的语句一般写的解释器为 #!/bin/bash 。 2.命令可执行语句实现程序的功能。 3.注释说明某些代码的功能通过在代码中增加注释可以提高程序的可读性。 1单行注释#开头的一整行都是注释例如 #comment1 #comment2 #comment3 …… 2多行注释使用冒号“:”配合here document可实现多行注释例如 :BLOCK ……注释内容 BLOCK 4.赋予rx的权限 shell脚本编写规范 1脚本文件名应见名知意例如backup_mysql.sh 2文件开头指定脚本解释器 #!/bin/sh 或 #!/bin/bash 3开头加版本特权等信息 # Date:创建日期 # Author:作者 # Mail:联系方式 # Function:功能 # Version:版本 4脚本中尽量不要用中文注释 别吝啬添加注释必要的注释方便自己别人理解脚本逻辑和功能 尽量用英文注释防止本机或切换系统环境后中文乱码的困扰 单行注释可以放在代码行的尾部或代码行的上部 多行注释用于注解复杂的功能说明可以放在程序体中也可以放在代码块的开始部分。 5多使用内部命令 常用的内部命令有echo、eval、exec、export、read、shift、exit shell脚本的执行方式 1bash ./filename.sh产生子进程再运行使用当前指定的bash shell去运行 2./filename.sh产生子进程再运行使用脚本里面指定的shell去运行。使用该种方式执行需要x 权限 3source ./filename.shsource命令是一个shell内部命令其功能是读取指定的shell程序文件并 且依次执行其中的所有的语句并没有创建新的子shell进程所以脚本里面所有创建的变量都会保存到 当前的shell里面 4. filename.sh和source一样也是使用当前进程执行 shell脚本的退出状态 查看状态echo $? 在UNIX或者Linux中每个命令都会返回一个退出状态码。退出状态码是一个整数其有效范围为 0~255。通常情况下成功的命令返回0而不成功的命令返回非0值。非0值通常都被解释成一个错误 码。行为良好的UNIX命令程序和工具都会返回0作为退出码来表示成功。 Shell脚本中的函数和脚本本身也会返回退出状态码。在脚本或者是脚本函数中执行的最后的命令会决定 退出状态码。另外用户也可以在脚本中使用exit语句将指定的退出状态码传递给Shell。 [rootlocalhost ~]# vim ~/.vimrc shell脚本的执行方式 1交互式执行 2作为程序文件执行常用 对于一组需要经常重复执行的Shell语句来说将它们保存在一个文件中来执行。我们通常称这种包 含多个Shell语句的文件为Shell脚本或者Shell脚本文件。脚本文件是普通的文本文件可使用任何的 文本编辑器查看或修改Shell脚本。 执行脚本的方法 1bash ./filename.sh产生子进程再运行使用当前指定的bash shell去运行 2./filename.sh产生子进程再运行使用脚本里面指定的shell去运行。使用该种方式执行需要x 权限 autocmd BufNewFile *.py,*.cc,*.sh,*.java exec :call SetTitle() func SetTitle() if expand(%:e) sh call setline(1,#!/bin/bash) call setline(2,#########################) call setline(3,#File name:.expand(%)) call setline(4,#Version:v1.0) call setline(5,#Email:admintest.com) call setline(6,#Created time:.strftime(%F %T)) call setline(7,#Description:) call setline(8,#########################) call setline(9,) endif endfunc 创建一个shell文件如图