博客
关于我
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/

    你可能感兴趣的文章
    nginx 常用配置记录
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx的是什么?干什么用的?
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NI笔试——大数加法
    查看>>
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    nullnullHuge Pages
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
    查看>>
    OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
    查看>>