我是靠谱客的博主 发嗲路灯,最近开发中收集的这篇文章主要介绍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
# . 配置文件

最后

以上就是发嗲路灯为你收集整理的Shell环境变量配置文件的全部内容,希望文章能够帮你解决Shell环境变量配置文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部