一、SHELL脚本介绍
编译型语言:
计算机只能认识(识别)机器语言(0和1),如(11000000 这种)。但是,我们的程序猿们不能直接去写01这样的代码,所以,要想将程序猿所开发的代码在计算机上运行,就必须找"人"(工具)来==翻译成机器语言==,这个"人"(工具)就是我们常常所说的==编译器==或者==解释器==。
解释型语言:
程序不需要编译,程序在运行时由==解释器==翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Python/JavaScript/ Perl /ruby/==Shell==等都是解释型语言。
编译型语言比解释型语言==速度较快==,但是不如解释型语言==跨平台性好==。如果做底层开发或者大型应用程序或者操作系开发一==般都用编译型语言==;如果是一些服务器脚本及一些辅助的接口,对速度要求不高、对各个平台的==兼容性有要求==的话则一般都用==解释型语言==。
shell简介 :
shell介于内核与用户之间,负责命令的解释
shell就是人机交互的一个桥梁
shell的种类
[root@MissHou ~]# cat /etc/shells /bin/sh 是bash的一个快捷方式 /bin/bash bash是大多数Linux默认的shell,包含的功能几乎可以涵盖shell所有的功能 /sbin/nologin #表示非交互,不能登录操作系统 /bin/dash #小巧,高效,功能相比少一些
/bin/csh #具有C语言风格的一种shell,具有许多特性,但也有一些缺陷 /bin/tcsh #是csh的增强版,完全兼容csh
思考:终端和shell有什么关系?
shell脚本
什么是shell脚本
一句话概括
简单来说就是将需要执行的命令保存到文本中,按照顺序执行。它是解释型的,意味着不需要编译。
准确叙述
若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= shell脚本
什么时候用到脚本?
重复化、复杂化的工作,通过把工作的命令写成脚本,以后仅仅需要执行脚本就能完成这些工作。
shell脚本能干啥?
①自动化软件部署 LAMP/LNMP/Tomcat...
②自动化管理 系统初始化脚本、批量更改主机密码、推送公钥...
③自动化分析处理 统计网站访问量 ④自动化备份 数据库备份、日志转储...
⑤自动化监控脚本
如何学习shell脚本
- 尽可能记忆更多的命令(记忆命令使用功能和场景) 2. 掌握脚本的标准的格式(指定魔法字节、使用标准的执行方式运行脚本) 3. 必须熟悉掌握脚本的基本语法(重点)
shell脚本的基本写法
1)脚本第一行,魔法字符#!指定解释器【必写】 #!/bin/bash 表示以下内容使用bash解释器解析
注意: 如果直接将解释器路径写死在脚本里,可能在某些系统就会存在找不到解释器的兼容性问题,所以可以使 用:#!/bin/env 解释器
2)脚本第二部分,注释(#号)说明,对脚本的基本信息进行描述【可选】
!/bin/env bash
以下内容是对脚本的基本信息的描述
Name: 名字
Desc:描述describe
Path:存放路径
Usage:用法
Update:更新时间
下面就是脚本的具体内容
commands
3)脚本第三部分,脚本要实现的具体代码内容
l脚本的执行方法
标准脚本执行方法(建议)
[root@MissHou shell01]# cat first_shell.sh
!/bin/env bash
以下内容是对脚本的基本信息的描述 Name: first_shell.sh
Desc: num1
Path: /shell01/first_shell.sh
Usage:/shell01/first_shell.sh
echo "hello world"
echo "hello world"
echo "hello world"
脚本增加可执行权限
[root@MissHou shell01]# chmod +x first_shell.sh标准方式执行脚本
[root@MissHou shell01]# pwd /shell01 [root@MissHou shell01]# /shell01/first_shell.sh 或者 [root@MissHou shell01]# ./first_shell.sh
注意:标准执行方式脚本必须要有可执行权限。
非标准的执行方法(不建议)
直接在命令行指定解释器执行
[root@MissHou shell01]# bash first_shell.sh [root@MissHou shell01]# sh first_shell.sh [root@MissHou shell01]# bash -x first_shell.sh + echo 'hello world' hello world + echo 'hello world' hello world + echo 'hello world' hello world
-x:一般用于排错,查看脚本的执行过程 -n:用来查看脚本的语法是否有问题
使用 source 命令读取脚本文件,执行文件里的代码
[root@MissHou shell01]# source first_shell.sh hello world hello world hello world