gpt4 book ai didi

linux - bashrc 在运行 bash 命令之前不会加载

转载 作者:IT老高 更新时间:2023-10-28 12:39:28 25 4
gpt4 key购买 nike

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

是的,我已经在 bash 中了。

最初的环境:

SHELL=/usr/bin/bash

env 运行 bash 后,它仍然存在:

SHELL=/usr/bin/bash

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

最佳答案

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

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

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

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

请注意:请注意,在您的主目录中创建新的 .bash_profile 可能会产生意想不到的副作用,即阻止读取和执行 .bash_login< 中的命令.profile 文件已经存在,进一步改变后续登录的行为。

关于linux - bashrc 在运行 bash 命令之前不会加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18393521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com