学习shell的价值:
- Linux服务器的基本操作和管理
- 前端node.js服务的进程管理、问题排查、资源监控等运维操作
(之前在使用nodejs的时候,想通过命令行nmp install json-server 安装一个json server,但Windows PowerShell里默认的执行策略是restricted,不允许任何脚本运行,改了之后才能继续安装) - 使用shell编写TCE、SCM、Docker(只听说过docker)脚本,完成服务编译和部署
基础概念
终端:输入、输出
shell:处理来自终端的输入,解释执行之后输出结果给终端
Bash:shell的具体实现,类和实例的关系
语法和命令
变量
- 自定义变量:默认声明的变量都是字符串型,作用域为当前shell
(等号两边不能有空格,可以将命令/命令结果赋值给变量) - 环境变量:作用域为当前shell以及子shell
(当父进程在执行一个第三方程序或者工具的时候,会启动一个子进程去执行,执行完后交还给父进程) - 系统环境变量:在shell启动的时候加载
配置文件加载
运算符和引用
从语言的角度来说,内容都大差不差,都会有属于自己的一些特性,越用越熟练吧,光看视频感觉很难有体会
shell展开
调试
VSCode配置
1.shellman:代码提示和自动补全
2.shellcheck:代码语法校验
3.shell-format:代码格式化
4.Bash Debug:支持单步调试
前端集成
1.node中通过exec、spawn调用shell命令
2.shell脚本中调用node命令
3.借助zx等库进行javascript、shell script的融合
- 借助shell完成系统操作,文件Io、内存、磁盘系统状态查询等
- 借助nodejs完成应用层能力,网络io、计算等