学习 shell 的价值:
1.Linux 服务器的基本操作和管理(都需要通过shell完成)
- 前端 Node.js 服务的进程管理、问题排查、资源监控等运维操作
3.使用 shell 编写 TCE、SCM、Docker 脚本,完成服务编译和部署
终端
获取用户输入、展示运算结果的硬件设备
......
shell的发展历史 Ken Thompson(来自贝尔实验室)在1971年为UNIX 开发了第一个shell,称为V6 shell -> Stephen Bourne 在贝尔实验室为V7 UNIX 所开发的 Bourne shell, 即sh -> 开源组织 GNU 为了取代 Bourne shell 开发的 Bourne-Again shell, 即 Bash
shell的语法
类型: 自定义变量 环境变量 系统环境变量
变量的赋值等号两侧不可以有空格
# 变量名=变量值(等号左右不能有空格)
page_size=1
page_num=2
# 将命令复制给变量
1s=1s
# 将命令结果赋值给变量
file list=$(ls -a)
# 默认字符串,不会进行 +运算
total=page_size*page_num
# 声明变量为整型
let total=page size*page_num
declare -i total=page_size*page_num
# 导出环境变量
export total
declare -x total
declare [+/-] 选项 变量
类型: 算数运算符、 逻辑运算符、 比较运算符、 引号、 圆括号、 命令连接、 后台运行。
作用: 常规运算; 部分引用, 仅仅 $\ 保留作用; 完全引用,原样输出; 执行命令; 算数运算; 执行命令; cmd1 执行完且返回码非O,则继续执 行cmd2; cmd1 执行完且返回码为0,则继续执 行cmd2; cmd1、cmd2串行执行; 让命令在后台运行,可与nohup一起使 用;
重定向:......
函数:shell自上而下执行,函数必须在使用前定义 函数获取变量和shell script类似,1、()、获取结果 如果没有return,函数状态是上一条命令的执行状态,存储在$?中
Shell编程可以用于开发新命令,提高开发处理效率。它可以提供后台处理机制,支持管道、命令替换、自动补齐等功能。Shell在Unix、Linux、macOS等类Unix操作系统下使用命令行界面(CLI)进行脚本编程的技术。通过Shell编程,用户可以利用shell合并编程语言以控制进程和文件,以及启动和控制其他程序。