在 Unix 上登录时使用什么文件?

Svi*_*ish 4 unix shell

当您登录到 Unix 系统上的 shell 时,通常会在您的主目录中运行一些文件。例如,您可以使用这些来设置别名和添加到您的$PATH.

但是,我怎么知道到底是哪个文件呢?我如何确定我需要编辑(或添加)哪个文件?

我追求的是一种可以在任何 Unix 系统上使用的通用方法。假设您必须从 IP 地址/主机名以及用于 SSH 登录的用户名和密码开始。您连接并登录。现在你做什么?

use*_*740 8

配置文件通常在每次登录时运行。系统范围的登录文件是/etc/profile,用户特定的文件通常是~/.profile. 一些 shell 有自己的配置文件和 rc 文件,例如 bash.bashrc由非登录 bash shell.bash_profile运行,由登录 bash shell 运行。系统范围的 bashrc 是/etc/bash.bashrc

因此,您将.profile用于应由登录 shell 运行的事物和.bashrc(或等效的)应由非登录 shell 运行的事物(别名、设置 env 等)


bash澄清:

有两种shell:登录和非登录shell。登录 shell 是用户登录时运行的 shell。非登录 shell 是所有其他 shell。例如,当您通过ssh或在控制台上登录时,您获得的 shell 是一个登录 shell。

bash 登录 shell 在启动时运行:

  • /etc/profile
  • 以下第一个存在的文件:~/.bash_profile, ~/.bash_login,~/.profile

bash 非登录交互式 shell 在启动时运行:

  • /etc/bash.bashrc
  • ~/.bashrc

在 bash 附带的一些(大多数?) unices 中,配置文件源~/.bashrc,因此~/.bashrc为登录和非登录交互式 shell 运行。

如果文件不存在,则跳过它。