前言
经常听到 “Shell脚本”、“Shell编程”、“Bash命令”,那么什么是 Shell 呢?Shell 和 Bash 有什么关系呢?我们一起来学习下吧!
Shell 是什么
Shell
是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以使用Shell来启动、挂起、停止甚至编写一些程序。更简单的来说,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。
Shell还是一个功能相当强大的编程语言,易于编写和调试,灵活性较强。它支持变量、条件判断、循环操作等语法,所以用户可以用 Shell 命令写出各种小程序,又称为脚本(script)。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux命令
。
Shell的分类
Shell 有很多种,只要能给用户提供命令行环境的程序,都可以看作是 Shell。
- Bourne Shell(sh)
- Bourne Again shell(Bash)
- C Shell(csh)
- TENEX C Shell(tcsh)
- Korn shell(ksh)
- Z Shell(zsh)
- Friendly Interactive Shell(fish)
Bash 与 sh 兼容,现在使用的大部分 Linux 就是使用 Bash
作为用户的 Shell,即用户登录后的默认 Shell 就是 Bash
。因此,我们可以把 Bash 与 Shell 看作同义词。
查看支持的Shell
可以通过查看 /etc/shells
文件,查看当前Linux支持的 Shell 种类。
|
|
可以通过执行命令,切换到Linux支持的其他 shell 中,输入 exit 可以退出。
|
|
执行 echo $SHELL
命令,可以查看当前的Shell。
|
|
编写第一个Shell脚本
虽然Linux不区分文件后缀名,但是我们在编写脚本的时候,习惯将文件后缀名设置为 .sh
,这样使用某些编辑器打开时,会有颜色提示,方便编写脚本。
- 编写Shell脚本
|
|
脚本文件中,第一行
#!/bin/bash
中的#!
用来指定使用哪一种Shell
,这是一种标准,不可省略;除了第一行的
#!
之外,在脚本文件中,以 “#” 开头的均表示注释
,比如我在第二行使用注释说明了脚本文件的作者;第三行调用了Shell命令 echo ,用于打印出 “hello world” 字符串
- 执行脚本
有两种方式可以运行脚本:
- 添加可执行权限,直接运行
Linux中新建的文件默认是没有可执行权限的,因此如果我们想执行这个脚本,就需要给它添加可执行权限。权限操作我们在之前的文章中已经学习过了,如果忘记的小伙伴可以去复习下。
|
|
注意,如果使用这种方式在Linux中执行脚本,必须使用绝对路径或者相对路径来指定文件
。
|
|
- 使用解释器执行
|
|
使用这种方式执行,不需要在脚本第一行指定解释器信息,即不需要写 #!/bin/bash
,因为你已经执行了解释器;同时也不需要添加可执行权限。
虽然第二种方式看起来比较简单,但是平时使用最多的还是第一种方式,不推荐第二种方式。
总结
本文介绍了 Shell 的基础知识,解释了 Bash 与 Shell 的关系,并编写了一个简单的Shell脚本,之后我们就可以开始学习Bash了。
更多
微信公众号:CodePlayer