Shell脚本和编程

140 阅读2分钟

Shell价值

1.linux服务区的基本操作和管理

(需要下载一个VMWare创建linux虚拟机,在官网上下载,随便搜索vm密钥,直接复制过去就能用了)

2.前端Node.ja服务的进程管理,问题排查,资源监控等运维操作

(Node.ja是javascript的运行环境)

3.使用shell编写TCE、SCM、Dpcker脚本,完成服务器编译和部署

课程准备

1.linux系统的物理机

2.vscode安装bash debug插件,升级bash到4.0以上

3.Npm全局安装zx依赖

Shell基础概念

概念:

终端:获取用户输入,展示运算结果的硬件设备(输入输出设备)

tty:等价于终端

终端模拟器:关联虚拟tty的输入输出软件

shell:处理来自终端模拟器的输入,解释执行后的结果给终端

shell可做解释器:
实现bash内置命令
GNU核心工具集
第三方库
也可做编程语言:
定义变量
运算
语句
函数

Bash:shell的具体实现

语法及命令:

定义类型及声明方式

自定义变量 =
变量名=变量值,如:page_size=1
将命令赋值给变量,如:_ls=ls
将命令结果赋值给变量,如:file=$(ls -a)
声明变量接收运算结果,如:let total=page_size*page_num
导出环境变量:export total
环境变量  export,declare,-x

系统环境变量 启动加载

echo命令:写内容到标准输出/echo【-neE】【ARG】

shell:
login shell:登陆式shell
non-login shell:非登陆式shell

屏幕截图 2023-04-17 151500.png

管道:
管道与管道符|,前一个命令的结果作为后面输入的命令
语法:cmd1|cmd2 
重定向
标准输入→fd0→终端输入
标准输出→fd1→终端输出
标准错误→fd2→终端输出

屏幕截图 2023-04-17 153802.png

分支语句:
if condition;then
程序段
elif condition;then
程序段
fi
循环
while循环:while condition ;do 程序段;done
函数
funcName(){echo “abc”;}
常用命令

image.png

执行过程和原理

shell一般以.sh结尾,也可以没有
第一行#!/ bash路径开头
启动
方式一:文件名运行:./filename。sh
方式二:解释器运行:bash ./filename。sh
方式三:cource 运行:cource ./filename。sh
执行过程:
1.字符解析
2.shell展开
3.重定向
4.执行命令

image.png