2011-05-16 18:25:57 +0000 2011-05-16 18:25:57 +0000
347
347

Cosa sono PATH e altre variabili ambientali e come posso impostarle o utilizzarle?

Domande su

  • impostazione delle variabili ambientali
  • le PATH

sono molto comuni in questo caso, e nella maggior parte dei casi le risposte sono molto simili tra loro. In futuro sarebbe bello avere un buon Q/A per questo.

Quindi la domanda è: **Quali sono le variabili d'ambiente, come l'eseguibile PATH, e come posso cambiarle e usarle sui principali sistemi operativi? Una buona risposta includerebbe una semplice spiegazione di quali variabili d'ambiente e soprattutto PATH significano per il sistema operativo, così come semplici linee guida su come impostarle e leggerle di conseguenza.

Risposte (5)

337
337
337
2011-05-16 18:44:52 +0000

Cosa sono le variabili d'ambiente?

Le variabili d'ambiente contengono valori relativi all'ambiente corrente, come il sistema operativo o le sessioni utente.

Percorso

Uno dei più noti si chiama PATH su Windows, Linux e Mac OS X. Specifica le directory in cui si trovano i programmi eseguibili* sulla macchina che possono essere avviati senza conoscere e digitando l'intero percorso del file sulla riga di comando. (O in Windows, la finestra di dialogo Run nel menu Start o

+R).

Su Linux e Mac OS X, di solito contiene tutte le directory bin e sbin rilevanti per l'utente corrente. Su Windows, contiene almeno le directory C:\Windows e C:\Windows\system32 - ecco perché è possibile run calc.exe o notepad.exe dalla riga di comando o dalla finestra di dialogo Run, ma non firefox.exe. (Firefox si trova in C:\Program Files\Mozilla Firefox. Per informazioni su come includere Firefox, andare qui .)

Per esempio, digitando calc (il .exe _può essere omesso) nella riga di comando di Windows si avvia la calcolatrice di Windows.

* Si può aggiungere il supporto per estensioni di file diverse da .exe modificando %PATHEXT% .

Altre

Altre variabili potrebbero indicare ai programmi che tipo di terminale viene usato (TERM su Linux/Mac OS X), o, su Windows, dove si trova la cartella Windows (ad esempio, %WINDIR% è C:\Windows).

Creazione di nuove variabili d'ambiente

In Windows, Linux e Unix, è possibile creare nuove variabili d'ambiente, i cui valori sono poi resi disponibili a tutti i programmi al momento del lancio.

È possibile utilizzare questa funzione quando si scrivono script o programmi che sono installati o distribuiti su più macchine e che necessitano di valori di riferimento specifici per queste macchine. Anche se un effetto simile può essere ottenuto usando impostazioni di configurazione specifiche di un programma, è più facile farlo usando una variabile d'ambiente se più programmi devono accedere allo stesso valore.

 

Windows

GUI

  1. Apri Control Panel » System » Advanced » Environment Variables.

    1. Digitare control sysdm.cpl,,3 nella finestra di dialogo Esegui (
      +R) e fare clic su Environment Variables. Per modificare le variabili utente è possibile anche digitare
  2. Digitare

. 3. Fare clic con il tasto destro del mouse su (My) Computer e fare clic su Proprietà, o semplicemente premere

+Break.

  1. Premere &004+Break. Ci sono molti altri modi per raggiungere lo stesso punto, come ad esempio digitando “variabili d'ambiente” nel menu di avvio/schema di ricerca e così via.

Le variabili d'ambiente in Windows sono separate in valori specifici dell'utente e della macchina/sistema. Qui è possibile visualizzare e modificare i loro valori. I loro valori attuali al lancio sono resi disponibili a tutti i programmi.

C'è anche Rapid Environment Editor , che aiuta ad impostare e modificare le variabili d'ambiente in Windows senza la necessità di andare in profondità nelle impostazioni di sistema. Un altro programma open source per Windows con il quale l'ambiente di percorso può essere modificato molto comodamente è Path Editor .

Linea di comando

Formato

Formato

