我正在尝试在 centos 7 上安装 tomcat 8。我以 root 身份使用终端。当我输入 时source ~/.bashrc
,终端返回以下错误:-bash: unalias: ls: not found
。
如何解决此错误以使source ~/.bashrc
命令能够成功?
请注意,我最近添加了该行作为unalias ls
最后一行~/.bashrc
@Cyrus 针对同一 CentOS 安装中与颜色锯齿相关的其他问题的解决方案。
答案1
如果它实际上是一个别名,您应该只尝试取消别名:更改
unalias ls
到
[[ $(type -t ls) == "alias" ]] && unalias ls
答案2
我无法重现此问题,但我认为问题是因为您已经取消别名ls
一次,所以您无法再次取消别名。不过,我也很确定该source
命令运行良好。你检查了吗?很可能它的来源正确,您可以忽略错误消息。
更重要的是,你为什么要跑步source ~/.bashrc
?无论如何,当您启动新的交互式非登录 shell 时,应该读取该文件。如果是因为您进行了更改而重新加载它,那么没问题,您的更改已加载。忽略该错误。
答案3
考虑放入unalias ls 2>/dev/null
您的~/.bashrc
替代品 - 这样即使ls
已经取消别名,它也不会显示您所看到的错误消息。
还要考虑不要登录到 root shell - 如果您不明白这个错误告诉您什么,我认为登录到 root shell 并不是一个好主意。对于普通用户帐户,很难犯下破坏系统的错误,更难以以无法通过重新启动修复的方式破坏系统。有了 root shell,破坏系统就变得非常容易。
答案4
[ -t 0 ] && unalias ls
这并不直接测试是否ls
实际上是别名,而是测试您是否在终端中,这更简单一点,特别是如果您~/.bashrc
希望以相同的方式处理更多代码:
if [ -t 0 ]; then
unalias ls
# ... any other terminal-only actions
fi