前端D3 shell|青训营笔记

89 阅读2分钟

课程介绍

学习shell的价值

  1. Linux服务器的基本操作和管理
  2. 前端Node.js服务的进程管理、问题排查、资源监控等运维操作
  3. 使用shell编写TCE、SCM、Docker脚本、完成服务编译和部署

Shell基础概念

概念

  • 终端:获取用户输入、展示运算结果的硬件设备
  • tty:teletypeWriter的简称、和终端等价 早期指电传打印机,在linux中是输入/输出环境。
  • 终端模拟器:Mac Terminal、iTerm2等,关联虚拟tty的输入输出软件
  • Shell command interpreter 处理来自终端模拟器的输入 解释执行之后输出结果给终端
  • Bash shell的一种具体实现

构成

Image.png

命令和语法

Image.png

Image.png 父子Shell

Image.png

自定义变量

Image.png

Image.png 系统环境变量

Image.png

执行过程和原理

执行流程

Image.png

Image.png

1管道

管道与管道符 |作用是将一个命令的结果传递给后面的命令

前一个命令输出的会作为后一个命令的输入

cmd1|cmd2
2重定向

输出重定向符号 image.png 输入重定向符号

image.png

分支语句

image.png

循环

image.png

函数

  • shell自上而下执行 函数必须使用前定义
  • 函数获得变量和shell script类似 0代替函数名后续参数通过0代替函数名 后续参数通过1 $2获取
  • 函数内return仅仅表示函数执行状态
  • 不代表函数执行结果
  • 返回结果一般使用echo printf在外面使用$() 获取结果
  • 如果没有retun,函数状态是上一条命令的状态 存储在$?中

image.png

模块化

原理是在当前shell内执行函数文件 方式: source[函数库的路径]

image.png

image.png

执行

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

#! /bin/bash
#! /user/bin/env bash

Image.png

执行过程
  1. 字符解释
  2. shell展开
  3. 重定向
  4. 执行命令

调试和前端集成

  1. 使用普通log.使用echo printf
  2. 使用set命令
  3. vscode debug插件

image.png

#! /bin/sh
set -uxe -o pipefail
echo "hello world"
VScode配置
  1. shellman:代码提示和自动补全
  2. shellcheck:代码语法校验
  3. shell-format 代码格式化
  4. Bash Debug 支持单步调试

image.png Image.png

前端集成

  1. node中通过exec. spawn调用shell命令
  2. shell脚本中调用 node命令
  3. 借助zx等库进行javascript、shellscript的融合 借助shell完成系统操作 文件io内存 磁盘系统状态查询等 借助node.js完成应用层能力 网络io计算等

Image.png