Linux上环境变量设置
文章目录
- 区别
- 读取环境设定步骤
-
- /etc/和~/.区别
- ~/.profile与~/.bashrc的区别
在Linux系统中进行安装后,在启动时可能需要输入其名称。然而,在每次运行程序之前都需要进入安装目标目录以查找并执行这些可执行文件会非常麻烦。这与设置路径变量有关的问题,并且路径设置也是配置环境变量的一部分。
环境变量配置的两个方法:
1)修改/etc/profile文件
推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,缺点:是可能会给系统带来安全性问题。 这里是针对所有的用户的,所有的shell;
[root@test ~]# vim /etc/profile
....
export PATH=$PATH:/usr/local/mysql/bin
使用source命令使修改立刻生效:
[root@test ~]# source /etc/profile
2)修改.bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户,如果需要给某个用户权限
使用这些环境变量,只需要修改其个人用户主目录下的.bashrc文件就可以了。
[root@test ~]# vim /root/.bashrc
export PATH=$PATH:/usr/local/mysql/bin
[root@test ~]# source /root/.bashrc
必须注意的是:当配置系统环境变量时,在/etc/profile文件中设置路径时,请确保路径末尾不使用斜杠符号;否则会导致整个PATH变量配置出现问题。
区别
/etc/profile
/etc/paths
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc
其中等/profile 和等/paths 是系统级配置项,在系统开机时就会被加载。其余的部分属于当前用户的配置环境变量。接下来的三个会按照从前到后的顺序读取配置信息:如果在 ~/.bash_profile 文件中存在设置,则前面提到的三个会被忽略;反之,则会继续读取后续的配置文件。值得注意的是,在处理这些配置时应遵循优先级原则:若 ~/.bash_profile 文件存在,则后面的三个会被忽略;反之,则会继续读取后续的配置文件。而 ~/.bashrc 没有这样的规则,在启动 Bash shell 时会被加载。
/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中的变量,他们是"父子"关系.
读取环境设定步骤
当登入系统时候获得一个shell进程时,其读取环境设定有以下三步 :
首先加载的是全局环境变量配置文件/etc/profile(该文件是所有用户登录时都会被加载运行的一组系统环境变量配置),接着基于其中设置获取其他相关配置信息,并提供相应的补充设置路径如/etc/profile.d和/etc/inputrc等
接着根据不同用户的账号访问其主目录($HOME),随后依次检查配置文件路径:首先查看~/.bash_profile;若无法找到,则检查配置文件路径(/.bash_login);若仍然不存在,则转而检查(/.profile)。这些配置文件的设置大体一致 但存在优先级排序。
然后再根据用户帐号读取~/.bashrc
/etc/和~/.区别
/{\tt etc/profile} 和 /{\tt etc/bashrc} 位于系统的全局环境变量配置。
/{\tt ~.profile} 和 /{\tt ~.bashrc} 则用于配置用户的个人环境变量。
/.profile与/.bashrc的区别
所有这些配置文件均支持个性化配置设置。
~/.profile主要用于为当前用户指定专用路径和环境变量,并且仅在登录时被调用一次。
~/.bashrc同样属于特定用户的配置文件类型,在处理脚本时会被调用一次以设置相关的参数和变量。