Le variabili d'ambiente in Windows sono indicate con segni di percentuale (%) che circondano il nome:

%name%

echo

Per visualizzare il valore di una variabile d'ambiente in cmd.exe, digitare echo %name%.

C:\>echo %USERPROFILE%
C:\Users\Daniel
``` ```
C:\>set FunnyCatPictures=C:\Users\Daniel\Pictures\Funny Cat Pictures

C:\>set FunnyCatPicturesTwo=%USERPROFILE%\Pictures\Funny Cat Pictures 2

imposta

Per creare/impostare una variabile, usare set varname=value:

C:\>set Penguins=C:\Linux

C:\>set Penguins=C:\Windows;%Penguins%

C:\>echo %Penguins%
C:\Windows;C:\Linux
``` ```
C:\>setx FunnyCatPictures "C:\Users\Daniel\Pictures\Funny Cat Pictures"

[Restart CMD]

C:\>echo %FunnyCatPictures%
C:\Users\Daniel\Pictures\Funny Cat Pictures

Per aggiungere/aggiungere una variabile, usare set varname=value;%varname%:

var=value; export var
export var=value
``` &001 



Le variabili d'ambiente così impostate sono disponibili per (il resto della) durata del processo di Prompt dei comandi in cui sono impostate, e sono disponibili per i processi che vengono avviati dopo l'impostazione delle variabili. 


### setx 


Per **creare/impostare** una variabile **permanentemente** , usare `setx varname "value"`: 


&001 



A differenza di `set`, non c'è un segno di uguale e il valore deve essere racchiuso tra virgolette se contiene degli spazi. Si noti che le variabili possono espandersi in una stringa con spazi (ad esempio, `%PATH%` diventa `C:\Program Files`), quindi è meglio includere le virgolette attorno a valori che contengono qualsiasi variabile. 


È necessario aggiungere manualmente `setx` alle versioni di Windows precedenti a Vista.   [ Windows XP Service Pack 2 Support Tools ](http://www.microsoft.com/downloads/en/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en) 


## Lista delle variabili d'ambiente di Windows 
[ Qui ](http://en.wikipedia.org/wiki/Environment_variable#Default_Values) è una lista di **variabili d'ambiente difettose** , che sono incorporate in Windows. Alcuni esempi sono:`%WINDIR%`, `%SystemRoot%`, `%USERPROFILE%`, `%APPDATA%` e `/etc`. Come la maggior parte dei nomi in Windows, questi sono case-insensitive. 


  


# Derivati Unix (FreeBSD, GNU / Linux, OS X) 


Le variabili d'ambiente in Linux hanno il prefisso con il segno del dollaro ($) come $HOME o $HOSTNAME. Molte variabili ben note e standard sono scritte in lettere maiuscole a significare proprio questo. Si tenga presente che i nomi delle variabili sono sensibili alle maiuscole e minuscole, il che significa che $Utente e $Utente sono del tutto estranei dal punto di vista della shell. 


I derivati Unix definiscono le variabili a livello di sistema negli script di shell situati per lo più nella cartella `/etc/profile`, ma valori specifici per l'utente possono essere dati a quelle variabili negli script situati nella cartella home (per esempio, `$HOME/.bash_profile`, `.profile`). Il file `export` nella cartella home è un luogo comune per definire le variabili utente. 

**Impostazione variabili** 

Questi file sono normali script di shell e possono contenere più di semplici dichiarazioni di variabili d'ambiente. Per impostare una variabile d'ambiente, usare `env`. Per mostrare le variabili d'ambiente attualmente definite in un terminale, eseguire `export`. 


Il comando `setenv` è un modo standard per definire le variabili. La sintassi è molto intuitiva. Il risultato è identico per queste due righe, ma la prima alternativa è preferibile nel caso in cui sia necessaria la portabilità rispetto alla shell Bourne pre-POSIX. 


&001 


La shell C e i suoi discendenti usano una sintassi completamente diversa; lì, il comando è `/etc/paths`. 


Si veda il progetto di documentazione di Linux, [ Path HOWTO ](http://www.tldp.org/HOWTO/Path.html) per una discussione più approfondita su questo argomento. 


Forse, contrariamente a quanto si crede comunemente, OS X è più "Unix" di Linux. Oltre ai file già citati, $PATH può essere modificato in questi file: 


- `/bin` contiene tutte le directory predefinite che vengono aggiunte al percorso, come `/usr/sbin` e `/etc/paths.d`. 
- Qualsiasi file in `setx` - comunemente usato dagli installatori per rendere disponibili dalla shell i file eseguibili che forniscono senza toccare i file di configurazione specifici del sistema o dell'utente. Questi file contengono semplicemente un percorso per riga, ad esempio /Programmi/Mozilla/Calendario/bin. 


  


## Collegamenti esterni: 


> [ Variabili d'ambiente in XP ](http://vlaurie.com/computers2/Articles/environment.htm) 
> [ Windows XP Service Pack 2 Support Tools ](http://www.microsoft.com/downloads/en/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en) (Include &007) 
> [ Variabili d'ambiente in Windows Vista e Windows 7 ](http://vlaurie.com/computers2/Articles/environment-variables-windows-vista-7.htm) 
> [ Aggiunta di eseguibili alla finestra di dialogo Run ](https://web.archive.org/web/20140205002800/http://www.overclock.net/t/15588/how-can-i-start-applications-easily-with-the-run-dialog-box) 
> [ Mac OSX Tips - Setting Environment Variables ](http://mactip.blogspot.com/2004/04/setting-environment-variables.html) 
> [ TLDP: Path Howto ](http://www.tldp.org/HOWTO/Path.html)
64
64
64
2011-05-16 19:03:17 +0000

Questo post è da un punto di vista più tecnico di quello di Daniel, ma non spiega tanto i concetti.


L'articolo Wikipedia è anche un eccellente riferimento.

Linux e la maggior parte dei BSD

Nella maggior parte delle shell a riga di comando, le variabili d'ambiente temporanee sono impostate usando i comandi export (sh, bash, zsh) o setenv (csh, tcsh).

  • Esempi di prependenza da $HOME/bin a $PATH in bash o zsh:

  • csh, tcsh:

Le variabili d'ambiente persistenti possono essere impostate durante diverse fasi separate:

  • Login:

  • Apertura di una finestra di terminale:

Windows NT series

  • In Command Prompt (cmd.exe), usare set name=value per modificare le variabili d'ambiente per quella finestra.

  • Per apportare modifiche persistenti, usare Pannello di controllo → Sistema → Avanzato → Variabili d'ambiente. docs )

  • Le variabili d'ambiente a livello di sistema sono conservate nel Registro, HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment, e caricate all'avvio del sistema.

  • Per impostazione predefinita, il sistema cerca anche i comandi set nel file AUTOEXEC.NT.

MS-DOS, Windows a 16 bit, Windows serie 9x

  • In MS-DOS Prompt (command.com), usare set name=value, come in WinNT.

  • Per apportare modifiche persistenti, aggiungere o modificare le linee set in C:\AUTOEXEC.BAT, quindi riavviare.

VMS

(Impossibile resistere.)

DCL non ha il concetto di “percorso”, ma varie definizioni di simboli e comandi possono essere inserite in SYS$LOGIN:LOGIN.COM.

9
9
9
2014-01-15 17:49:57 +0000

Per le variabili d'ambiente globali (non terminali) della shell bash PATH, seguo la convenzione usata nella mia installazione di Ubuntu VM - le altre shell variano:

Caveat: l'intera sequenza di avvio della shell, quali file .bashrc, .profile, ecc. sono originati in quale ordine?, quando devo ri-login per avere visibilità su variabili appena definite, alias, ecc, qual è la differenza tra una shell di login, interattiva e non interattiva - io uso cron?, e perché quando faccio un . ~/.bashrc è la mia stupida variabile PATH che cresce sempre di più? sono le domande chiave che mi vengono in mente quando penso alla mia variabile PATH.

In effetti, ho appena riscritto completamente il mio intero set di file di avvio bash prendendo idee dai file scheletro di Ubuntu e cygwin, e qui ci sono alcuni dei miei in siti:

  1. 1. Esportare le variabili di PATH e altre variabili ambientali globali (cioè LD_LIBRARY_PATH) nel .profile;
  2. Esportare le variabili di ~/.profile e altre variabili ambientali globali (cioè $HOME/.bashrc) nel ~/.bashrc. 3. Usare la logica in shopt per generare ~/.bashrc, se esiste;
  3. 3. Recintare l'esecuzione dell’.profile con un test per l'esecuzione interattiva, altrimenti uscire;
  4. Esportare l’.bashrc e altre variabili d'ambiente globali (cioè ~/.bash_profile) nell’~/.bash_login;
  5. Mettere tutti gli alias, ~/.bashrc, prompt setup, controllo della cronologia, setup del terminale, definizione delle funzioni, ecc. (configurazione interattiva correlata) nella parte di . ~/.bashrc che è protetta per funzionare solo in modalità interattiva;
  6. Sbarazzati degli altri file di avvio bash, perché la loro esistenza determina se il percorso di controllo attraverso PATH e ~/.profile funziona come previsto. Cioè, a meno che non ci siano requisiti specifici da fare altrimenti, rimuovere .profile & & &007;
  7. Quando sono al prompt del bash, e ho bisogno di aggiornare alcune impostazioni predefinite, modifico il mio file &007, poi semplicemente lo fornisco con un &007 per ottenere quei cambiamenti nella mia shell attuale.
  8. Quando faccio una modifica ad una variabile d'ambiente come &007, devo modificare ed eseguire il source del mio &007;
  9. Metto le mie chiamate su fink, port e preparo configurazioni specifiche in &007.

Questo è il mio 2 centesimi su questo argomento.

8
8
8
2014-07-25 09:57:28 +0000

Q:** ** Cosa sono le variabili d'ambiente ?

A: Le variabili d'ambiente sono simili alle variabili in qualsiasi linguaggio di programmazione. Nel caso di sistemi Windows o Unix, esse memorizzano vari valori per consentire ai programmi e alle attività di ottenere le informazioni necessarie per il sistema operativo o le informazioni “Ambiente”. Per esempio:

USERPROFILE : directory degli utenti all'interno dei file del sistema operativo.

MAIL : dove la posta di un utente può essere trovata all'interno dei file del sistema operativo.

Q: Qual è la variabile PATH in particolare?

A: La variabile PATH imposta i percorsi delle directory da cercare quando vengono eseguiti i comandi, sia per i comandi RUN, sia per le chiamate interne dei programmi. Questo evita che un programma debba conoscere la sua posizione di installazione per chiamare altri processi eseguibili.

Guarda la variabile PATH del sistema operativo Windows Environment System e verifica ogni posizione per l'eseguibile dato. Così l'aggiunta di una posizione alla variabile PATH permette di chiamare direttamente un eseguibile.

Secondo questo Wikipedia article :

Quando un comando viene inserito in una shell di comando o una chiamata di sistema viene effettuata da un programma per eseguire un programma, il sistema cerca prima la directory di lavoro corrente e poi cerca il percorso, esaminando ogni directory da sinistra a destra


*Q: Come aggiungere una posizione alla variabile PATH ? *

A: È necessario modificare la stringa di variabili della variabile Environment Variables PATH per includere la posizione del proprio eseguibile.

Un modo per farlo è descritto qui :

  1. Aprire il menu Start e cliccare con il tasto destro del mouse su Computer. Selezionare Properties.
  2. 2. Selezionare Impostazioni di sistema avanzate.
  3. 3. Nella scheda Advanced, selezionare Environment Variables (Variabili ambiente).
  4. Premere il tasto destro del mouse. 5. Selezionare MODIFICA o NUOVO. (per il percorso che molto probabilmente si desidera modificare).
  5. Aggiungere il percorso di localizzazione. ad esempio: C:\wamp\bin\php\php5.5.12;

Spero che questo chiarisca un po’ di confusione.

0
0
0
2020-02-26 10:20:48 +0000