学习Shell的价值
1.Linux 服务器的基本操作和管理
2.前端Node.js服务的进程管理、问题排查、资源监控等运维操作
3.使用Shell编写TCE、SCN、Docker脚本,完成服务编译和部署
课程准备
·一台安装了Linux系统的物理机或者云主机,可运行shell脚本
·本地的vscode 安装Bash Debug 插件,并升级bash到4.x以上
· Npm全局安装zx依赖
Shell的概念
处理来自终端模拟器的输入,解释执行之后输出结果给终端。
发展历程
· 来自贝尔实验室在1971年为Unix开发了第一个shell,称为V6 shell
· 史蒂芬在贝尔实验室为V7 UNIX所开发的sh
· 开源组织GNU为了取代sh开发了Bash
语法和命令
类型:
1.自定义变量
2.环境变量
3.系统环境变量
作用域:
1.当前shell
2.当前shell及其子shell
3.所有shell
声明方式:
- =
- export ,declare -x
- 启动加载
规范:
字符串,整型,浮点型,日期型
管道命令
语法: cmd1|cmd2(“|”作用是将前一个命令的结果传递给后面的命令)
注意:管道命令仅仅处理stdout,对于stderr会予以忽略,可以使用set-o pipefail设置shell遇到管道错误退出。
重定向
1.>:覆盖写入文件 。
2.>>:追加写入文件 。
3.2>:错误输出写入文件 。
4.&>:正确和错误输出统一写入到文件中。
判断命令
语法:
- test condition
- [condition]变量引用
- 支持正则[{condition}]
分支语句
if condition ;then
程序
elif condition; then
程序
esle
程序
fi
循环
循环分为三种:
1.while condition; do ;done
2.until循环
3. for循环
总结
本次课程的学习,让我受益匪浅,在实验过程中,由于老师讲解的细致周到,所以极少出现问题。最大的不足,在于自己经常大意打错命令中的某个字母,时常造成命令执行错误的问题,当我意识到自己有这个问题时,我就经常在输入命令时提醒自己注意命令的书写。