我正在运行新安装的Arch Linux.当我登录用户(运行bash)并尝试使用.bashrc中的别名时,它会给我"命令未找到"错误.但是,如果我通过'bash'命令重新进入bash,该命令工作得很好.
是的,我已经在狂欢了.
最初的env:
SHELL=/usr/bin/bash
Run Code Online (Sandbox Code Playgroud)
运行bash后,它仍然是:
SHELL=/usr/bin/bash
Run Code Online (Sandbox Code Playgroud)
所以我不太确定问题出在哪里.
sjn*_*arv 65
阅读"bash(1)"中的INVOCATION部分以获取完整的详细信息(这是bash的手册页;使用man bash
).登录时的第一个shell是"登录shell",这意味着该.bashrc
文件不是来源的.您的第二次调用会创建一个交互式shell,其中.bashrc
包含来源.
如果您始终希望.bashrc
处理文件的内容,可以将以下行添加到.bash_profile
文件中,如果该文件尚不存在,则创建该文件:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Run Code Online (Sandbox Code Playgroud)
按照其手册页,打击"[...]查找~/.bash_profile
,~/.bash_login
以及~/.profile
以该顺序,并读取并从存在并且可读的第一个执行命令." 本地系统的约定和策略将确定这些文件中已存在哪些文件(如果有).
需要注意的是:请注意,.bash_profile
在主目录中创建新文件可能会产生意外的副作用,即阻止在已存在的文件.bash_login
或.profile
文件中读取和执行命令,从而进一步改变后续登录的行为.