.bashrc 文件是什么?

.bashrc 文件是什么?

Unix shell 在启动时读取.bashrc文件并执行其中写入的命令。这个文件是什么?它会执行什么?

答案1

实际上,它的bash具体含义是.bashrc(和/etc/bash.bashrc)。有很多不同的 shell。

bash 手册页(作者:Brian Fox 和 Chet Ramey;另见信息页面“Bash 启动文件”) 是权威参考:

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

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

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

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

该文件只是 shell 命令。它通常用于更改提示符、设置环境变量和定义 shell 过程。传统上,该文件.profile用于此目的,但它bash有太多扩展,因此需要自己的启动文件,以便用户能够巴什主义在启动文件中。

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

sh当真的是时,它特别有价值bash,这种情况有时会发生。要做到这一点,请使用:

. .profile

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

答案2

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

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

当登录 shell 退出时,Bash 会从文件 ~/.bash_logout 中读取并执行命令(如果存在)。

当启动非登录 shell 的交互式 shell 时,如果 ~/.bashrc 文件存在,Bash 会从该文件读取并执行命令。可以使用 --norc 选项禁止此操作。--rcfile 文件选项将强制 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 $ "

答案3

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

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

相关内容