前言
平时正常刷刷 pwn 题,在使用 hyper 的时候突然报错了。
在某些目录下运行 ls 等命令会报错 ,但是如果是普通的 linux 终端就不会报错。
解决方法
真是奇怪的错误...不过懒得修了,先试试常规笨方法:
- 重启终端
- 重启虚拟机
- 重启主机
- 恢复快照
- 重新下载 hpyer
都没有解决,不过发现了一个能够解决的玄学方法:
su 进 root 再退出就好了。
不过这总不是长久之计,将 shell 换一下,也是不行。那猜测估计是 hyper 的问题了。
通过 env 命令,比对 hyper 跟普通终端的环境变量有什么不同,再将不同的环境变量 unset 掉。
直至如下变量:
unset 掉后发现 ls 可以正常使用了:
LD_LIBRARY_PATH 被劫持到了一个目录,看起来是 appimage 有关的目录,那这个问题可能是 appimage 的 bug 吧。我的 hyper 的确用的是 appimage 版本的,那解决方法很简单,卸载了重新装个 deb 版的即可。
总结
linux 有关知识还是太浅薄了,这么个小问题折腾半天才解决,有时间系统研究一下 linux 。
最后,感谢 Bet4 师傅的指点!