AI智能
改变未来

认识shell脚本


一.shell入门基础

1.学习shell脚本的用途
对于一个合格的系统管理员来说,学习和掌握Shell编程是非常重要的。可以在很大程度上简化日常的维护工作,使得管理员从简单的重复劳动中解脱出来。
shell的特点:
1).shell是一个解释性语言(Python也是),不需要编译等过程,它是从脚本程序中一行一行的读取并执行命令。
2).相对于其他语言来说较为简单
2.shell是什么
shell(壳),又称之为命令解释器,是一种脚本语言,作用是当用户输入命令时,shell会将命令解析传递给内核,通过内核执行相应的动作。
3.当前shell的分类
(1)Bourne Shell:标识为sh,该Shell由Steve Bourne在贝尔实验室时编写。在许多Unix系统中,该
Shell是root用户的默认的Shell。
(2)Bourne-Again Shell:标识为bash,该Shell由Brian Fox在1987年编写,是绝大多数localhost发
行版的默认的Shell。
(3)Korn Shell:标识为ksh,该Shell由贝尔实验室的David Korn在二十世纪八十年代早期编写。它完
全向上兼容 Bourne Shell 并包含了C Shell 的很多特性。
(4)C Shell:标识为csh,该Shell由Bill Joy在BSD系统上开发。由于其语法类似于C语言,又称之为C shell。
(5)T shell:(TENEX C Shell):是csh的增强版本,引入了命令补全等功能,在FreeBSD、MacOS X等系统上替代了csh。

如何查看当前系统支持的shell?

如何查看当前系统默认shell?
[root@localhost ~]# echo $SHELL
/bin/bash
4.作为程序设计语言的shell
shell不仅仅是充当用户与UNIX或本地主机交互界面的角色,还可以当成一种程序设计语言来使用。
shell脚本:如果将一系列常使用的命令,存储在一个文件里,shell可以读取这个文件并顺序执行其中的命令,这样的文件就叫做shell脚本。

语言的种类

① 编译型语言
定义:指用专用的编译器,针对特定的操作平台(操作系统)将某种高级语言源代码一次性翻译成可被
硬件平台直接运行的二进制机器码(具有操作数,指令、及相应的格式),这个过程叫做编译
(./configure make makeinstall );编译好的可执行性文件(.exe),可在相对应的平台上运行(移
植性差,但运行效率高)。典型的编译型语言有, C语言、C++等。
② 解释型语言
定义:指用专门解释器对源程序逐行解释成特定平台的机器码并立即执行的语言;相当于把编译型语言
的编译链接过程混到一起同时完成的。
解释型语言执行效率较低,且不能脱离解释器运行,但它的跨平台型比较容易,只需提供特定解释器即
可。常见的解释型语言有, Python(同时是脚本语言)与Ruby等。
③ 脚本语言
定义:为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。
特点:程序代码即是最终的执行文件,只是这个过程需要解释器的参与,所以说脚本语言与解释型语言
有很大的联系。脚本语言通常是被解释器执行的,而且程序是文本文件。典型的脚本语言有,Java,Python,shell等。
学习shell必须的知识储备:
1.熟练使用vim编译器
2.熟悉Linux的相关命令和一些基础的服务
3.熟悉三个工具,grep,sed,awk
5.脚本的命名规则
(1)其命名规则和标识符的定义相似
(2)一般使用驼峰法命名,,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:
myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
国内喜欢用下划线,例如name_file等

二.shell脚本的基本构成

1.新建一个脚本文件,文件的首行一般为制定shell解释器
#!/bin/bash
2.可以写一些合适的注释,让别人在访问你的脚本,可以快速理解执行语句的意思,方便他人
3.一般约定成俗的在命名脚本文件时为filename.sh
4.可执行语句:即实现程序的功能
5.脚本文件内的注释:
(1)用#,实现的是单行的注释
(2)用<<BLOCK
…注释的内容
BLOCK
实现的是块注释,一次性注释多行
例如:
未执行注释时:
编写一个简单的shell脚本


执行了块注释后:

(3).脚本中尽量不用中文注释
别吝啬添加注释,必要的注释方便自己别人理解脚本逻辑和功能;
尽量用英文注释,防止本机或切换系统环境后中文乱码的困扰;
单行注释,可以放在代码行的尾部或代码行的上部;
多行注释,用于注解复杂的功能说明,可以放在程序体中,也可以放在代码块的开始部分 代码修改
时,对修改的内容进行解释说明
(4)多使用内部命令
内部命令可以在性能方面为你节省很多。
(6)代码缩进:缩进可以修改
1.方法一:首先回到用户目录:cd ~
打开.vimrc文件:vim .vimrc (注:用命令ls -al查看.vimrc文件,若没有此文件仍然输入vim .vimrc新建此文件)
输入此行代码:set tabstop=n (n为要缩进的位数 )
保存修改并并退出:wq
2.方法二:临时设置缩进位数
在打开了vim编辑器以后,在命令模式下输入set tabstop=n,其中n为要缩进的位数。此方法在退出当前编辑窗口后缩进数将恢复为之前默认的缩进数。
缩进方法:#所谓soft tab就是使用n个空格进行缩进(n通常是2或4)

所谓hard tab当然就是指真实的”\\t”字符

6.shell脚本的执行
方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本
方法二:以绝对路径的方式去执行bash shell脚本:
方法三:直接使用bash 或sh 来执行bash shell脚本:
方法四:在当前的shell环境中执行bash shell脚本:source或\”.\”。
执行方法之间的区别:
1.方法一和方法二脚本需要执行权限,./script_name.sh或/path/script_name.sh
2.方法三:可以在脚本中不指定解释器,脚本可以没有执行权限
3.方法四:当前shell执行,方法1-3开启子shell。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 认识shell脚本