什么是.bashrc文件,它有什么作用?

我似乎无法找到关于.bashrc文件是什么以及它究竟做什么的任何明确信息。


感谢目前为止所有的帮助。 看起来这个脚本可以完成从着色,完成,别名和shell历史等方面的所有操作。有什么东西看起来没用吗?

.bashrc文件是在交互模式下启动新终端会话时执行的脚本。 这是通过按Ctrl + Alt + T打开新的终端窗口,或只是打开一个新的终端选项卡时发生的情况。

相比之下, 登录模式下的终端会话将询问您的用户名和密码并执行~/.bash_profile脚本。 例如,当您通过SSH登录到远程系统时,就会发生这种情况。

.bashrc文件本身包含终端会话的一系列配置。 这包括设置或启用:着色,完成,shell历史记录,命令别名等。 随Ubuntu一起发布的.bashrc文件得到了很好的评论,通过阅读它,您将能够理解它的大部分function。

你可以根据自己的喜好调整.bashrc 。 在这里,您可以获得许多额外function的示例。

关于超级用户的问题 – 什么是.bashrc文件? 来自@pineapple并由@DigitalRoss回答

实际上,特别是它的bash.bashrc (和/etc/bash.bashrc )。 有很多不同的贝壳。

bash手册页 (由Brian Fox和Chet Ramey提供;还有信息页“Bash Startup Files” )是权威参考:

当启动不是登录shell的交互式shell时,如果该文件存在,bash将从~/.bashrc读取并执行命令。 使用--norc选项可以禁止这--norc--rcfile文件选项将强制bash从文件而不是~/.bashrc读取和执行命令。

例如,当以非交互方式启动bash以运行shell脚本时,它BASH_ENV在环境中查找变量BASH_ENV ,如果它出现在那里则展开其值,并使用展开的值作为文件的名称来读取和执行。 Bash的行为就像执行了以下命令一样:

 if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi 

PATH变量的值不用于搜索文件名。

该文件只是shell命令。 它通常用于更改提示,设置环境变量和定义shell过程。 传统上,文件.profile用于此目的,但是bash有很多扩展,它需要自己的启动文件给那些想要将bashisms放在启动文件中的用户。

不是登录shell ”意味着诸如脚本启动之类的东西,通常是由窗口管理器启动的终端窗口。 有时我设置* nix系统使.bashrcBASH_ENV只是源.profile 。 只要你不偏离POSIX shell命令,那么你将在任何shell中获得相同的初始化。

sh真的是bash ,它特别有价值,有时会发生。 为此,请使用:

 . .profile 

这一切都非常复杂的一个原因是因为有时候人们把产生输出的东西放到shell启动文件中,或者他们无条件地设置提示。 当在语言中运行shell程序和反引号命令时,这会导致很多问题,更不用说来自C程序的system(3)了。 我认为, bash启动的方式是设计一个文件,输出和提示设置正常,一个文件不是。 传统上,将进行运行时测试以区分交互性,例如,检查是否设置了提示。