十二、Shell的基础

概述
Shell的概念
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)
由C语言开发的程序,是用户合Linux的桥梁,shell即是一种命令语言,又是一种程序设计语言
也可以把shell理解为一个应用程序,这个应用提供了一个界面,用户通过界面可以 访问操作系统内核的服务
shell可以执行:

  • 内部命令
  • 应用程序
  • shell脚本

shell执行步骤
用户输入命令——提交给Shell——在系统中查找该命令的文件并调入内存执行——内核中系统功能调用
特点
shell程序开发的效率高,依赖于功能强大的命令可以迅速完成任务
种类
-Linux中默认的shell是/bin/bash,bash这是个可执行文件
-不同shell具有不同的功能,可以决定脚本中函数的语法
-流行的shell还有:ash、bash、ksh、zsh、csh
-bash shell
-大多数Linux的shell,是Bourne shell 的一个免费版,可以通过help命令查看帮助,Linux一般的shell脚本都会指定bash作为执行路径
脚本
脚本就是一条条文字命令,这些命令时可以看到的(如用记事本打开编辑)
常见的脚本有:javasrcipt、VBscript、asp、jsp、sql、javaFx

shell编写规范
代码规范
第一行:#!/bin/bash
其他行:Shell相关指令
image.png
-第一行告知系统当前这个脚本要使用的shell解释器路径,一般不写也可指执行,建议写
文件命名规范:
【文件名.sh】,sh是Linux下bash shell的默认后缀
使用流程:
1,创建sh文件,touch
2,编写设立了代码,/vim
3,执行shell脚本,保证脚本文件有执行权限
案例一:输出Hello word
1,touch test.sh
2,vim test.sh
3,输入
#!/bin/bash
echo ‘Hello World’
4,:x,退出,
5,./test.sh,执行
image.png
注意:
-运行前先要确保该脚本文件有被执行权限
-【;】结束时只有一行可以不写,多行时中间行需要写
-运行的时候需要写成:【./test.sh】的形式,表示运行的文件就在当前目录下。如果直接输入【test.sh】系统根据PATH(环境变量)里设置的
路径(/bin、/sbin、/usr/bin等)去寻找【test.sh】,运行其他的二进制程序也一样,需要加上【./】
变量
变量定义:一个脚本周期内其值可以改变的量叫做变量
脚本周期:可以理解为执行完一个shell文件
变量的命名规范:
1,命名只能是英文、数字、下划线,
2,首字母不能以字母开头
3,中间不能有空格
4,不能使用bash里面的关键字(可用help查询关键字)
使用规范:
1,使用变量需要在其前面个加上【$】符号
image.png
2,双引号可以识别变量,双引号可以实现转义
3,单引号只会原样输出,单引号可以实现转义
3,【`】反引号在当前脚本中执行一些指令并将执行结果赋值给变量的时候需要使用“反引号”
例子:
image.png
只读变量
语法:readonly 变量名
作用:把定义后的变量设置为只读,则使得变量无法被修改
接受用户输入作为变量
语法:read -p 提升信息 变量名
image.png

image.png
删除变量名
语法:unset 变量名

条件判断语句
语法:
if condition1
then
command1
conmand2

elif condition1
then
command1
else
commandN
fi
单行写法:
运算符:
常见的有算数运算符、关系运算符、逻辑运算符、字符串运算符、文件测试运算符
算数运算符
image.png

expr计算工具
image.png
关系运算符
shell的脚本关系运算符只支持数字,不支持字符串,除非字符串的值是字符
image.png

image.png
逻辑运算符
image.png

image.png
字符串运算符
image.png
image.png
文件测试运算符
用于检测unix/linux文件的各种属性
image.png

image.png