一、shell脚本基础@H_301_21@
1、第一个脚本@H_301_21@
vimfirst.sh@H_301_21@
./first.sh (需要有可执行的权限)@H_301_21@
shfirst.sh@H_301_21@
. first.sh(或source first.sh)@H_301_21@
@H_301_21@
useraddjerry@H_301_21@
vi pass.txt(在里面输入123456,保存退出)@H_301_21@
注明:将jerry用户的密码设置为123456@H_301_21@
例如:在编译源码包的自动化脚本中,若要忽略make,make install等操作过程的信息,可以将其定向到空文件/dev/null@H_301_21@
先挂载光盘(第一章的“linux安全及高级应用_web网络服务.iso”),将光盘的中的httpd-2.2.17.tar.gz文件解压到/usr/src下,编写脚本安装。@H_301_21@
vim httpd_install.sh@H_301_21@
chmod+x httpd_install.sh(设置可执行权限)@H_301_21@
./ httpd_install.sh (执行脚本,等待结束后,查看结果)@H_301_21@
6)管道符(|)@H_301_21@
先查看以“/bin/bash”结尾的行@H_301_21@
7)管道符(|):提取根分区的磁盘使用率信息@H_301_21@
二、使用shell变量@H_301_21@
1、定义新的变量@H_301_21@
2、变量赋值的特殊操作@H_301_21@
1)双引号使用(”):赋值的内容包含空格时@H_301_21@
2)单引号使用(’):赋值的内容中包含$,‘’,\等具有特殊含义的字符时@H_301_21@
3)反撇号使用(`):用于将某个命令的输出结果赋值给变量@H_301_21@
4)$()来代替反撇号操作,可以解决嵌套的问题@H_301_21@
5)read命令:用来提示用户输入信息,例如:@H_301_21@
3、设置变量的作用范围@H_301_21@
新定义的变量只在当前shell有效,如果想进入新的shell环境同样有效,就需要使用export命令将变量导出为“全局变量”@H_301_21@
exit@H_301_21@
也可以在export导出全局变量的同时,也可以为变量赋值,例如:@H_301_21@
4、数值变量的运算@H_301_21@
加(+),减(-),乘(\*),除(/),求模(%)@H_301_21@
三、特殊的shell变量@H_301_21@
1、环境变量(系统自身就有)@H_301_21@
环境变量系统安装好了就存在,不用创建,可以直接使用,查看一下环境变量@H_301_21@
@H_301_21@
我们可以把脚本直接添加到$PATH搜索路径中去,这样执行脚本的时候就不用加./了@H_301_21@
如:first.sh脚本在/root目录下@H_301_21@
2、位置变量(系统自身就有)@H_301_21@
位置变量也称之为位置参数,使用$1,$2,$3,$4…..$9表示@H_301_21@
3、预定义变量(系统自身就有)@H_301_21@
$#(表示命令行中位置参数的个数)@H_301_21@
$?(表示前一个命令执行后的返回状态,返回值为0表示执行正确,非0表示出现异常)@H_301_21@
如:编写一个备份的小脚本@H_301_21@