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

40 阅读2分钟

,## 学习shell的价值

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

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

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

1、Shell基本概念

  • 概念:每个终端模拟器关联一个虚拟tty,和内核打交道

    • 物理终端:获取用户输入、展示运算结果的硬性设备

    • 软件终端tty:teletypeWriter的简称,和终端等价,早期指电传打印机,在Linux中是输入/输出环境

    • 终端模拟器:Mac Terminal、iTerm2等,关联虚拟tty的输入输出软件

    • Shell:command interpreter,处理来自终端模拟器的输入,解释执行之后输出结果给终端

      • Bash:shell的一种具体实现
  • 发展

    • V6 shell:1971年为UNIX开发了第一个shell

    • sh:为V7 UNIX所开发的Bourne shell

      • 优点:将控制流程、循环、变量引入了脚本,提供了一种更具功能性的语言。
    • Bash:GNU开发的Bourne-Again shell

      • 兼容Bourne shell,集成了Korn shell和C shell的功能。
  • 构成

    • 解释器

      • bash内置指令
      • GNU核心工具集:ls mv cat……
      • 第三方库:node、python等封装模块
    • 编程语言

      • 变量
        • 自定义变量
        • 环境变量
        • 系统环境变量
      • 运算
        • 逻辑运算符
        • 算数运算符
      • 语句
        • 判断
        • 分支
        • 循环
      • 函数

2、命令和语法

  • 变量

  • 自定义变量

  • 系统环境变量

  • 配置文件加载

  • 运算符的引用

  • 管道

  • 重定向

  • 判断命令

  • 分支语句

  • 循环

  • 函数

  • 模块化

  • 常用命令

3、执行过程和原理

  • 执行

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

    • #! /bin/bash
    • #! /user/bin/env bash
    • 启动方式

  • 执行过程

  • shell展开

4、调试和前端集成

  • 调试

  • VsCode配置

  • 前端集成