Cosa significa $ PATH?


28

Sto cercando di installare qualcosa e tra i passaggi c'era questo:

"Posizionalo sul tuo $PATH"

Cosa significa questo? Cos'è quello?

Ho cercato sia questo sito che su Google, ma tutti lo danno per scontato!



2
@muru No Ho letto quella domanda e non ha nulla in comune con la mia. Anche questa domanda non è stata affatto utile.
Adam,

4
@muru Penso che la domanda non riguardi come aggiungere (o potrei fraintendere cosa si intende per "Posizionalo sul tuo $ PERCORSO").
Jacob Vlijm,

1
@JacobVlijm hai ragione, non lo è.
Adam,

2
Vedo. Tutto apposto. Relazionato; askubuntu.com/q/141718/158442
muru,

Risposte:


24

Esegui in un terminale:

echo $PATH

o

printf "%s\n" "$PATH"

quello che vedi è un elenco di directory, simile a:

/home/jacob/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Se si inserisce un eseguibile in una di queste directory, non è necessario impostare il percorso dell'eseguibile / dello script, ma è possibile eseguirlo con il suo nome come comando.

I file eseguibili $PATHnon dovrebbero avere un'estensione della lingua per convenzione (anche se funzionerebbero)

Modifica la tua variabile $ PATH

È possibile (permanentemente) aggiungere una directory $PATHaggiungendo la seguente riga al ~/.profilefile (invisibile per impostazione predefinita, premere Ctrl+ Hnel file manager per renderlo visibile):

export PATH=$PATH:/path/to/dir

Informazioni più utili sulle variabili di ambiente

(come $PATH) può essere trovato qui (grazie per i suggerimenti @Letizia)


possiamo suggerire come cambiarlo in .bashrc PATH = $ PATH: / path / you / want, o in .profile, cosa ne pensi?
Lety,

e questo è un link utile per i principianti
Lety,

@Letizia Preferirei la prima. Hai rimosso la tua risposta? eravamo praticamente allo stesso tempo. avremmo potuto fare una combinazione ben diffusa :)
Jacob Vlijm,

Sì, l'ho già fatto, la mia risposta è stata rimossa e ho pensato che contribuisse meglio alla tua. Cosa ne pensi del mio commento?
Lety,

@Letizia comment = perfetto, lo modificherò. Grazie!
Jacob Vlijm,

6

$PATHè una variabile di ambiente relativa alla posizione del file .

Quando si digita un comando da eseguire, il sistema lo cerca nelle directory specificate PATHnell'ordine specificato.

È possibile visualizzare le directory specificate digitando echo $PATHnel terminale.

Supponiamo che sia presente un file eseguibile foobar01.shsul /home/user/foo1/foo2/foobar01.shquale si desidera eseguire regolarmente. digitare l'intero "percorso" richiederebbe molto tempo. Quindi aggiungiamo la directory alla $PATHvariabile e possiamo eseguire foobar.shdirettamente senza nemmeno specificare il percorso.

Puoi aggiungerlo $PATHdigitando il seguente comando

export PATH=$PATH:/home/user/foo1/foo2


2

Presumo che tu provenga da uno sfondo di Windows (mi scuso se non è vero). In parole povere, un percorso (o il percorso di ricerca) è l'elenco di directory che verranno ricercate per qualsiasi cosa digiti sulla riga di comando. Se digiti un comando integrato come ls, cercherà un elenco specificato di directory. Puoi cercare il tuo percorso digitando echo $ PATH. Ecco una differenza tra Windows e * nix: per impostazione predefinita, Windows cerca sempre il file eseguibile nella directory corrente. Ad esempio, se si dispone di un file chiamato uptime.bat in c: \ myscripts e si esegue cd c: \ myscripts e si digita uptime, verrà eseguito. Tuttavia, in * nix, verrà consultato il percorso e verrà trovato l'eseguibile (se disponibile).

Se conservi i tuoi script in una directory chiamata / home / teresa / scripts, per eseguire tali script, dovrai specificare il percorso completo di quella directory. Esempio: / hone / teresa / checkHost. Una variante sarebbe cd / home / teresa e quindi digitare ./checkHost (notare il ./ che significa che si sta esplicitamente chiedendo al file di essere eseguito dalla directory corrente.

Per evitarlo, puoi semplicemente digitare

export PATH = $ PATH: / home / teresa / script

il che significa che, oltre al percorso che già esiste ora, cerca anche in / hone / teresa / script. Tuttavia, il problema con questo è che una volta disconnesso, questa impostazione sarebbe scomparsa. Quindi, dovresti modificare il file nascosto ~ / .bashrc, trovare lì la linea PATH e aggiungerla di conseguenza. Presumo che tu usi bash. Nel caso di altre shell, la sintassi e il file sono diversi.

Come nuovo utente, è molto allettante avere. nel percorso di ricerca, che in pratica significa che cerca anche nella directory corrente. Tuttavia, questa non è considerata una buona pratica per motivi discussi altrove.

HTH

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.