shell是什么?shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序界面系统级程序
#scho $SHELL
$SHELL 是一个环境变量,它记录用户所有的shell类型
#shell-name这里是你想要尝试的shell的名称
目前流行的shell有ash,bash,ksh,csh,zsh
ash是占用系统资源最少的一个小shell,它只包含24个内部命令,不太方便使用
bash是Linux系统默认的shell,有40个内部命令
ksh有42条命令,最大优点是几乎和商业发行版的ksh完全兼容
csh是Linux比较大的内核,有52个内部命令。该shell其实是指向/bin/tcsh这样的一个shell
zch是Linux最大的shell之一,有84个内部命令
shell程序设计的流程控制
if条件语句:
if条件命令串
then 条件为真时的命令串
else 条件为假时的命令串
fi
for循环:
for变量名
【in数值列表】
do执行语句
done
while和until循环:
while 若干命令
do 若干命令
done
until 若干命令
do 若干命令
done
case条件选择:
case string in
exp-1)若干命令行1
;;
exp-2)若干命令行2
;;
... ...
*)
其他命令行
esac
运行shell程序的方法
用户可以用任何编辑程序来编写shell程序,因为shell程序是解释执行的,所以不需要编译装配成目标程序。按照shell编程的惯例,以bash为例,程序第一行一般为#!/bin/bash,其中#表示该行是注释,符号!告诉shell运行!之后的命令并用文件的其余部分作为输入,也就是运行/bin/bash并让其去执行shell里面的内容
bash程序调试
bash -选择项 shell 程序文件名
-e:如果一个命令失败就立即退出
-n:读入命令但不执行他们
-u:置换时把未设置的变量看作出错
-v:当读入shell输入行时把他们显示出来
-x:执行命令时把命令和他们的参数显示出来