“-Bash: ls: comando não encontrado”

30

Instalei a atualização mais recente no OS X Lion (10.7). Depois disso, meu terminal não reconhecerá os comandos normais. Digitei lse obtive:

-bash: ls: command not found

Imaginei que tentaria adicionar usr / bin ao meu caminho, mas não consigo encontrar .bash_profile para editá-lo, pois a digitação edit .bash_profilenão funcionará. Não consigo configurar o Finder para mostrar todos os arquivos, pois meu terminal não reconhece os comandos necessários para fazer isso.

o que eu preciso fazer?

LuxuryMode
fonte
2
Vamos seguir um caminho e ver o que treme. export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bincole a parte escura (ou digite-A COM MUITO CUIDADO) - uma vez que dois comandos estão faltando - algo afetou seu caminho. Antes de fazer qualquer coisa grande, iniciar um backup pode ser prudente.
Bmike
1
@bmike thanks! adicionou isso ao .bash_profile e está tudo funcionando agora. tive que abrir .bash_profile assim: /usr/bin/vi ~/.bash_profilecoloque isso como resposta e eu posso aceitar!
precisa saber é o seguinte

Respostas:

41

Como faltam dois comandos, algo "pisou" o seu caminho.

Antes de fazer qualquer coisa grande, iniciar um backup pode ser prudente.

O caminho padrão no Mac OS X 10.7 (Lion) é mais ou menos assim:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Se você redefinir o caminho digitando o acima em uma janela de shell e, em seguida, digitando export PATH-o deve corrigir essa janela.

Então você pode começar por aí e ver o que mais pode estar errado e corrigi-lo em seus arquivos de ponto de inicialização ou em qualquer outro local definido.

Essa quebra é quase sempre algo que você precisa corrigir nos seus arquivos de ponto. Para o bash, edite e corrija .bash_profilee / ou .bashrcdesfaz uma alteração recente, apenas configurando o $ PATH necessário novamente. O erro usual é atribuir um novo caminho e não se referir ao valor anterior da variável no lado direito do =

bmike
fonte
2
Para mim, isso fornece uma correção temporária.
Etienne Low-Décarie
2
Obrigado! I enrugada para um pouco quando lsnão funcionou após a atualização .bash_profile😂
Adrian
Sim @Adrian um erro de sintaxe ou PATH vazio pode causar intensa ansiedade 😅🤭🤬🔥
bmike
Isso deu uma correção temporária. Eu tive que refazer todos os passos uma vez que eu reiniciar o CMD
Pawan
Isso ainda funciona para o Mac OS 10.14.3
Stephen Romero
10

Isso deve resolver o problema completamente e permanentemente.

primeiro, exporte os caminhos do ambiente usando o comando abaixo no terminal.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/b‌​in

agora você tem os comandos que deseja. (por exemplo, tente ls. Você verá que o comando está funcionando). Mas isso é apenas para a sessão atual. Se você fechar o terminal e abrir um novo, terá o problema anterior. Para tornar essa alteração permanente, use o comando abaixo,

vá para o diretório inicial

cd ~

abra o arquivo .bash_profile no nano / vim (estou usando o nano aqui)

nano .bash_profile

Isso abrirá o nano editor. Em uma nova linha, cole o seguinte;

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:$PATH

pressione 'control' + 'o' para salvar (WriteOut) e 'control' + 'x' para sair do nano.

Tudo feito ! Agora tente os comandos.

Kavin Ranawella
fonte
3

Parece-me que /etc/profilenão foi executado na inicialização do shell. É o arquivo de inicialização global responsável pela inicialização do PATH. Verifique se /etc/profileexiste e é legível e executável com o seguinte comando:

. /etc/profile

Se não estiver lá, será necessário restaurá-lo a partir de um backup ou de outra máquina com o Lion instalado ou instalar o Lion novamente. Se ele existir, mas não for executável, tente usar o Utilitário de Disco para reparar permissões de disco.

Se ele existe e é executável (e contém algum código), pode não estar sendo executado quando deveria ou o seu script de inicialização pode, de alguma forma, substituí-lo. Como solução alternativa, tente colocar . /etc/profileno início do arquivo ~/.bash_profilepara garantir que ele seja executado. Se você ainda encontrar o problema, adicione echo $PATHdepois de executá-lo para ver se PATH foi inicializado corretamente. Se foi, algo no seu script está mudando.

Aqui está o conteúdo padrão de /etc/profile:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

path_helperconstrói o PATH padrão. Você pode tentar correr

unset PATH; /usr/libexec/path_helper -s

para ver o que produz.

De qualquer forma, se o problema não estiver no seu script de inicialização, entre em contato com o suporte da Apple http://www.apple.com/support/contact/ ou relate um erro em https://bugreport.apple.com / para informar à Apple que há um problema.

Chris Page
fonte
unset PATH; /usr/libexec/path_helper -smostra-me o CAMINHO que não está contido no meu arquivo /etc/profile. Alguma sugestão?
Etienne Low-Décarie
A execução . /etc/profilecorrige temporariamente o problema. Eu colei no topo do meu ~/.bash_profile, mas parece que isso também não é executado.
Etienne Low-Décarie
1
Verifique a página do manual do bash para obter a lista completa dos arquivos de inicialização e a ordem em que eles são pesquisados. Se você tiver um arquivo de login, ele terá precedência sobre o perfil, por exemplo. Verifique se há outros arquivos de inicialização.
Chris Page
1

Para verificar se realmente há um problema no seu caminho, qual é o resultado /bin/ls?

Se funcionar, do que você deve restaurar o caminho /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin, você pode usar, por exemplo, VIcujo caminho está (no meu mac) /usr/bin/vi.

Cedric H.
fonte
0

Pensei em compartilhar o erro que me levou a esse erro - pelo menos no meu caso,

Quando eu adicionei um novo PATHem ~/.bash_profile, eu esqueci de acrescentar :$PATH, no final do caminho que eu adicionei.

Eu usei a correção temporária (o seguinte comando no terminal) que os mestres aqui já apontaram para voltar ao bash_profile, pois eu não podia usar os comandos vi para abri-lo em primeiro lugar.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Quando entrei, retifiquei meu erro.

(Dados negativos são importantes!)

AshlinJP
fonte
-1

Eu estava tentando definir meu caminho para variáveis ​​de ambiente quando isso aconteceu. Acabei de mover meu arquivo .profile e .bash_profile para a lixeira e tentei novamente e funcionou.

shahid610169
fonte
-1

Redefinir seu terminal funcionará. Ele redefinirá suas configurações básicas.

Redefina seu terminal. Na navegação superior, vá para Shell >> Redefinir.

insira a descrição da imagem aqui

Ashish Vitthal Dalvi
fonte
1
Como a redefinição do Terminal resolve um problema bash?
nohillside
-2

Parece que sua variável PATH está corrompida. Verifique se, por acaso, você está modificando a variável PATH no seu script ou simplesmente verifique o PATH dizendo echo $ PATH e você pode ter certeza se nada está corrompido.

Nauman
fonte
-3

você pode exportar o caminho da seguinte maneira:

exportar PATH = $ PATH: / bin: / usr / local / bin

pravin
fonte
3
Bem-vindo ao perguntar diferente! Esta pergunta já tem uma resposta aceita e sua resposta não é materialmente diferente da resposta aceita. Consulte o seguinte FAQ sobre como fornecer uma boa resposta: apple.stackexchange.com/help/how-to-answer
FSB