shell编程:shell是命令解释器,也可以编程
常见的shell
- ash:LINUX中占用资源最少的一种shell,只包含24个内部命令,用起来不方便
- bash(常用):内部包含40个命令
- ksh:内部包含42命令,几乎和商业发行版的ksh完全兼容
- csh:内部包含52个命令,该shell指向/bin/tcsh这个shell,也就是说:csh就是tcsh
- zch:内部包含84个命令,如果只是一般用途,没必要安装这种shell
shell编程类似dos中的批处理文件,又叫shell script, shell程序
文件描述指针
- 标准输入,文件描述指针为0
- 标准输出,文件描述指针为1
- 标准错误输出,文件描述指针为2
在shell中可以使用<>等进行重定向
shell中的环境变量
HOME:用来保存注册目录的完成路径名
PATH:用来保存用冒号分隔的目录路径,shell将按此给出的顺序搜索这些目录,查找可执行文件来执行
TERM:终端类型
UID:当前用户的标识,是一串数字
PWD:当前工作目录的绝对路径,该变量的值随cd命令的使用而变化
export:在命令行中设置的变量是当前shell的局部变量,export后变为环境变量,但仅限于当前会话,如需要每次会话能访问,则需要添加在~/.bashshrc
或~/.bash_profile
中
shell中的预定义临时变量
- $# 传给脚本参数的个数
- $0 脚本本身的名字
- $@ 传给脚本的所有参数的列表
- $* 以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可以超过九个
- $$ 脚本运行的当前进程ID号
- $? 显示上条命令的退出状态,0表示没有错误,其他表示有错误