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

98 阅读2分钟

学习Shell的价值

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

课程准备

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

Shell的概念

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

发展历程

· 来自贝尔实验室在1971年为Unix开发了第一个shell,称为V6 shell
· 史蒂芬在贝尔实验室为V7 UNIX所开发的sh
· 开源组织GNU为了取代sh开发了Bash

语法和命令

类型:
1.自定义变量
2.环境变量
3.系统环境变量
作用域:
1.当前shell
2.当前shell及其子shell
3.所有shell
声明方式:

  1. =
  2. export ,declare -x
  3. 启动加载
    规范:
    字符串,整型,浮点型,日期型

管道命令

语法: cmd1|cmd2(“|”作用是将前一个命令的结果传递给后面的命令)
注意:管道命令仅仅处理stdout,对于stderr会予以忽略,可以使用set-o pipefail设置shell遇到管道错误退出。

重定向

1.>:覆盖写入文件 。 2.>>:追加写入文件 。
3.2>:错误输出写入文件 。
4.&>:正确和错误输出统一写入到文件中。

判断命令

语法:

  1. test condition
  2. [condition]变量引用
  3. 支持正则[{condition}]

分支语句

if condition ;then 程序
elif condition; then 程序
esle
程序
fi

循环

循环分为三种:
1.while condition; do ;done
2.until循环
3. for循环

总结

本次课程的学习,让我受益匪浅,在实验过程中,由于老师讲解的细致周到,所以极少出现问题。最大的不足,在于自己经常大意打错命令中的某个字母,时常造成命令执行错误的问题,当我意识到自己有这个问题时,我就经常在输入命令时提醒自己注意命令的书写。