Come aggiungere una directory al tuo $PATH in Linux

Fatmawati Achmad Zaenuri/Shutterstock



|_+_| è uno dei manipolatori silenziosi sullo sfondo del tuo computer Linux. Influisce silenziosamente sulla tua esperienza utente, ma non c'è nulla di losco al riguardo. Spiegheremo cosa fa e come puoi regolarlo.

Che cos'è $PATH su Linux e come funziona?

Quando si digita un comando in una finestra del terminale e si preme Invio, si avviano molte attività prima ancora che il comando venga eseguito.





bash è la shell predefinita sulla maggior parte delle distribuzioni Linux. Interpreta la riga di testo che hai inserito e identifica i nomi dei comandi mescolati ai parametri, tubi , reindirizzamenti , e qualsiasi altra cosa ci sia. Quindi individua i binari eseguibili per quei comandi e li avvia con i parametri forniti.

Il primo passo che la shell compie per individuare l'eseguibile è identificare se è coinvolto anche un binario. Se il comando che usi è all'interno della shell stessa (a shell incorporato ) non sono necessarie ulteriori ricerche.



I built-in della shell sono i più facili da trovare perché sono parte integrante della shell. È come averli in una cintura degli attrezzi: sono sempre con te.

Annuncio pubblicitario

Se hai bisogno di uno dei tuoi altri strumenti, però, devi andare a frugare in officina per trovarlo. È sul tuo banco da lavoro o su un appendiabiti da parete? Questo è ciò che |_+_| variabile d'ambiente lo fa. Contiene un elenco di luoghi in cui la shell esegue la ricerca e l'ordine in cui verranno cercati.

Se vuoi vedere se un comando è a shell incorporata, un alias, una funzione o un binario autonomo mv /work/unfile , puoi usare |_+_| comando come mostrato di seguito:



$PATH $PATH

Questo ci dice che |_+_| è un file binario e il primo trovato nel percorso si trova in |_+_|. Potresti avere più di una versione di |_+_| installato sul tuo computer, ma questo è quello che la shell proverà a usare.

Non sorprende che |_+_| è una shell incorporata.

Elencare il tuo $PATH

È facile vedere cosa c'è nel tuo percorso. Basta digitare quanto segue per utilizzare |_+_| comando e stampa il valore tenutosi nel |_+_| variabile:

type

L'output è un elenco di posizioni del file system delimitate da due punti (|_+_|). La shell cerca da sinistra a destra attraverso il percorso, controllando ogni posizione del file system per un eseguibile corrispondente per eseguire il comando.

Possiamo scegliere la nostra strada attraverso l'elenco per vedere le posizioni del file system in cui verranno cercati e l'ordine in cui verranno cercati:

  • clear
  • /usr/bin
  • clear
  • cd
  • echo
  • $PATH
  • :
  • /usr/local/sbin
  • /usr/local/bin
Annuncio pubblicitario

Qualcosa che potrebbe non essere immediatamente ovvio è che la ricerca non inizia nella directory di lavoro corrente. Piuttosto, si fa strada attraverso le directory elencate e solo le directory elencate.

Se la directory di lavoro corrente non è nel tuo percorso, non verrà cercata. Inoltre, se hai comandi archiviati in directory che non sono nel percorso, la shell non li troverà.

Per dimostrarlo, abbiamo creato un piccolo programma chiamato |_+_|. Quando eseguito, |_+_| stampa il nome della directory da cui è stato lanciato nella finestra del terminale. Si trova in |_+_|. Abbiamo anche una versione più recente nel |_+_| directory.

Digitiamo quanto segue |_+_| comando per mostrarci quale versione del nostro programma la shell troverà e utilizzerà:

/usr/sbin

La shell riporta che la versione trovata è quella nella directory che si trova nel percorso.

Digitiamo quanto segue per accenderlo:

/usr/bin

Versione 1.0 di |_+_| corre e conferma che le nostre aspettative erano corrette. La versione trovata ed eseguita si trova in |_+_|.

Annuncio pubblicitario

Per eseguire qualsiasi altra versione di |_+_| su questo computer, dovremo utilizzare il percorso dell'eseguibile sulla riga di comando, come mostrato di seguito:

/sbin

Ora che abbiamo detto alla shell dove trovare la versione di |_+_| vogliamo eseguire, utilizza la versione 1.1. Se preferiamo questa versione, possiamo copiarla nel |_+_| directory e sovrascrivere quella vecchia.

Diciamo che stiamo sviluppando una nuova versione di |_+_|. Avremo bisogno di eseguirlo frequentemente mentre lo sviluppiamo e lo testiamo, ma non vogliamo copiare una build di sviluppo non rilasciata nell'ambiente live.

O forse abbiamo scaricato una nuova versione di |_+_| e desideriamo eseguire alcuni test di verifica su di esso prima di renderlo disponibile pubblicamente.

Se aggiungiamo la nostra directory di lavoro al percorso, facciamo in modo che la shell trovi la nostra versione. E questo cambiamento riguarderà solo noi: altri useranno ancora la versione di |_+_| a |_+_| .

Aggiungere una directory al tuo $PATH

