转自:https://blog.csdn.net/weixin_39973810/article/details/137281970
在Linux世界中,理解各种shell配置文件如.bashrc、.bash_profile和.profile的作用和区别对于有效地管理和定制你的命令行环境至关重要。许多用户经常对这些文件的功能和使用场景感到困惑。本文旨在详细解释这些配置文件的差异、作用以及它们的正确使用方法。
1、.bashrc:交互式非登录Shell的配置文件
1.1、什么是.bashrc?
bashrc 文件用于配置函数或别名。bashrc 文件有两种级别:
- 系统级:位于
/etc/bashrc
,对所有用户生效。 - 用户级:位于
~/.bashrc
,仅对当前用户生效
bashrc 文件只会对指定的 shell 类型起作用,bashrc 只会被 bash shell 调用,用于交互式非登录shell会话。这意味着每次你打开一个新的终端窗口或标签页时,.bashrc中的配置就会被加载。
1.2、使用场景
.bashrc适用于那些需要频繁执行的配置,如:
- 设置shell别名和函数
- 定义环境变量,这些变量仅在当前用户的shell会话中有效
- 修改命令提示符
- 设置shell的查找路径($PATH)
示例:
在.bashrc文件中,你可能会有这样的内容:
alias ll='ls -la'
export PATH="$HOME/bin:$PATH"
这段代码为ls -la命令创建了一个别名ll,并将$HOME/bin目录添加到搜索路径中。
2、.bash_profile和.profile:登录Shell的配置文件
2.1、什么是.bash_profile和.profile?
profile,路径:/etc/profile
,用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户生效。
当用户登录(login)时,文件会被执行,并从/etc/profile.d
目录的配置文件中查找shell设置。
一般不建议在/etc/profile
文件中添加环境变量,因为在这个文件中添加的设置会对所有用户起作用。
.bash_profile只对单一用户有效,文件存储位于~/.bash_profile
,该文件是一个用户级的设置,可以理解为某一个用户的 profile 目录下。
这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。
和 profile 文件类似,bash_profile 也会在用户登录(login)时生效,也可以用于设置环境变理。
但与 profile 不同,bash_profile 只会对当前用户生效。
.bash_profile(对于Bash shell)和.profile(对于其他sh兼容shell)是在登录shell会话开始时加载的配置文件。当你通过图形界面登录、通过SSH远程连接到系统或通过终端登录时,这些文件中的设置就会生效。
2.2、使用场景
这些文件通常包含:
- 环境变量的设置,这些变量在整个登录会话中都有效
- 启动必要的应用程序
- 读取其他配置文件,如.bashrc
示例:
在.bash_profile或.profile文件中,你可以添加代码来加载.bashrc:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
这确保了即使在登录shell中,.bashrc的配置也能被应用。
3、区别和选择
这三种文件类型的差异用一句话表述就是:
/etc/profile
,/etc/bashrc
是系统全局环境变量设定;
~/.profile
,~/.bashrc
用户家目录下的私有环境变量设定。
当登入系统时候获得一个 shell 进程时,其读取环境设定档如下:
- 首先读入全局环境变量设定档
/etc/profile
,然后根据其内容读取额外的设定的文档,如/etc/profile.d
和/etc/inputrc
; - 根据不同使用者帐号,于其家目录内读取
~/.bash_profile
; - 读取失败则会读取
~/.bash_login
; - 再次失败则读取
~/.profile
(这三个文档设定基本上无差别,仅读取上有优先关系); - 最后,根据用户帐号读取
~/.bashrc
。
至于~/.profile
与~/.bashrc
都具有个性化定制功能,但~/.profile
可以设定本用户专有的路径、环境变量等,它只能登入的时候执行一次。
~/.bashrc
也是某用户专有设定文档,可以设定路径、命令别名,每次 shell script 的执行都会使用它一次。
3.1、交互式非登录vs登录Shell
.bashrc适用于每次打开新终端时的交互式非登录shell。
.bash_profile和.profile适用于开始一个新的登录shell会话。
3.2、加载频率
- .bashrc在每次打开新的终端窗口或标签时加载。
- .bash_profile和.profile仅在登录时加载。
3.3、通用性
- .profile可以被多种兼容sh的shell读取,而.bash_profile特定于Bash。
3.4、选择使用哪个文件?
- 对于Bash用户:在.bash_profile中设置环境变量,并确保它加载.bashrc。
- 对于非Bash sh兼容shell用户:使用.profile来设置环境变量。
- 通用配置:可以将通用配置放在.profile中,特定于Bash的配置放在.bashrc中。
4、结论
正确理解和使用这些配置文件可以帮助你更有效地管理你的Linux环境。通过合理配置.bashrc、.bash_profile和.profile,你可以确保无论是在交互式会话还是登录会话中,环境都被适当地设置和管理。希望本文能帮助你清晰地理解这些配置文件的作用和使用场景,从而更好地掌握Linux系统的使用。
标签:profile,shell,配置文件,用户,bashrc,bash From: https://www.cnblogs.com/dclogs/p/18667213