Shell脚本(2)

本文详细解释了编程中的变量概念,包括本地变量、环境变量的定义与作用,以及如何通过ifconfig、export等操作进行数据交互。同时介绍了系统别名的创建与管理,以及用户登录shell和非登录shell的区别和文件加载顺序。
摘要由CSDN通过智能技术生成

六:变量

        变量:是程序运行过程中用来存储变化数据的内存空间地址;程序在运行过程中,需要实时在操作系统或者是外部的接口(API)上获取数据,这个数据要想被调用,就必须存储下来,所以程序中变化的是内存中的数据,不变的是内存的地址
        变量名test的值为$(ifconfig ens160|grep netmask|awk ‘{print $2}’)
        变化的是变量的值也就是IP,IP在每个机器上操作系统中内容都不一样,但是对于程序而言,要想使用这个IP地址,只需要找到test这个变量名就可以了变量: 由变量名和变量的值组成,在shell中变量名和变量值之间使用等于号连接 test=$(ifconfig ens160|grep netmask|awk ‘{print $2}’)
        变量的类型:
                本地变量: 指的是由用户来进行定义的变量
                环境变量:指的是由系统来存储核心数据的变量
                变量的定义:
                本地变量 变量名=变量值
                环境变量 export 变量名=变量值
                本地变量转环境变量 export 变量名(记住不要$)
        注意: 变量的名称应以字母或者下划线开头,不能以数字开头(不能以数字开头命名,不表示名字中不能包含数字)
                本地变量可以转成环境变量
        变量的引用:
                echo $变量名 输出变量
                echo ${变量名}
        变量的区别:        
本地变量和环境变量的作用域是不同的
本地变量只能在当前shell中有效,环境变量可以在当前shell以及子shell中生效
        取消变量:
                unset 变量名(不要$)
        系统关键变量:
                PATH变量存储的是系统中可执行文件的路径,也就是应用程序必须在该目录才可以作为命令执行
                PS1 提示符变量
                HOME 用户的家目录变量
        查询系统中的变量:
                set 查询本地变量(查函数)
                env 查询环境变量

七:系统别名

        系统别名:
        别名的作用的是为了简化用户的命令执行,用户可以将常用的命令定义为别名,通过执行命令的方式来达到执行命令地目的
        定义别名:
                alias 别名=’所要执行的命令’
                查看别名:alias 查看系统中已经生效的所有别名
                取消别名:unalias 别名
                转义字符: 是为了去掉字符的特殊意义
                \ 去掉斜杠后单个字符的特殊意义
                ‘ ’ 单引号,去掉引号内所有字符的特殊意义(没有例外)
                “ ” 双引号,去掉引号内字符的特殊意义(有四个例外)其中 $ `` \ ! 这四种字符无法去掉特殊意义

八:用户登录的Shell

        用户的登录shell:
        用户不同的登录方式可以得到不同的shell操作环境;如果使用图形化登录和使用su切换,将会获取到不同的登录shell
        类型:
                登录shell:
                        图形化登录
                        字符界面登录(login登录指令)
                        切换用户(su - 登录到该用户)
                非登录shell:
                        打开虚拟终端控制台
                        执行脚本
                        su (仅切换到这个用户的身份,而不是以该用户登录操作系统)
        区别:
        登录shell 指的是该用户登录到了操作系统,而非登录shell,指的是该用户得到shell的操作环境,区别在于登录shell和非登录shell所触发的shell的文件是不同的
        登录shell触发的文件:
                /etc/brashc 全局文件 对于所有的用户生效
                /etc/profile 全局文件 对于所有的用户生效
                ~username/.bashrc 用户文件
                ~uaername/.bash_profile 用户文件
        非登录shell只会触发:
                /etc/bashrc
                ~username/.bashrc
        定义方式:
                /etc/bashrc
        将变量或者别名定义在该文件中,则系统所有用户生效无论是登录shell还是非登录shell均有效
                ~/.bashrc
        会对该用户的登录shell和非登录shell均生效
        shell文件的加载顺序?
先加载全局的文件,再加载用户的文件
        既然用户有登录shell,那是否有登出shell?
.bash_logout 用户登出触发的文件
  • 41
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值