Shell脚本和编程 | 青训营笔记

139 阅读3分钟

学习shell的价值:

  1. Linux服务器的基本操作和管理
  2. 前端Node.js服务的进程管理、问题排查、资源监控等运维操作
  3. 使用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键自动补全命令或路径的名称。

image.png

命令和语法

image.png

运算符和引用

image.png

管道

管道(Pipe)是一种特殊的符号|,它用于将一个命令的输出作为另一个命令的输入。通过使用管道,可以将多个命令组合在一起,实现数据的流动和处理。

常用命令

image.png

执行过程和原理

image.png

调试和前端集成

调试的方法

  1. 普通log,使用echo、printf
  2. 使用set命令
  3. vscode debug插件 | set配置 | 作用 | 补充 | | ----------- | ----------------------------------- | ---------- | | -u | 遇到不存在的变量就会报错,并停止执行。 | -o nounset | | -x | 运行结果之前,先输出执行的那一行命令。 | -o xtrace | | -e | 只要发生错误,就终止执行 | -o errexit | | -o pipefail | 管道符链接的,只要一个子命令失败整个管道命令就失败,脚本就会终止执行。 | |

Vscode插件配置

  1. shellman:代码提示和自动补全

  2. shellcheck:代码语法校验

  3. shell-format:代码格式化

  4. 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、计算等

课程小结

image.png 本节课学习了shell的基本概念和一些命令以及shell的执行机制和原理,同时还学习了调试和前端集成。