Warum kann mein RaspberryPi diese grundlegenden Befehle nicht als Pi ausführen?

439
kiriMCplay

Wie es im Titel heißt, kann mein RaspberryPi einige grundlegende Befehle (z. B. ls, mkdir, su, ...) mit dem Benutzer 'pi' nicht ausführen. Ich bekomme immer folgende Ausgabe als Ausgabe:

-bash: /home/pi/bin/ls: Cannot execute binary file: Exec format error 

Wenn ich diese Befehle sudo ausführte oder sie auf einem anderen Konto ausführte, sogar einem Konto, das nicht einmal sudo funktionieren kann, funktioniert es einwandfrei, und es funktionierte bereits bei meinem letzten Login (OK, vor etwa 2 Wochen ...) und ich tat es nicht Wenn Sie keine neue Software installieren (ich habe gelesen, dass dieses Problem häufig auftritt), habe ich nur eine bereits bekannte Software verwendet, die die YouTube-API zum Hochladen eines Videos verwendet. Ich habe versucht, das Problem per Neustart zu beheben (es funktioniert nicht oft, aber manchmal hilft es: D). Ich habe über eine modifizierte $ PATH-Variable gelesen, und ich denke, dass dies wahr sein könnte, aber ich bin nicht der größte Profi und kann es nicht beweisen, deshalb ist hier die Ausgabe:

echo $PATH /home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games 

Wie ich bereits sagte, denke ich, dass dies wirklich der Grund sein könnte (das ist wirklich verwirrend, ich wusste gar nicht, dass es solche Ordner gibt), aber selbst wenn es so wäre, würde ich nicht wissen, in was ich es ändern soll, also habe ich gedacht man könnte mir sagen, dass es etwas anderes ist oder wie ich die $ PATH-Variable einstellen muss. Und vielleicht, wie sich das hätte ändern können, habe ich nicht manuell gemacht.

Ich hoffe jemand kann mir helfen. Vielen Dank im Voraus, ein Noob

BEARBEITEN: Ich habe das Problem auf einige Weise mit der markierten Antwort gelöst. Ich habe gerade den Ordner / home / pi / bin gelöscht ( /bin/rm /home/pi/binum das rmin zu verwenden /bin/) und abgemeldet ( exit) und ~ / .profile erneut ausgeführt. Und ich konnte auch rekonstruieren, wie ich diese Dateien dort reingekommen habe: Ein paar Tage vor dem Abbruch meines Servers habe ich mein RasPi verwendet, um die Dateien für die Zukunft zu sichern. Ich habe einen Ordner mit dem Namen " oldServerAber forot" erstellt cdund getdie Dateien einfach über SFTP bearbeitet, so dass sie in / home / pi / und auch in den Ordner kamen bin. Bei jedem Login dachte ~ / .profile, dass es eine spezielle Ablage sein würde, und legte es in ein $PATH. Das RasPi konnte diese Binaries nicht ausführen, da sie ebenfalls aus Debian stammten, aber nicht speziell aus Raspbian, nur aus Debian8. Vielen Dank für Ihre Kommentare und Antworten!

2
Wie bist du dazu gekommen, `ls` in` / home / pi / bin` zu haben? Diese sollten in `/ bin` om Raspbian, IIRC stehen. Es sieht so aus, als hätten Sie die Binärdateien anderer Architekturen in `/ home / pi / bin`. muru vor 5 Jahren 0

1 Antwort auf die Frage

0
Daniel B

Entfernen Sie von Ihrem, $PATHder /home/pi/binsich vorne befindet. Wenn Sie sicher sind, dass Sie es brauchen, verschieben Sie es nach hinten.

Die $PATHVariable wird wahrscheinlich eingestellt in ~/.profile, ~/.bash_profile, ~/.bashrcoder etwas ähnliches.

Fügen $PATHSie nur vor, wenn Sie unbedingt Systembefehle überschreiben müssen.

Danach sollten Sie prüfen, in wie nicht kompatible ausführbare Dateien aufgenommen wurden ~/bin.

Ich habe es nicht manuell geändert, wie ich schon sagte, aber ich versuche es. kiriMCplay vor 5 Jahren 0