linux - 使用源 .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'
没有在第一个终端上删除?
解决方案
采购.bashrc
并不清楚您到目前为止定义的内容。它只是将它包含的定义添加到您当前的环境中。
如果要取消定义给定别名,只需键入:
$ unalias ls
$ source .bashrc
如果要取消定义所有别名:
$ unalias -a
$ source .bashrc
最后,如果你想用一个全新的 shell 重新开始,你当然可以关闭你的会话并重新打开一个,但这里有一个几乎相同的命令,以防万一这不是那么容易 (ssh) 或不受欢迎:
$ exec bash
(您也可以添加-l
模拟登录 shell 的选项,从而读取您的~/.bash_profile
文件)
推荐阅读
- python - pip 升级失败
- java - 集合 - 长类哈希码与整数类哈希码
- r - Rank/Order/Cluster/Sort Data Frame by Column Pattern
- vba - Excel VBA,使用Shell“打印”保护pdf到另一个pdf文件
- regex - 两个字符串之间的任何东西的正则表达式是什么?
- java - Java:日历实例的时间错误?
- java - 如何从firebase / Android检索孩子的数据孩子
- nginx - 是否可以在 Nginx 配置中使用带有重定向代码的变量?
- sql-server - 使用内存优化表运行长查询,每日归档实时数据
- c - 字符串矩阵中的字符串分配(不是在声明时)