Redefina seu caminho agora (ou seja, antes de qualquer tipo de logout) com:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Ele não recupera seu PATH completo, mas os utilitários básicos estarão disponíveis novamente.
Aqui está um exemplo do tipo de coisa que acontece:
Você tinha uma variável PATH (referida como $ PATH ao ler a partir dela)
Algo como:
$ echo $PATH
/home/durrantm/.rvm/gems/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/durrantm/.rvm/rubies/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/bin:/h
ome/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:
/home/durrantm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/durrantm/.rvm/bin:/home/durrantm/.rvm/bin:/home/durrantm
/.rvm/bin
Você tentou adicionar, mas usou acidentalmente
PATH=PATH:other_dir
ao invés de
PATH=$PATH:other_dir
e o resultado foi que seu caminho se tornou
PATH:other_dir
e então todos os utilitários como sl e sed não funcionam
Você pode corrigir o conjunto mínimo fazendo
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
o que é particularmente útil se um arquivo de ponto de login estiver atrapalhando o seu PATH
Verifique os arquivos .bashrc e / ou .bash_profile quanto a alterações no PATH.
Como Greg diz, você também pode simplesmente sair (ou opção mais segura, abrir uma nova janela, caso a abertura de uma nova janela seja quebrada!) E, em seguida, ecoar $ PATH a partir de uma nova janela.
O mesmo acontece quando você faz path=
sem valores. 'Limpa' o caminho atual e causa esses problemas.
Quanto ao porquê , quando você tem esses problemas, o cd funciona e o ls não funciona:
cd
é um comando "interno" que não precisa do seu PATH para encontrar o programa
ls
é um programa e precisa usar o PATH para descobrir onde está.
Você pode ver isso com:
$ builtin ls
-bash: builtin: ls: not a shell builtin
14:47:29 mdurrant C02MH2DQFD58 /Users/mdurrant
$ builtin cd
14:47:31 mdurrant C02MH2DQFD58 /Users/mdurrant
$
Nenhum erro significa que o comando está embutido
Antes de 'seguir em frente' (ou sair) ...
Certifique-se de testar quaisquer alterações ( particularmente as que estão em .bashrc, .profile, etc que estão executando os comandos de configuração PATH) abrindo uma nova janela ou executando o código fonte ~ / .bash_profile para executá-la. Também é uma boa prática manter a janela e o editor (quando você estiver alterando o arquivo .bash_profile) abertos, caso suas alterações não funcionem e impedir que você abra novas janelas para editar o arquivo. Embora você ainda possa usar o TextEdit ou outro editor simples para alterar o arquivo (evitando a linha de comando e vi, por exemplo). Cuidado para NÃO reiniciar se / quando o seu shell estiver quebrado ou você não conseguir fazer o login. e isso é realmente muito ruim (sem outra conta para su
você receber uma mangueira). Já aconteceu comigo!
Minha correção de 'conta extra' também foi um salva-vidas e, no entanto, é altamente recomendável para todos (faça isso agora!)