我正在运行新安装的 Arch Linux。当我登录用户 (运行bash) 并尝试使用来自 .bashrc 的别名时,它会给我“命令未找到”错误。但是,如果我通过 'bash' 命令重新进入 bash,则该命令可以正常工作。
是的,我已经在bash中了。
初始的环境变量:
SHELL=/usr/bin/bash
运行 bash 后,环境变量仍为:
SHELL=/usr/bin/bash
所以我不太确定问题出在哪里。
我正在运行新安装的 Arch Linux。当我登录用户 (运行bash) 并尝试使用来自 .bashrc 的别名时,它会给我“命令未找到”错误。但是,如果我通过 'bash' 命令重新进入 bash,则该命令可以正常工作。
是的,我已经在bash中了。
初始的环境变量:
SHELL=/usr/bin/bash
运行 bash 后,环境变量仍为:
SHELL=/usr/bin/bash
所以我不太确定问题出在哪里。
阅读"bash(1)"中的"INVOCATION"章节以获得完整的细节(这是bash的man页面,请使用man bash
)。你登录后的第一个shell是"login shell",这意味着.bashrc
文件不会被调用。你的第二个调用将创建一个交互式shell,在该shell中.bashrc
文件将被调用。
如果你希望始终处理你的.bashrc
文件内容,你可以将以下行添加到你的.bash_profile
文件中,如果该文件不存在,则创建该文件:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
根据其手册,bash "[...] 按照 ~/.bash_profile
, ~/.bash_login
, 和 ~/.profile
的顺序查找,并读取并执行在第一个存在且可读的文件中的命令。" 你本地系统的惯例和政策将决定这些文件中哪些已经存在(如果有的话)。
警告一句:请注意,创建一个新的 .bash_profile
文件可能会意外地防止读取和执行已经存在的 .bash_login
或者 .profile
文件中的命令,从而改变后续登录的行为。
~/.profile
。 (bash) - Qwerty~/.profile
、~/.bash_login
和~/.bash_profile
文件了吗?