使用 source .bashrc 后别名未更新

Alias not updated after using source .bashrc

我正在测试 bash 登录时的行为(终端 1),但我对它与别名的交互感到困惑:

我用 vim .bashrc 打开并添加了这一行:

alias ls='ls -l'

并用:x保存 然后我用 source .bashrc 来模拟一个新的登录会话,我在别名列表中找到了它

但是我从 .bashrc 中删除了别名并再次使用 source .bashrc 我看到 alias ls='ls -l' 仍然可用。另一方面,打开新的shell终端(终端2)问题解决了。

问题:为什么 alias ls='ls -l' 没有在第一个终端上删除?

Sourcing .bashrc 不清楚您目前定义的内容。它只是将它包含的定义添加到您当前的环境中。

如果您想取消定义给定的别名,只需键入:

$ unalias ls
$ source .bashrc

如果您想取消定义所有别名:

$ unalias -a
$ source .bashrc

最后,如果您想使用全新的 shell 重新开始,您当然可以关闭会话并重新打开会话,但这里有一个几乎相同的命令,以防万一这不是那么容易 (ssh ) 或不受欢迎的:

$ exec bash

(您还可以添加 -l 选项来模拟登录 shell,从而读取您的 ~/.bash_profile 文件)