• Shell:环境变量深入


    全局配置文件/etc/profile

    当前用户进入shell环境初始化的时候会加载全局配置文件/etc/profile里面的环境变量,供给所有的Shell程序使用。

    以后只要是所有Shell程序或命令使用的变量,就可以定义在这个文件中

    创建环境变量步骤

    1.编辑全局配置文件

    export var=val
    

    2.使修改生效

    source /etc/profile
    

    3.在Shell环境中就可以读取到环境变量了

    shell工作环境

    shell工作环境介绍

    用户登录系统时,Shell为用户定义了工作环境,工作环境提供了共享数据环境变量,比如shell解析器类型、主机名等,这些数据存储在环境变量中,便于shell脚本程序操作使用

    shell工作环境分类

    交互式与非交互式shell

    交互式Shell

    是shell的一种运行模式,交互式shell等待你输入命令,并且立即执行,然后将结果反馈给你。这是每个CLI用户都非常熟悉的流程:登录、执行一些命令、登出。当你登出后,这个shell就终止了。

    非交互式Shell

    是shell的另一种运行模式,它专门被用来执行预先设定的命令。在这种模式下,shell不与用户进行交互,而是读取存放在脚本文件中的命令并执行它们。当它读到文件的结尾,这个shell就终止了。

    登录Shell与非登录Shell环境

    类型名称 含义
    shell登录环境 需要用户名、密码登录之后才能进入的shell
    shell非登录环境 直接不用输入用户名和密码就可以打开的shell
    或调用子Shell时使用的工作环境

    注意:不同的工作环境加载环境变量流程不一样

    这里/etc/passwd文件中以nologin结尾的用户就是不需要登陆的shell环境

    image-20210511135221514

    环境变量初始化流程

    image-20210511133945500

    登陆环境执行语法

    Shell登陆环境执行脚本文件语法

    # 先加载shell登录环境变量, 然后再执行脚本文件
    bash -l 脚本文件 或  bash --login 脚本文件 
    sh -l 脚本文件  或 sh --login 脚本文件
    

    Shell非登陆环境执行脚本文件语法

    bash 脚本文件  / sh 脚本文件  #执行脚本
    

    识别Shell环境类型

    使用$0识别环境语法

    echo $0
    

    输出 -bash 代表:shell登录环境

    输出 bash 代表: shell非登录环境

    注意:这个 $0 环境变量如果用在子shell中(shell脚本文件)输出Shell脚本本身的文件名

    bash命令语法

    bash
    

    bash命令:用于切换为Shell非登录环境

    image-20210511140119998

    image-20210511140301530

    logout命令语法

    logout
    

    logout命令: 用于退出Shell登录环境

    exit命令语法

    exit
    

    exit命令: 用于退出Shell登录或非登录环境

    logout 只能退出Shell登录环境

    exit 可以退出Shell登录与非登录环境

  • 相关阅读:
    自定义滚动条mCustomScrollbar
    怒怼外媒,为中国正名,这个《流浪地球》捧红的犹太小哥太励志了
    Memcached部署和用法
    SpringMVC中向服务器传递时间参数时出现的问题
    spring4 mvc 出错
    【转】ContextLoaderListener 和 DispatcherServlet
    【转】Myeclipse建立Maven项目
    【转】Docker 常用命令
    docker push到本地仓库失败
    转:Docker学习---挂载本地目录
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/14755032.html
Copyright © 2020-2023  润新知