一、shell
1、什么是shell:一个作为用户和Linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令。
2、Linux安装的标准shell:GNU工具集中的bash。
3、常用shell(P18 表2-1)
4、作为程序设计语言的shell。
二、管道和重定向
1、重定向输出
1)、>:把标准输出重定向一个文件中。
2)、》:将输出内容附加到一个文件中。
3)、对标准错误重定向,需要把重定向文件描述符编号加到>操作符前面。(2>)
2、重定向输入(<)
3、管道
1)、|:用其来链接进程。
注意:如果你有一系列命令需要执行,相应的输出文件是在这一组命令被创建的同时立刻被创建或写入的,所以绝不要在命令流中重复使用相同的文件名。
三、shell的语法
1、变量
1)、在shell中通过在变量名前加一个$符号来访问它的内容。
2)、引号
I、一般情况下,脚本文件中的参数以空白字符分隔,如果你想在一个参数中包含一个或多个空白字符,就必须给它加上引号。
II、把$变量表达式放在双引号中,程序执行到这一行时就会把变量替换为它的值。
III、把$变量表达式放在单引号中,程序执行到这一行时不会发生替换。
VI、可以在$字符加上一个、字符以取消他的特殊含义。
3)、环境变量(P25 表2-2)
4)、参数变量(P26 表2-3)
I、如果脚本程序在调用时带有参数,一些额外的变量就会被创建。即使没有传递任何参数,环境变量$#依然存在,只不过值是0。
2、条件(text或[)
1)、字符串比较(P28 表2-3)
2)、算数比较(P28 表2-4)
3)、文件条件测试(P28 表2-5)
3、控制结构
1)、if语句
if condition
then
statements
else
statements
fi
2)、elif语句
if condition
then
statements
elif condition
. . .
else
statements
fi3)、for语句
for variable in values
do
statements
done
4)、while语句
while conditions do
statements
done
5)、until语句
until condition
do
statements
done
6)、case语句
case variable in
pattern [ | pattern ] ...) statements;;
pattern [ | pattern ] ...) statements;;
......
esac
7)、命令列表
I、AND列表
statements1 && statements2 && statements3 && . . . .
II、OR列表
statements1 || statements2 || statements3 || . . . .
III、[ -f file_one ] && command for true || command for false
8)、语句块(用花括号{}来构造一个语句块)
4、函数
function_name(){
statements
}
5、命令
1)、break命令(条件未满足之前,跳出for、while或until循环,也可以为break命令提供一个额外的数值来表明需要跳出的循环层数)
2)、:命令(冒号命令是一个空命令,它偶尔会被用于简化逻辑,相当于true的一个别名,此外冒号命令也用于注释)
3)、continue命令(使for、while或until循环跳到下一次循环继续执行)
4)、.命令(点命令用于在当前shell中执行命令)
5)、echo命令(使用恶臭命令来输出结尾带有换行符的字符串)
6)、eval命令(允许你对参数进行求值,通常不会以单个命令的形式存在)
7)、exec命令(将当前shell替换为一个不同的程序,修改当前文件描述符)
8)、exit n命令(使脚本语言以退出码n结束运行,退出码n(P46 表2-7))
9)、export命令(将作为他的参数的变量导入到子shell中,并使之在子shell中有效)
10)、expr命令(将参数当作表达式来求值,求值计算(P48 表2-8))
11)、printf命令(转义序列(P48 表2-9),字符转换限定符(P48 表2-10))
12)、return命令(使函数返回,如果没有指定参数,默认返回最后一条命令额退出码)
13)、set命令(为shell设置参数变量)
14)、shift命令(把所有的参数变量左移一个位置)
15)、trap命令(用于指定在接受到信号后将要采取的行动,信号(P50 表2-11))
16)、unset命令(从环境中删除变量或函数)
17)、正向表达式和另外两个有用的命令
I、另外两个有用的命令
A)、find命令
B)、grep命令
II、正侧表达式
A)、特殊字符(P56 表2-17)
B)、匹配模式(P56 表2-18)
C)、选项(P57 表2-19)
6、命令的执行
1)、算数扩展($((....)))
2)、参数扩展((P60 表2-20))
7、here文档
1)、允许一条命令在获得输入数据时就好像在读取一个文件或键盘一样,而实际上是从脚本语言中等到数据。
8、调试脚本程序(P63 表2-21)
四、dialog工具
1、对话框主要类型(P64 表2-22)
2、参数(P64 表2-23)