La variabile PATH viene sempre resettata. Come risolverlo?


9

Poco tempo fa, ho scoperto che posso creare comandi personalizzati con l'espansione della variabile PATH. Sfortunatamente, viene sempre reimpostato, quando chiudo il terminale e lo riapro.

Sai come risolvere questo problema?

Perché quando voglio iniziare alcuni script con i comandi terminali, non voglio espandere la variabile PATH ogni volta prima ...


1
Mettilo nel tuo .bashrc?
gniourf_gniourf,

Come farlo? Sono nuovo su Linux;)
Jenne il

2
apri il tuo .bashrcfile in questo modo: gedit ~/.bashrce inserisci quello che vuoi lì (in fondo al file è meglio), ad esempio, PATH="~/my/cool/path/:$PATH"ed esporta questa variabile: dopo la riga appena inserita, metti export PATHquindi salva il file, quindi chiudi il terminale e riapri e ora ~/my/cool/pathverranno trovati i tuoi eseguibili .
gniourf_gniourf,

L'ho scritto come una risposta completa per te ...:)
gniourf_gniourf

Risposte:


15

Comprendo che hai alcuni eseguibili in una delle tue cartelle home, ad esempio, in ~/bine vuoi essere in grado di eseguirli senza digitare sempre il percorso completo ~/bin/my_cool_executable.

Hai già osservato che entrare PATH=~/bin:$PATHnel tuo terminale ha fatto funzionare le cose ... ma solo fino a quando non hai chiuso il terminale. Quando ne apri uno nuovo, la tua PATHvariabile precedente viene ripristinata al suo valore originale. A proposito, immagino che tu sappia come, in qualsiasi momento, controllare il valore della PATHvariabile: in questo modo:

echo "$PATH"

Come rendere permanente la modifica in modo che PATHrimanga la stessa quando riaprirete un nuovo terminale? È molto semplice, devi solo modificare il tuo .bashrcfile. Usiamo l' gediteditor: in un terminale, digitare questo:

gedit ~/.bashrc

Questo apre l' gediteditor. Scorri fino alla fine del file e aggiungi questo:

# Added by me on 2013/06/24
PATH=~/bin:$PATH
export PATH

e salva il file ed esci gedit. Quindi chiudere il terminale e aprirne uno nuovo. Ora la tua PATHvariabile dovrebbe trovarsi ~/bindi fronte in modo che i tuoi comandi ~/binsiano accessibili senza digitare il loro percorso completo. E si sa come controllare che: echo "$PATH".

Godere!

Attenzione . È considerata una cattiva pratica e una vulnerabilità della sicurezza da inserire .nella PATHvariabile.


Quindi, è stato davvero bello, ma ora non riesco ad avviare i programmi, quando sono root. Sai perché e come risolverlo? :)
Jenne,

In questo caso, un'opzione è quella di mettere i tuoi programmi /usr/local/bininvece di armeggiare con la PATHvariabile ... o dentro /usr/local/sbinse devono essere accessibili solo da root.
gniourf_gniourf,

Alcuni devono essere eseguiti come root e altri no. Quindi sarebbe bello, se non avesse importanza e potessero trovarsi in una directory personalizzata. Quindi è in grado di farlo? :)
Jenne,
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.