Comandi di base non funzionanti, ad esempio: -bash: ls: nessun file o directory


8

Sono nuovo di Unix e nel processo di installazione di un programma per la mia tesi di laurea devo aver giocato con il PERCORSO per i comandi di base di Unix come ls. Ogni volta che scrivo lse il nome della directory per cui voglio elencare i file, viene visualizzato come:

-bash: ls: No such file or directory

Cosa posso fare per risolvere questo problema? Qualsiasi aiuto è molto apprezzato!


Il motivo per cui non funziona ma il cd lo documenta nella mia risposta
Michael Durrant,

Risposte:


23

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 suda 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!)


Hey! Molte grazie! Ho appena ripristinato il percorso, ma quando apro una nuova finestra del terminale succede la stessa cosa. Ho quindi fatto più ~ / .bash_profile per verificare eventuali modifiche e questo mostra questo: export PATH =
Mariaa,

È normale?
Mariaa,

Inoltre, quando echo $ PATH non ottengo risultati ... non sono sicuro che sia normale o no
Mariaa,

@Mariaa come si reimposta il percorso dire il file o il comando.
jgr208,

1
Assicurati di testare eventuali modifiche aprendo una nuova finestra o eseguendola source ~/.bash_profile. È anche buona norma tenere aperta la finestra e l'editor (in cui si sta modificando 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.
Michael Durrant,

8

Le modifiche apportate PATHsono probabilmente temporanee. Chiudi il guscio con cui ti trovi exite riaprilo.

Nel caso in cui sia stato modificato un file che imposta le PATHshell appena aperte, specificare il percorso completo dei comandi per correggere qualsiasi cosa sia stata modificata (ad es. /usr/bin/vim).


Ciao! Grazie per
sistemare

è /usr/bino qualsiasi bindirectory nel tuo percorso? @Mariaa
jgr208,

jgr208: questo è il mio percorso: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
Mariaa,

@Mariaa non hai eliminato bin o altro e hai accesso in lettura ai file corretti?
jgr208,

Tuttavia, posso vedere questo o usare qualsiasi comando solo quando inserisco PATH = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin questo in un nuovo terminale finestra ... altrimenti non posso usare nessuno dei comandi. Non li riconosce: S
Mariaa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.