Linux基础——Linux环境变量配置

Linux基础——Linux环境变量配置

  • 需要先了解的内容
  • Linux环境配置文件位置
  • Linux配置局部环境变量
    • 临时添加局部环境变量
      • 1. export指令集添加临时环境变量:
      • 2. source连接其他用户的环境变量:
    • 永久添加局部环境变量
      • 1. 修改~/.bashrc文件
      • 2. 修改~/.profile文件(有些系统是.bash_profile)
  • Linux配置全局环境变量
      • 1. ln链接文件
      • 2. /etc/bashrc(有些系统是bash.bashrc)配置文件
      • 3. /etc/profile配置文件
  • 参考文献

本文使用Linux系统配置

有图形化界面系统配置
运行环境:VMware workstation 15.x
系统版本:deepin15.11

无图形化界面系统配置
运行环境:Azure vm
系统版本:Centos 7.3

本文出现的错误或问题肯请大佬们积极发言,谢谢。

需要先了解的内容

Linux基础——Linux系统文件树

Linux环境配置文件位置

  • 显示当前系统环境变量信息可以通过export指令显示
  • 注意
    • /etc/profile,/home/xxx/.profile(有些系统是.bash_profile)只会在用户登陆时被加载,所以修改以后需要重启服务!!!
    • /etc/bashrc/,/home/xxx/.bashrc在每次启动终端的时候被执行,虽然直接修改bashrc文件会带来很多方便,但是配置环境路径的时候最好还是放进profile中,并重启,这样确保环境路径能被加载入系统中,减少错误的发生。
  • 因为环境配置文件分布的特点,本文将配置环境变量的方法分成2类
    • 配置局部环境变量
    • 配置全局环境变量

Linux配置局部环境变量

局部环境变量只能是当前用户有效,需要注意如果用户以普通用户的身份执行sudo su登入root用户时,改变的是root用户的环境变量,在退出root用户的时候自身账户不受任何影响,很多时候需要注意,这是多数环境配置出错的问题之源!!

临时添加局部环境变量

  • 临时环境变量特性:
    • 修改后起效时间:立即生效
    • 作用周期:当前终端关闭前如果是服务器远程调用的话,不重启服务的话可以长期有效。

1. export指令集添加临时环境变量:

#这里以添加nodejs到系统环境中为例,nodejs版本为12.15.0
export PATH=/usr/local/node-v12.15.0-linux-x64/bin/:$PATH


在配置文件中也是通过export指令将文件加入环境中,不过配置文件中的export指令会在每次启动终端的时候自动执行,而单独在终端中执行export指令时无法将当前指令效果保存到终端关闭,所以只是临时性的。

2. source连接其他用户的环境变量:

这里许多博客中都将source理解为更新配置文件的指令,但其实source真正的功能并不仅仅时是更新文件。source指令会将路径文件中的全部指令都执行一遍,因此有效期仅仅是在当前终端关闭前,如果是修改了配置文件,并且还想要下次开启终端时环境还保留,最稳妥的方法是重启一下系统。(如果是服务器可以不用重启,但是注意账户控制范围。)

永久添加局部环境变量

1. 修改~/.bashrc文件

个人建议此文件中添加方法或者是指令别名,环境路径什么的放在profile中

通过阅读bashrc源码不难发现,用户的bashrc中自动将/etc/bashrc添加入系统环境中

# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

2. 修改~/.profile文件(有些系统是.bash_profile)

个人建议此文件中添加环境路径,指令别名或者方法放入bashrc中
修改完profile后需要重新启动才能加载完配置,如果是服务器不方便重启维护的话,可以临时用source指令加载profile文件
这里以在配置文件中添加nodejs环境为例,不要忘记改完重启系统

Linux配置全局环境变量

1. ln链接文件

需要管理员权限!

  • ln指令可以理解为windows中创建的快捷方式,如果需要加入环境的软件很少,可以通过ln在/usr/local/bin中创建对软件的软链接。

2. /etc/bashrc(有些系统是bash.bashrc)配置文件

需要管理员权限!

  • bashrc是在终端每次加载的时候就会被执行,所以修改bashrc无需重启服务器,但是在bashrc的源码注释中,建议此文件存放函数和别名,如果需要添加环境路径请存放在/etc/profile中
# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

# are we an interactive shell?

3. /etc/profile配置文件

需要管理员权限!

  • profile文件只在用户登陆时被加载因此修改profile后需要重新启动服务器。
  • 不过可以通过source指令临时将profile文件添加入环境中,但是需要注意的是,虽然修改的是全局的profile文件,但是source指令只会在当前用户生效,所以如果希望所有用户生效最好是重新启动服务器

    如果想通过source临时让指令生效,需要让你想要生效的用户都执行source /etc/profile
  • 通过解读profile可以发现,作者希望profile中存放的是环境路径,如果想添加别名或方法,请修改 /etc/bashrc文件
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

参考文献

Linux 中的 bash_profile,bashrc 以及 profile 联系与区别
Linux下source命令详解
linux添加环境变量
Linux ln命令

你可能感兴趣的:(Linux,linux,服务器,centos,ubuntu)