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

52 阅读1分钟

学习shell的价值

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

1、Shell基础概念

1.1概念

终端:

获取用户输入,展示运算结果的硬件设备

tty:

teletypeWriter的简称,和终端等价,早期指电传印机,在linux中是输入/输出环境

终端模拟器:

Mac Terminal、iTerm2等,关联虚拟tty的输入输出软件

Shell:

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

Bash

shell的一种具体表现(类似于bash是shell类的实例)

1.2构成

WechatIMG1492.jpeg

2、语法和命令

2.1变量

WechatIMG1493.jpeg

2.2自定义变量

WechatIMG1494.png

2.3系统环境变量

WechatIMG1495.png

2.4配置文件加载

WechatIMG1496.png

2.5运算符和引用

WechatIMG1497.png

2.6管道

管道与管道符|,作用是将前一个命令的结果传递给后面的命令

语法:cmd1|cmd2

要求:管道右侧的命令必须能接受标准输入才行,比如grep命令,ls、mv等不能直接使用,可以使用xargs预处理。

注意:管道命令仅仅处理stdout,对于stderr会予以忽略,可以使用set -o pipefail设置shell遇到管道错误退出

WechatIMG1498.jpeg

2.7重定向

WechatIMG1499.jpeg

2.8判断命令

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

  • 整数测试
  • 字符串测试
  • 文件测试

语法:

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