Ripristina subito il tuo percorso (ovvero prima di qualsiasi tipo di disconnessione) con:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Non viene ripristinato il PERCORSO completo, ma le utilità di base saranno nuovamente disponibili.
Ecco un esempio del tipo di cose che accadono:
Avevi una variabile PATH (indicata come $ PATH durante la lettura da essa)
Qualcosa di simile a:
$ 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
Hai provato ad aggiungere ad esso, ma hai usato accidentalmente
PATH=PATH:other_dir
invece di
PATH=$PATH:other_dir
e il risultato è stato che il tuo percorso è diventato
PATH:other_dir
e quindi tutte le utility come ls e sed non funzionano
È possibile correggere il set minimo facendo
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
che è particolarmente utile se un file di punti di accesso rovina il tuo PERCORSO
Controlla i tuoi file .bashrc e / o .bash_profile per eventuali modifiche al PERCORSO.
Come dice Greg, puoi anche disconnetterti (o un'opzione più sicura, aprire una nuova finestra nel caso l'apertura di una nuova finestra sia rotta!) E quindi fare eco $ PATH da una nuova finestra.
La stessa cosa succede quando lo fai path=
senza valori. 'Cancella' il tuo percorso attuale e causa questi problemi. Testo
Per quanto riguarda il motivo , quando si verificano questi problemi cd funziona e ls non funziona:
cd
è un comando "incorporato" che non necessita del PERCORSO per trovare il programma
ls
è un programma e devi usare PATH per trovare dove si trova.
Puoi vederlo con:
$ 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
$
Nessun errore indica che il comando è incorporato
Prima di "passare" (o disconnettersi) ...
Assicurati di testare eventuali modifiche (in particolare quelle su .bashrc, .profile, ecc. Che stanno eseguendo comandi di impostazione PATH) aprendo una nuova finestra o eseguendo source ~ / .bash_profile per eseguirla. È anche buona norma tenere aperta la finestra e l'editor (quando si modifica il file .bash_profile) nel caso in cui le modifiche non funzionino e impediscano di aprire nuove finestre per modificare il file. Sebbene sia ancora possibile utilizzare TextEdit o un altro semplice editor per modificare il file (evitando la riga di comando e vi, ad esempio). Fai attenzione a NON riavviare se / quando la shell è rotta o potresti non essere nemmeno in grado di accedere. e questo è davvero pessimo (senza che un altro account su
da parte tua venga cancellato). Mi è successo!
Anche la mia correzione del "conto extra" mi ha salvato la vita e lo consiglio vivamente a tutti (fallo adesso!)