作为一个前端初学者小白,看到这个课程的时候我是懵的,因为我从来就没有学过,甚至没听说过,不过结合个人最近的经历和将这节课看到了最后我终于理解Shell是非常重要的!求人不如求己,咱们前端也需要掌握这些技能!
学习Shell的价值
- Linux服务器的基本操作和管理
- 前端Node.js的进程管理、问题排查、资源监控等运维操作
- 使用shell编写TCE、SCM、Docker脚本,完成服务编译和部署
Shell基础概念
物理终端=> 软件终端tty=>终端模拟器=> shell
tty或者说终端最开始指的是获取用户输入并输出的物理设备,比如电传打字机
在 linux 中是接收用户输入、输出结果的终端仿真软件, 比如我们用的 mac terminal、iterm2 等,更强输入辅助功能,画面绘制输出的模拟终端器:而tty变成一个虚拟概念,是linux的一个程序,每个终端模拟器关联一个虚拟tty,和内核打交道。我们可以在 终端模拟器中输入 tty查看关联到的虚拟 ttybash是shell的一种具体实现,可以理解成 实例和类的关系
发展
除了替代v6 shell,sh 还有几个优点,把控制流程,循环,变量引入了脚本,提供了一种更具功能性的语言
主流Linux系统使用的shell,许多都以它为锚点。
bash是sh的超集,可以直接执行大部分sh脚本。
Bash 在兼容 Boume shell脚本编程的同时,集成了Korn shell和Cshell 的功能,包括命令历史,命令行编辑,目录堆栈(pushd和popd),一些实用环境变量,命令自动补全等。
构成
![图片转存失败,建议将图片保存下来直接上传 放图: `8_V{DB}@035EV5]@NF4$S.png](p3-juejin.byteimg.com/tos-cn-i-k3…?)]()
语法和命令
| 类型 | 作用域 | 声明方式 | 规范 |
|---|---|---|---|
| 自定义变量 | 当前shell | = | 字符串、整型、浮点型、日期型 |
| 环境变量 | 当前shell及其子shell | export、declare -x | |
| 系统环境变量 | 所有shell | 启动加载 |