Linux环境变量配置利器 - /etc/profile与/etc/profile.d

在Linux系统中,环境变量的配置是常见的操作。而在进行系统安装时,我们经常需要修改环境变量,其中最常见的文件就是/etc/profile。然而,相似的文件还有一个/etc/profile.d/,这两者有何区别呢?
/etc/profile文件与系统环境相关,涉及的是全局变量,修改后对所有用户生效。当一个用户登录或使用su -命令切换到另一个用户时,Login shell会运行/etc/profile脚本。一些重要的变量,如PATHUSERLOGNAME等,都是在该脚本中设置的。需要注意的是,只有Login shell启动时才会调用/etc/profile脚本,而Non-login shell则不会调用它。此外,在/home/user/.bashrc文件中设置的变量只对当前用户有用。
而/etc/profile.d/目录下存放的则是一些应用程序所需的启动脚本,包括颜色、语言、less、vim及which等命令的一些附加设置。这些脚本文件之所以能够被自动执行,是因为/etc/profile中使用了for循环来调用这些脚本。因此,如果您在/etc/profile.d/路径下新建脚本,则必须遵循该脚本中定义的环境变量。
除了以上内容,还需要注意以下几点:
1. /etc/profile会优先执行/etc/profile.d/目录下的所有*.sh文件。 
2. 如果要使环境变量生效,需要使用source /etc/profile或./profile命令执行/etc/profile文件,并且不能使用sh /etc/profile命令,因为sh会在子shell进程中执行,导致变量无法反应到当前环境中。 
3. export相当于导出变量,使其在当前shell进程中可用。如果希望下载软件后不加入路径就能启动该程序,必须将可执行程序的路径加入PATH中。


首先,/etc/profile文件与系统环境相关,涉及的是全局变量,修改后对所有用户生效。当一个用户登录或使用su -命令切换到另一个用户时,Login shell会运行/etc/profile脚本。一些重要的变量,如PATHUSERLOGNAME等,都是在该脚本中设置的。
需要注意的是,只有Login shell启动时才会调用/etc/profile脚本,而Non-login shell则不会调用它。此外,在/home/user/.bashrc文件中设置的变量只对当前用户有用。
而/etc/profile.d/目录下存放的则是一些应用程序所需的启动脚本,包括颜色、语言、less、vim及which等命令的一些附加设置。这些脚本文件之所以能够被自动执行,是因为/etc/profile中使用了for循环来调用这些脚本。因此,如果您在/etc/profile.d/路径下新建脚本,则必须遵循该脚本中定义的环境变量。
除了以上内容,还需要注意以下几点:
/etc/profile会优先执行/etc/profile.d/目录下的所有*.sh文件。
如果要使环境变量生效,需要使用source /etc/profile或./profile命令执行/etc/profile文件,并且不能使用sh /etc/profile命令,因为sh会在子shell进程中执行,导致变量无法反应到当前环境中。
export相当于导出变量,使其在当前shell进程中可用。如果希望下载软件后不加入路径就能启动该程序,必须将可执行程序的路径加入PATH中。
总之,了解/etc/profile和/etc/profile.d/的区别以及它们的作用,对于Linux系统的管理和开发是非常有帮助的。标题:Linux环境变量配置利器 - /etc/profile.d
Linux系统提供了许多设置环境变量的机制,其中/etc/profile.d目录是一个非常有用的工具。它所包含的脚本可以在用户登陆时自动执行,从而设置环境变量。
许多软件包的安装程序会向/etc/profile.d目录添加设置环境变量的脚本。比如JDK的安装程序就会添加jdk.sh脚本,用来设置JAVA_HOME,PATH等与Java相关的环境变量。
这样做的好处是,无需每个用户手动设置这些环境变量,系统内的所有用户登陆后这些变量就自动生效,大大简化了环境配置的步骤。
jdk.sh脚本是一个典型的例子。它可能包含类似如下的代码:
bash
export JAVA_HOME=/usr/lib/jdk1.8.0_191 
export PATH=$JAVA_HOME/bin:$PATH
将JDK的安装路径添加到JAVA_HOME变量,并将JDK的bin目录添加到PATH变量。这样,所有用户就可以直接使用java,javac等命令,无需知道具体的安装路径。
总之,/etc/profile.d目录是一项简单高效的机制,通过它 we 可以轻松为整个系统设置环境变量。理解并熟练使用它,可以省去不少环境配置的麻烦。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值