我已经安装了 adb 和 fastboot(用于 Android 调试和开发)。过去,当我输入adb它时,它会启动 adb 的命令行帮助。现在它说:
bash: /usr/local/bin/adb: No such file or directory
好像它只是在 中寻找它/usr/local/bin/adb,对吗?虽然我仍然拥有它/usr/bin/adb并且仍然可以通过输入绝对路径来使用它。
此外,我的 Bash 别名文件中有几个别名;其中之一是sysupgrade(它听起来像)但是当我今天尝试时,它失败了。所以我在终端中运行了下一行,在一个论坛上解释了一些错误的帮助,说把它放进去/etc/profile:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
export PATH
Run Code Online (Sandbox Code Playgroud)
但是我的别名现在可以工作了!只是 adb 和 fastboot 没有。我已经试过了which,nping它们都在/usr/bin,它们都有效。
输出 echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Run Code Online (Sandbox Code Playgroud)
hash -r没有显示任何东西。但hash显示:
hits command
1 /usr/local/bin/adb
Run Code Online (Sandbox Code Playgroud)
adb被散列在/usr/local/bin/adb,这意味着 shell 记住了它的位置,并且不会再次在 PATH 中查看它是否已被删除/移动。通常hash -r会对包括 在内的所有内容进行取消哈希处理adb,但在本例中却没有 - 不知道为什么,但运行hash -d adb也可以做到这一点。重新启动 shell 也会取消所有内容的哈希值。
type adb如果您在解决问题之前运行过,您会看到以下内容:
adb is hashed (/usr/local/bin/adb)
Run Code Online (Sandbox Code Playgroud)
type这也是优于的原因之一which。
我仍然无法查明问题的根本原因,但经过一番尝试和错误后我修复了它。
我做which adb了并且which fastboot
其中显示:/usr/local/bin/adb和/usr/local/bin/fastboot
我只是这么做
sudo rm /usr/local/bin/adb了sudo rm /usr/local/bin/fastboot
退出终端/重新启动,我就可以开始了。
现在adb正确fastboot执行/usr/bin/adb和/usr/bin/fastboot