一、关于shel
1、什么是shel
什么是shell?
Shell(外壳)是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
什么是脚本?
脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。常见的脚本:JavaScript(JS,前端),VBScript,ASP,JSP,PHP(后端),SQL(数据库操作语言),Perl,Shell,python,Ruby,JavaFX,Lua等。
为什么要学习和使用shell?
Shell属于内置的脚本程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理)语法简单,代码写起来比较轻松,简单易学
常见的shell种类?
在linux中有很多类型的shell,不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是/bin/bash(重点),流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途。
csh
Cshell使用的是“类C”语法,csh是具有C语言风格的一种shell,其内部命令有52个,较为庞大。目前使用的并不多,已经被/bin/tcsh所取代。
ksh
Kornshell的语法与Bourneshell相同,同时具备了Cshell的易用特点。许多安装脚本都使用ksh,ksh有42条内部命令,与bash相比有一定的限制性。
tcsh
tcsh是csh的增强版,与Cshell完全兼容。
sh
是一个快捷方式,已经被/bin/bash所取代。
nologin
指用户不能登录
zsh
目前Linux里最庞大的一种shell:zsh。它有84个内部命令,使用起来也比较复杂。一般情况下,不会使用该shell
bash
大多数Linux系统默认使用的shell,bashshell是Bourneshell的一个免费版本,它是最早的Unixshell,bash还有一个特点,可以通过help命令来查看帮助。包含的功能几乎可以涵盖shell所具有的功能,所以一般的shell脚本都会指定它为执行路径。
2、shell入门
编写规范:
代码规范:
#!/bin/bash [指定告知系统当前这个脚本要使用的shell解释器] Shell相关指令文件命名规范:文件名.sh .sh是linux下bashshell的默认后缀使用流程: ①创建.sh文件 touch/vim ②编写shell代码 ③执行shell脚本 脚本必须得有执行权限 二、shell进阶(重点) 1、变量(重点) 1.1、变量的含义 a.什么是量量就是数据. b.什么是变量数据可以发生改变就是变量. 在一个脚本周期内,其值可以发生改变的量就是变量. c.什么叫做一个脚本周期一个脚本周期我们可以简单的理解为当前的shell文件变量是shell中不可或缺的一部分,也是最基础、最重要的组成部分。 1.2、变量的定义与使用(重点)变量,先定义后使用。定义形如:class_name="yunwe" 使用形如:echo$class_name 变量就是由2部分组成,一个是变量名(左边),另外一部分是变量的值(右边)变量名和变量值是什么关系?? 变量名和变量值是使用和被使用关系; 我们的变量名来使用变量值;在使用变量的时候一定需要在变量名前面添加一个$符号,该要求在其他语言中也存在的(例如php)变量名的规范:注意,变量名后面的等号左右不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线“_” 不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字) 1.3、只读变量(了解)语法:readonly变量名 1.4、接收用户输入(重点)语法:read-p提示信息变量名 1.5、删除变量(了解)语法:unset变量名path 2、条件判断语句语法1(一个条件): if condition then command1 command2 ... fi 单行写法(一般在命令行中执行的时候):if[condition];thencommand;fi 语法2(两个条件):、 if condition then command1 command2 ... else command fi 语法3(多个条件):if condition1 then command1 elif condition2 then command2 else commandN fi 3、运算符在shell中,运算符和其他编程脚本语言一样,常见的有算数运算符、关系运算