什么是.bashrc文件?


100

开始读取.bashrc文件并执行写入其中的命令时,Unix外壳会出现。这是什么文件,它执行什么操作?


2
尝试在文本编辑器中打开文件-它是纯文本格式。
Will Bickford

Answers:


66

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

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

启动不是登录外壳程序的交互式外壳程序时,bash会从中读取并执行命令~/.bashrc,如果该文件存在的话。使用--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我认为启动方式被设计为在输出和提示设置可以的情况下有一个文件,而在输出和提示设置没有问题的情况下有一个文件。传统上,将通过运行时测试来区分交互性,例如,检查是否设置了提示。


好答案。引用一下:该文件只是shell命令。它通常用于更改提示,设置环境变量和定义Shell过程。
smwikipedia'2

2
有谁知道.bashrc / .zshrc的rc部分是什么意思?
WORMSS


也许rc表示运行时配置。
Mike Diehn

12

当Bash启动时,它将以各种不同的脚本执行命令。

当Bash作为交互式登录shell调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。读取该文件后,它将按该顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在的且可读的第一个命令中读取并执行命令。

当退出登录外壳程序时,Bash从〜/ .bash_logout文件(如果存在)中读取并执行命令。

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

http://en.wikipedia.org/wiki/Bash_(Unix_shell)

以下是一些技巧和提示:

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html

让我们尝试设置提示,以便它可以显示今天的日期和主机名:

PS1="\d \h $ "

1
为什么.profile之后.bash_profile呢?有逻辑吗?
Pacerier's

10

它应该为您的shell包含各种“初始化”命令,例如:

  • 创建有用的别名(例如alias ll='ls -l')。
  • 将更多目录添加到PATH。
  • 设置新的环境变量。

别名的用途是什么?
菠萝

2
@pineapple:别名是一种运行命令的方法,该命令可能很长,但较短。例如,别名ll='ls -l'使您可以键入ll执行ls -l命令。
Wuffers
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.