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

55 阅读2分钟

学习 shell 的价值

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

课程准备

  • 一台安装了 Linux 系统的物理机或者云主机,可运行shell脚本
  • 本地的 vscode 安装 Bash Debug 插件,并升级 bash 到 4.x 以上
  • Npm 全局安装 zx 依赖

Shell 基础概念

Shell 概念

Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制

Shell 也是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核

image1.jpg

image.jpg

Shell 构成

shell 是一个命令解释器也是一种编程语言

img2.jpg

变量

  1. 变量名:使用固定的名称,由系统预设或用户定义
  2. 变量值:能够根据用户设置、系统环境的变化而变化
  3. 特殊变量: 环境变量,只读变量,位置变量,预定义变量
自定义变量

格式:变量名=变量值

[root@localhost ~]#abc=123

查看变量的值

格式:echo $变量名

[root@localhost ~]#echo $abc

运算符&引用

img3.jpg

管道

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

语法: cmd1 | cmd2

重定向

img4.jpg 输入重定向就是改变输入的方向,不再使用键盘作为命令输入的来源,而是使用文件作为命令的输入

判断命令

shell 中提供了 test、[、[[ 三种判断符号可用于:
  • 整数测试
  • 字符串测试
  • 文件测试
语法
  • test condition
  • [ condition ]
  • [[ condition ]]

shell 执行与原理

  • 文件后缀是.sh
  • 脚本文件首行是而且必须是脚本解释器 -#!/bin/bash

前端集成

  1. node中通过 exec、spawn 调用 shell 命令
  2. shell 脚本中调用 node 命令
  3. 借助 zx 等库进行 javascript、shell script 的融合

总结

img5.jpg