Linux 环境下/etc/profile和/etc/profile.d 的区别和用法


1. 两个文件都是设置文件的,/etc/profile是永久性的,是全局变量,/etc/profile.d/设置所有用户生效。

2. /etc/profile.d/比/etc/profile好维护,不想要什么变量直接删除/etc/profile.d/下对应的即可,不用像/etc/profile需要改动此文件。



CentOS 中每个用户都要指定各自的,其中包括可执行的 path路径,这些路径决定了每个用户在执行时的命令工具。 

一般情况下,可以再每个用户的环境变量里设定各自的 path变量值,然后再执行export PATH使其生效,但如果用户比较多,安装命令工具也原来越多,且出来本身用户可以执行这些工具,root用户或其他用户也可以执行命令,这时在每个用户环境变量里添加就比较复杂了。

所以可以用另外一种方法:

可以再 /etc/profile.d/ 目录下创建一个 path.sh 脚本,脚本内容如下:

例子:
#cd /etc/profile.d

#vim mysql.sh,在里面添加如下内容:

#!/bin/bash

export PATG\H=$PATH:/usr/local/mysql/bin

保存退出!

#source !$

  • 可以将需要各个用户需要执行的命令路径都写在该命令中,这样每次启动后,会自动执行path.sh脚本,将所有的环境变量生效,让各个用户都可以直接执行各自的命令。
    
    以后安装了新软件后,只需要将软件相关路径加入 /etc/profile.d/path.sh 脚本中,不需要再多个地方重复添加,使脚本生效后,各个用户都可以使用了。