shell sed awk
什么是shell
翻译官 内核与用户之间的解释器程序(/bin/bash)
shell种类
配置文件:/etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
规范脚本的构成
#!表明解释器
#注释信息
可执行的命令
脚本的执行方式
加x执行权限 [绝对路径 相对路径] 开启子进程
bash 脚本文件; sh 脚本文件 开启子进程
source 脚本文件;脚本文件 不开子进程
变量的类型
环境变量
user (当前登录的系统用户)
UID (当前登录用户的uid)
pwd (当前所在路径)
home (当前用户家目录)
ps1 (一级提示符)
ps2 (二级提示符)
位置变量
$1 $2 $3
预定义变量
$0 执行脚本的名字
$? 返回上一条命令的结果(0正确 非0错误)
$$ 当前脚本的进程号
$# 统计位置变量个数
$* 所有位置变量的值
自定义变量
变量民的要求
(1)数字、字母、下划线组成
(2)不能以数字开头
(3)等号两边不能有空格
(4)如果变量有值,则会覆盖
定义变量
变量名=变量值 ch=18
read -p "请输入您要查询的用户名:" name
export 定义全局变量
取消变量
unset
export -n 撤销全局变量(变量存在)
引号的区别
“”: 切丁范围
‘’: 界定范围 屏蔽特殊字符的含义
``或$():获取命令的输出结果
shell中的运算
+ - * / %
方法一:
expr 1 + 1 (注意必须有空格)
\转义符号:屏蔽之后一个字符的特殊含义【主要在乘法中运用】
方法二:
echo $[] ; echo $(())
方法三:
改变变量本身的值,不显示结果
let a=a+1
let a+=1
let a++
方法四:
bc工具
scale:scale=N(数字) 指定小数位的长度
测试
条件测试:
格式: test 表达式; [ 表达式 ]