首页 > 解决方案 > 使用源 .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'没有在第一个终端上删除?

标签: linuxbashshellalias

解决方案


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

如果要取消定义给定别名,只需键入:

$ unalias ls
$ source .bashrc

如果要取消定义所有别名:

$ unalias -a
$ source .bashrc

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

$ exec bash

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


推荐阅读