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