Provided by: manpages-it_4.23.1-1_all bug

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.

       Per  convenzione  le stringhe in environ hanno il formato "nome=valore". Il nome distingue
       maiuscole da minuscole e non  può  contenere  il  carattere  "=".  Il  valore  può  essere
       qualsiasi  cosa rappresentabile come stringa. Il nome e il valore non possono contenere il
       byte nullo ('\0') perché si assume che sia il terminatore della stringa.

       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).

       L'ambiente  iniziale  della  shell  è riempito in diversi modi, tra i quali le definizioni
       contenute in /etc/environment che sono elaborate da pam_env(8)  per  tutti  gi  utenti  al
       momento  del  login  (su  sistemi  che  impiegano  pam(8)).  In  aggiunta,  vari script di
       inizializzazione della shell, come lo script a livello globale /etc/profile  e  lo  script
       delle  inizializzazioni  per  utente  possono  includere  comandi che aggiungolo variabili
       all'ambiente della shell;  per  i  dettagli  vedere  la  pagina  di  manuale  della  shell
       preferita.

       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.

       USER   Il nome dell'utente collegato (usato da programmi derivati da  BSD).  Impostato  al
              momento del login, vedi NOTE più avanti.

       LOGNAME
              Il  nome dell'utente collegato (usato da programmi derivati da System V). Impostato
              al momento del login, vedi NOTE più avanti.

       HOME   La directory di login dell'utente. Impostata al momento del login,  vedi  NOTE  più
              avanti.

       LANG   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_*).

       PATH   La sequenza di prefissi di directory che sh(1) e molti altri  programmi  utilizzano
              quando  cercano  un file eseguibile semplice (vale a dire un nome di percorso senza
              la barra (slash)). I prefissi  sono  separarti  dal  due  punti  (:).  L'elenco  di
              professi  è  scorso  dall'inizio alla fine, cercando nomi di percorso formati dalla
              concatenazione del prefisso, la barra e il nome del file, finché non sia trovato un
              file con il permesso d'esecuzione.

              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.

              Analogamente a PATH, CDPATH è usato da  alcune shell per trovare la destinazione di
              un cambio di directory, MANPATH è usato da man(1) per trovare pagine di manuale,  e
              così via).

       PWD    Il  percorso assoluto per la directory di lavoro corrente; deve essere parzialmente
              canonico (senza componenti . o ..).

       SHELL  Il nome di percorso assoluto della shell  di  login  dell'utente.  Viene  impostato
              all'accesso, vedere la sezione NOTE sottostante.

       TERM   Il tipo di terminale per il quale deve essere preparato l'output.

       PAGER  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).

       EDITOR/VISUAL
              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.

       C'è  anche il rischio di un inquinamento dello spazio nome. Programmi come make e autoconf
       permettono la sovrascrittura dei nomi delle utility di default dall'ambiente con variabili
       dal  nome  simile  cambiato  in  maiuscole/minuscole.  In  questo  modo  esse usano CC per
       selezionare il compilatore C desiderato (e similarmente MAKE, AR, AS,  FC,  LD,  LEX,  RM,
       YACC,  etc.).  Tuttavia in alcuni usi tradizionali tale variabile d'ambiente dà opzioni al
       programma invece di un nome di percorso. In questo modo uno ha MORE e  LESS.  Tale  uso  è
       considerato scorretto, e deve essere evitato nei nuovi programmi.

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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.