Answers:
~/.bashrc
并/etc/bash.bashrc
在每次bash
启动交互式shell 时运行。
相反,在每次启动任何登录 Shell 时都会运行~/.profile
和。因此,它不必一定是shell,而必须一定是登录shell(而且许多shell实例不是login shell)。/etc/profile
bash
bash
bash
壳是一个壳,其中所述壳的程序,提供它bash
,而不是某些其他程序,如dash
。因此,PATH
在bashrc
文件中添加一条将条目追加到其中的命令将是:
当外壳不在时什么也不做bash
,通常是这种情况。例如,PATH
当您处于图形登录会话中时,将保持不变。记住,PATH
不仅仅是命令行程序使用。
在存在嵌套bash
壳的情况下,一遍又一遍地添加它。因此,如果您在外壳程序内启动外壳程序(出于各种原因这是很常见的),那么您将有多个~/bin
条目堆积在上PATH
。这使得PATH
环境变量难以阅读,有时还会降低性能。
这些将是不希望的。因此,将其放在文件中是错误的bashrc
。它确实属于~/.profile
。~/.profile
是以下方面的正确地方:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
非登录外壳将登录外壳(或行为类似于登录外壳)作为其父外壳,并PATH
从该登录外壳继承其大多数环境变量,包括。因此,放置修改路径的命令~/.profile
要求您注销然后重新登录才能使它们生效,但是这也会影响非登录外壳程序的环境(以及非外壳程序的环境,因为每个程序都会获得其作用)。从其父进程继承的自己的环境变量集(称为“环境”)。
bin
目录在您登录时不存在,并且您是在此登录会话期间创建的。如果您注销并重新登录,它将在您的中PATH
。由于创建私有bin
目录仅需要执行一次,因此这是一次性的麻烦。