shell基本概念
Shell(也称为命令行界面或终端)是一种通过文本输入和输出进行交互的计算机用户界面。它允许用户通过输入命令来执行操作。运行程序和管理系统
- 命令(Command)
- 提示符(Prompt)
- 文件系统(File System)
- 管道(Pipeline)
- 环境变量(Environment Variable)
- 脚本(Script)
- 快捷键(Shortcut)
构成
Unix shell 既是一个命令解释器也是一种编程语言。作为命令解释器,shell为丰富的GUN工具集提供了用户接口
命令和语法
| 类型 | 作用域 | 声明方式 |
|---|---|---|
| 自定义变量 | 当前shell | =(隐式声明) |
| 环境变量 | 当前shell及其子shell | export 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写入。