Linux 中 ~/.bashrc、/etc/profile、etc/bashrc 的区别

/etc/profile#

其实看名字就能了解大概了, profile 是某个用户唯一的用来设置环境变量的地方, 因为用户可以有多个 shell 比如 bash, sh, zsh 之类的, 但像环境变量这种其实只需要在统一的一个地方初始化就可以了, 而这就是 profile.

当用户第一次登录时,该文件被执行。也就是说这个文件对每个用户都有效,用于获取系统的环境信息。

~/.bashrc#

该文件存储的是专属于个人bash shell的信息,只对当前登录的用户有效。当登录时以及每次打开一个新的shell时,执行这个文件。在这个文件里可以自定义用户专属的个人信息(比如环境变量)。

/etc/bashrc#

为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运行这个文件。

bashrc在Ubuntu下叫做bash.bashrc。bashrc 也是看名字就知道, 是专门用来给 bash 做初始化的比如用来初始化 bash 的设置, bash 的代码补全, bash 的别名, bash 的颜色. 以此类推也就还会有 shrc, zshrc 这样的文件存在了, 只是 bash 太常用了而已。

相关文件的读取顺序#

在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。

如果 ~/.bash_profile 文件存在的话,一般还会执行 ~/.bashrc文件。因为一般在  ~/.bash_profile 中会使用 . ~/.bash_profile 执行 .bashrc。

 

来源:/etc/profile,/etc/bashrc与~/.bashrc的区别及联系 - 知乎 (zhihu.com)

posted @   拾月凄辰  阅读(711)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示
主题色彩