Bash Profile 和 Bashrc 的区别

Fumbani Banda 2023年1月30日 2022年5月11日
  1. 什么是 Bash 中的启动文件
  2. Bash 中 ~/.bash_profile~/.bashrc 的区别
  3. 使用 ls 命令查看 Bash 中的启动文件
Bash Profile 和 Bashrc 的区别

本教程解释了 Bash 中 ~./bash_profile~/.bashrc 文件之间的区别。

什么是 Bash 中的启动文件

启动文件是在 shell 启动后执行的文件。启动文件取决于启动的 shell 类型。shell 可以作为交互式 shell 或非交互式 shell 执行。

交互式 shell 是从终端上的用户输入读取命令并将输出显示到终端的 shell。相反,非交互式 shell 不与终端关联,例如运行脚本。

交互式 shell 可以进一步分为两个。它可以是交互式登录 shell 或交互式非登录 shell。

登录 shell 是使用 /bin/login 通过读取 /etc/passwd 文件成功登录后启动的第一个进程。登录 shell 在你的用户 ID 下执行。当你使用终端登录、切换到另一个用户或使用 SSH 时,会执行登录 shell。

登录 shell 启动一个非登录 shell。它可以是一个以没有登录的进程启动的 shell,也可以是从另一个 shell 启动的 shell。进程使用 shell 可执行文件的名称来启动非登录 shell。

Bash 中 ~/.bash_profile~/.bashrc 的区别

一旦 shell 作为交互式登录 shell 启动,它会从 ~/.profile 读取命令,但 Bash 会从 ~/.bash_profile 读取命令。Bash 只能读取~/.bash_profile,如果文件不存在,Bash 会读取~/.profile

~/.profile 在 Linux 发行版中比 ~/.bash_profile 更常用,因为它被所有 shell 读取和执行。相反,~/.bash_profile 只能由 Bash 读取和执行。

当 shell 作为交互式非登录 shell 启动时,它会从 ~/.bashrc 文件中读取并执行命令。

~/.bash_profile~/.bashrc 作为点文件位于用户的主目录中。用户主目录中的文件用于进行仅适用于该特定用户的配置。

这些配置通常会覆盖系统配置。 ~/.bash_profile 包含启动程序配置和用户特定的环境配置,而 ~/.bashrc 文件存储特定用户的函数和别名。

位于 /etc/ 目录中的文件用于进行适用于系统上所有用户的系统范围配置。这些文件包括 /etc/profiles/etc/bashrc

使用 ls 命令查看 Bash 中的启动文件

要查看 ~/.bash_profile~/profile~/.bashrc,请导航你的主目录并键入命令 ls -al

-a 选项通知 ls 命令列出所有文件,包括以点开头的文件。 -l 选项通知 ls 命令使用长列表格式列出文件。

下图显示了 ~/.bashrc~/.profile 文件。

启动文件

Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

相关文章 - Linux Bash