01 Shell基础概念
(1)概念
- 终端:获取用户输入、展示运算结果的硬件设备
- tty:teletypeWriter的简称,和终端等价。早期指电传印机。在linux中是输入/输出环境
- 终端模拟器:Mac Terminal、iTerm2等,关联虚拟tty的输入输出软件
- Shell:command interpreter,处理来自终端模拟器的输入,解释执行之后输出结果给终端
- Bash:shell的一种具体实现(shell和bash的关系可以理解为类和实例的关系)
(2)发展
(3)构成 shell:命令行解释器、编程语言
02 命令和语法
(1)变量
- 默认声明的是字符串
(2)自定义变量
(3)系统环境变量
(4)配置文件加载
登录式shell 和 非登录式shell(非登录式shell又分为交互式和非交互式,比如:sh test.sh)
(5)运算符和引用
(6)管道
xargs:将标准输入转化为参数列表的形式,然后交给ls去使用
(7)重定向
修改引用关系:
(8)判断命令
(9)分支语句
(10)循环
- util条件成立的时候跳出循环
(11)函数
- 函数内部一般使用local,local当前作用域生效,避免污染外面的全局作用域
- unset撤销变量
(12)模块化
(13)常用命令
- 展示前后的上下文
- f表示:读取到文件末尾之后,不会停止执行,会等待输入
03 执行过程和原理
(1)执行
-前面两种会在子进程中执行,最后一种会在当前进程中执行
(2)执行过程
内置命令
(3)shell展开