前言
这是我参加【青训营 x 字节前端训练营】✍🏻 笔记创作活动的第 3 天
- 使用的系统版本是
Ubuntu 22.04
学习价值
- Linux服务器的基本操作和管理
- 前端 Node.js服务的进程管理,问题排查,资源监控等运维操作
- 使用Shell编写 TEC,SCM,Docker脚本, 完成服务编译和部署
基础概念
- 终端:获取用户输入,展示运算结果的硬件设备
- tty: 和终端等价 在 Linux 中是输入输出环境
- 终端模拟器: 比如 Mac中的 iTerm2等 关联虚拟tty的输入输出软件
- Shell: 可以处理来自终端模拟器的输入,解释执行后输出结果给终端,也是一种编程语言
- Bash: Shell的一种具体实现
语法和命令
- hello World
#!/bin/bash
echo "Hello World"
- 系统环境变量
$o 当前shell名称/脚本名称
$# 传入脚本的参数数量
$* 传入脚本的所有的参数
$? 上调命令执行的状态码
$PS1 命令提示符
$HOME 用户主文件夹
$PATH 全局命令的搜索路径
3.管道
- 管道与管道符 | 作用是将前一个命令的结果传递给后面的命令
- 语法: cmd1 | cmd2
- 要求 管道右侧的命令必须能接受标准输入才行 比如 grep命令,ls,mv 等不能直接使用, 可以使用xargs 预处理
- 实例
#!/bin/bash
cat platform.access.log | grep ERROR
netstat -an | grep ESTABLISHED | wc -l
find . -maxdepth l -name "*.sh" | xargs ls -l
- 执行
- shell脚本一般以
.sh结尾 ,也可以没有 代码第一行需要指定使用什么命令解释器来执行
- 启动方式
# 文件名运行
./test.sh
# 解释器运行
bash ./test.sh
# source 运行
source ./test.sh
调试和前端集成
调试方法
- 普通 log 使用 echo printf
- 使用set命令
- 在Vscode中安装 Bash Debug
- 推荐插件:
- shellman 代码提示和自动补全
- shellcheck 代码语法校验
- shell-format 代码格式化
- Bash Debug 支持单步调试