Shell基础
- Shell:是Linux命令解释器;它是用户与系统内核,之间的桥梁;
- Shell-Script(脚本):一种解释型语言;也是命令式语言;作用:可以批量执行命令,实现一些自动化任务,例如一键安装脚本,自动发送邮件、短信、微信、钉钉,系统巡检,系统优化脚本等,数据库备份脚本、垃圾清理脚本。
开发环境:
- Linux + Vim + 可选插件
- VSCode + 插件
- 本地安装
- 远程访问(ssh)
Shell基础语法
脚本的运行方式
- bash:在运行脚本时,会启动一个子shell执行脚本中的命令
- source:加载脚本,在当前的父shell中执行
- chmod +x test.sh #./test.sh
- **. test.sh # . 等价与 source **
变量
数据的别名,创建变量时,会在内存中开辟存储空间,将数据存入内存中,将变量名和内存地址绑定;
变量命名规范:
- 不要和命令相同,建议使用大写字母;
- 使用数字、字母、下划线命名,不要一数字开头;
- Shell变量赋值时,“=”的左右不能有空格;
- 蛇形命名法:多个单词中间用下划线连接,例如 my_name ;
- 驼峰命名法:小驼峰 例如:myName 、getAge ;大驼峰 例如:MyName
- MYSQL_PATH
三种引号:
- 单引号:输出的是字符串本身;
- 双引号:当包含
$变量时,会输出变量的值; - 反引号:当引用的是命令时,会以字符串的方式返回命令执行的结果;
变量的分类:
-
普通变量:在shell运行时子shell中生效;
- MY_NAME=“111”
- echo $MY_NAME
-
全局变量:export 变量名
- export MY_NAME=“111”
- echo $MY_NAME
-
系统环境变量:env 查看 PATH、HOME、SHELL、PWD
- export PATH=$PAHT:/usr/local/mysql /bin #临时生效
- vim /etc/profile #永久生效,开机自动执行,全局生效
- vim ~/.bashrc | ~/.profile #让当前用户开机时生效
-
内置变量(特殊变量):
$?,$0,$1~$9,$!,$@,$*,$#$?: 上一条命令是否执行成功, 成功显示0,失败显示其他数字$0:执行脚本时获取脚本的名称$1~$9:第一 ~ 第九个参数$@:获取所有的参数$*:获取所有的参数$*与$@区别:- 相同点:都是引用所有参数。
- 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
$#:获取参数的数量
-
输入、输出
-
判断
-
循环
-
函数
-
数组
Linux命令,重点三剑客(awk,grep,sed),运算,数据处理,计划任务
写脚本
- 案例模仿
- 照着文档改写
- 复杂任务,需求分析,需求拆分,编写模块
