Shell环境变量配置文件

环境变量

环境变量的作用是定义每个用户的操作环境,能够让我们快速访问某些程序或文件,省去了每次给出完整路径名的麻烦。

环境变量配置文件简介

当我们想添加自定义环境变量,并希望它永久生效,那么就需要将它写入到环境变量的配置文件中,Linux中的环境变量配置文件有下面5个,根据它们的作用范围分为两种,一种是针对整个系统,一种是针对单个用户。

  • /etc/profile
  • /etc/profile.d/*.sh
  • /etc/bashrc
  • ~/.bashrc
  • ~/.bash_profile

上面的5个文件中,前三个对所有用户起作用,后两个,只对当前用户有效。

环境变量配置文件的加载过程

这里写图片描述

正常登录的情况下,配置文件的加载顺序如下:

"/ect/profile"->"/etc/profile.d/*sh"->"~/bash_profile"->"~/.bashrc"->"/etc/bashrc"

如果从root用户切换到其他用户时,因为并不需要输入用户密码,它的配置文件加载过程如下,它之会重新加载与当前用户相关的配置文件:

"/etc/bashrc"->"/etc/profild.d/*sh"

打开文件“/etc/profile”,内容如下(我使用的是Ubuntu 16.04)

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

可以看到文件中会执行一个循环操作,只要文件可读并存在调用/etc/profile.d目录下的所有.sh文件。其它的原理是一样的。

环境变量的声明方法

环境变量的声明方式如下。

//等号两边不要有空格
export 变量名='变量内容(一般是目录)'

如果想将自己变量的内容附加到另一个变量上,可以像下面这样

//等号两边不要有空格
export 变量名1=变量名1:变量名2

当修改好配置文件后,注销并重新登录就可以起作用了,因为登录时会重新加载配置文件的。也可以通过下面的命令来主动加载配置文件,避免重新登录的麻烦。

# source 配置文件
// or
# . 配置文件
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值