• Linux之Shell编程基础


    1. 为什么要学习 Shell 编程

    1. Linux 运维工程师在进行服务器集群管理时,需要编写 Shell 程序来进行服务器管理。
    2. 对于 JavaEE 和 Python 程序员来说,工作的需要,会要求你编写一些 Shell 脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。
    3. 对于大数据程序员来说,需要编写 Shell 程序来管理集群

    2. Shell 是什么

    • Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。看一个示意图:
      在这里插入图片描述

    3. Shell 脚本的执行方式

    • 脚本格式要求
    1. 脚本以#!/bin/bash 开头
    2. 脚本需要有可执行权限
    • 编写第一个 Shell 脚本
      需求说明:创建一个 Shell 脚本,输出 hello world!
    vim hello.sh
    
    #!/bin/bash
    echo "hello,world"
    
    • 脚本的常用执行方式
    1. 方式 1(输入脚本的绝对路径或相对路径)
      说明:首先要赋予 hello.sh 脚本的+x 权限, 再执行脚本
      比如 ./hello.sh 或者使用绝对路径 /home/test/hello.sh
      在这里插入图片描述
      使用绝对路径执行:
      在这里插入图片描述
    2. 方式 2(sh+脚本)
      说明:不用赋予脚本+x 权限,直接执行即可。
      比如 sh hello.sh , 也可以使用绝对路径
      在这里插入图片描述

    4. Shell 的变量

    Shell 变量介绍

    1. Linux Shell 中的变量分为,系统变量用户自定义变量

    2. 系统变量:$HOME、$PWD、$SHELL、$USER 等等,比如: echo $HOME 等等
      在这里插入图片描述

    3. 显示当前 shell所有变量set
      在这里插入图片描述

    5. shell 变量的定义1

    • 基本语法
    1. 定义变量:变量名=值,注意:不要用空格
    2. 撤销变量:unset 变量
    3. 声明静态变量:readonly 变量,注意:不能 unset
    • 快速入门
    1. 案例 1:定义变量 A
    #!/bin/bash
    # 案例1:定义变量A
    A=100
    # 输出变量需要加上$
    echo $A
    

    在这里插入图片描述
    加上输出变量名:

    #!/bin/bash
    # 案例1:定义变量A
    A=100
    # 输出变量需要加上$
    echo A=$A
    

    在这里插入图片描述
    也可以用双引号括起来,输出结果是一样的:

    echo "A=$A"
    
    1. 案例 2:撤销变量 A
    #!/bin/bash
    # 案例1:定义变量A
    A=100
    # 输出变量需要加上$
    echo "A=$A"
    # 案例2:撤销变量A
    unset A
    echo "A=$A"
    

    在这里插入图片描述
    3. 案例 3:声明静态的变量 B=2,不能 unset

    #!/bin/bash
    # 案例1:定义变量A
    A=100
    # 输出变量需要加上$
    echo "A=$A"
    # 案例2:撤销变量A
    unset A
    echo "A=$A"
    # 案例3:声明静态的变量 B=2,不能 unset
    readonly B=2
    echo "B=$B"
    

    在这里插入图片描述
    静态变量不能 unset(撤销)

    #!/bin/bash
    # 案例1:定义变量A
    A=100
    # 输出变量需要加上$
    echo "A=$A"
    # 案例2:撤销变量A
    unset A
    echo "A=$A"
    # 案例3:声明静态的变量 B=2,不能 unset
    readonly B=2
    echo "B=$B"
    unset B
    

    在这里插入图片描述

    • 设置行号:set nu
      在这里插入图片描述

    6. shell 变量的定义2

    • 定义变量的规则
    1. 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。5A=200(×)
    2. 等号两侧不能有空格
    3. 变量名称一般习惯为大写, 这是一个规范,我们遵守即可
    • 将命令的返回值赋给变量
    1. A=`date’ ,反引号,运行里面的命令,并把结果返回给变量 A
    2. A=$(date) 等价于反引
    A=`date`=$(date)
    
    • 案例:将指令返回的结果赋给变量
    # 将指令返回的结果赋给变量
    C=`date`
    echo “C=$C

    在这里插入图片描述
    或者

    ```bash
    # 将指令返回的结果赋给变量
    D=$(date)
    echo “D=$D

    在这里插入图片描述

  • 相关阅读:
    HttpServletRequest和HttpServletResponse
    .NET Core 通过 Ef Core 操作 Mysql
    spring-boot整合shiro实现权限管理
    spring-boot整合mongodb多数据源的案例
    spring-boot整合mybaits多数据源动态切换案例
    spring-boot整合Mybatis多数据源案例
    spring-boot整合mongodb的案例
    spring-boot和redis的缓存使用
    spring-boot 定时任务案例
    spring-cloud:熔断监控Hystrix Dashboard和Turbine的示例
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254618.html
Copyright © 2020-2023  润新知