Shell脚本和编程
学习shell 的价值:
- Linux服务器的基本操作和管理
2.前端Node.js 服务的进程管理、问题排查、资源监控等运维操作
3.使用shell 编写TCE、SCM、Docker 脚本,完成服务编译和部署
01 Shell基础概念
(1)构成
02命令和语法
(1)管道
管道与管道符│,作用是将前一个命令的结果传递给后面的命令
语法:cmd1 | cmd2
要求:管道右侧的命令必须能接受标准输入才行,比如grep命令, ls、mv等不能直接使用,可以使用xargs预处理
注意:管道命令仅仅处理 stdout,对于stderr 会予以忽略,可以使用set -o pipefail设置shell遇到管道错误退出
(2)重定向
输出重定向符号
>︰覆盖写入文件
>>︰追加写入文件
2>︰错误输出写入文件
&>:正确和错误输出统—写入到文件中
输入重定向符号
<
<<
03执行过程和原理
(1)Shell展开
1. 大括号展开(Brace Expansion) {...}
2. 波浪号展开(Tilde Expansion) ~
3. 参数展开(Shell Parameter Expansion)
4. 命令替换(Command Substitution)
5. 数学计算(Arithmetic Expansion) $((..))
6. 文件名展开(Filename Expansion) * ?[..]外壳文件名模式匹配
04调试和前端集成
(1)调试
1.普通log,使用echo、printf
2.使用set命令
3.vscode debug插件
(2)VSCode配置
1. shellman:代码提示和自动补全
2. shellcheck:代码语法校验
3. shell一format:代码格式化
4. Bash Debug:支持单步调试
–安装vscode 插件
–编写launch.json文件
–升级bash到 4.x以上版本
(3)前端集成
1. node中通过exec. spawn调用shell命令
2. shell 脚本中调用node命令
3. 借助zx等库进行javascript. shell script 的融合
-借助shell完成系统操作.文件io、内存、磁盘系统状态查询等
-借助nodejs完成应用层能力.网络io、计算等