前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.bashrc 和 .bash_profile 的异同

.bashrc 和 .bash_profile 的异同

作者头像
雪梦科技
发布2020-05-14 16:38:29
2.2K0
发布2020-05-14 16:38:29
举报
文章被收录于专栏:ITCoderITCoder

如果你在终端命令行上花费很多时间,很有可能你想要自定义你的 Shell 环境。这就意味着比如创建关联,添加一个新目录到$PATH,或者修改一个 shell 提示符。

你可能已经浏览过其他的教程,他们告诉你把你的配置放在.bashrc, .bash_profile或者其他的配置文件,这些配置文件被 Bash shell 读取和执行。

在本文中,我们将要讨论 Bash 启动文件,和.bashrc, .bash_profile 两个文件之间的不同。

一、交互式登录 和 非登录 shell

在打开终端时,Bash 读取和执行一系列启动文件中的命令。这些文件的读取,依赖于shell 是作为 交互式登录 还是 非登录 shell 执行。

一个 shell 可以是交互式或者非交互式的。

简单来讲,一个交互式 shell 就是一个可以读取和写入用户终端的 shell,而非交互式 shell 是一个不和终端关联的 shell,就像执行一个脚本。

一个交互式 shell 可以是登录 或者 非登录的 shell。

当用户通过 SSH 远程登录到终端,或者在本地登录终端,或者当 Bash 启动的时候加上--login选项的时候,一个登录 Shell 启动了。从登录 shell 中,输入bash或者打开一个新的 Gnome 终端标签时,一个交互式非登录 shell启动了。

二、Bash 启动文件

当 Bash 作为交互式登录 shell 启动时,Bash 查找/etc/profile文件,并且如果文件存在,它会运行文件中的命令。然后 Bash 按照顺序搜索~/.bash_profile, ~/.bash_login, 和 ~/.profile 文件,并且读取找到的文件,并执行其中的命令。

当 Bash 作为交互式非登录 shell 启动时,如果 ~/.bashrc 文件存在并且可读,那么它从 ~/.bashrc文件中读取并执行命令。

三、.bashrc 和 .bash_profile 的不同

在 Bash 作为一个交互式登录 shell 启动时,.bash_profile 被读取,并且执行,而.bashrc在交互式非登录 shell 启动时被执行。

使用.bash_profile运行仅仅需要运行一次的命令,例如, 自定义 $PATH 环境变量。

将每次启动一个新的 shell 需要运行的命令放在.bashrc文件。这包括关联 和 函数,自定义 shell 提示符,历史自定义设置等等。

通常,~/.bash_profile包含了下面这样的内容,用来运行.bashrc。这意味着,你每次登录终端,两个文件都会被读取和执行:

腾讯云学生服务器_学生机_云服务器优惠套餐-云+校园 - 腾讯云
腾讯云学生服务器_学生机_云服务器优惠套餐-云+校园 - 腾讯云
代码语言:javascript
复制
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

大部分 Linux 发行版使用~/.profile替换~/.bash_profile。这个~/.profile被所有的 shell 读取,而~/.bash_profile仅仅被 Bash 读取。

如果你的系统上没有任何启动文件,你可以创建它。

四、总结

.bash_profile.bashrc文件都包含了 shell 命令,在 Bash 启动时都会运行。.bash_profile在交互式登录 shells 启动时,被读取和执行,而.bashrc在非登录 shells 启动时执行。

检查 Bash 手册,获取更多关于 Bash 启动文件的信息

原文 :https://linuxize.com/post/bashrc-vs-bash-profile/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年05月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、交互式登录 和 非登录 shell
  • 二、Bash 启动文件
  • 三、.bashrc 和 .bash_profile 的不同
  • 四、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档