Shell 脚本和编程:
Date: April 17, 2023
学习shell 的价值:
- Linux 服务器的基本操作和管理
- 前端 Node. js 服务的进程管理、问题排查、资源监控等运维操作
- 使用 shell 编写 TCE、SCM、Docker 脚本,完成服务编译和部署
Shell 基础概念
解释器:
bash内置命令:[ echo let read … man builtin
GNU核心工具集:ls mv cat 等 type mv ⇒ /bin/mv
第三方库:node、python 等封装等模块
编程语言:
变量:自定义变量、环境变量、系统环境变量
运算:逻辑运算符、算数运算符
语句:判断、分支、循环
命令与语法
1 .diff:
含义:用来比较两个文件的不同
2.patch
含义: 用来打补丁
3.cut
含义: 多用于字符截取
4.sort
常用参数:
-n :纯数字排序number
-r :倒序排序
-u :去掉重复数字
5.uniq
含义: 对重复字符做相应处理
...
执行过程和原理
shell脚本一般以.sh结尾
第一行需要指定用什么命令解释器来执行:
#! /bin/bash
#! /usr/bin/env bash
启动方式:
# 文件名运行
./filename.sh
# 解释器运行
bash ./filename.sh
# source 运行
source ./filename.sh
调试和前端集成
- shellman:代码提示和自动补全
- shellcheck: 代码语法校验
- shell-ormat:2代码格式化
- Bash Debug:支持单步调试 一 安装 vscode 插件 一编写 launch. json文件 一升级bash到4.x以上版本
VSCode配置:
1.安装最新版本 bash
brew install bash
- 查看安装路径
which -a bash
- 将新版本 bash 路径加入 PATH
PATH="/usr /local/bin/bash: $PATH'
#4. 配置 vscode launch. json 启动文件
{
"version": "0.2.0",
"configurations": [
{
"type": "bashdb",
"request": "launch"
"name": "Bash-Debug (simplest configuration)",
"cwd": "${workspaceFolder}",
"program": "debug.sh"
}
]
}
前端集成:
-
node中通过 exec、spawn 调用shell 命令
-
shell 脚本中调用node 命令
-
借助zx 等库进行 javascript、shell script 的融合
一借助shell 完成系统操作,文件io、内存、磁盘系统状态查
一借助 nodejs 完成应用层能力,网络io、计算等