Linux 在运行bash命令之前,不会加载bashrc

Linux 在运行bash命令之前,不会加载bashrc,linux,bash,Linux,Bash,我正在运行新安装的ArchLinux。当我登录到一个用户(运行bash)并尝试使用.bashrc中的别名时,它会给出“未找到命令”错误。但是,如果我通过'bash'命令重新输入bash,该命令就可以正常工作 是的,我已经在bash了 env最初: SHELL=/usr/bin/bash env在运行bash之后,它仍然是: SHELL=/usr/bin/bash 所以我不太确定问题出在哪里。你有没有看过你的~/.profile,~/.bash\u登录名和~/.bash\u配置文件文件?阅读“

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

是的,我已经在bash了

env最初:

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

SHELL=/usr/bin/bash

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

你有没有看过你的
~/.profile
~/.bash\u登录名
~/.bash\u配置文件
文件?

阅读“bash(1)”中的调用部分以了解全部细节(这是bash的手册页;使用
man bash
)。登录时的第一个shell是“登录shell”,这意味着
.bashrc
文件没有来源。第二次调用将创建一个交互式shell,其中
.bashrc
是源代码

如果总是希望处理
.bashrc
文件的内容,可以将以下行添加到
.bash\u配置文件中,如果该文件不存在,则创建该文件:

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
根据手册页,bash“[…]按顺序查找
~/.bash_profile
~/.bash_login
、和
~/.profile
,并从第一个存在且可读的文件中读取和执行命令。”本地系统的约定和策略将确定这些文件中的哪些(如果有的话)已经存在


警告:请注意,在主目录中创建一个新的
.bash\u profile
可能会产生意外的副作用,即阻止读取和执行已存在的
.bash\u login
.profile
文件中的命令,进一步更改后续登录的行为。

这实际上是一个函数:function cl(){cd$@;ls}可能重复:谢谢,完全忘记了这一点。感谢Ubuntu,我不习惯设置东西。如果还没有在这里创建“~/.bash\u login”文件,或者对任何与Bourne兼容的登录shell使用
~/.profile
。(bash)@Qwerty:如果您维护您的环境,使~/.bash_配置文件和~/.bash_登录名不存在,那么使用~/.profile可以工作。从4.2版bash手册页:当bash作为交互式登录shell或带有--login选项的非交互式shell调用时,它首先读取并执行文件/etc/profile中的命令(如果该文件存在)。读取该文件后,它将按顺序查找~/.bash_profile、~/.bash_login和~/.profile,并从第一个存在且可读的文件读取和执行命令。“感谢那些提供信息的家伙,他们刚刚开始使用AIX,发现很难自动加载bashrc文件,他们的脚本是no/etc/profile、~/.bash\u profile、~/.bash\u login、~/.profile脚本,但现在已经创建了一个,@jean Davy说。你的回答很中肯。干杯。。