【小白日记31】—-Shell之变量

一、Shell概述

1. Shell介绍

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件==(命令解析器)==。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

2.Shell特点

  • SHELL语言是指UNIX操作系统的命令语言,同时又是该命令语言的解释程序的简称。
  • Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。
  • Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;
  • 作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
  • 它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、
  • 建立文件并以并行的方式协调各个程序的运行。
  • 因此,对于用户来说,shell是最重要的实用程序,

3.Shell的作用

  1. 自动化批量系统初始化程序 (update,软件安装,时区设置,安全策略…)
  2. 自动化批量软件部署程序 (LAMP,LNMP,Tomcat,LVS,Nginx)
  3. 应用管理程序 (KVM,集群管理扩容,MySQL,DELLR720批量RAID)
  4. 日志分析处理程序(PV, UV, 200代码, !200代码, top 100, grep/awk)
  5. 自动化备份恢复程序(MySQL完全备份/增量 + Crond)
  6. 自动化管理程序(批量远程修改密码,软件升级,配置更新)
  7. 自动化信息采集及监控程序(收集系统/应用状态信息,CPU,Mem,Disk,Net,TCP Status,Apache,MySQL)
  8. 配合Zabbix信息采集(收集系统/应用状态信息,CPU,Mem,Disk,Net,TCP Status,Apache,MySQL)
  9. 自动化扩容(增加云主机——>业务上线)
    zabbix监控CPU 80%+|-50% Python API AWS/EC2(增加/删除云主机) + Shell Script(业务上线)
  10. 俄罗斯方块,打印三角形,打印圣诞树,打印五角星,运行小火车,坦克大战,排序算法实现
  11. Shell可以做任何事(一切取决于业务需求)

Shell的执行

  1. 子Shell中
    子Shell相当于在 开启了多个窗口
    在这里插入图片描述
  • bash
    在这里插入图片描述

  • sh

  • 在这里插入图片描述
    在这里插入图片描述

  1. 本Shell中
  • .
  • source
    在这里插入图片描述

二、变量

1.变量的类型

1.1 自定义变量

  • 变量名=变量值
    在这里插入图片描述
  • 变量赋值: 显式赋值
    在这里插入图片描述
  • 如果赋值的时后需要加空格分开的话 一定要加引号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 变量赋值: 隐式赋值
  • 在这里插入图片描述

在这里插入图片描述

2.环境变量

一般是指操作系统中用来指定操作系统运行环境的一些参数。通常具有全局性。
例如:
在这里插入图片描述
2. 环境变量

定义环境变量: 方法一 export back_dir2=/home/backup
方法二 export back_dir1 将自定义变量转换成环境变量
在这里插入图片描述
引用环境变量: $变量名 或 ${变量名}
查看环境变量: echo $变量名 env 例如env |grep back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前shell和子shell有效 !!!!!!

3.预定义变量和位置变量

预先定义过的变量 含义
$0 脚本名
$1 第一个参数
$2 第二个参数
$3…$9 第三…九个参数(之后以此类推)
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的PID
$! 上一个后台进程的PID
$? 上一个命令的返回值 0表示成功

在这里插入图片描述
在这里插入图片描述

三、变量的运算

1.expr

在这里插入图片描述

2.$(()) $[]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. let

在这里插入图片描述
在这里插入图片描述

4.小数运算

在这里插入图片描述

在这里插入图片描述
从v吧

四、简单脚本练习

1.编写脚本,创建用户userA,并为用户设置初始密码为123456(无变量)

在这里插入图片描述

在这里插入图片描述

2.编写脚本,创建用户userA,并为用户设置初始密码为123456(有变量。键盘读取)
在这里插入图片描述

在这里插入图片描述

3.编写脚本,配置本地yum源
在这里插入图片描述
在这里插入图片描述


版权声明:本文为Andrew__feng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>