Provided by: manpages-it_4.27.0-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 ('\[rs]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 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.

Linux man-pages 6.9.1                            15 giugno 2024                                       environ(7)