Shell脚本和编程|青训营

2023年 8月 22日 46.8k 0

学习Shell的价值:

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

    Shell基础概念、发展、构成

    image.png

    基本概念

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

    Shell语法和命令

    变量

    image.png
    image.png

    自定义变量

    image.png

    declare变量

    image.png

    系统环境变量

    image.png

    配置文件加载

    image.png

    运算符和引用

    Shell脚本和编程|青训营-1

    管道

     管道与管道符 | ,作用是将前一个命令的结果传递给后面的命令
    语法:cmd1 | cmd2
    要求:管道右侧的命令必须能接受标准输入才行,比如 grep 命令,但是 Is 、 mv 等不能直接使用,可以使用 xargs 预处理
    注意:管道命令仅仅处理 stdout ,对于 stderr 会予以忽略,可以使用 set -o pipefail 设置 shell 遇到管道错误退出

    image.png

    重定向

    image.png

    判断命令

    shell中提供了 test、 [ 、 [[ 三种判断符号 ,可用于:

  • 整数测试
  • 字符串测试
  • 文件测试
  • 语法:

    • test condition
    • [ condition ]
    • [[ condition ]]

    image.png

    注意:

    • 中括号前后要有空格符
    • [ 和 test 是命令,只能使用自己支持的标志位, 、 = 只能用来比较字符串
    • 中括号内的变量,最好都是用引号括起来
    • [[ 更丰富,在整型比较中支持 、 = ,在字符串比较中支持 =~ 正则

    image.png

    分支语句

    image.png

    86fe225408b1573e2eee538ea93bed5.jpg

    image.png

    7268560ce7946aa4ccfded17168fa69.png

    循环

    image.png

    函数

    image.png
    image.png

    模块化

    模块化的原理是在当前 shell 内执行函数文件,方式: source [函数库的路径]
    image.png

    常用命令

    image.png

    执行过程和原理

    执行

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

  • 启动方式:
  • image.png

    执行过程

    image.png

    shell展开

    image.png
    image.png
    Shell脚本和编程|青训营-2
    Shell脚本和编程|青训营-3
    image.png

    调试和前端集成

    调试

    • 普通 log ,使用 echo 、 printf
    • 使用 set 命令
    • vscode debug 插件

    image.png

    VSCode 插件配置

    image.png

    image.png

    前端集成

    image.png

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论