美文网首页
Ubuntu 环境变量介绍和加载过程

Ubuntu 环境变量介绍和加载过程

作者: 木猫尾巴 | 来源:发表于2019-04-01 17:05 被阅读0次

查看当前环境变量

echo ${PATH}
# 换行查看
echo -e ${PATH//:/'\n'}

加载流程

注意: 这里的加载流程是 ubuntu 在 bash 下的过程,如果为 zsh 或者 fish 请查看官方文档

用户登录后加载profile和bashrc的流程


# 系统级
/etc/environment
# 无用户级
/etc/profile  -> /bin/sh -> /etc/bash.bashrc
    -> /etc/profile.d/*.sh
# 用户级
$HOME/.profile-> $HOME/.env -> $HOME/.bash_profile -> $HOME/.bashrc
    -> /etc/bashrc

系统启动时shell读取的顺序

/etc/profile ->/etc/enviroment -->$HOME/.profile -->$HOME/.env

环境变量控制文件介绍

环境变量默认值

如果是超级用户登录,在没有执行/etc/profile之前,PATH已经设定了下面的路径,作为环境变量

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

如果是普通用户,PATH在/etc/profile执行之前设定了以下的路径,作为环境变量

/usr/local/bin:/bin:/usr/bin

全局环境变量

全局环境变量设置 /etc/environment
/etc/environment 是设置整个系统的环境
/etc/profile 是设置所有用户的环境

environment 与登录用户无关,profile 与登录用户有关

/etc/environment 配置例子

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
http_proxy="http://127.0.0.1:1080/"
https_proxy="https://127.0.0.1:1080/"
socks_proxy="socks://127.0.0.1:1080/"

系统/etc/profile

  • /etc/profile
    此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
    并从 /etc/profile.d 目录的配置文件中搜集shell的设置

全局/etc/bashrc

为每一个运行bash shell的用户执行此文件
当bash shell被打开时,该文件被读取

用户~/.bash_profile

每个用户都可使用该文件输入专用于自己使用的shell信息
当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件

用户~/.bashrc

该文件包含专用于你的 bash shell 的bash信息

当登录时以及每次打开新的shell时,该该文件被读取

用户~/.bash_logout

当每次退出系统(退出bash shell)时,执行该文件.

另外 /etc/profile 中设定的变量(全局)的可以作用于任何用户

而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量 他们是 父子关系

环境变量文件运行方式

~/.bash_profile 是交互式 login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者

相关文章

网友评论

      本文标题:Ubuntu 环境变量介绍和加载过程

      本文链接:https://www.haomeiwen.com/subject/ybzvbqtx.html