直到几天前,我们 Ubuntu 服务器上的所有命令都正常工作。运行时ls
或cd
它会返回bash: /bin/ls: No such file or directory
。
如何修复此问题?
答案1
似乎ls
缺少可执行文件。ls
是基于 Debian 的系统上 coreutils 包的一部分,因此您可能需要查看它是否已被卸载。
您可以使用aptitude
:
runejuhl@lapaz:~$ aptitude search ^coreutils$
i coreutils - GNU core utilities
在上文中,行首的“i”表示该包确实已安装。
答案2
令人惊讶的是,在这种情况下会生成相同的消息:/bin/ls 二进制文件被替换为 shell 脚本,但该 shell 脚本包含无效的感叹号行(例如,如果它以 开头#!/this/does/not/exist
)。嗯,rootkit?
答案3
检查/etc/environment
文件以确保它仍然指定路径。默认的 Ubuntu(截至 9.10)只有一行:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
然而,这一行会被拉入处理登录的各种子系统中。在其他地方设置 PATH 可能会使 Ubuntu 的 GDM 混乱。