博客
关于我
linux shell脚本
阅读量:640 次
发布时间:2019-03-14

本文共 2052 字,大约阅读时间需要 6 分钟。

Shell基础知识

什么是Shell

Shell是 Unix 操作系统的命令解释器,它接收用户输入的命令并将其转化为操作系统内核能够理解的指令。Shell也是一种脚本语言,允许用户通过脚本调用 Linux 命令,实现自动化操作。

Shell的种类

操作系统内核和 Shell 是独立的组件,同一个内核可以使用不同的 Shell。常见的 Shell 有 sh、bash、csh 等。每种 Shell 都有其独特的命令语法和特性。

Shell的环境定义

临时环境变量

临时变量是指用户在当前登录环境中定义的变量,通常是通过命令行定义的。当用户退出系统后,这些变量不会继续生效。

将环境变量永久生效

通过将环境变量定义写入配置文件,可以实现环境变量永久生效。例如:

  • /etc/profile:系统所有用户登录时生效的环境变量文件。
  • ~/.bash_profile:用户自定义的环境变量文件。

系统预定义的环境变量

系统提供的环境变量对所有用户有效,常见的有 $HOME$SHELL$PATH 等。

Shell脚本编程

Shell脚本的结构

一个典型的 Shell 脚本包含以下部分:

  • 首行#!/bin/bash,指定使用 bash 解释脚本。
  • 注释:使用 # 符号注释脚本内容。
  • 内容:包含脚本的命令和命令组合。
  • 脚本的权限

    默认情况下,脚本没有执行权限。需要使用 chmod +x script.sh 赋予执行权限。

    脚本的执行方式

  • 绝对路径或相对路径:如 /root/helloWorld.sh./helloWorld.sh
  • 使用 bash 或 sh:如 bash helloWorld.shsh helloWorld.sh
  • source 或 .:如 source helloWorld.sh./helloWorld.sh
  • Shell变量

    变量分类

    • 用户自定义变量:由用户定义,作用域为当前 Shell 环境。
    • 环境变量:对所有 Shell 和子 Shell 生效。
    • 位置参数变量:用于传递脚本参数,变量名不能自定义。
    • 预定义变量:Bash 中内置的变量,如 $HOME$SHELL$? 等。

    变量设置规则

  • 变量名称由字母、数字和下划线组成,不能以数字开头。
  • 变量类型默认为字符串,需显式声明为数值型。
  • 变量赋值时,等号两侧不能有空格。
  • 变量值中包含空格时,需用单引号或双引号包围。
  • 变量使用示例

    name="张伟"age=30echo $name $age

    删除或静态变量

    • 删除变量:unset NAME
    • 静态变量:readonly B=2,不能被 unset

    环境变量与位置参数

    位置参数变量

    位置参数变量用于传递脚本参数,常见的有:

    • $1$9:表示第 1 到第 9 个参数。
    • $*:表示所有参数,作为整体。
    • $@:表示所有参数,逐个区分。

    shift 命令

    shift 用于将位置参数左移,每次执行后,参数序列顺次左移一个位置。

    测试命令

    测试字符串

    if [ "$name" == "root" ]; then    echo "欢迎 root !"fi

    测试整数

    if [ 100 -ge 100 ]; then    echo "相等"fi

    测试文件

    if [ -d "/etc/rc.d/httpd" ]; then    echo "存在"fi

    流程控制语句

    if/else 命令

    if [ -x "/etc/rc.d/init.d/httpd" ]; then    /etc/rc.d/init.d/httpd restartfi

    case 命令

    case $CMD in    start)        echo "正在"        ;;    Stop)        echo "停止中"        ;;    *)        echo "错误的命令"        ;;esac

    for 循环

    for N in {1..100}; do    echo $Ndone

    while 循环

    while [ $i -le 10 ]; do    echo $i    i=$((i+1))done

    函数

    函数定义

    function hello() {    echo "欢迎!"    return 0}hello

    函数调用

    hello()

    定时器

    crontab 命令

    crontab 通过配置文件定义任务调度信息,常用格式为:

    分钟 小时 天 月 星期 命令* * * * * /path/to/script.sh

    常用示例

    */5 * * * * /bin/echo "每5分钟运行一次"0 18-23 * * * /path/to/dbcheck.sh

    注意事项

  • 时间字段用空格分隔,* 表示所有值。
  • 多个时间值用逗号或连字符分隔。
  • 命令需使用绝对路径。
  • 用户需有执行权限。
  • 通过以上方法,可以实现任务的自动化和定时运行。

    转载地址:http://orblz.baihongyu.com/

    你可能感兴趣的文章
    Parrot OS 6.2 重磅发布!推出全新 Docker 容器启动器
    查看>>
    Parrot OS 6.3 发布!全面提升安全性,新增先进工具,带来更高性能
    查看>>
    ParseChat应用源码ios版
    查看>>
    Part 2异常和错误
    查看>>
    Pascal Script
    查看>>
    Spring Boot集成Redis实现keyspace监听 | Spring Cloud 34
    查看>>
    Spring Boot中的自定义事件详解与实战
    查看>>
    Passport 密码模式
    查看>>
    Spring Boot(七十六):集成Redisson实现布隆过滤器(Bloom Filter)
    查看>>
    passwd命令限制用户密码到期时间
    查看>>
    Spring @Async执行异步方法的简单使用
    查看>>
    PAT (Basic Level) Practice 乙级1021-1030
    查看>>
    PAT (Basic Level) Practice 乙级1031-1040
    查看>>
    PAT (Basic Level) Practice 乙级1041-1045
    查看>>
    SparkSql的元数据
    查看>>
    PAT (Basic Level) Practice 乙级1051-1055
    查看>>
    PAT (Basic Level) Practise - 写出这个数
    查看>>
    PAT 1027 Colors in Mars
    查看>>
    PAT 1127 ZigZagging on a Tree[难]
    查看>>
    PAT 2-07. 素因子分解(20)
    查看>>