一、shell环境概述
1),shell作用
用户与操作系统沟通的桥梁
2),linux默认使用的/bin/bash
3),linux系统支持的shell  查看/etc/shells
/bin/bash 默认使用shell
/sbin/nologin 不允许登录
4),历史命令(默认保存1000条)
history   查看历史命令
~/.bash_history  历史命令存放位置
history -c   清空历史命令
!n   执行历史记录中的第n条命令
!str 执行历史记录中以“str”开头的命令
vim /etc/profile 修改39行左右的HISTSIZE=10
5),重定向
(1),标准输入输出
标准输入 0  键盘
标准输出 1 显示器
标准错误 2 显示器
(2),重定向
< 输入重定向
> 输出重定向
>> 追加
2> 错误输出
2>> 错误追加
2>&1 正确和错误都输出到一个文件中=&>
cat a e &> d (file a存在,file e不存在)将正确与错误的输出都写入d
cat a e > d 2>&1 = cat a e &> d
wc 统计多少行,单词,字符
二、shell变4量应用
1),自定义变量
MM=beautiful
echo $MM   --------> beautiful
echo MM     --------> MM
echo '$MM'  -------> $MM  单引号里面的内容原样输出
echo "$MM" -------> beautiful 双引号里面的内容输出变量的值
export MM 使当前shell中所设置的变量值在子shell中仍然生效
unset MM 删除自定义的shell
read -p  从键盘读取赋值给变量
双引号 “ ” :输出变量值
单引号 ‘ ’ :原样输出
反撇号 ` `   :将命令执行的结果输出给变量
expr 数值计算
加法运算:+
减法运算: -
乘法运算: \*
除法运算: /
求模(取余)运算: %
计算器  bc
scale=3 小数点保留3位
2),环境变量
全局配置文件:/etc/profile
用户配置文件:~/.bash_profile
set 查看所有环境变量
env 查看系统环境变量
常用的环境变量
USER 当前用户登录名称
UID 当前用户的UID
SHELL 当前用户登录的shell
HOME 当前用户登录的目录
PWD 当前用户的所在目录 
PATH 当前用户命令的搜索路径
PS1 当前用户的主提示符
PS2 当前用户的辅提示符
3),位置变量
#./cs.sh 1 b 7 e r u 9 3 k
$0------->./cs.sh不属于位置变量
$1------->1
$2------->b
$3------->7
$4------->e
$5------->r
$6------->u
$7------->9
$8------->3
$9------->k
$#------->9 代表位置参数的数量
$*-------->1 b 7 e r u 9 3 k  代表位置参数的内容
4),预定义变量(系统定义好了的不能更改)
$# 位置参数的数量
$* 所有位置参数的内容
$? 值为0,代表上一次命令执行结果正确,非0则错误
$$ 当前进程进程号
$! 后台运行的最后一个进程号
$0 当前执行的进程名
三、编写并执行shell脚本
shell脚本
1),概念
类似于windows中的批处理
2),格式
#!/bin/bash
3),运行
没有执行权限
bash file
. file
有执行权限时
./file