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

152 阅读2分钟

shell基本概念

Shell(也称为命令行界面或终端)是一种通过文本输入和输出进行交互的计算机用户界面。它允许用户通过输入命令来执行操作。运行程序和管理系统

  1. 命令(Command)
  2. 提示符(Prompt)
  3. 文件系统(File System)
  4. 管道(Pipeline)
  5. 环境变量(Environment Variable)
  6. 脚本(Script)
  7. 快捷键(Shortcut)

构成

Unix shell 既是一个命令解释器也是一种编程语言。作为命令解释器,shell为丰富的GUN工具集提供了用户接口

命令和语法

类型作用域声明方式
自定义变量当前shell=(隐式声明)
环境变量当前shell及其子shellexport declare-x(显示声明)
系统环境变量所有shell启动加载

判断命令

shell中提供了test、[、[[,三种判断符号。可用于:
  • 整数测试
  • 字符串测试
  • 文件测试
对应的语法为:
  • test condition
  • [condition]
  • [[condition]]
Tips:
  • 中括号前后须有空格符
  • [ 和 test 是命令,只能使用自己支持的标志位,<、>、=,只能用于比较字符串
  • 中括号内的变量,最好用引号括起来
  • [[ 更丰富,在整型比较中支持<、>、=,在字符串比较中支持=~正则

学习shell脚本编程的价值:

1.shell是Linux服务器的基本操作和管理

2.前端Node.js服务器进程管理,问题排查,资源监控等的运维等操作

3.可以完成服务器编译和部署

shell的本质:

一个应用程序,通过它将用户和Linux内核连接在一起,让用户可以更加高效的使用Linux内核。

shell脚本:

shell脚本是shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译也可以运行,它可以通过解释器去运行,但是运行的速度比较慢。

shell的语法和命令:

总共分为三组,自定义变量,环境变量,系统环境变量。

运算符和引用:

主要是算术、逻辑、比较运算符,引号,圆括号,命令连接,后台运行(&)。

管道:

当第一个返回传递给第二个命令,就需要用到管道,管道的本质就是为了将很多个程序进行连接,和信号一样是一种通信方式之一。管道运算符的作用就是将前一个命令的结果传递给后面的命令。

重定向:

改变shell命令在执行时描述符指向的行为,就是当shell命令在执行时都会打开三个文件描述,文件描述符分别对应stdin,stdout,stderr,即标准输入,标准输出,标准错误,这三个文件描述符默认指向终端输入,终端输出,那么当名需要获取输入时候,它会读取fd0,当输出的时候他会像fd1或者fd2写入。