Por que meu RaspberryPi não pode executar esses comandos básicos como pi?

2

Como diz o título, meu RaspberryPi não pode executar alguns comandos básicos (por exemplo, ls, mkdir, su, ...) com o usuário 'pi'. Eu sempre recebo o seguinte como saída:

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

Se eu sudo estes comandos ou os executo em qualquer outra conta, até mesmo uma conta que não pode sequer sudo, funciona bem, e já funcionou bem no meu último login (OK, cerca de 2 semanas atrás ...) e eu não instalei nenhum software novo (eu li que está causando esse problema), eu usei apenas um software já bem conhecido que usa a API do YouTube para fazer upload de um vídeo. Eu tentei corrigir o problema via reboot (ele não funciona com freqüência, mas às vezes ajuda: D). Eu li sobre uma $ PATH-Variable modificada, e acho que isso pode ser verdade, mas eu não sou o maior profissional e não posso provar isso, então aqui está a saída:

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

Como eu já disse, acho que essa pode ser a razão (isso é realmente confuso, eu nem sabia que existem essas pastas), mas, mesmo que fosse, eu não saberia como mudar isso, então eu poderia me dizer que é algo diferente ou como eu tenho que definir a variável $ PATH. E, talvez, como isso poderia ter mudado, eu não fiz isso manualmente.

Espero que alguém possa me ajudar. Desde já, obrigado, um noob

EDITAR: Eu resolvi o problema de algumas maneiras com a resposta marcada. Acabei de excluir a pasta / home / pi / bin ( /bin/rm /home/pi/bin para usar o rm em /bin/ ) e desconectei ( exit ) e para executar ~ / .profile novamente. E também consegui reconstruir como consegui esses arquivos: Poucos dias antes de cancelar meu servidor, usei meu RasPi para fazer backup dos arquivos para o futuro. Eu criei uma pasta chamada oldServer , mas forot para cd nela e apenas get ed os arquivos via SFTP, então eles entraram em / home / pi /, também a pasta bin . Então, a cada login, o ~ / .profile estava pensando que seria uma lixeira especial e colocaria em $PATH . O RasPi não foi capaz de executar esses binários porque eles eram do Debian também, mas não do Raspbian em específico, apenas Debian8. Obrigado por seus comentários e respostas!

    
por kiriMCplay 01.07.2018 / 18:06

1 resposta

0

Remova do seu $PATH o /home/pi/bin que está na frente. Se você tem certeza de que precisa, mova-o para trás.

A variável $PATH provavelmente está definida em ~/.profile , ~/.bash_profile , ~/.bashrc ou algo semelhante.

Adicione somente à frente de $PATH se você absolutamente precisar substituir os comandos do sistema.

Depois disso, você deve verificar como os arquivos executáveis não compatíveis o transformaram em ~/bin .

    
por 01.07.2018 / 18:17