bashrc直到运行bash命令才加载

时间:2013-08-23 02:04:52

标签: linux bash

我正在运行新安装的Arch Linux。当我登录用户(运行bash)并尝试使用.bashrc中的别名时,它会给我“命令未找到”错误。但是,如果我通过'bash'命令重新进入bash,那么命令就可以了。

是的,我已经在bash。

最初env:

SHELL=/usr/bin/bash
运行bash后,它仍然是:

SHELL=/usr/bin/bash

所以我不太确定问题出在哪里。

2 个答案:

答案 0 :(得分:59)

阅读“bash(1)”中的INVOCATION部分以获取完整的详细信息(这是bash的手册页;使用man bash)。登录时的第一个shell是“登录shell”,这意味着.bashrc文件不是来源的。您的第二次调用会创建一个交互式shell,其中.bashrc来源。

如果您始终希望处理.bashrc文件的内容,可以将以下行添加到.bash_profile文件中,如果该文件尚不存在,则创建该文件:

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

根据其手册页,bash“[...]按顺序查找~/.bash_profile~/.bash_login~/.profile,并从第一个查找并执行命令存在且可读。“本地系统的约定和策略将确定哪些文件(如果有)已存在。

请注意:请注意,在主目录中创建新的.bash_profile可能会产生意外的副作用,导致无法在.bash_login或{{1}中读取和执行命令文件已经存在,进一步改变了后续登录的行为。

答案 1 :(得分:5)

您是否查看了~/.profile~/.bash_login~/.bash_profile个文件?