学习shell的价值:
- Linux服务器的基本操作和管理
- 前端Node.js服务的进程管理、问题排查、资源监控等运维操作
- 使用shell编写TCE、SCM、Docker脚本,完成服务编译和部署
课程准备
- 一台安装了 linux 系统的物理机或者云主机,可运行 shell 脚本
- 本地的 vscode 安装 Bash Debug 插件,并升级 bash 到4.x以上
- Npm 全局安装 zx 依赖
Shell基本概念
概念
Shell是计算机操作系统中的一个命令行解释器(command-line interpreter),它提供了与操作系统进行交互的接口。用户可以通过Shell输入命令,并且Shell会解释和执行这些命令。
1.命令行界面:Shell提供了一个命令行界面,用户可以在其中输入命令。Shell接受命令并将其传递给操作系统进行处理。
2.命令解析器:Shell解析用户输入的命令,分析命令的语法和结构,确定要执行的操作。
3.命令执行:Shell将解析后的命令传递给操作系统执行。它可以执行各种操作,如运行程序、创建和删除文件、管理进程等。
4.环境变量:Shell维护着一组环境变量,这些变量存储了一些系统和用户的配置信息。可以通过Shell来读取、设置和修改环境变量。
5.脚本编程:Shell还可以用于编写脚本,也称为Shell脚本。脚本是包含了一系列Shell命令的文件,可以执行一系列操作。
6.命令补全:Shell通常提供命令补全功能,当用户输入命令或路径时,可以按下Tab键自动补全命令或路径的名称。
命令和语法
运算符和引用
管道
管道(Pipe)是一种特殊的符号|,它用于将一个命令的输出作为另一个命令的输入。通过使用管道,可以将多个命令组合在一起,实现数据的流动和处理。
常用命令
执行过程和原理
调试和前端集成
调试的方法
- 普通log,使用echo、printf
- 使用set命令
- vscode debug插件 | set配置 | 作用 | 补充 | | ----------- | ----------------------------------- | ---------- | | -u | 遇到不存在的变量就会报错,并停止执行。 | -o nounset | | -x | 运行结果之前,先输出执行的那一行命令。 | -o xtrace | | -e | 只要发生错误,就终止执行 | -o errexit | | -o pipefail | 管道符链接的,只要一个子命令失败整个管道命令就失败,脚本就会终止执行。 | |
Vscode插件配置
-
shellman:代码提示和自动补全
-
shellcheck:代码语法校验
-
shell-format:代码格式化
-
Bash Debug:支持单步调试
- 安装vscode插件
- 编写launch.json文件
- 升级bash到4.x以上版本
前端集成
1.node中通过exec、spawn调用shell命令
2.shell脚本中调用node命令
3.借助zx等库进行javascript、shell script的融合
- 借助shell完成系统操作,文件io、内存、磁盘系统状态查看
- 借助nodejs完成应用层能力,网络io、计算等
课程小结
本节课学习了shell的基本概念和一些命令以及shell的执行机制和原理,同时还学习了调试和前端集成。