• Linux学习笔记--高级


    Shell概述

    1,shell概述

    是一个c语言编写的脚本语言,是linux和用户的桥梁,用户输入命令交给shell处理。shell,将相应的操作传递给内核(kernel),内核把处理的结果输出给用户

    1.1Shell解释器有哪些?

    (1)sh:全称是Bourne shell,由AT&T公司的Steve Bourne开发,为了纪念 他,就用他的名字命名了。 sh是UNIX上的标准shell,很多 UNIX版本都配有sh。sh是第一个流行的Shell。
    (2)csh: 全称是C shell,它是sh之后另一个广为流传的shell是由柏克莱大学的 Bill Joy设计的。 这个shell的语法有点类似C语言,所以才得名为C shell ,简称为csh。
    (3)Bash:全称是bash shell,它是Linux的默认shell。由GNU组织开发,是各种 Linux发行版默认配置的shell。 bash兼容了sh,针对sh编写的Shell代码可以不加修改地在bash中运行。

    注意:目前,在Linux系统中,默认的shell程序是bash shell。

    2.Shell开发

    Shell程序文件通常以.sh结尾。类似于Kettle的Mac OS启动执行的文件
    语法:sh ./spoon.sh

    2.1开发步骤

    (1)新建一个.sh文件
    (2)在.sh文件中编写程序代码
    (3)给.sh文件添加可执行权限x
    (4)执行程序

    例如:
    ①touch a.sh
    ②vim ./a.sh
    ③chmod u+x a.sh
    ④sh .ash或者./a.sh或者绝对路径下输出a.sh

    3.变量

    shell变量是一种很"弱"的变量,默认情况下,一个变量保存一个字符串。
    虽然变量可以直接存储一个字符串,但仍然建议把值使用双引号表示,即"内容值"。

    3.1定义变量

    ①定义变量名语法:变量名=变量值
    (变量名一定要记得全大写)
    注意规则:
    1)变量名可以由字母、数字和下划线组成,但是不能以数字开头, 不能使用关键字;
    2)在bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须使用特殊 命令;
    3)变量用等号"=“连接值,”=“左右两侧不能有空格; 4)变量值中如果有空格,则需要使用单引号或双引号包含,如test=“hello world!”;
    5)在变量值中,可以使用”"转义符。

    ②访问变量的语法: 变量名或 变量名 或 变量名或{变量名}
    建议提取变量时,推荐使用{ }标识变量的边界范围。
    ③删除变量
    删除变量的语法:unset 变量名
    只读变量无法通过这个删除,需要下载专门的删除工具
    ④定义只读变量
    readonly 变量名
    readonly 变量名=变量值
    Shell程序

    #!/bin/bash 
    # 定义变量
     name="Jerry" 
     # 访问变量 
     echo $name 
     gender=male 
     echo ${gender}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4,环境变量(environment variable)

    环境变量是操作系统(Windows、Linux、Mac)在运行时,记录的一些关键信息,
    用以辅助系统运行。
    当shell程序启动时,都自动设置了一组变量,这组变量就是环境变量。在Linux中查
    看环境变量命令:env

    4.1环境变量设置的两种方式

    1,临时设置
    语法:

    export 变量名=变量值
    
    • 1

    2,永久生效设置
    ①仅针对当前用户生效,配置在当前用户的:

    ~/.bashrc文件中
    
    • 1

    ②针对所有用户生效,配置在系统的:
    /etc/profile文件中
    若要让环境变量立刻生效,可以进行重新登录账号。也可以通过语法:

    source 配置文件
    
    • 1

    过程例如:

    步骤①使用vim /etc/profile进入到配置文件中
    ②将要配置的变量放入文件中
    ③source /etc/profile刷新配置文件
    
    • 1
    • 2
    • 3

    设置环境变量的作用,为了能够在任何目录下执行

    特殊变量

    特殊变量,指的是:在执行Shell脚本时,向脚本传递参数,这时可以使用特殊变量来获取参数值。
    在执行Shell程序脚本时,可以向shell脚本动态传递参数。
    这样做的好处是某些配置属性不用写死在脚本中。动态传递参数的语法:
    sh shell脚本文件 参数1 参数2…………

    解释:Shell常用的特殊变量有:
    $0:当前程序的名称(shell文件名称)
    $n:$1表示第一个参数,$2表示第二个参数,依次类推
    $#:命令行参数的个数
    $*:以参数1,参数2……形式保存所有参数

    定义Shell文件:

    #!/bin/bash 
    echo "程序脚本文件名:"$0 
    echo "参数1:"$1 
    echo "参数2:"$2 
    echo "个数:"$# 
    echo "参数列表:"$*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    执行的shell脚本文件为sh ./04_special_value.sh 100 22 308 4090
    可以根据脚本文件的内容输出内容

    Shell脚本执行方式

    (1)shell命令倾向于在Linux命令行中使用,适合简单逻辑场景;
    (2)shell脚本倾向于在文件中编写,适合复杂的逻辑处理场景。[if、while等]
    (1)sh执行 ,sh 脚本程序名
    (2)相对路径执行,./脚本程序名
    (3)绝对路径执行,/绝对路径/脚本程序名
    在这里插入图片描述

  • 相关阅读:
    仪器仪表制造业采购数字化方案:集中采购系统为供采双方打造更高效运转平台
    binlog格式设置
    吴恩达团队2022机器学习课程,来啦
    WPF 中的 ControlTemplate 和 DataTemplate 有什么区别
    【图像分割】基于粒子群算法实现图像聚类分割附matlab代码
    2034. 股票价格波动
    net中c#教程 network的常用操作,包括上传、下载
    数商云SCM管理系统库存管理功能助力新能源汽车企业仓储管理更高效
    Visual Studio 2022安装教程
    【漏洞复现】Apache_HTTPD_换行解析漏洞(CVE-2017-15715)
  • 原文地址:https://blog.csdn.net/yfq_29/article/details/134293464