Scroll to navigation

environ(7) Miscellaneous Information Manual environ(7)

NOME

environ - ambiente dell'utente

SINTASSI

extern char **environ;

DESCRIZIONE

La variabile environ si riferisce a un array di puntatori a stringhe chiamato l'«ambiente». L'ultimo puntatore di questo array ha valore NULL. Questo array di stringhe è reso disponibile al processo dalla chiamata di sistema execve(2) quando viene eseguito un nuovo programmaQuando viene creato un processo figlio tramite fork(2), esso eredita una copia dell'ambiente del suo genitore.

By convention, the strings in environ have the form "name=value". The name is case-sensitive and may not contain the character "=". The value can be anything that can be represented as a string. The name and the value may not contain an embedded null byte ('\0'), since this is assumed to terminate the string.

Le variabili d'ambiente possono essere messe nell'ambiente di shell dal comando export e da `"nome=valore" in sh(1), o dal comando setenv se si usa csh(1).

The initial environment of the shell is populated in various ways, such as definitions from /etc/environment that are processed by pam_env(8) for all users at login time (on systems that employ pam(8)). In addition, various shell initialization scripts, such as the system-wide /etc/profile script and per-user initialization scripts may include commands that add variables to the shell's environment; see the manual page of your preferred shell for details.

Le shell in stile Bourne riconoscono la sintassi


NOME=valore comando

per creare una definizione di variabile d'ambiente solo nell'ambito del processo che esegue comando. Più definizioni di variabile, separate da spazi bianchi, possono precedere comando.

Argomenti posso essere messi nell'ambiente come parametro di un exec(3). Un programma in C può modificare il suo ambiente usando le funzioni getenv(3), putenv(3), setenv(3) e unsetenv(3).

Segue un elenco di variabili d'ambiente che si vedono normalmente sul sistemi. Questo elenco è incompleto e include solo variabili comuni viste dall'utente medio durante il suo accesso di routine. Variabili d'ambiente specifiche per programmi o funzioni di libreria sono documentate nella sezione AMBIENTE delle varie pagine di manuale.

The name of the logged-in user (used by some BSD-derived programs). Set at login time; see section NOTES below.
The name of the logged-in user (used by some System-V derived programs). Set at login time; see section NOTES below.
A user's login directory. Set at login time; see section NOTES below.
Il nome della localizzazione da usare per le categorie di localizzazione quando non siano specificate altrimenti da LC_ALL o da variabili d'ambiente più specifiche come LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC e LC_TIME (vedi locale(7) per ulteriori dettagli sulle variabili d'ambiente LC_*).
The sequence of directory prefixes that sh(1) and many other programs employ when searching for an executable file that is specified as a simple filename (i.a., a pathname that contains no slashes). The prefixes are separated by colons (:). The list of prefixes is searched from beginning to end, by checking the pathname formed by catenating a prefix, a slash, and the filename, until a file with execute permission is found.
Una caratteristica antica è che il prefisso di lunghezza zero (indicato da due due punti adiacenti, oppure uno iniziale o uno finale) indica la directory corrente. Comunque l'utilizzo di questa interpretazione è scoraggiato, e POSIX annota che una applicazione conforme (a POSIX) dovrebbe utilizzare un nome di percorso esplicito (cioè, .) per indicare la directory corrente.
Analogously to PATH, one has CDPATH, used by some shells to find the target of a change directory command, MANPATH used by man(1) to find manual pages, and so on.
Il percorso assoluto per la directory di lavoro corrente; deve essere parzialmente canonico (senza componenti . o ..).
Il nome di percorso assoluto della shell di login dell'utente. Viene impostato all'accesso, vedere la sezione NOTE sottostante.
Il tipo di terminale per il quale deve essere preparato l'output.
Lo strumento preferito dall'utente per visualizzare file di testo. Qualsiasi stringa accettabile come comando da dare a sh -c è valida. Se PAGER è nullo o non è impostato, allora l'applicazione che esegue il paginatore userà un suo programma predefinito come less(1) o more(1).
Lo strumento preferito dall'utente per modificare file di testo. Qualsiasi stringa accettabile come comando da dare a sh -c è valida.

Si noti che il comportamento di molti programmi e routine delle librerie è influenzato dalla presenza o dal valore di alcune variabili d'ambiente. Gli esempi comprendono:

Le variabili LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES eccetera, influenzano l'uso delle localizzazioni; si veda catopen(3), gettext(3) e locale(7).
TMPDIR influenza il prefisso del percorso di nomi creati da tempnam(3) e altre routine, e la directory temporanea usata da sort(1) e da altri programmi.
LD_LIBRARY_PATH, LD_PRELOAD e altre variabili LD_* influenzano il comportamento del loader/linker dinamico. Si veda anche ld.so(8).
POSIXLY_CORRECT fa seguire ad alcuni programmi e routine di libreria le norme POSIX.
Il comportamento di malloc(3) è influenzato dalle variabili MALLOC_*.
La variabile HOSTALIASES dà il nome di un file contenente degli alias da usare con gethostbyname(3).
TZ e TZDIR dà informazioni sulla zona di fuso orario utilizzata da tzset(3) e, attraverso questa, da funzioni come ctime(3), localtime(3), mktime(3), strftime(3). Vedere anche tzselect(8).
TERMCAP dà informazioni su come indirizzare un dato terminale (o dà il nome di un file contenente tali informazioni).
COLUMNS e LINES informa le applicazioni sulla dimensione della finestra, forse sovrascrivendo la dimensione attuale.
PRINTER o LPDEST può specificare la stampante che si desidera usare. Vedere lpr(1).

NOTE

Storicamente e secondo lo standard, environ deve essere dichiarato nei programmi utente. In ogni caso, come aiuto (non standard) al programmatore, environ è dichiarato nel file header <unistd.h> se la macro di test _GNU_SOURCE è definita (vedere feature_test_macros(7)).

Le operazioni PR_SET_MM_ENV_START e PR_SET_MM_ENV_END di prctl(2) possono essere usate per controllare la posizione dell'ambiente dei processi.

Le variabili HOME, LOGNAME, SHELL e USER sono impostate quando l'utente è cambiato da una interfaccia di gestione della sessione, tipicamente da un programma quale login(1) a partire da un database utenti (come passwd(5)). (Passando all'utente root usando su(1) si può avere un ambiente misto nel quale LOGNAME e USER sono mantenuti dal vecchio utente; vedere la pagina di manuale su(1).)

BUG

Qui c'è chiaramente un rischio di sicurezza. Molti comandi di sistema sono stati indotti a fare danni da un utente che specificava valori insoliti per IFS o LD_LIBRARY_PATH.

There is also the risk of name space pollution. Programs like make and autoconf allow overriding of default utility names from the environment with similarly named variables in all caps. Thus one uses CC to select the desired C compiler (and similarly MAKE, AR, AS, FC, LD, LEX, RM, YACC, etc.). However, in some traditional uses, such an environment variable gives options for the program instead of a pathname. Thus, one has MORE and LESS. Such usage is considered mistaken, and to be avoided in new programs.

VEDERE ANCHE

bash(1), csh(1), env(1), login(1), printenv(1), sh(1), su(1), tcsh(1), execve(2), clearenv(3), exec(3), getenv(3), putenv(3), setenv(3), unsetenv(3), locale(7), ld.so(8), pam_env(8)

TRADUZIONE

La traduzione italiana di questa pagina di manuale è stata creata da Giovanni Bortolozzo <borto@dei.unipd.it>, Alessandro Rubini <rubini@linux.it>, Ottavio G. Rizzo <rizzo@pluto.linux.it>, Giulio Daprelà <giulio@pluto.it>, Elisabetta Galli <lab@kkk.it>, Marco Curreli <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>

Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.

Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.

21 settembre 2025 Linux man-pages 6.16