【Linux笔记】Linux环境变量

bash shell用一个叫作环境变量(environment variable)的特性来存储有关shell会话和工作环境的信息。这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们。这也是存储持久数据的一种简便方法。
在bash shell中,环境变量分为两类:

  • 全局变量:全局环境变量对于shell会话和所有生成的子shell都是可见的。
  • 局部变量:局部变量则只对创建它们的shell可见。

1 查看环境变量

  • printenv查看全局变量
    • 后跟环境变量名,可查看个别环境变量的值。例:printenv HOME
  • env查看全局变量(envprintenv没有的功能)
  • 引用某个环境变量的值,在变量前面加$
    • echo $HOME使用echo显示变量值
    • ls $HOME变量作为命令行参数
  • set显示所有环境变量,包括局部变量、全局变量以及用户定义变量

2 设置环境变量

  • 规范:局部变量使用小写字母命名,全局变量使用大写字母命名
  • my_variable=Hello创建局部变量
    • 等号两边不能有空格
    • 变量名只能由英、数字以及下划线组成,而且不能以数字开头
    • my_variable="Hello World"当变量内容带有特殊字符时(例如空格),需要加上单引号,内容中带有单引号用双引号
  • export my_variable创建全局变量
    • 子shell中对全局变量的修改,不会反映到父shell中
  • unset my_variable删除环境变量
    • 子shell中对全局变量的删除,不会反映到父shell中
  • bash shell有一些默认的系统环境变量,这些变量已经定义好了(但不一定有值)
    • 例:HOME PATH BASH_ENV BASH_VERSINFO
  • PATH环境变量定义了用于进行命令和程序查找的目录(使用外部命令时,shell必须搜索系统来找到对应的程序)
    • PATH中多个目录由:分隔
    • PATH=$PATH:/home/christine/Scripts在原有的PATH中继续增加目录
  • 以上方法对环境变量的修改只能持续到退出或重启系统

3 持久化环境变量

  • 启动shell的三种方式
    1. 登录时作为默认登录shell
    2. 作为非登录shell的交互式shell
    3. 作为运行脚本的非交互shell
  • 登录shell
    1. /etc/profilebash shell默认主启动文件(登录系统时,执行该文件中命令)
    • 导出了一些系统环境变量
    • 遍历执行/etc/profile.d中所有sh文件(一种环境变量持久化思路,不推荐直接改主启动文件)
    1. 根据登录的用户来决定的启动文件(在用户的HOME目录下)
    • $HOME~的作用一样,表示当前用户的主目录
    • shell会按照按照下列顺序,运行第一个被找到的文件,余下的则被忽略
      1. .bash_profile
      2. .bash_login
      3. .profile
    • 以上文件一般会间接调用.bashrc文件
  • 交互式shell进程,执行.bashrc文件
    • 执行/etc/bashrc文件
    • 为用户提供一个定制自己的命令别名和私有脚本函数的地方。
  • 非交互式shell,检查BASH_ENV环境变量,该环境变量指定了启动时要执行的文件

4 数组变量

  • mytest=(one two three four five)定义一个数组变量
  • echo $mytest只会展示数组变量的第一个值
  • echo ${mytest[2]}展示数组变量索引是2的值(从0开始)
  • echo ${mytest[*]}展示整个数组
  • mytest[2]=seven改变某个索引的值
  • unset mytest[2]删除某个索引的值(删除后那个位置上的值是空的,但是还在)
  • unset mytest删除整个数组
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值