学习 shell 的价值
- Linux 服务器的基本操作和管理
- 前端 Node.js 服务的进程管理、问题排查、资源监控等运维操作
- 使用 shell 编写 TCE、SCM、Docker 脚本,完成服务编译和部署
课程准备
- 一台安装了 Linux 系统的物理机或者云主机,可运行shell脚本
- 本地的 vscode 安装 Bash Debug 插件,并升级 bash 到 4.x 以上
- Npm 全局安装 zx 依赖
Shell 基础概念
Shell 概念
Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制
Shell 也是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核
Shell 构成
shell 是一个命令解释器也是一种编程语言
变量
- 变量名:使用固定的名称,由系统预设或用户定义
- 变量值:能够根据用户设置、系统环境的变化而变化
- 特殊变量: 环境变量,只读变量,位置变量,预定义变量
自定义变量
格式:变量名=变量值
[root@localhost ~]#abc=123
查看变量的值
格式:echo $变量名
[root@localhost ~]#echo $abc
运算符&引用
管道
管道与管道符 |,作用是将前一个命令的结果传递给后面的命名
语法: cmd1 | cmd2
重定向
输入重定向就是改变输入的方向,不再使用键盘作为命令输入的来源,而是使用文件作为命令的输入
判断命令
shell 中提供了 test、[、[[ 三种判断符号可用于:
- 整数测试
- 字符串测试
- 文件测试
语法
- test condition
- [ condition ]
- [[ condition ]]
shell 执行与原理
- 文件后缀是.sh
- 脚本文件首行是而且必须是脚本解释器
-
#!/bin/bash
前端集成
- node中通过 exec、spawn 调用 shell 命令
- shell 脚本中调用 node 命令
- 借助 zx 等库进行 javascript、shell script 的融合