“-Bash: ls: comando non trovato”


30

Ho installato l'aggiornamento più recente di OS X Lion (10.7). Dopo averlo fatto, il mio terminale non riconoscerà i normali comandi. Ho digitato lse ottenuto:

-bash: ls: command not found

Ho pensato di provare ad aggiungere usr / bin al mio percorso, ma non riesco a trovare .bash_profile per modificarlo poiché la digitazione edit .bash_profilenon funzionerà. Non riesco a impostare il Finder per mostrare tutti i file poiché il mio terminale non riconoscerà i comandi necessari per farlo.

Cosa devo fare?


2
Vediamo un percorso e vediamo cosa si scatena. export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binincolla la parte scura (o digitala MOLTO ATTENTAMENTE) - poiché mancano due comandi - qualcosa ha colpito il tuo percorso. Prima di fare qualcosa di grosso, dare il via a un backup potrebbe essere prudente.
bmike

1
@bmike grazie! aggiunto a .bash_profile e ora funziona tutto. /usr/bin/vi ~/.bash_profileho dovuto aprire .bash_profile in questo modo: inseriscilo come risposta e posso accettarlo!
Modalità lusso

Risposte:


42

Poiché a due comandi manca qualcosa che "ha calpestato" il tuo percorso.

Prima di fare qualcosa di grosso, dare il via a un backup potrebbe essere prudente.

Il percorso predefinito su Mac OS X 10.7 (Lion) è qualcosa del genere:

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

Se ripristini il percorso digitando quanto sopra in una finestra shell, e quindi digitandolo export PATH, dovresti risolvere quella finestra.

Quindi puoi iniziare lì e vedere cos'altro potrebbe essere sbagliato e risolverlo nei tuoi file dot di avvio o altrove viene definito.

Questa rottura è quasi sempre qualcosa che devi correggere nei tuoi file dot. Per bash, modifica e correggi .bash_profilee / o .bashrcannullando una recente modifica, ti basta impostare di nuovo $ PATH. Il solito errore è l'assegnazione di un nuovo percorso e non si riferisce al valore precedente della variabile sul lato destro di =


2
Per me, questo fornisce una soluzione temporanea.
Etienne Low-Décarie,

2
Grazie! Mi sono increspato per un po 'quando lsnon ha funzionato dopo l'aggiornamento .bash_profile😂
Adrian

Sì @Adrian un errore di sintassi o un PERCORSO vuoto può causare un'ansia intensa 😅🤭🤬🔥
bmike

Questo ha dato una soluzione temporanea. Ho dovuto ripetere tutti i passaggi una volta riavviato il CMD
Pawan il

Funziona ancora per Mac OS 10.14.3
Stephen Romero,

11

Ciò dovrebbe risolvere il problema in modo completo e permanente.

in primo luogo, esportare i percorsi di ambiente utilizzando il comando seguente nel terminale.

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

ora hai i comandi che desideri. (es. prova ls. Vedrai che il comando funziona). Ma questo è solo per la sessione corrente. Se chiudi il terminale e ne apri uno nuovo, avrai il problema precedente. Per rendere permanente questa modifica, utilizzare il comando seguente,

vai alla home directory

cd ~

apri il file .bash_profile in nano / vim (sto usando nano qui)

nano .bash_profile

Questo aprirà nano editor. In una nuova riga, incolla quanto segue;

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

premi 'control' + 'o' per salvare (WriteOut) e 'control' + 'x' per uscire da nano.

Tutto fatto ! Ora prova i comandi.


3

Mi sembra che /etc/profilenon sia stato eseguito all'avvio della shell. È il file di avvio globale responsabile dell'inizializzazione di PATH. Verifica se /etc/profileesiste ed è leggibile ed eseguibile con il seguente comando:

. /etc/profile

Se non è presente, dovrai ripristinarlo da un backup o da un'altra macchina con Lion installato o installare nuovamente Lion. Se esiste ma non è eseguibile, prova a utilizzare Utility Disco per riparare i permessi del disco.

Se esiste ed è eseguibile (e contiene del codice), o potrebbe non essere eseguito quando dovrebbe o lo script di avvio potrebbe in qualche modo sovrascriverlo. Per ovviare al problema, prova a metterlo . /etc/profileall'inizio ~/.bash_profileper assicurarti che venga eseguito. Se il problema persiste, aggiungilo echo $PATHdopo averlo eseguito per vedere se il PERCORSO è stato inizializzato correttamente. Se lo era, qualcosa nella tua sceneggiatura lo sta cambiando.

Ecco i contenuti predefiniti di /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_helpercostruisce il PERCORSO predefinito. Potresti provare a correre

unset PATH; /usr/libexec/path_helper -s

per vedere cosa produce.

In ogni caso, se il problema non è nei tuoi script di avvio, contatta l'assistenza Apple http://www.apple.com/support/contact/ o segnala un bug su https://bugreport.apple.com / per far sapere ad Apple che c'è un problema.


unset PATH; /usr/libexec/path_helper -smi mostra il PERCORSO che non è contenuto nel mio /etc/profile. Eventuali suggerimenti?
Etienne Low-Décarie,

L'esecuzione . /etc/profilerisolve temporaneamente il problema. Ho incollato nella parte superiore del mio ~/.bash_profile, ma sembra che neanche questo sia eseguito.
Etienne Low-Décarie,

1
Controllare la pagina man di bash per l'elenco completo dei file di avvio e l'ordine in cui vengono cercati. Se si dispone di un file di accesso, ad esempio, ha la precedenza sul profilo. Controlla altri file di avvio.
Chris Page

1

Per verificare che si tratti effettivamente di un problema con il tuo percorso, qual è il risultato /bin/ls?

Se funziona, per cui dovresti ripristinare il tuo percorso /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin, puoi usare ad esempio il VIcui percorso è (sul mio mac) /usr/bin/vi.


0

Ho pensato di condividere l'errore che mi ha portato a questo errore - almeno nel mio caso,

Quando ho aggiunto un nuovo PATHin ~/.bash_profile, ho dimenticato di aggiungere :$PATHalla fine del percorso che ho appena aggiunto.

Ho usato la correzione temporanea (il seguente comando nel terminale) che i master qui hanno già sottolineato per tornare a bash_profile poiché non potevo usare i comandi vi per aprirlo in primo luogo.

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

Una volta entrato, ho corretto il mio errore.

(I dati negativi contano!)


-1

Stavo cercando di impostare il mio percorso maven per le variabili di ambiente quando questo è successo. Quindi ho appena spostato il mio file .profile e .bash_profile nel cestino e riprovato e ha funzionato.


-1

Il ripristino del terminale funzionerà. Ripristinerà le tue configurazioni di base.

Ripristina il tuo terminale. Dalla navigazione principale, vai su Shell >> Ripristina.

inserisci qui la descrizione dell'immagine


1
In che modo il ripristino del terminale risolve un problema con bash?
nohillside

-2

Sembra che la tua variabile PATH sia corrotta. Controlla se per caso stai modificando la variabile PATH all'interno del tuo script o semplicemente controlla il PERCORSO dicendo echo $ PATH e puoi assicurarti che nulla sia corrotto.


-3

è possibile esportare il percorso come segue:

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


3
Benvenuti a chiedere diverso! Questa domanda ha già una risposta accettata e la tua risposta non è materialmente diversa dalla risposta accettata. Si prega di consultare le seguenti FAQ su come fornire una buona risposta: apple.stackexchange.com/help/how-to-answer
fsb
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.