首页 » 系统工具 » 正文

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

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

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

用法:

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

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

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

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

例子:
用代码格式表示内容如下:
# cat /etc/profile.d/path.sh

export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/php/sbin:/usr/local/mysql/bin:/usr/local/redis/bin:/usr/local/daemontools/bin:/usr/local/daemontools/sbin:/usr/local/percona-xtrabackup/bin"

可以将需要各个用户需要执行的命令路径都写在该命令中,这样每次操作系统其中后,会自动执行path.sh脚本,将所有的环境变量生效,让各个用户都可以直接执行各自的命令。

以后安装了新软件后,只需要将软件相关路径加入 /etc/profile.d/path.sh 脚本中,不需要再多个地方重复添加,使脚本生效后,各个用户都可以使用了。

发表评论