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


21

我似乎找不到有关该.bashrc文件是什么以及它到底做什么的任何明确信息。


感谢到目前为止的所有帮助。似乎该脚本可以完成所有操作,包括着色,补全,别名和外壳历史记录等。似乎没有什么用处吗?


4
.bashrc是许多bash配置文件之一。请参阅Bash启动文件中的官方文档。
穆鲁

Answers:


21

.bashrc文件是一个脚本,每当以交互方式启动新的终端会话时,便会执行该脚本。当您通过按Ctrl+ Alt+ 打开新的终端窗口时T,或者只是打开新的终端选项卡时,就会发生这种情况。

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

.bashrc文件本身包含终端会话的一系列配置。这包括设置或启用:着色,完成,外壳历史记录,命令别名等。.bashrc随Ubuntu一起分发的文件已得到很好的注释,您只需阅读即可了解它的大部分功能。

您可以.bashrc根据自己的喜好进行调整。在这里,您可以获得具有许多额外功能的示例。


链接断开。
rab

1
链接正在工作。
路易斯·德索萨

在该页面中,下载文件不起作用。
RAB

1
链接和下载都可以正常工作
M. Becerra

5

关于超级用户的问题- 什么是.bashrc文件?通过@pineapple和@DigitalRoss回答

实际上,bash具体来说就是读取.bashrc(和 /etc/bash.bashrc)。有很多不同的外壳。

bash的手册页(由Brian Fox和切特·拉梅;同时信息页面“Bash的启动文件”)是最权威的参考:

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

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

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

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

该文件只是shell命令。它通常用于更改提示,设置环境变量和定义shell过程。传统上,该文件.profile用于此目的,但 bash扩展名太多,以至于想要将重载放入启动文件的用户都需要自己的 启动文件。

非登录外壳 ”表示诸如脚本启动以及通常由窗口管理器启动的终端窗口之类的东西。有时我将* nix系统设置为具有.bashrcBASH_ENV仅仅是source .profile。只要您不偏离POSIX shell命令的范围,那么您将在任何shell中获得相同的初始化。

sh真正存在时bash,这尤其有价值,有时会发生。为此,请使用:

. .profile

这是如此复杂的原因之一是,有时人们将可以产生输出的内容放入shell启动文件中,或者无条件设置提示。在语言中运行shell程序和反引号命令时,这会引起很多问题,更不用说 system(3)C程序了。bash我认为启动方式被设计为在输出和提示设置可以的情况下有一个文件,而在输出和提示设置没有问题的情况下有一个文件。传统上,将进行运行时测试来区分交互性,例如,检查是否设置了提示。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.