shell脚本系列:1、shell、bash和shell脚本
文章目录
1. 前言
如果要更多的学习和了解类Unix系统,则需要对shell有学习,如果要对Windows有更多的学习和了解,则需要学习bat和powershell,当然,我们不必把这当成一种负担,如果你的工作非常需要可以详细了解学习,这是你的本职,如果你感兴趣的话也可以研究一下,不感兴趣也不是非常需要的话在实际应用中通过查找资料可以搞定即可。
2. shell、Bash、shell script简介
如果你直接搜索shell,你会发现一个壳(qiao)牌石油公司,我在大学学化学的时候倒是对壳牌挺了解的,但是我们要了解的shell也不是这个公司,而是shell这个软件,所以在搜索时可以搜索Unix shell或者Linux shell。
2.1 shell
Unix shell,一种壳层与命令行界面,是UNIX操作系统下传统的用户和计算机的交互界面。第一个用户直接输入命令来执行各种各样的任务。
普通意义上的shell就是可以接受用户输入命令的程序。它之所以被称作shell是因为它隐藏了操作系统低层的细节。同样的Unix下的图形用户界面GNOME和KDE,有时也被叫做“虚拟shell”或“图形shell”。
Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。当然在这点也有别于Windows下的命令行,虽然也提供了很简单的控制语句。在Windows操作系统下,可能有些用户从来都不会直接的使用shell,然而在Unix系列操作系统下,shell仍然是控制系统启动、X Window启动和很多其他实用工具的脚本解释程序。
2.2 Bash
Bash 是 GNU 项目的外壳——Bourne Again SHell。这是一个与 sh 兼容的 shell,它结合了 Korn shell (ksh) 和 C shell (csh) 的有用功能。它旨在符合 IEEE POSIX P1003.2/ISO 9945.2 外壳和工具标准。它为编程和交互使用提供了对 sh 的功能改进。此外,大多数 sh 脚本无需修改即可由 Bash 运行。
2.3 shll script
外壳脚本(英语:Shell script),又称Shell脚本、Shell命令稿、程序化脚本,是一种电脑程序使用的文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作。被当成是一种脚本语言来设计,其运作方式与解释型语言相当,由Unix shell扮演命令行解释器的角色,在读取shell脚本之后,依序运行其中的shell命令,之后输出结果。利用shell脚本可以进行系统管理,文件操作等。
在Unix及所有的类Unix系统中,如Linux、FreeBSD等操作系统,都存在shell脚本。依照Unix shell的各种不同类型,shell脚本也有各种不同方言。在DOS、OS/2、Microsoft Windows中的批处理文件,跟shell脚本有类似的功能。
想了解更多shell、bash的内容也可以在接下来给到的bash参考手册中详细查看。
3. 相关资料
由于我们主要是使用GUN/Linux,所以主要也是接触Bash和Bash脚本。
gun/bash:https://www.gnu.org/software/bash/
bash主页:https://tiswww.case.edu/php/chet/bash/bashtop.html
bash参考手册:https://tiswww.case.edu/php/chet/bash/bashref.html
接下来我将按照Bash参考手册和我工作上可能常用的内容做总结,有需要的同学可以在官网获取一手资料,也可以根据我的划分方式来了解Bash的基础用法,当对脚本和系统有一定程度的了解后也许也可以成为一个脚本小子_。
4. 专有名词定义
这些定义将贯穿本手册的其余部分。
5. shell基础特性
Bash是“Bourne-Again SHell”的首字母缩写。Bourne shell是由Stephen Bourne最初编写的传统Unix shell。所有Bourne shell内建命令都可以在Bash中使用,求值规则和引用来自于“标准”Unix shell的POSIX规范。
本章简要总结了shell的“构建块”:命令、控制结构、shell函数、shell参数、shell扩展、重定向(一种从命名文件和到命名文件的输入和输出的直接方式),以及shell如何执行命令。
• Shell Syntax | 你的输入对shell意味着什么。 | |
• Shell Commands | 您可以使用的命令类型。 | |
按名称分组命令。 | ||
shell如何存储值。 | ||
Bash如何扩展参数和可用的各种扩展。 | ||
• Redirections | 一种控制输入和输出方向的方法。 | |
运行命令时会发生什么。 | ||
• Shell Scripts | 执行shell命令的文件。 |
ok,接下来我们根据上面的特性做总结,实际上我们基础了解上面的特性后使用shell也是够用了,在一些特殊场景可能也有一些高级的工具会扩展shell,比如’'shell三剑客",当然,这些都根据实际情况来了解学习以及总结即可,大可不必死记硬背。
接下里的内容建议打开Linux发行版或者mac终端的shell,根据学习的内容在shell上进行实践,了解基础的使用和语法,最终学完所有特性后可以写出来一个比较规范和完整的shell脚本即可,你会发现shell是很有意思的并且对你后续的使用和维护unix及类unix系统都很有帮助。