我正在运行新安装的 Arch Linux。当我登录用户(运行 bash)并尝试使用 .bashrc 中的别名时,它给了我“找不到命令”错误。但是,如果我通过“bash”命令重新输入 bash,该命令就可以正常工作。
是的,我已经在 bash 中了。
env 最初:
SHELL=/usr/bin/bash
env 运行 bash 后,它仍然是:
SHELL=/usr/bin/bash
所以我不太确定问题出在哪里。
阅读“bash(1)”中的 INVOCATION 部分以获取完整的详细信息(这是 bash; use 的手册页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
或.profile
文件中的命令,从而进一步改变后续登录的行为。
你看过你的~/.profile
,~/.bash_login
和~/.bash_profile
文件吗?