1、什么是脚本
是一个包含一些列命令序列的文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到自动执行。
基本结构:#!指明后面用什么解析器来执行。
由解析器和命令组成
变量:shell脚本允许用户设置和实用自己的变量,变量可以使数字或字符串,用户无需指定其类型,也无需在使用前定义。
注意:在赋值号的左边和右边不用空格号,#表示注释
将doc格式的脚本转换为Linux格式下才能运行,要用dos2unix +文件名.sh命令来转换,在本光盘下的dos2unix-3.1-37.el6.i686.rpm
2.3 参数
同c程序一样,shell脚本中也可以使用命令行参数
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
运行之:
2.4数学计算
shell脚本提供了一个专门的命令expr来计算数学表达式,例如expr 5+1,但是当要把计算的结果赋值给其他变量的时候,还必须使用反引号。var=’expr 20/10‘
2.5.1 if语句
shell脚本最基本的流程控制语句if-then格式:
if [ condition ](特别提醒:方括号左右两边必须有空格,eg:if [ 5 -gt 4 ])
then
commands
else
commands
fi
条件比较
比较操作 整数操作 字符串操作
相同 -eq =
不同 -ne !=
大于 -gt >
小于 -lt <
大于等于 -ge
小于等于 -le
为空 -z
不为空 -n
2.5.2 for 语句
shell脚本提供了for命令,用于创建类似于C语言编程中for语句一样的循环。使用格式:
for var in list(注意var会取list里面的每一项)
do
commands
done
2.5.3 while语句
shell脚本提供了while命令,用于创建类似于C语言编程中while语句一样的循环。使用格式:
while condition
do
commands
done
2.6 sed编辑器
sed(stream editor):流式编辑器又名行编辑器,每次只编辑一行,使用格式如下:
sed [操作选项] ‘命令’ 文件名
常用操作选项:
-n:指定处理后只显示改行
-e:进行多项编辑任务
-i:直接修改读取的文件内容,而不是由屏蔽输出
常用命令选项:
p 打印匹配行
a 新增
c 替代一行
d 删除定位行
s 替代一行中的某些部分
3、awk分析器
它是一个强大的文本分析工具,它把文件逐行的读入,以空格为默认分隔符将每行分割为多个字段
使用方式:
last -n 5表示最近5次登录系统的用户。$1表示第一个字段,默认以空格号为分隔符,-F用于指定分隔符
打印第一列等于root的那一行的信息
Qcd分析
,关闭终端,重新打开,主要是使环境变量生效。它主要是帮助我们去记忆我们经常要用到的一些目录。
保存当前目录。
然后使用qcd -l 把记录的目录列出来
-e
表示进入到第一个目录。