计算机硬件不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
什么是Shell ?
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Linux的内核位于计算机的核心。 它使硬件和软件之间的通信成为可能。 内核是操作系统的最内部部分,而外壳是最外部的部分。
Linux操作系统中的shell从终端用户那里获取命令,对其进行处理,然后给出输出。 它是用户用来处理程序,加工命令和脚本的界面。 外壳程由终端直接访问。
当您运行终端时,命令行管理程序会发出命令提示符(通常为$),您可以在其中键入您的输入,然后在按Enter键时执行输入。 此后,输出或结果显示在终端上。
Shell (外壳)包裹住操作系统的精密内部,可以保护其免受意外损坏。 就和贝壳的外壳保护贝壳一样,因此,称其为Shell。以后我们统一称其位shell.
Shell 分类
Linux中有两个主要的shell:
1. Bourne Shell:此Shell的提示符为$,其衍生代码如下:
- POSIX shell 也称为 sh
- Korn Shell 也称为 sh
- Bourne Again SHell 称为 bash(最受欢迎)
2. C shell:此shell的提示符为%,其子类别为:
C Shell也称为csh
Tops C shell也称为tcsh
在本教程中,我们将讨论基于bash shell的shell脚本。
什么是 Shell 脚本?
shell脚本是一种为 shell 编写的脚本程序,该程序有一系列命令供Shell执行的脚本。 它可以将冗长而重复的命令序列组合成一个简单的脚本,该脚本可以随时存储和执行。 这减少了最终用户所需的工作量。Linux 内部的很多应用(有的是应用的一部分)都是使用 Shell 脚本开发的,因为有 1000 多个 Linux 系统命令为它作支撑,特别是 Linux 正则表达式以及三剑客 grep、awk、sed 等命令。
Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
让我们了解创建Shell脚本的步骤:
- 使用vi编辑器(或任何其他编辑器)创建文件, 命名文件带有 .sh后缀
- 用#! 开始脚本#! /bin/sh
- 编写一些代码
- 将脚本文件存为filename.sh
- 要执行脚本,请输入bash filename.sh
#!是一个叫做shebang的运算符,它将脚本定向到解释器位置。 因此,如果我们使用“#!/ bin / sh”,脚本将定向到bourne-shell。
现在,我们创建一个脚本文件scriptexample.sh
#!/bin/sh ls
你的第一个shell脚本文件已经完成了,很容易吧。
Shell脚本的注释行。作为一个程序员,对脚本注释是非常重要的。这是一个团队工作,别人必须知道你干什么,为什么这样干。和别的程序一样,脚本文件的注释用 # 开始,编译器不支持改行。
# this is a explanation of my following line
什么是外壳(Shell)变量?
变量是以字符和数字的形式存储的数据,同样,Shell变量也是用于存储信息,并且只能由Shell进行存储。
定义Shell变量时,变量名不加美元符号($,PHP语言中变量需要),如:
variable="Hello" echo $variable
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头;
- 中间不能有空格,可以使用下划线(_);
- 不能使用标点符号;
- 不能使用bash里的关键字(可用help命令查看保留关键字)
下面是个小脚本:
#!/bin/sh echo "what is your name?" read name echo "How do you do, $name?" read remark echo "I am $remark too!"
你可以看到,系统自动选择Rowen作为name,和 good 作为 remark.
这也可以看成简单的人机对话程序。
摘要:
- 内核是操作系统的核心,它在硬件和软件之间进行通信
- Shell是一个应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务
- Bourne Shell和C Shell是Linux中最常用的Shell
- shell脚本是一种为 shell 编写的脚本程序,该程序有一系列命令供Shell执行的脚本
- Shell变量存储字符串或数字的值以供Shell读取
- Shell脚本可以帮助您创建一些复杂程序,这些程序可以包含条件声明,循环语句和函数。