Puoi usare il |_+_| comando a aggiungi una directory al |_+_|. La directory viene quindi inclusa nell'elenco delle posizioni del file system che la shell cerca. Quando la shell trova un eseguibile corrispondente, interrompe la ricerca, quindi assicurati che cerchi prima nella tua directory, prima di |_+_|.

Annuncio pubblicitario

È facile da fare. Per il nostro esempio, digitiamo quanto segue per aggiungere la nostra directory all'inizio del percorso in modo che sia la prima posizione cercata:

/bin

Questo comando imposta |_+_| essere uguale alla directory che stiamo aggiungendo, |_+_|, e quindi l'intero percorso corrente.

Il primo |_+_| non ha il simbolo del dollaro (|_+_|). Impostiamo il valore per |_+_|. La finale |_+_| ha il simbolo del dollaro perché stiamo facendo riferimento ai contenuti memorizzati nel |_+_| variabile. Inoltre, nota i due punti (|_+_|) tra la nuova directory e |_+_| nome della variabile.

Vediamo come si presenta il percorso ora:

/usr/games

Il nostro |_+_| directory viene aggiunta all'inizio del percorso. I due punti che abbiamo fornito lo separano dal resto del percorso.

Digitiamo quanto segue per verificare la nostra versione di |_+_| è il primo trovato:

/usr/local/games

La prova nel budino è in esecuzione |_+_|, come mostrato di seguito:

/snap/bin

La shell trova la versione 1.1 e la esegue da |_+_|.

Annuncio pubblicitario

Per aggiungere la nostra directory alla fine del percorso, la spostiamo semplicemente alla fine del comando, in questo modo:

rf

Rendere permanenti le modifiche

Come Beth Brooke-Marciniak disse: Il successo va bene, ma il successo è fugace. Nel momento in cui chiudi la finestra del terminale, tutte le modifiche apportate a |_+_| sono andati. Per renderli permanenti, devi mettere il tuo |_+_| comando in un file di configurazione.

Quando metti |_+_| comando nel tuo |_+_| file, imposta il percorso ogni volta che apri una finestra di terminale. a differenza di |_+_| sessioni , per le quali devi effettuare il login, queste sono chiamate sessioni interattive.

In passato, avresti messo |_+_| comando nel tuo |_+_| file per impostare il percorso per accedere alle sessioni del terminale.

Tuttavia, abbiamo scoperto che se mettiamo |_+_| comando in |_+_| oppure |_+_| file, imposta correttamente il percorso sia per le sessioni interattive che per quelle di accesso al terminale. La tua esperienza potrebbe essere diversa. Per gestire tutte le eventualità, ti mostreremo come farlo in entrambi i file.

Usa il seguente comando nel tuo |_+_| directory per modificare |_+_| file:

rf

Il /usr/local/bin editore si apre con |_+_| file caricato.

L

Annuncio pubblicitario

Scorri fino alla fine del file, quindi aggiungi il seguente comando di esportazione che abbiamo usato in precedenza:

/dave/work

Salva il file. Quindi, chiudi e riapri la finestra del terminale o usa |_+_| comando per leggere il |_+_| file, come segue:

which

Quindi, digita quanto segue |_+_| comando per controllare il percorso:

rf

Questo aggiunge il |_+_| directory all'inizio del percorso.

Il processo per aggiungere il comando a |_+_| il file è lo stesso Digita il seguente comando:

/usr/local/bin

Il |_+_| l'editor si avvia con |_+_| file caricato.

L

Aggiungi il |_+_| comando in fondo al file, quindi salvalo. Chiudere e aprire una nuova finestra di terminale non è sufficiente per forzare |_+_| file da rileggere. Affinché le nuove impostazioni abbiano effetto, è necessario disconnettersi e rientrare o utilizzare |_+_| comando come mostrato di seguito:

rf

IMPARENTATO: Come modificare graficamente i file di testo su Linux con gedit

Stabilire il percorso per tutti

Per impostare il percorso per tutti coloro che utilizzano il sistema, è possibile modificare il |_+_| file.

Dovrai usare |_+_|, come segue:

rfAnnuncio pubblicitario

Quando il |_+_| si avvia l'editor, aggiungere il comando di esportazione in fondo al file.

L

Salva e chiudi il file. Le modifiche avranno effetto per gli altri al successivo accesso.

Una nota sulla sicurezza

Assicurati di non aggiungere accidentalmente i due punti iniziali |_+_| al percorso, come mostrato di seguito.

Se lo fai, questo cercherà prima nella directory corrente, il che introduce un rischio per la sicurezza. Supponi di aver scaricato un file di archivio e di averlo decompresso in una directory. Guardi i file e vedi un altro file zippato. Chiami unzip ancora una volta per estrarre quell'archivio.

Se il primo archivio conteneva un file eseguibile chiamato |_+_| quello era un eseguibile dannoso, avresti accidentalmente attivato quello invece del vero |_+_| eseguibile. Ciò accadrebbe perché la shell cercherebbe prima nella directory corrente.

Quindi, fai sempre attenzione quando digiti il ​​tuo |_+_| comandi. Usa |_+_| $PATH per esaminarli e assicurarti che siano come vuoi che siano.

Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO Foto del profilo di Dave McKay Dave McKay
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa

Articoli Interessanti