首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该从哪里获得/usr/local /etc/profile?.bash_profile还是/etc/profile?

我应该从哪里获得/usr/local /etc/profile?.bash_profile还是/etc/profile?
EN

Unix & Linux用户
提问于 2021-12-09 09:50:26
回答 2查看 464关注 0票数 0

我知道,默认情况下,bash将源/etc/profile~/.bash_profile

现在,假设我在/usr/local/etc/profile中也有特定于机器的配置文件命令(涉及/usr/local中的内容,因此我不想用它来玷污/etc )。

我的问题是:/usr/local/etc/profile的来源是谁的责任?它是在~/.bash_profile中提供的,还是行:

代码语言:javascript
复制
if [ -f /usr/local/etc/profile ]; then
    . /usr/local/etc/profile
fi

实际上应该在/etc/profile中,因为它们对于任何发行版的安装都是有效的,而不管实际机器上的是什么?

EN

回答 2

Unix & Linux用户

发布于 2021-12-09 10:28:11

通常,将机器特定的登录时间初始化的正确位置是/etc/profile.无论如何,许多Unix变体对/usr/local/etc并没有多大的影响。

请注意,对于GUI登录,不直接读取profile文件。然而,许多X11发行版都安排从X会话初始化中读取源/etc/profile/usr/local/etc/profile并不是一个经典的位置,也不会有任何来源。

许多发行版都有一个目录/etc/profile.d,并将代码放在/etc/profile中以在/etc/profile.d中源文件。如果您的发行版这样做,您的机器特定内容的最佳位置将是/etc/profile.d中的一个特定于机器的文件。

在现代*BSD上,/usr/local用于打包软件,而不是本地安装,/usr/local/etc用于随包或其配置一起提供的文件。/etc/usr/local/etc的区别在于配置是针对基本系统还是针对特定的程序。/etc/profile是一种系统范围的配置--如果登录shell是第三方包,那么它的配置应该在/usr/local/etc中,但是profile不是特定于给定的shell,而是应用于作为基本系统一部分的/bin/sh。(FreeBSD似乎不一致: bash包读取/usr/local/etc/profile,而zsh包读取/etc/zprofile。)

如果您(作为管理员)将其留给用户从他们的.profile中获取另一个文件,这意味着该文件中的自定义并不是针对每个人的,只针对有特殊需要的用户。

票数 1
EN

Unix & Linux用户

发布于 2021-12-09 10:29:29

谁的责任是来源/usr/local/etc/profile

如果所有用户都可以使用它,那么可以从/etc/profile中获取它。将您已经提到的行添加到/etc/profile

代码语言:javascript
复制
[ -f /usr/local/etc/profile ] && source /usr/local/etc/profile
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/680779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档