1,什么是shell
在Linux内核与用户之间的解释器程序
通常指 /bin/bash
负责向内核翻译及传达用户/程序指令
相当于操作系统的“外壳”
2,Shell的使用方式
交互式 —— 命令行
人工干预、智能化程度高
逐条解释执行、效率低
非交互式 —— 脚本
需要提前设计、智能化难度大
批量执行、效率高
方便在后台静悄悄地运行
3,什么是Shell脚本?
提前写好可执行语句,能够完成特定任务的文件
顺序、批量化处理
[root@svr7 ~]# cat /etc/shells //查看所有解释器
[root@svr7 ~]# sh //切换成sh解释器
sh-4.2# ls //利用sh解释器输入命令
sh-4.2#exit //退出sh解释器
[root@svr7 ~]#yum -y install ksh //安装新解释器
[root@svr7 ~]#ksh //进入新解释器
-------------------------------------------------------------------------------------------
Bash优点,支持tab键、快捷键、别名、历史命令、管道、重定向
------------------------------------------------------------
二,脚本的编写与执行
编写脚本的规范:
1, 声明解释器
#!/bin/bash
2, 注释
#注释的内容可以是脚本功能描述、作者介绍等信息
3, 执行指令
脚本的执行方式:
1, 添加x权限 使用绝对或者相对路径执行
chmod +x test01.sh
2,使用解释器执行脚本,无需x权限,会开启子进程
bash test01.sh
bash---bash echo abc mkdir xyz cd xyz //该方式会在bash父进程中开启一个bash子进程,然后由子进程执行任务命令
将之前脚本修改为:
#!/bin/bash
echo abc
mkdir xyz
cd xyz
//使用bash执行看不到进入xyz目录的效果,因为bash开启了子进程
执行完毕后退出了,父进程并没有进入xyz目录,而使用source执行脚
本可以看到进入xyz目录,因为没有开启子进程,而是父进程亲自进入
该目录
3,使用source命令执行脚本,无需x权限,不会开启子进程
source test01.sh
bash echo abc mkdir xyz cd xyz //该方式由父进程亲自执行任务命令