Shell
一、概述
-
shell图
-
作用
shell是一个命令行解释器,它接收应用程序或用户命令,然后调用操作系统内核
-
脚本
脚本本质上就是一行一行解释执行的。做Linux系统运维时,总是要编写脚本,进行运行和维护。普通开发者会维护服务器或管理数据库、更新数据库、备份数据库。
-
本质
shell是一个功能强大的编程语言,易编写,易调式、灵活性强。
二、Shell脚本
-
后缀名:.sh
-
脚本以 #!/bin/bash 开头(指定解析器)
-
执行方式
1 bash 相对路径/绝对路径 2 相对路径/绝对路径 文件要有可执行权限 3 . 或 source 相对路径/绝对路径 csh -
Linux的bash分布
-
子shell
命令终端就相当于一个shell,在终端中输入bash命令,就相当于打开了一个子shell。
但是使用 . 或source,不会打开子shell
三、变量
-
定义
想要在内存中临时的保存一些东西
-
作用范围
变量名称 作用范围 1 全局变量 当前shell及嵌套在内的所有子shell 2 局部变量 只能是定义该变量的shell中,不能用于父shell中 3 set | less 查看所有的全局变量及局部变量 -
系统变量
$USER $HOME $PWD 等
操作命令 功能 1 env | less 查看所有的系统变量 2 printenv | less 查看所有的系统全局变量 3 printenv 指定系统变量 查看该系统变量(不需加$) 4 echo $HOME 直接使用系统变量 -
自定义变量
4.1 变量赋值两边不能有空格,且带空格的字符串要用引号
4.2 撤销变量:unset 变量名
4.3 声明静态变量:readonly 变量名。不能unset,也不能修改
4.4 将局部变量提升为全局变量:export 变量名
-
变量定义规则
① 变量名由字母、数字、下划线组成,不能以数字开头,环境变量名用大写
② 赋值符号两侧不能有空格
③ 在bash中,变量默认是字符串类型,无法直接进行数值运算
④ 变量值被引号括起来,单引号中的所有都是字符,双引号中会识别变量名
-
特殊变量
特殊变量 功能 1 $n n表示数字。 $0:该脚本名称。
$1- 9 : 代 表 第 1 个 到 第 9 个 参 数 , 10 以 上 的 参 数 用 9:代表第1个到第9个参数,10以上的参数用 9:代表第1个到第9个参数,10以上的参数用{10}2 $# 获取输入参数的个数 3 $* 或 $@ 获取命令行输入的所有参数。
$*:把参数看作一个整体; $@:把参数看作一个数组4 $? 最后一次执行的命令的返回状态,验证脚本执行是否正确
0:表示上一个命令正确执行 非0:证明上一个命令执行不正确 -
变量测试
7.1 hello.sh脚本中的内容
7.2 在shell中测试变量