我以 CentOS 版本 6.9 HPC 的用户身份登录。当我尝试该ls
命令时,我得到:
/usr/local/bin/ls: 第 96 行: dpkg: 未找到命令 中止,此脚本仅适用于类似 Ubuntu 的发行版
当我打开相应的 ls 文件时,第 96 行有以下行:
# (internal) The architecture of the local system
arch=$(dpkg --print-architecture)
我知道 dpkg 是 Debian 的东西,这就是为什么它不能在 CentOS 上工作。但为什么 dpkg 在那里呢?我如何运行一个简单的ls
?
答案1
从问题文本中可以看出,该ls
命令是从目录中获取的/usr/local/bin
,这意味着在PATH
变量值中找到该目录的时间早于 eg/usr/bin
和/bin
。
更改 shell 启动文件中变量值的顺序(可能通过在其前面添加/bin
和/usr/bin
)应该会阻止 shell 使用ls
from /usr/local/bin
,假设orls
中有命令。/bin
/usr/bin
PATH=/bin:/usr/bin:$PATH
原因为什么 /usr/local/bin/ls
是一个 shell 脚本(可能是Ubuntu 特定的脚本可以在这里找到,虽然不是恶意软件,但与该ls
命令完全没有任何关系)仍然是一个谜,这种异常是否仅限于ls
可执行文件,或者是否扩展到/usr/local
.