打开新终端时,我需要在初始化变量之前执行source ~/.bashrc
或。我以为这会自动完成?我该怎么做才能不需要这样做。source ~./bash_profile
$PATH
.bashrc
答案1
我不确定我是否理解了你的问题但是:
您的 bash init 文件应在启动时启动。否则,您的系统配置不正确或已损坏。
您没有提到您的操作系统,但我猜您无论如何都在使用 Linux。
初始化顺序如下man bash
:
当 bash 被调用为交互式登录外壳或者作为带有 --login 选项的非交互式 shell,它首先从文件读取并执行命令/etc/配置文件,如果该文件存在。读取该文件后,它会查找的〜/ .bash_profile,〜/ .bash_login, 和〜/ .profile,并读取并执行第一个存在且可读的命令。启动 shell 时可以使用 --noprofile 选项来禁止此行为。
当交互式外壳启动非登录 shell 时,bash 会从以下位置读取并执行命令/etc/bash.bashrc和~/.bashrc,如果这些文件存在。可以使用 --norc 选项来禁止。--rcfile 文件选项将强制 bash 从文件中读取并执行命令,而不是/etc/bash.bashrc和~/.bashrc。
例如,在 Ubuntu 发行版中,加载后/etc/profile
,它会查找~/.profile
如下文件:
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
这意味着,如果使用 bash 并且文件~/.bashrc
存在,它将被加载/获取,然后它将设置您的 $PATH 变量。
因此我建议您先查看您的~/.profile
文件并在必要时修复它。