linux环境变量设置方法

一、概述

linux系统的用户权限分为超级用户(root)和普通用户,环境变量对应系统级环境变量和用户级环境变量。

二、系统级环境变量

2.1、/etc/profile

此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
这个文件中的环境变量对所有用户有效,包括普通用户和超级用户,但是这个文件通常在重启后并不自动加载,而是需要使用source命令启动。因为我们第一次登录时,通常是以普通用户登录的,并非超级用户。

source /etc/profile
echo $PATH

在这个文件中我们可以使用export来导入环境变量:

export PATH=/toolchain/hcc_riscv32/bin:$PATH

2.2、/etc/bash.bashrc

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

2.3、/etc/environment

在系统启动时运行,用于配置与系统运行相关但与用户无关的环境变量,修改该文件配置的环境变量将影响全局。
它的格式如下:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

  • 注意:这个文件的修改可能会引起一些莫名其妙的问题,比如如果使用export在此处定义环境变量会出现反复登录界面。

2.4、总结

  • /etc/profile文件只在用户登录的时候读取一次,它对所有的shell有效;
  • /bash.bashrc会在每次运行Shell的时候读取一次,它只对当前shell有效。
  • shell的种类有很对,bash只是其中的一种,不同的shell依赖的环境变量不同,/bash.bashrc只针对bash;
  • /etc/environment针对整个linux系统,与用户和shell无关,它在linux系统启动后自动加载;

三、用户级

3.1、~/.profile

普通用户登录时执行,由于系统登录时默认是普通用户,所以该文件在重启后自动生效。更改这个文件,也可以使用source命令使其立即生效。

3.2、~/.bashrc

当普通用户每次打开shell时加载,修改这个文件会影响shell的加载效率,因为每一次打开shell都要加载一次bashrc。

3.3、~/.bash_profile 或 ~./bash_login

这两个文件,如果有其中的一个文件存在的话, 当启动的是一个 登录shell时,Bash 会执行该文件而不会执行~/.profile ;
如果两个文件都存在的话,Bash 将会优先执行~/.bash_profile 而不是~/.bash_login ;

3.4、~/.bash_logout

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

四、环境变量执行顺序

==> /etc/environment
==> /etc/profile
==> ~/.bash_profile | ~/.bash_login | ~/.profile
==> ~/.bashrc
==> /etc/bashrc
==> ~/.bash_logout

猜你喜欢

转载自blog.csdn.net/weixin_39270987/article/details/123181105