[ 前端与 Shell | 青训营笔记]

55 阅读2分钟

Shell脚本和编程


学习shell 的价值:

  1. Linux服务器的基本操作和管理

2.前端Node.js 服务的进程管理、问题排查、资源监控等运维操作

3.使用shell 编写TCE、SCM、Docker 脚本,完成服务编译和部署

 

01 Shell基础概念

 

(1)构成

image (1).png

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