很多时候,我们使用Linux时常常能看见运行.sh文件的命令:sh XXX.sh,那么和我一样的新手可能会疑惑,什么是shell?什么是.sh文件?
1. 什么是shell
这个问题shell的百度百科做出了很好的解释,shell本身是一个用C语言编写的命令行解释器,它作为用户使和Linux内核之间的桥梁,可以解释和执行用户输入的命令。我们在Linux的shell里输入命令,它就能和Linux内核打交道以响应该命令。
2. 什么是.sh文件
.sh文件通常指shell脚本文件(shell script),它是许多命令汇整写成的一个文件,运行它可以一次性执行多个命令。也就是说,我们想执行一个命令直接在命令行中输入就可以,想执行多条命令就可以写一个脚本文件然后运行,这个道理和MATLAB的M文件是一样的。什么是Shell?Shell脚本基础知识详细介绍中说到 “Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。”
我们经常能在网上看到shell工程师的招聘信息,可以看到编写shell脚本已经成为了一个职业,即使是写命令行也有很大学问。
值得注意的是,.sh是扩展名,就是起一个见名知意的作用,所以也可以起其他的扩展名,扩展名并不影响脚本执行。
3. 什么是bash
bash是shell的一种,bash是Linux系统默认使用的shell。前面已经说过了,shell就是一个命令行解释器,那么用户想要以不同的方式与Linux内核交互,就可以采用不同的shell,例如除bash外还有zsh、csh等等。