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

70 阅读2分钟

今天总结下Shell 脚本和编程这部分的相关笔记。Shell脚本和编程是Linux操作系统中必不可少的一部分,使用Shell脚本可以提高工作效率,自动化完成各种任务。

将会学习到

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

Shell基础概念

  • shell是操作系统的最外层,是一个用户跟操作系统之间交互的命令解释器;
  • 大多数linux默认的shell命令解释器是 bash(/bin/bash);
  • shell独立于内核,是链接内核和应用程序的桥梁,通俗来讲shell是内核周围的外壳。

Shell脚本中的命令是Linux系统上的命令,例如ls、cd、grep等。Shell脚本中的语法与其他编程语言类似,包括变量、循环、条件语句等。

Shell脚本中的变量可以存储数据,例如字符串、数字等。变量可以通过赋值运算符“=”,将数据存储到变量中。

循环语句可以用来重复执行一段代码,例如for循环、while循环等。条件语句可以用来根据条件执行不同的代码,例如if语句、case语句等。

编程语言:

变量:自定义变量、环境变量、系统环境变量

运算:逻辑运算符、算数运算符

语句:判断、分支、循环

执行过程和原理

shell脚本一般以.sh结尾;

启动方式:

  1. 文件名运行

    ./filename.sh

  2. 解释器运行

    bash ./filename.sh

  3. source运行
    source ./filename.sh

第一行需要指定用什么命令解释器来执行

管道

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

插件

  1. shellman:代码提示和自动补全;
  2. shellcheck:代码语法校验;
  3. shell-format:代码格式化;
  4. Bash Debug:支持单步调试。

前端集成

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