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

107 阅读2分钟

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

1 Shell基础概念

概念:
物理终端=>软件终端tty =>终端模拟器=> shell

tty或者说终端最开始指的是获取用户输入并输出的物理设备,比如电传打字机 在linux中是接收用户输入、输出结果的终端仿真软件,比如我们用的 mac terminaliterm2等,更强输入辅助功能、画面绘制输出的模拟终端器;

而tty变成一个虚拟概念,是linux的一个程序,每个终端模拟器关联一个虚拟tty,和内核打交道。我们可以在终端模拟器中输入tty查看关联到的虚拟tty bash是shell的一种具体实现,可以理解成实例和类的关系

发展:
除了替代 v6 shell,sh还有几个优点,把控制流程,循环,变量引入了脚本,提供了一种更具功能性的语言

主流 Linux系统使用的shell,许多都以它为锚点。

bash是sh的超集,可以直接执行大部分sh脚本。

Bash在兼容Bourme shell脚本编程的同时,集成了Korm thell和C shell的功能,包括命令历史,命令行编辑,目录堆栈(pushd和popd),一些实用环境变量,命令自动补全等。

构成:

image.png shell不仅提供了与内核和设备交互的方法,还集成了一些今天软件开发中通用的设计模式(比如管道和过滤器),具备控制流程,循环,变量,命令查找的机制

既是命令解释器,也是一门编程语言,作为命令解释器,它提供给用户接口,使用丰富的GNU工具集,第三方的或者内置的,比如 cd、 pwd、exec、test、netst等等

2 命令和语法

变量:
image.png

运算符和引用:

image (1).png

双引号:部分引用,使用这种引用时,$、(反引号)、(转义符)这3个还是会解析成特殊的意义单引号:完全引用,只原样输出
反引号:执行命令
cmd &实现让命令在后台运行
使用方法一的时候,当我们关闭终端,命令就会停止运行。加上nohup可以在关闭终端后不停止命令

3 执行过程和原理

image.png

4 调试和前端集成

image.png

5 思维导图

image (2).png