La variabile PATH in Linux memorizza il percorso delle directory in cui dovrebbe cercare gli eseguibili quando esegui un comando.
[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Come puoi vedere, il PERCORSO è costituito da diverse directory (come /usr/local/sbin, /usr/bin e altre) separate da due punti (:) .
Se vuoi eseguire alcuni eseguibili come comando da qualsiasi punto del sistema, dovresti aggiungere la loro posizione nella variabile PATH.
Questo è comune durante la configurazione di un ambiente di sviluppo. Ad esempio, immagina di aver scaricato e installato Java e Maven. Per far funzionare correttamente i tuoi programmi, dovrai specificare la posizione dei binari di Maven e Java nel PERCORSO.
Questo breve tutorial riguarda la configurazione di PATH in Linux. Oltre ai passaggi, menzionerò anche le cose a cui dovresti stare attento quando hai a che fare con PATH.
Aggiunta di una directory a PATH in Linux
Il processo per aggiungere una nuova directory alla variabile PATH in Linux è essenzialmente questo:
export PATH=$PATH:your_directory
Dove your_directory
è il percorso assoluto alla directory interessata.
Diciamo che scarichi ed estrai Maven nella home directory e desideri aggiungere la sua directory bin al PERCORSO. Supponiamo che il percorso assoluto di questa directory bin sia /home/abhishek/maven/apache-maven-3.8.0/bin.
Ecco cosa dovresti fare:
export PATH=$PATH:/home/abhishek/maven/apache-maven-3.8.0/bin
export PATH=$PATH:/home/abhishek/maven/apache-maven-3.8.0/bin
Cose a cui prestare attenzione qui:
- Il $ prima del nome di una variabile significa che ti riferisci al suo valore. PATH è il nome della variabile, $PATH è il valore della variabile PATH.
- Non dovresti usare $ con PATH sul lato sinistro di =
- Non devono esserci spazi prima e dopo =
- Non dimenticare di includere :dopo $PATH perché le directory in PATH sono separate da due punti.
- Non deve esserci uno spazio prima e dopo i due punti (:).
Dopo aver impostato il PERCORSO con il nuovo valore, controlla che il PERCORSO sia stato aggiornato correttamente.
[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/abhishek/maven/apache-maven-3.8.0/bin
Potresti voler eseguire il comando o lo script per cui hai modificato il PERCORSO. Questo ti dirà con certezza se il PERCORSO è impostato correttamente ora.
Rendere permanenti le modifiche al PERCORSO
Hai aggiunto la directory desiderata alla variabile PATH ma la modifica è temporanea. Se esci dal terminale, esci dalla sessione o esci dal sistema, il PERCORSO verrà ripristinato e le modifiche andranno perse.
Se vuoi rendere permanenti le modifiche alla variabile PATH, puoi aggiungerla al file .bashrc nella tua home directory, supponendo che tu stia usando la shell Bash.
Puoi utilizzare un editor di testo come Nano o Vim per questa attività.
nano ~/.bashrc
Se vuoi che la variabile PATH modificata sia disponibile per tutti sul sistema Linux, puoi aggiungere l'esportazione al file /etc/profile. Questo è adatto quando sei un amministratore di sistema e hai un sistema configurato con percorso personalizzato.
Suggerimento bonus:le directory hanno la precedenza in PATH
Ci sono diverse directory nella variabile PATH. Quando esegui un file/comando eseguibile, il tuo sistema esamina le directory nello stesso ordine in cui sono menzionate nella variabile PATH.
Se /usr/local/sbin viene prima di /usr/bin, l'eseguibile viene cercato per primo in /usr/local/sbin. Se l'eseguibile viene trovato, la ricerca termina e l'eseguibile viene eseguito.
Questo è il motivo per cui troverai alcuni esempi in cui la directory aggiuntiva viene aggiunta prima di tutto in PATH:
export PATH=your_directory:$PATH
Se pensi che la tua directory aggiuntiva debba essere cercata prima di ogni altra cosa dovresti aggiungerla prima di $PATH altrimenti aggiungila dopo $PATH.
È stato abbastanza chiaro?
Ho cercato di spiegare le cose con i dettagli necessari ma non andando troppo in profondità nei dettagli. Siedi chiarisci l'argomento o sei più confuso di prima? Se hai ancora dubbi, faccelo sapere nei commenti.