一、SHELL介绍
1. 编程语言分类
编译型语言:
程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言文件,运行时不需要重新翻译,直接重新编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些,如C、C++。
解释型语言:
程序不需要编译,程序在运行时由解释器翻译成机器语言,每执行一次都要翻译一次。因此效率比较低,比如Python、JavaScript、Perl、ruby、Shell等都是解释型语言。
总结:
编译型语言比解释型语言速度较快,但是不如解释型语言跨平台性好。如果做底层开发或者大型应用程序或者操作系统开发一般都用编译型语言;
如果是一些服务器脚本及一些辅助的接口,对速度要求不高、对各个平台的兼容性有要求的话则一般用解释型语言。
2. shell简介
shell介于内核和用户之间,负责命令的解释
- shell就是人机交互的一个桥梁
shell的分类:
| - | - |
|---|---|
| /bin/sh | 是bash的一个快捷方式 |
| /bin/bash | bash是绝大多数Linux默认的shell,包含的功能几乎可以涵盖shell所有的功能 |
| /sbin/nologin | 表示非交互,不能登录操作系统 |
| /bin/dash | 小巧,高效,功能相对少一些 |
3. shell脚本
3.1 什么是shell脚本?
- 一句话概述
简单来说就是需要执行的命令保存到文本中,按照顺序执行。它是解释型的,意味着不需要编译。 - 准确叙述
若干命令+脚本的基本格式+脚本特定语法+思想 = shell脚本
3.2 什么时候用到脚本?
重复化、复杂化的工作,通过把工作的命令写成脚本,以后仅需要执行脚本就能完成这些工作。
3.3 shell脚本能干啥?
- 自动化软件部署:LAMP、LNMP、Tomcat…
- 自动化管理:系统初始化脚本、批量更改主机密码、推送公钥…
- 自动化分析处理:统计网站访问量
- 自动化备份:数据库备份、日志转储…
- 自动化监控脚本
4. 如何学习shell脚本?
- 尽可能记忆更多的命令
- 掌握脚本的标准格式(指定魔法字节、使用标准的执行方式运行脚本)
- 必须熟悉掌握脚本的基本语法(重点)
5. shell脚本的基本写法
1)脚本第一行,魔法字符#!指定解释器【必写】#! /bin/bash表示以下内容使用bash解释器解析
2)脚本第二部分,注释说明,对脚本的基本信息进行描述【可选】
3)脚本第三部分,脚本要实现的具体代码内容
6. shell脚本的执行方法
-
标准脚本执行方法(建议)
注意:标注执行方式脚本必须要有可执行权限。 -
非标准的执行方法(不建议)
- 直接在命令行指定解释器执行
- 使用
source命令读取脚本文件,执行文件里的代码