1.什么是shell?
Linux内核于用户之间的解释程序 —/bin/bash —负责向内核翻译,传达用户/程序指令 —操作系统的外壳
2.Shell的使用方法?
—交互式(命令行) —非交互式(脚本) (1)批量执行,效率高 (2)方便在后台悄悄运行 (3)人工智能,难度系数大
3.常见的Shell种类?
(1)/bin/bash (2)/bin/sh (3)/sbin/nologin (4)/bin/tcsh (5)/bin/csh (6)/bin/ksh
4.Bach特性
—快捷键 Ctrl+l —tab补齐 —历史命令 history —命令别名 alias —标准输入输出 echo —重定向 > >> —管道符 |
5.什么是Shell脚本?
—提前写好的执行语句,能够完成特定任务的文件。 —顺序,批量化处理 —解释性程序
6.常见的脚本语言?
(1)bash shell (2)python/perl/ruby (3)JSP/PHP/ASP/CGI (4)Java
7.Shell版HelloWorld的诞生
(1)新建文本文件 (2)添加可执行脚本语句 (3)添加X权限
8.脚本构成
—#!脚本声明 —#注释 —可执行的语句
9.脚本执行方式
—命令字 —sh —source —.脚本路径
10.调试Shell脚本
—观察报错信息 —sh -x开启调试模式 —在可能出错的地方设置echo
案例一:快速部署配置YUM
#vim yum.sh #!/bin/bash Rm -rf /etc/yum.repo.d/*.repo 删除之前yum缓存 Echo ‘[xxxx] name =xxxx Baseurl=xxxx Enabled=1 Gpgcheck=1’ > /etc/yum.repo.d/local.repo 新建yum文件
案例二:快熟搭建ftp服务
#vim ftp.sh #!/bin/bash Yum -y insatll vsftpd &>/dev/null Systemctl start vsftpd Systemctl enable vsftpd
1.什么是变量?
以固定名称存放,可能会变化的值 —提高脚本对任务需求,运行环境变化的适应力强 —方便在脚本里重复使用
2.定义/赋值/查看变量
定义X=12 查看Echo$x 注意事项:如果变量已存在,相当于给变量重新赋值 等号两边不能有空格 变量名由数字/字母/下划线组成,区分大小写 变量名不能以数字开头,不要使用特殊符号
3.变量种类
—存储类型 整数型,浮点型,字符型 —shell脚本对存储类型要求比较宽松
4.使用类型
—环境变量:变量名大写,由系统维护,用来设置工作环境 Env列出所有环境变量 Set列出所有变量 —环境变量 PWD PATH USER HOME LOGNAME SHELL PS1 PS2 —位置变量:bash内设 echo $1 ${10} 查看第1,10个位置参照 —预定义变量:bash内设,有特殊用途,可以直接用,不可直接赋值,修改 $0 脚本名 $$ pid号 $? 返回状态 $# 位置变量的个数 $* 位置变量值 —自定义变量:用户自主设置,修改使用lss=250
5.区分三种定界符
—双引号 ”” 允许拓展,支持$ —单引号 ’’ 不允许拓展,屏蔽特殊符号,不支持$ —反撇号 `` 输出内容结果
6.read标准输出取值
—read [-p “提示信息”] 变量名 终端显示控制 —stty -echo 关闭终端输出 —stty echo 恢复终端输出
7.变量范围
—局部变量 新定义的只能在当前shell中 无法在子shell环境中使用 —全局变量 可以再shell和子shell中使用 可以用export声明 Export 局部变量=[变量值] (设置) Export on 全局变量名 (取消)
8.四则运算
—加法 + —减法 - —乘法 * —除法 / —求模(取余) %
9.expr运算工具
Expr 整数 运算符 整数 —加法 + —减法 - —乘法 * (\转译*避免与shell特殊符号冲突) —除法 / —取余 %
10.$[]或(())算式替换
—格式: [ 整 数 1 运 算 整 数 2... ] − − − 乘 法 ∗ 无 需 转 义 , 运 算 符 两 侧 可 以 无 空 格 − − − 引 用 变 量 可 省 略 [整数1 运算 整数2...] ---乘法*无需转义,运算符两侧可以无空格 ---引用变量可省略 [整数1运算整数2...]−−−乘法∗无需转义,运算符两侧可以无空格−−−引用变量可省略符号 —计算结果代替表达式本身,可结合echo 案例:#X=12 #echo $[x+15] #echo ( ( x + 18 ) ) , ((x+18)), ((x+18)),((z-3))
11.Let 变量自增/减
I++ I– I+=2 I-=2 I*=2 I/=2 I%=2 案例:i=43 #echo $[i+=2] #let i++,echo $i
12.bc小数运算
—支持高精度的数值运算 —运行bc可进入交互运算界面 —设置scale=n约束小数位
案例:bc
12.8925.22 Scale=4 Quit A=12.35 #echo “scale=4;$A56.255” | bc
