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

65 阅读2分钟

作为一个前端小白,可能文章中有些许的错误还是希望大家能够谅解,接下来就讲把shell脚本和编程的笔记内容发布给大家!

一、学习shell的价值

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

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

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

二、shell基础概念

1、概念 Shell和Bash之间的关系可以理解为类和实例之间的关系

image.png

2、发展

image.png

image.png

Bash除了兼容了sh大多数特性,还吸收了csh和ksh的优点,mksh系统在最新的版本中都将shell切换到了zsh。

3、构成

shell不仅提供了与内核和设备交互的方法,还集成了一些今天软件开发中通用的设计模式(比如管道和过滤器),具备控制流程,循环,变量,命令查找的机制

既是命令解释器,也是一门编程语言,作为命令解释器,它提供给用户接口,使用丰富的GNU工具集,第三方的或者内置的,比如cd、pwd、exec、test,netstat 等等

image.png

三、执行过程和原理

1、执行

Shell脚本一般以.sh为结尾,也可以没有,这是一个约定:第一行需要指定用什么命令解释器来执行。

启动方式

启动有以下三种方式,前两种是在子进程中进行执行,而第三种则是在当前进程进行执行

image.png

2、执行过程

image.png

1.字符解析

.识别换行符、分号(;)做行的分割

.识别命令连接符(||&&管道)做命令的分割

.识别空格、tab符,做命令和参数的分割

  2、shell展开,如{1..3} 解析为1 2 3

  3.重定向,将stdin、stdout、 stderr的文件描述符进行指向变更

4.执行命令

. builtin直接执行

. 非builtin使用$PATH查找,然后启动子进程执行

  5.收集状态并返回

四、调试和前端集成

1.普通log,使用echo、printf

2.使用set命令

  1. vscode debug插件

VScode配置

1、she11man:代码提示和自动补全

2、she11check:代码语法校验

3、she11-format:代码格式化

4、Bash Debug:支持单步调试

–安装 vscode 插件

-编写launch.js on文件

–升级 bash 到4.x以上版本

  前端集成

  1. node中通过exec. spawn调用shell命令

  2. shell脚本中调用node命令

3.借助zx等库进行javascript.shell script 的融合

-借助shell完成系统操作.文件io、内存、磁盘系统状态查询等

-借助nodejs完成应用层能力,网络io、计算等