# What is the /etc/profile.d/ Directory

什么是 /etc/profile.d/ 目录 ?

/etc/profile.d/ 目录是 Linux 系统不可或缺的一部分保留配置脚本。它与 /etc/profile 文件相关联,这是一个启动脚本,该脚本在新的 shell 会话开始时初始化环境,为用户设置环境变量。

/etc/profile.d/ 如何工作 ?

在启动期间,/etc/profile 脚本是用于登录 shell 的(那些需要身份验证的会话,例如终端登录,SSH 登录),/etc/profile.d 目录中的脚本也会执行,它允许运行目录中的脚本,而无需修改 /etc/profile 文件,从而促进了更加模块化和可管理的方法。

/etc/profile.d/ 实际用途

以下是 /etc/profile.d/ 目录的一些实际用途:

(1) Environment Variables

/etc/profile.d/ 最常见用途是设置环境变量。这些可能是 PATH 变量,用于在命令搜索中包含其他目录路径或特定于应用程序的变量。例如,对于 Java 应用程序,您可能会设置 JAVA_HOME 指定 Java 安装目录。

vim /etc/profile.d/jdk.sh

添加环境变量,如下所示

export PATH=$PATH:/usr/lib/jvm/java-17-oracle/bin:/usr/lib/jvm/java-17-oracle/db/bin
export JAVA_HOME=/usr/lib/jvm/java-17-oracle

(2) Application Startup

/etc/profile.d/ 目录中的脚本可在 Shell Session 启动期间启动某些应用程序或服务。

(3) System-Wide Aliases and Functions

您还可以在 /etc/profile.d/ 目录中定义系统范围的别名和功能脚本。

Customization and Modularity

/etc/profile.d/ 关键优点之一是,它允许您为新的程序和服务添加脚本,而无需触更改 /etc/profile文件,提供额外的模块化层。

Key Considerations

虽然 /etc/profile.d/ 目录用起来很香,但是任然需要注意几个地方:

(1) Login Shells

/etc/profile.d/ 目录中的脚本目录通常用于 login shell,它们在 non-login shell 环境时可能不工作。
例如:打开桌面中的新终端窗口会话。

(2) Order of Execution

/etc/profile.d/ 目录中的脚本按字母顺序运行,而不是按照他们添加的顺序运行。

(3) Script Permissions

确保 /etc/profile.d/ 目录中的脚本具有正确的权限,可由所需的用户执行。

我的开源项目

酷瓜云课堂-开源知识付费解决方案


鸠摩智首席音效师
475 声望9 粉丝

身强体健,龙精虎猛的活着。