shell编程
shell是命令解释器,也可以编程,包含J过程诺言的诸多特性。常用的shell见下表
- ash, 由Kenneth Almquist编写,是linux中占用资源最少的一种shell, 它只包含24个内部命令,因而使用起来很不方便
- bash, 是Iinux的默认shell, 由Brian F ox和Chet Ramey共同完成,是Bourne Again Shell的缩写,内部命令- 共有40个,具有以下特点
a)可以使用类似dos下面的doskey功能, 用方向键查阅和快速输入并修改命令
b)自动通过查找匹配的方式给出以某字符串开头的命令
c)包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助 - ksh, 由Eric Gisim编写,是Korn Shell的缩写。共有42条内部命令。最大的优点是几乎和商业发行版的ksh完全兼容
- csh,由以William Joy为代表的47位作者编写,共有52个内部命令。该shell其实指向/bin/tcsh这 个shel,也就是说:csh其实就是tcsh
- zch, 由Pua1 Falstad完成, 共有84个内部命令。如果只是一 般用途,没必要安装这种shell
shell编程类似dos中的批处理文件,又叫shell script, shell程序
输入输出重定向
在Linux中,每个进程都有3个文件描述指针可供使用:
1标准输入,文件描述指针为0
2.标准输出,文件描述指针为1
3.标准错误输出,文件描述指针为2
这3个指针使进程可以接收标准输入终端的输入,同时由标准输出终端来显示。linux中也提供 了输入输出重定向来取
代这些标准输入输出设备。在shel1中, 可以使用>,<,等来进行重定向
前台和后台
shel中的环境变量
hell在开始执行时就已经定义了一些和系统的工作环境相关的变量, 用户可读可修写。常见的有
HOME :用来保存注册目录的完成路径名
PATH :用于保存用冒号分隔的目录路径,shell将按此给出的顺序搜索这些目录,查找可执行文件来执行
TERM :终端类型
UID :当前用户的标识,是一串数字
PWD :当前工作目录的绝对路径,该变量的值随cd命令的使用而变化
PS1 :主提示符,在特权用户下,默认的主提示符为# ;普通用户下,默认的主提示符为$
PS2 :辅助提示符,在用户输入命令过程中,如果用户有行尾输入然后回车,或者直接按回车,shel1判断用户的命
令还没有结束,显示这个提示符,提示用户继续输入命令的其余部分,默认的辅助提示符是>
shell中的变量
1)临时变量: sl程序内部定义,包括用户自定义变量和位置变量
2)永久交量:即环境变量,值不随解本的执行结束而消失(如SPATH. SLANG, SHE SPS1, SHOME)变量命名:字母,数字或下划线组成,不能以数字开头,读取变量时加S.
如果值中有空格,
需要使用引号,单引号不解析其中的变量,照样显示;
双引号会把变量解析出来.
export
在命合行中设置的交量是当的局部变量,epr后变为环境变量(0cooce命令执行但仅限于当前会话,如需要每次会话能访问,则需要加在-/ bashr或-/.ah pofle中
shell中其它的预定义临时变量
简单的shell
单引号和双引号的区别
执行shell
1.给该用户赋予shell的执行权限
2.sh ./xxx.sh
键盘上输入-read
算数运算
测试语句