赞
踩
1.环境变量的值由用户决定,和Windows的用户环境变量一样,即使用户qpyue使用su切换root用户,echo USER依旧是以前的用户名称(qpyue),环境变量的值依旧不变。(除了HOME)
2.即使两个qpyue用户同时登录,他们的环境变量都会重新从配置文件刷新,单独存储,所以环境变量的值互不影响(在两个bash程序存在过程中,任意一方环境变化不影响另一方)
1)按生效的范围分类
系统环境变量:公共的,对全部的用户都生效。
用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。
2)按生存周期的分类
永久环境变量:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
临时环境变量:使用时在shell中临时定义,退出 shell后失效。
功能和作用:可执行程序的搜索目录,可执行程序包括Linux系统命令和用户的应用程序。如果可执行程序的目录不在PATH指定的目录中,执行时需要指定目录。
书写格式:PATH环境变量存放的是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录。 export PATH=目录1:目录2:目录3:…目录n:.
添加格式
1、临时添加,PATH 在终端关闭后就会消失。
export PATH=$PATH:$HOME/bin 或 export PATH=$HOME/bin:$PATH
2、永久添加环境变量(影响当前用户)
vim ~/.bashrc
在文档最后,添加:
export PATH="/apps/summary_fz_province/cdc_model/bin/black_table:$PATH"
保存,退出,然后运行:
source /etc/profile
3、永久添加环境变量(影响所有用户)
vim /etc/profile
在文档最后,添加:
export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
保存,退出,然后运行:
source /etc/profile
文件名 | 说明 | 备注 |
---|---|---|
/etc/profile | 全局环境变量信息 | 系统和所有用户都生效 |
/etc/bashrc | 全局的bash信息,所有用户都生效 | |
$HOME/.bashrc | 当前用户的bash信息,用户登录时读取 | 定义别名、umask、函数等。 |
$HOME/.bash_profile | 当前用户的环境信息,用户登录时读取 | |
$HOME/.bash_logout | 当前用户退出当前shell时最后读取 | 定义用户退出时执行的程序等。 |
$HOME/.bash_history | 当前用户退出当前shell时最后读取 | history -w 保存历史记录 history -c 清空历史记录 |
此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从 /etc/profile.d 目录的配置文件中收集 shell 的设置。如果你有对 /etc/profile 有修改的话必须得手动执行 source /etc/profile ,修改才会生效,此修改对每个用户都生效。
/etc/profile 在每次启动时会执行 /etc/profile.d 下全部的脚本文件。
[wqf@b1i10 ~]$ ls /etc/profile.d
256term.csh abrt-console-notification.sh colorgrep.csh colorls.csh csh.local lang.csh less.csh PackageKit.sh vim.csh vte.sh which2.sh
256term.sh bash_completion.sh colorgrep.sh colorls.sh flatpak.sh lang.sh less.sh sh.local vim.sh which2.csh
为每一个运行终端的用户执行此文件。当终端被打开时,该文件被读取。如果你想对所有的使用终端的用户修改某个配置并在以后打开的终端都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个终端即可生效。
每个用户都可使用该文件输入专用于自己使用的 shell 信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的 ~/ .bashrc 文件。 此文件类似于 /etc/profile,也是需要手动执行 source ~/.profile,修改才会生效,/etc/profile 对所有用户生效,~/.profile 只对当前用户生效。
~/.bash_profile 或 ~/.bash_login 或 ~/.profile 文件 文件往往只存在一个,执行的顺序为:~/.bash_profile > ~/.bash_login > ~/.profile
[summary_fz_province@b1i10 ~]$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
---
当用户登录时以及每次打开新的Shell时该文件都将被读取。(每个用户都有一个 ~/.bashrc 文件,在用户目录下) 此文件类似于 /etc/bashrc,不需要重启就可以生效,重新打开一个 bash 即可生效,/etc/bashrc 对所有用户新打开的 bash 都生效,但 ~/.bashrc 只对当前用户新打开的 bash 生效。不推荐在里面配置用户专用的环境变量,因为每开一个Shell,该文件都会被读取一次,效率肯定受影响。
在登录Linux时要执行文件的过程如下:
1、在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,
2、然后启动用户目录下的”~/.bash_profile”,如果”~/.bash_login”和”~/.profile”文件存在的时候。执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。
执行顺序为: /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
/etc/profile是全局性的功能,其中设置的变量作用于所有用户,~/.bash_profile中设置的变量能继承/etc/profile中的变量并作用于用户。
~/.bash_profile 是交互式、login 方式进入 bash 运行的;~/.bashrc 是交互式 non-login 方式进入 bash 运行的。
参考文章:
https://www.cnblogs.com/gmq-sh/p/6971588.html
https://blog.csdn.net/weixin_48896613/article/details/127170565
https://blog.csdn.net/mayue_web/article/details/97023615
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。