乐趣区

关于linux:Linux中bashrc与bashprofile的对比

如果你平时在命令行上破费了大量工夫,那么你可能会萌发出心愿定制 Shell 环境的想法。明天本文就和大家解说该如何实现你们的这个想法。其实能够通过创立别名、向环境变量 $PATH 增加新目录或更改 Shell 提示符的外观以实现在命令行上节约工夫。

在你寻找解决办法的过程中可能会看到过一些教程,比如说将配置文件放在 .bashrc 或者 .bash_ profile 中,亦或是将配置放在另一个能够通过 Bash Shell 读取和执行的文件中。

接下来,我将向大家解说 Bash 启动文件以及 .bashrc.bash_ profile 之间的区别:

Interactive Login 和 Non-Login Shell

Bash 被调用时,会从一组启动文件中读取并执行命令,至于读取哪些文件取决于 Shell 是作为交互式登录调用还是作为非登录 Shell 调用。

其实,Shell 能够是交互式的,也能够是非交互式的。简略一点地说,交互式 Shell 是一种读写用户终端的 Shell,而非交互式 Shell 齐全是与终端无关的 Shell。值得注意的是,交互式 Shell 能够是登录 Shell,也能够是非登录 Shell

有几种状况能够调用登录 Shell,一种是当用户通过 ssh 或本地形式近程登录到终端,还有就是应用 --login 选项启动 Bash。比方在 Shell 提示符中键入 bash 或关上新的 Gnome 终端选项卡时。交互式非登录 Shell 从登录 Shell 调用。

Bash 启动文件

Bash 作为交互式登录 Shell 被调用时,它将查找 /etc/profile 文件,如果该文件存在,它将运行文件中列出的命令。而后 Bash 按以下的顺序搜索 ~/.bash_profile~/.bash_login~/.profile 文件,并在第一个找到的文件中执行命令。

Bash 作为交互式非登录 Shell 被调用时,它从 ~/.bashrc 文件读取并执行命令,须要指出的是该文件必须存在并且它是可读的才行。

.bashrc 和 .bash_配置文件之间的差别

Bash 作为交互式登录 Shell 被调用的状况下,.bash_profile 才会被读取、执行,而 .bashrc 是启动交互式非登录 Shell 时才被执行的。个别应用 .bash_profile 来运行只运行一次的命令,比方运行自定义环境变量 PATH 的命令。

每次启动新 Shell 时应该将运行的命令放在 .bashrc 文件中,这些命令包含别名和函数、自定义提醒、历史自定义等。

通常,~/.bash_profile 蕴含的命令来源于 .bashrc 文件中,示例如下:

这意味着每次登录到终端时,下面两个文件都会被读取并执行其中的命令。

大多数 Linux 发行版都是应用 ~/.profile 而不是 ~/.bash_profile。因为 ~/.profile 文件能够被所有 Shell 读取,而 ~/.bash_ profile 仅能被 Bash Shell 读取。

如果你的零碎上没有我下面所讲的这些启动文件,那么你也能够本人创立它们。

论断

最初,总结一下明天咱们所讲的重点。.bash_profile.bashrc 是在调用 Bash 时运行的蕴含 Shell 命令的文件。.bash_profile 能够在交互式登录 Shell 上被读取和执行,而 .bashrc 能够在非登录 Shell 上被读取和执行。

如果你还对 .bashrc 这些文件有疑难或是有批改 Shell 提示符的更好的办法,请留言通知我呗!


最初,最近很多小伙伴找我要 Linux 学习路线图 ,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!

收费送给大家,只求大家金指给我点个赞!

电子书 | Linux 开发学习路线图

也心愿有小伙伴能退出我,把这份电子书做得更完满!

有播种?心愿老铁们来个三连击,给更多的人看到这篇文章

举荐浏览:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 神器 | 反对搜寻的资源网站
退出移动版