Accidentalmente rimosso tutti i comandi nel terminale

3

Stavo seguendo un tutorial e ho inserito la seguente riga:

export PATH="~/.composer/vendor/bin/"

Ora nessun comando funziona affatto, nemmeno cose come ls .

Che cosa fa il comando che copio e incolla e come lo risolvo?

    
posta John Mellor 25.09.2014 - 12:08
fonte

2 risposte

7

Cosa hai fatto

$PATH è la variabile che dice alla tua shell (bash di default) dove cercare i tuoi comandi. Contiene un elenco di directory, separate da due punti ( : ). Quando digiti ls , la shell cercherà tutte le directory elencate in $PATH ( /bin , /usr/bin e così via) finché non trova un file chiamato ls , e lo eseguirà.

Normalmente, si imposta una variabile semplicemente con

variable="foo bar baz"

... tuttavia, questo imposta solo quella variabile per la shell corrente - quelle modifiche non verranno trasferite alle sotto-shell, che possono essere importanti negli script (per esempio). Usando

export variable="foo bar baz"

... ti ti consentirà di usare la variabile in sotto-shell.

Quindi, quando si utilizza export PATH="~/.composer/vendor/bin/" , si sovrascrive la variabile $PATH , quindi quando si tenta di utilizzare ls , la shell viene visualizzata in ~/.composer/vendor/bin/ , non trova alcun file denominato ls e così fallisce. Quello che probabilmente vorrai fare è aggiungere ~/.composer/vendor/bin/ al tuo $PATH , che puoi fare con:

export PATH="$PATH:~/.composer/vendor/bin/"

Puoi visualizzare il contenuto corrente di $PATH con echo $PATH .

Come risolverlo

Tutto ciò si applica solo alla shell corrente (e a tutte le sue subshell, dato che hai usato export ), quindi puoi risolvere il problema più semplicemente aprendo un nuovo terminale, come Mateusz Szlosek's answer note.

Se fai vuoi modificare il tuo $ PATH in modo permanente, puoi mettere quella riga alla fine del tuo ~/.bashrc , che è originata ogni volta che apri una shell interattiva. Questa è una pratica standard se vuoi scrivere alcuni dei tuoi script (su Linux, usiamo ~/bin per gli script utente, ma possono andare ovunque).

    
risposta data 25.09.2014 - 17:18
fonte
3
Il comando

export funziona solo nella sessione corrente. Puoi "aggiustarlo" aprendo la nuova finestra Terminale / scheda

    
risposta data 25.09.2014 - 12:14
fonte

Leggi altre domande sui tag