Linux中.bashrc与.bash_profile的对比

若是你平时在命令行上花费了大量时间,那么你可能会萌生出但愿定制 Shell 环境的想法。今天本文就和你们讲解该如何实现大家的这个想法。其实能够经过建立别名、向环境变量 $PATH 添加新目录或更改 Shell 提示符的外观以实如今命令行上节约时间。程序员

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

接下来,我将向你们讲解 Bash 启动文件以及 .bashrc.bash_ profile 之间的区别:bash

Interactive Login 和 Non-Login Shell

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

其实,Shell 能够是交互式的,也能够是非交互式的。简单一点地说,交互式 Shell 是一种读写用户终端的 Shell,而非交互式 Shell 彻底是与终端无关的 Shell。 值得注意的是,交互式 Shell 能够是登陆 Shell ,也能够是非登陆 Shellssh

有几种状况能够调用登陆 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 的命令。spa

每次启动新 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开发学习路线图

也但愿有小伙伴能加入我,把这份电子书作得更完美!

有收获?但愿老铁们来个三连击,给更多的人看到这篇文章

推荐阅读:

相关文章
相关标签/搜索