1.什么是shell?
- Shell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口
- 当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作
- 系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上
2.什么是shell脚本?
- 简单的说,当命令或者程序不在命令行执行,而是通过一个程序文件来执行,这个程序就被称为shell脚本
- 也就是在shell脚本里内置了多条命令,语句,循环控制,然后将这些命令一次性执行完毕,这种通过文件执行命令的方式称为
非交互式
3.为什么使用shell脚本?
- 适合处理操作系统底层的业务,有众多系统命令为其做支撑(还有文本处理三兄弟grep,sed,awk)
- 适合处理纯文本文件,linux中许多服务配置文件,启动脚本,都是纯文本(httpd,nfs,mysql,nginx,lvs)
- linux系统脚本用shell开发更简单
那么如何查看系统的默认shell呢
方法1
echo $SHELL
方法2
grep root /etc/passwd ##如下图,如果想要查询其他用户,只需要更换关键字即可
4.shell脚本的建立
#!/bin/bash ## /bin/bash指定解释器:由哪个程序来执行脚本内,#!表示幻数容。
echo "Hello world" ##注意:#!/bin/bash必须写在第一行,否则会被认为是注释。
试着运行一下这个脚本
5.脚本的执行过程
- 先加载系统环境变量,怎么查看系统环境变量:env
- 一条一条命令执行,遇到子脚本,先执行子脚本,然后返回父脚本继续执行
例如上图为系统环境变量
6.脚本的执行方法
1.sh script.sh | bash script.sh ##没有执行权限时
2.path/script.sh | ./script.sh ##绝对路径,当前目录下,需要文件具备可执行权限,chmod +x
3.source script.sh | . script.sh ##这种方式会使用source或.号来读如指定shell文件,并会把其他shell中的变量值或函数返回给父shell继续使用
7.脚本开发规范
- 注释:可以命令后,也可以自成一行
- 脚本信息:
- 脚本名:最好以.sh结尾
例如
#!/bin/bash
#Date:2018-12-14
#Author:westos-wsp
#Connect:wsp439@sina.com
#Desc:This script is for...
#Version:1.0
这里就是程序代码了
8.查看所有的shell类型
cat /etc/shells
ok~