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

77 阅读2分钟

课程介绍

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

shell基础概念

概念:

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

命令和语法

  • 变量(注意作用域和声明方式以及规范)
    • 自定义变量
    • 环境变量
    • 系统环境变量
    • 有点复杂呀呀呀
  • 配置文件加载
    • 运算符和引用
    • 管道
      • 管道与管道符,作用是将前一个命令的结果传递给后面的命令
      • 语法:cmd1|cmd2
      • 要求管道右侧的命令能接受标准输入才行
      • 要求管道命令仅仅处理stdout,对于stderr会予以忽略,可以使用set-o pipefail设置shell遇到管道错误退出
    • 重定向
      • 输入和输出重定向符号
    • 判断命令
      • 三种判断符号test、[、[[,用于整数测试、字符串设置和文件设置
      • 语法学习
  • 分支语句:if、case * 判断也可以拆开,用操作符连接
  • 循环 * while循环 * until循环 * for循环 * 个人思考:可以结合其他语言的知识理解循环
  • 函数:语法一&&语法二 * 引用直接写函数名称,不用括号 * 注意:image.png
  • 模块化:原理是在当前shell内执行函数文件 *常用命令

执行过程和原理

  • shell脚本一般以.sh结尾,也可以没有
  • 启动方式
  • 执行过程
    • image.png
    • 1、字符解析
    • 2、shell展开
      • 大括号展开
      • 波浪号展开
      • 参数展开
      • 文件名展开
    • 重定向
    • 执行命令
  • 调式
    • shellman:代码提示和自动补全
    • shellcheck:代码语法校验
    • shell—format:代码格式化
    • Bash Debug:支持单步调试
    • 这块好难理解呀,呜呜呜

个人思考

  • 这块的内容主要还是自己动手去敲,只有自己真正去实现一遍,才能够更好的了解大概的流程,以及加深对shell的理解。加油嘿嘿!