【Shell编程001】在线预热课,Shell是啥?

Scroll Down

Shell是什么

在前文《Linux命令与Shell》中,我们已经知道,我们在Linux下使用各种Linux命令的命令行界面就是Shell,Shell就是一个系统内核外覆盖的“壳”。

Shell的作用就是“桥梁”,根据我们输入的命令找到对应的程序(在/usr/bin、/usr/sbin中),调用各种系统内核暴露的API,然后反馈结果给用户。

Shell还是一个程序,Shell是一个用C语言编写的程序。

Shell又是一种脚本语言,可以让用户自由编写调用各种Linux命令的脚本。

Shell有很多种,如sh、zsh、ksh、csh等等,在CentOS中,用户默认Shell是bash。

我们通常说的 Shell 是指Shell脚本,即Shell Script,是一种“为了使用Shell而编写的脚本程序”。它的文件后缀为“.sh”,跟“.bat”(Windows批处理程序)、“.js”(HTML使用的JavaScript脚本)、“.py”(跨平台的Python脚本)等都没有什么本质区别,无非是不同环境下的可执行文件。

记住一个概念:所有程序无非是命令和流程控制的组合。而脚本,则是无需复杂编译即可直接运行的一段程序。

2. Shell编程能做什么?有什么优势?

(1)命令合集。Shell编程可以将我们常用的命令固化,将很多步骤做的事合为一个脚本来做。一是可以减轻我们大量的重复性工作;二是可以做一些无人值守工作。

(2)部署便捷。可以写部署脚本,常用来作为我们程序部署时的启动、停止开关。

(3)轻量、方便。无需笨重的IDE和编译器,作为一个脚本语言,Shell在Linux中有着天然的执行环境,

(4)学习成本非常低。只要知道基本语法和一些Linux命令就可以写一个Shell脚本。

3. 了解shell对开发/运维/测试等IT从业者有什么好处?

(1)轻松胜任部署工作。

(2)熟悉Linux命令及其工作机制。

(3)排查线上问题很方便。

(4)扩宽解决问题的思路与解决方案。

注意

在Windows下也可以使用Shell,例如cmd、Power Shell,但如果想使用POSIX标准下的grep、wget、curl等工具,需要安装cygwin、mingw等工具来模拟Linux环境,gitbash也可以模拟半个Linux环境,或者Win10系统下可以安装WSL(Windows Subsystem for Linux)。