linux脚本创建变量名,一、运维简介,变量、表达式、创建运维脚本、Linux常见符号...

一、运维简介

6a1485c8cb0aa1ec96dc87dc5afc4b14.png

1. 自动化运维

自动化运维:通过使用工具和写shell脚本完成运维活动

2. 以某个项目为例

规划:我们需要多少资源来支持项目的运行

管理:项目运行过程中的所有内容都管理起来

流程规范:所有操作都形成制度,提高工作效率

平台:大幅度提高工作效率

监控:实时查看项目运行状态指标

告警:状态指标异常,告知工作人员处理

安全:网站运营安全措施

优化:保证用户访问网站体验很好

3. shell

定义:shell就是一个命令解释器(应用程序和操作系统之间的接口)

优点: 编写简单、环境依赖小

缺点:不能编写复杂的功能、不具备高级语言面向对象

分类:狭义上指的是命令行shell(linux下的bash)

图形界面shell:图形界面shell就是我们常说的桌面

命令行式shell:(狭义上指的是命令行shell(linux下的bash))

查看shell信息

查看当前系统shell版本:

echo $SHELL

查看系统兼容性支持的其他版本:

cat /etc/shells

4. shell脚本

脚本执行方式:

(1)脚本方式:命令写到文件中,直接执行文件(shell脚本—》shell命令们)

(2)手工方式:手工敲击键盘,在shell的命令行输入命令,按Enter后,执行通过键盘输入的命令,然后shell返回并显示命令执行的结果, 逐行输入命令、逐行进行确认执行

shell脚本的定义:当可执行的Linux命令或语句不在命令行状态下执行,而是通过一个文件执行时,我们将这个文件为shell脚本。

创建shell脚本:

创建工具:记事本(vim)

脚本命名:名称有意义、.sh结尾(给程序员看的)

脚本内容:首行指定解释器#!/bin/bash、命令从上到下罗列

注释:(shell本身无法实现多行注释,下面知识功能实现)

单行注释: # 开头

多行注释: :<

运行shell脚本的三种方式

bash 脚本名(先启动子进程名字叫bash,在子进程中执行脚本内容)(解释器:bash)

./脚本名 (先启动子进程名字叫脚本名,在子进程中执行脚本内容)(解释器:#!指定的解释器-----》系统缺省shell)

source 脚本名 或 点加脚本名 (直接在当前shell执行脚本内容—》跟脚本内容复制粘贴执行的效果相同)(解释器:当前shell)

执行机制:

48ea1c0c2488fb5daee092a1332c4b0a.png

二、变量

1.变量定义:

普通变量定义:

变量名=变量值 (变量值不能有特殊字符)

变量名=‘变量值’ (变量值作为整体)

变量名=“变量值” (变量套变量套变量)

命令变量:(命令的输出作为变量值赋给变量名)

变量名=`命令`

变量名=$(命令)

命令变量的值在定义时确定

2. 变量访问

$变量名

“$变量名” (保证变量值是字符串)

${变量名} (限定变量名范围)

“${变量名}” (推荐使用)

3.删除变量:

unset 变量名:

unset LANG (修改字符编码)

4. 变量分类

(1)本地变量:在当前系统的某个环境下才能生效的变量,作用范围小。

(2)全局变量:在当前系统的所有环境下都能生效的变量。

环境:每打开一个终端是一个shell环境,使用非source执行方式时,会开启子进程,也是一个shell环境,称为子shell环境。

查看当前全局变量:env

定义全局变量:

先定义后转换: 变量名=值 , export 变量

二合一 :export 变量名=值

生效范围:当前shell和子shell生效

要想全部环境都生效:

修改~/.bashrc (打开终端后,系统会先source执行该文件)

source 执行 ~/.bashrc立即生效,打开新shell也生效。

修改/etc/profile(所有用户生效,系统启动后,会source执行该文件,后续用户shell都继承自初始shell’)

source 执行/etc/profile 立即生效,重启计算机也生效。

(3) 内置变量

脚本相关内置变量:不需要定义就可以直接使用。

符号

意义

$0

获取当前执行的shell脚本文件名

$$

获取执行shell脚本的进程号

$n

获取当前执行的shell脚本的第n个参数值,n=1…9,当n为0时表示脚本的文件名,如果n大于9就要用大括号括起来${10}

$#

获取当前shell命令行中参数的总个数

$?

获取执行上一个指令的返回值(0为成功,非0为失败)

字符串截取:${变量名:起始位置:截取长度}

尾部截取:${abc:0-5:3}

默认值

${变量名:-默认值}

若变量存在则输出变量值。否则输出默认值

${变量名:+提示信息}

若变量存在则输出提示信息,否则,啥都不输出

5. 表达式

将逻辑转化成控制

(1)测试语句

test 条件

[ 条件 ] (方括号内左右各有一个空格)

数值比较:

符号

含义

n1 -eq n2

相等

n1 -gt n2

大于

n1 -ge n2

大于等于

n1 -lt n2

小于

n1 -le n2

小于等于

n1 -ne n2

不等于

字符串比较:

符号

含义

==

判断是否相等

!=

判断是否不想等

比较操作符左右各有一个空格

逻辑表达式:

符号

含义

命令1 && 命令2

1成功则执行2

命令1 命令2

1失败则执行2

文件表达式:

符号

含义

-f

判断是否是文件

-d

判断是否是目录

-x

判断是否可执行 (一般目录可执行)

计算表达式:(支持整数运算)

符号

含义

$((计算过程))

$(())中只能用±*/和()运算符,并且只能做整数运算

let 等式

表达式必须是一个整体,中间不能出现空格等特殊字符

6. Linux常见符号

(1)重定向:

命令的输出放到文件里

应用程序的输出:

1 标准输出(standard output)——>程序正确运行时的输出

2 标准错误(standard err)——>程序异常时的输出

含义

语法实例

分别重定向

bash 5-chongdingxiang.sh > res.log 2>err.log

合并重定向

bash 5-chongdingxiang.sh > res.log 2>&1

丢弃

bash 5-chongdingxiang.sh > /dev/null 2>&1

(2)管道符

含义

语法实例

命令1 | 命令2

(1的标准输出作为2的输入—》命令2要有输入)

(3)后台展示符

含义

语法实例

命令 &

将命令放到后台运行,释放当前终端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值