python学习之自动化运维(一):shell的使用

第一章: shell快速入门:

一、运维简介:

1.运维简介以及企业中的那些事:在这里插入图片描述
2、简单的运维知识
  • 规划: 需要多少资源来支持项目的运行;
  • 管理: 项目运行过程中的所有内容都管理起来;
  • 流程规范: 所有操作都形成只读,提高工作效率;
  • 平台: 大幅度提供工作效率;
  • 监控: 实时查看项目运行状态指标;
  • 告警: 状态指标异常,高职工作人员处理;
  • 安全: 网站运营安全措施;
  • 优化: 保证用户访问网站体验好;

2.1 自动化运维: 就是将所有的运维工作都是用自动化的方式来实现

  • 实现自动化的方式很多,常见的方式:工具和脚本。
  • 工作中常见的脚本是shell脚本 和 其他开发语言脚本
  • shell脚本就是shell编程的一种具体实现;

二、shell简介:

1.什么是shell:
  • shell的定义: 在计算机科学中,shell就是一个命令解释器;
  • shell是位于操作系统和应用程序之间,是它们两者最重要的接口,shell负责把应用程序 的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序.
  • shell位置图:
    在这里插入图片描述
  • 总结来说,shell就是操作系统和应用程序之间的一个命令翻译工具.
2.shell的分类:
  • 基本上shell分两大类: 图形化界面shell和命令行shell
    • 图形界面shell:图形界面shell就是常说的桌面
    • 命令行shell:
      • windows系统: cmd.exe命令提示符
      • linux: sh / csh / ksh / bash / …
        常说的shell是命令行式的shell,在工作中常用的是linux的bash.
        linux中shell的发展
  • shell:https://baike.baidu.com/item/shell/99702
3.查看系统shell信息:
  • 查看当前系统的shell类型:
echo $SHELL

/bin/bash
  • 查看当前系统环境支持的shell:
cat /etc/shells

/bin/sh
/bin/bash
/bin/rbash
/bin/dash
4.shell脚本:
  • shell使用方式:

    • 手工方式: 手工敲击键盘,在shell的命令行输入命令,按Enter后,执行通过键盘输入的命令,然后shell返回并显示命令执行的结果, 逐行输入命令、逐行进行确认执行;
    • 脚本方式: 就是说把手工执行的命令a,写到一个脚本文件b中,然后通过执行脚本b,达到执行命令a的效果.
  • shell脚本定义: 当可执行的Linux命令或语句不在命令行状态下执行,而是通过一个文件执行时,将这个文件为shell脚本。

5.shell脚本示例:

5.1 创建临时shell脚本文件test.sh, 注意以.sh结尾

#!/bin/bash
# 这是临时shell脚本
echo "nihao"
echo "test"

5.2 脚本执行效果:
在这里插入图片描述

6.shell的优缺:

shell的优点:

  • 存在时间长.拥有较多的积累;
  • 编写简单;
  • 对环境依赖小;
    shell的劣势:
  • 无法失效件复杂的功能;
  • 不支持线代编程语言的高级特性: 面向对象;

第二章: shell基础知识:

一、shell脚本:

1.创建脚本

脚本创建工具:(命令行)
  创建校本的常见编辑器是:vi/vim
  笔者个人习惯使用:nano
脚本命名:

  1. shell脚本的命名简单来说就是要有意义,方便通过 脚本名,来知道这个文件是干什么用的;
  2. 文件名以.sh结尾;

脚本内容:

  1. 首行指定解释器: #!/bin/bash;
  2. 命令罗列和语法套用;

注释内容:

  • 单行注释:
      除了首行的#不是注释外,其他所有行内容,只要首个字符是#,那么就表示该行是注释
#!/bin/bash
echo '1'
# echo '2'           # 这一行就表示注释
echo '3'
  • 多行注释:
      多行注释有两种方法::<<! … ! 和 :<<字符 … 字符
#!/bin/bash
echo '1'
:<<! echo '2'
echo '3'
echo '4'
!
echo '5'
2. 脚本执行:

shell执行大方式:
shell脚本的执行通常可以采用以下几种方式:

bash /path/to/script-name or /bin/bash /path/to/script-name
/path/to/script-name or ./script-name	(注意是在当前目录下执行脚本)
source script-name or . script-name	(注意"."后面有空格)

执行方式说明:

  1. 脚本文件本身没有可执行权限或脚本首行没有命令解释器时使用的方法, 推荐使用bash执行
  2. 脚本文件具有可执行权限时使用;
  3. 使用source或者.点号,加载shell脚本文件内容,使shell脚本内容环境和当前用户环境一致。

区别:
source或者.点号与其他执行方式的比较

 test.sh 脚本内容如下:
  #!/bin/bash
  ps

  终端执行命令如下:
  python@ubuntu:~/Desktop$ ps  # 返回当前终端运行的进程
   PID TTY          TIME CMD
  34863 pts/1    00:00:00 bash  # 当前终端开启的bash进程
  34891 pts/1    00:00:00 ps
  python@ubuntu:~/Desktop$ bash test.sh 
   PID TTY          TIME CMD
  34863 pts/1    00:00:00 bash  # 当前终端开启的bash进程
  34894 pts/1    00:00:00 bash  # 执行bash test.sh命令时开启了一个子进程
  34895 pts/1    00:00:00 ps
  python@ubuntu:~/Desktop$ source test.sh 
   PID TTY          TIME CMD
  34863 pts/1    00:00:00 bash  # 只有当前终端开启的bash进程,执行
  34900 pts/1    00:00:00 ps
test.sh 脚本内容如下:
  #!/bin/bash
  echo $user

  终端执行命令如下:
  python@ubuntu:~/Desktop$ user=python  # 当前终端定义变量
  python@ubuntu:~/Desktop$ echo $user  # 打印变量
  python
  python@ubuntu:~/Desktop$ bash test.sh  # 使用bash方式会开子进程,不能使用当前终端定义的变量

  python@ubuntu:~/Desktop$ source test.sh # 使用source方式不会开子进程,能使用当前终端定义的变量
  python

总结: source后者点号(.)执行方式不会开启子进程,能共享当前终端定义的变量,其他执行方式会开启子进程.
执行机制:
在这里插入图片描述

3. 脚本开发规范:
  1. 脚本命名要有意义,文件后缀是.sh;
  2. 脚本文件首行是而且必须是脚本解释器;
#!/bin/bash
...
  1. 脚本文件解释器后面要有脚本的基本信息等内容;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅弋、璃鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值