Shell脚本基础

mac2025-12-19  5

Shell基础

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...] ---乘法*无需转义,运算符两侧可以无空格 ---引用变量可省略 [12...]符号 —计算结果代替表达式本身,可结合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

最新回复(0)