{"id":3649,"date":"2026-07-20T13:51:36","date_gmt":"2026-07-20T11:51:36","guid":{"rendered":"https:\/\/rootmail.it\/courses\/lpic-1-exam-101-010-160-corso-completo-in-italiano\/lessons\/104-6-individuare-i-file-di-sistema-e-collocarli-nella-posizione-corretta\/"},"modified":"2026-07-20T21:59:49","modified_gmt":"2026-07-20T19:59:49","slug":"104-6-individuare-i-file-di-sistema-e-collocarli-nella-posizione-corretta","status":"publish","type":"lesson","link":"https:\/\/rootmail.it\/en\/courses\/lpic-1-exam-1-101-500-corso-completo-in-italiano\/lessons\/104-6-individuare-i-file-di-sistema-e-collocarli-nella-posizione-corretta\/","title":{"rendered":"104.6 Individuare i file di sistema e collocarli nella posizione corretta"},"content":{"rendered":"<h2>104.6 Individuare i file di sistema e collocarli nella posizione corretta<\/h2>\n<p>Una corretta organizzazione dei file \u00e8 uno degli elementi fondamentali dell&#8217;amministrazione di un sistema Linux. Per garantire uniformit\u00e0 tra le diverse distribuzioni, Linux adotta il <strong>Filesystem Hierarchy Standard (FHS)<\/strong>, uno standard che definisce la struttura delle directory e stabilisce dove devono essere collocati programmi, file di configurazione, dati degli utenti e file temporanei. Seguire queste convenzioni rende i sistemi pi\u00f9 facili da amministrare, migliora la compatibilit\u00e0 tra software differenti e facilita le operazioni di manutenzione, backup e aggiornamento. In questa lezione scoprirai la funzione delle principali directory del filesystem Linux e imparerai a individuare rapidamente la posizione corretta per file, applicazioni e configurazioni.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> Il <strong>Filesystem Hierarchy Standard (FHS)<\/strong> \u00e8 uno degli argomenti pi\u00f9 richiesti dell&#8217;esame LPIC-1. \u00c8 fondamentale conoscere lo scopo delle principali directory di sistema e sapere dove vengono normalmente memorizzati programmi, configurazioni, librerie, log e dati degli utenti.<\/p><\/blockquote>\n<hr \/>\n<h2>\ud83c\udfaf Obiettivi della lezione<\/h2>\n<p>Al termine di questa lezione sarai in grado di:<\/p>\n<ul>\n<li>comprendere lo scopo del Filesystem Hierarchy Standard (FHS);<\/li>\n<li>riconoscere le principali directory del filesystem Linux;<\/li>\n<li>individuare la posizione corretta di file di sistema, programmi e configurazioni;<\/li>\n<li>utilizzare strumenti per localizzare rapidamente file e comandi;<\/li>\n<li>seguire le convenzioni standard durante l&#8217;installazione e l&#8217;amministrazione del sistema.<\/li>\n<\/ul>\n<hr \/>\n<h2>Argomenti trattati<\/h2>\n<ul>\n<li>Filesystem Hierarchy Standard (FHS).<\/li>\n<li>Le principali directory di sistema.<\/li>\n<li>Posizionamento corretto di programmi, configurazioni e dati.<\/li>\n<li>Ricerca di file con gli strumenti di sistema.<\/li>\n<li>Comandi utili per individuare file ed eseguibili.<\/li>\n<\/ul>\n<blockquote><p><strong>\u2328\ufe0f Provalo subito<\/strong><br \/>\nApri un terminale ed esegui il comando <code>ls \/<\/code>. Osserva le directory presenti nella radice del filesystem, come <code>\/bin<\/code>, <code>\/etc<\/code>, <code>\/home<\/code>, <code>\/usr<\/code> e <code>\/var<\/code>. Durante questa lezione scoprirai quale funzione svolge ciascuna di esse e perch\u00e9 la loro organizzazione \u00e8 standardizzata in tutte le distribuzioni Linux.<\/p><\/blockquote>\n<h2>104.6.1 Comprendere il Filesystem Hierarchy Standard (FHS)<\/h2>\n<p>Il <strong>Filesystem Hierarchy Standard (FHS)<\/strong> \u00e8 uno standard che definisce l&#8217;organizzazione delle directory nei sistemi Linux. Il suo obiettivo \u00e8 garantire una struttura coerente tra le diverse distribuzioni, facilitando l&#8217;installazione del software, l&#8217;amministrazione del sistema e la portabilit\u00e0 delle applicazioni. Grazie al FHS, amministratori di sistema e sviluppatori possono sapere con precisione dove trovare file di configurazione, programmi, librerie, dati degli utenti e file di log, indipendentemente dalla distribuzione Linux utilizzata.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 fondamentale conoscere lo scopo delle principali directory del filesystem Linux e sapere quali tipi di file vengono normalmente memorizzati al loro interno.<\/p><\/blockquote>\n<hr \/>\n<h3>La directory radice (<code>\/<\/code>)<\/h3>\n<p>L&#8217;intero filesystem Linux ha origine dalla directory radice:<\/p>\n<pre><code>\/\r\n<\/code><\/pre>\n<p>Tutte le altre directory e i dispositivi montati fanno parte di questa struttura gerarchica. Ad esempio:<\/p>\n<pre><code>\/\r\n\u251c\u2500\u2500 bin\r\n\u251c\u2500\u2500 boot\r\n\u251c\u2500\u2500 etc\r\n\u251c\u2500\u2500 home\r\n\u251c\u2500\u2500 lib\r\n\u251c\u2500\u2500 usr\r\n\u2514\u2500\u2500 var\r\n<\/code><\/pre>\n<p>Ogni directory svolge una funzione ben precisa definita dallo standard FHS.<\/p>\n<hr \/>\n<h3>Le principali directory del Filesystem Hierarchy Standard<\/h3>\n<table>\n<thead>\n<tr>\n<th>Directory<\/th>\n<th>Funzione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/bin<\/code><\/td>\n<td>Contiene i programmi essenziali utilizzabili da tutti gli utenti, come <code>ls<\/code>, <code>cp<\/code>, <code>mv<\/code> e <code>cat<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>\/boot<\/code><\/td>\n<td>Contiene i file necessari all&#8217;avvio del sistema, inclusi il kernel Linux e il bootloader.<\/td>\n<\/tr>\n<tr>\n<td><code>\/etc<\/code><\/td>\n<td>Raccoglie i file di configurazione del sistema e dei servizi installati.<\/td>\n<\/tr>\n<tr>\n<td><code>\/lib<\/code><\/td>\n<td>Contiene le librerie condivise essenziali e i moduli del kernel necessari al funzionamento del sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>\/home<\/code><\/td>\n<td>Ospita le directory personali degli utenti.<\/td>\n<\/tr>\n<tr>\n<td><code>\/usr<\/code><\/td>\n<td>Contiene programmi, librerie e documentazione installati per gli utenti. \u00c8 la principale gerarchia dedicata al software.<\/td>\n<\/tr>\n<tr>\n<td><code>\/var<\/code><\/td>\n<td>Contiene dati variabili, come file di log, cache, spool e database.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3><code>\/bin<\/code> \u2014 Programmi essenziali<\/h3>\n<p>La directory:<\/p>\n<pre><code>\/bin\r\n<\/code><\/pre>\n<p>contiene gli strumenti indispensabili per il funzionamento del sistema e per le operazioni di amministrazione di base. Tra i comandi presenti si trovano, ad esempio:<\/p>\n<ul>\n<li><code>ls<\/code><\/li>\n<li><code>cp<\/code><\/li>\n<li><code>mv<\/code><\/li>\n<li><code>rm<\/code><\/li>\n<li><code>cat<\/code><\/li>\n<\/ul>\n<p>Questi programmi devono essere disponibili anche durante le prime fasi dell&#8217;avvio del sistema.<\/p>\n<hr \/>\n<h3><code>\/boot<\/code> \u2014 File di avvio<\/h3>\n<p>La directory:<\/p>\n<pre><code>\/boot\r\n<\/code><\/pre>\n<p>contiene i file necessari all&#8217;avvio del sistema operativo. Tra questi troviamo:<\/p>\n<ul>\n<li>il kernel Linux;<\/li>\n<li>l&#8217;immagine initramfs;<\/li>\n<li>i file utilizzati dal bootloader (ad esempio GRUB).<\/li>\n<\/ul>\n<hr \/>\n<h3><code>\/etc<\/code> \u2014 File di configurazione<\/h3>\n<p>La directory:<\/p>\n<pre><code>\/etc\r\n<\/code><\/pre>\n<p>raccoglie la maggior parte dei file di configurazione del sistema. Alcuni esempi sono:<\/p>\n<ul>\n<li><code>\/etc\/passwd<\/code><\/li>\n<li><code>\/etc\/shadow<\/code><\/li>\n<li><code>\/etc\/fstab<\/code><\/li>\n<li><code>\/etc\/hosts<\/code><\/li>\n<\/ul>\n<p>Questa directory non contiene programmi eseguibili, ma esclusivamente configurazioni.<\/p>\n<hr \/>\n<h3><code>\/lib<\/code> \u2014 Librerie di sistema<\/h3>\n<p>La directory:<\/p>\n<pre><code>\/lib\r\n<\/code><\/pre>\n<p>ospita le librerie condivise utilizzate dai programmi presenti in <code>\/bin<\/code> e in altre directory essenziali. Contiene inoltre i moduli del kernel caricati dal sistema operativo.<\/p>\n<hr \/>\n<h3><code>\/home<\/code> \u2014 Directory personali<\/h3>\n<p>Ogni utente dispone normalmente di una propria directory all&#8217;interno di:<\/p>\n<pre><code>\/home\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>\/home\/mario\r\n<\/code><\/pre>\n<p>Qui vengono memorizzati:<\/p>\n<ul>\n<li>documenti;<\/li>\n<li>download;<\/li>\n<li>file personali;<\/li>\n<li>configurazioni dell&#8217;utente.<\/li>\n<\/ul>\n<hr \/>\n<h3><code>\/usr<\/code> \u2014 Software e dati condivisi<\/h3>\n<p>La directory:<\/p>\n<pre><code>\/usr\r\n<\/code><\/pre>\n<p>contiene gran parte dei programmi installati sul sistema, oltre a librerie, documentazione e file condivisi. Alcune sottodirectory importanti sono:<\/p>\n<table>\n<thead>\n<tr>\n<th>Directory<\/th>\n<th>Contenuto<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/usr\/bin<\/code><\/td>\n<td>Programmi destinati agli utenti.<\/td>\n<\/tr>\n<tr>\n<td><code>\/usr\/lib<\/code><\/td>\n<td>Librerie condivise.<\/td>\n<\/tr>\n<tr>\n<td><code>\/usr\/share<\/code><\/td>\n<td>Documentazione, icone, file di lingua e dati indipendenti dall&#8217;architettura.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3><code>\/var<\/code> \u2014 Dati variabili<\/h3>\n<p>La directory:<\/p>\n<pre><code>\/var\r\n<\/code><\/pre>\n<p>contiene dati che cambiano frequentemente durante il funzionamento del sistema. Tra questi troviamo:<\/p>\n<ul>\n<li>file di log (<code>\/var\/log<\/code>);<\/li>\n<li>cache (<code>\/var\/cache<\/code>);<\/li>\n<li>code di stampa e posta (<code>\/var\/spool<\/code>);<\/li>\n<li>database e dati delle applicazioni.<\/li>\n<\/ul>\n<hr \/>\n<h3>Panoramica delle directory principali<\/h3>\n<table>\n<thead>\n<tr>\n<th>Directory<\/th>\n<th>Contenuto principale<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/bin<\/code><\/td>\n<td>Comandi essenziali.<\/td>\n<\/tr>\n<tr>\n<td><code>\/boot<\/code><\/td>\n<td>File necessari all&#8217;avvio del sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>\/etc<\/code><\/td>\n<td>Configurazioni del sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>\/lib<\/code><\/td>\n<td>Librerie condivise e moduli del kernel.<\/td>\n<\/tr>\n<tr>\n<td><code>\/home<\/code><\/td>\n<td>Directory degli utenti.<\/td>\n<\/tr>\n<tr>\n<td><code>\/usr<\/code><\/td>\n<td>Programmi e dati condivisi.<\/td>\n<\/tr>\n<tr>\n<td><code>\/var<\/code><\/td>\n<td>Log, cache e dati variabili.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote><p><strong>\ud83d\udccc Da ricordare<\/strong> Per l&#8217;esame LPIC-1 \u00e8 essenziale conoscere la funzione delle principali directory del Filesystem Hierarchy Standard. Domande sulla posizione corretta di file di configurazione, programmi, librerie e log sono molto frequenti.<\/p><\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Rispetta sempre la struttura definita dal Filesystem Hierarchy Standard quando installi software o organizzi file di sistema. Seguire queste convenzioni facilita la manutenzione del sistema, migliora la compatibilit\u00e0 tra distribuzioni e rende pi\u00f9 semplice individuare rapidamente le risorse necessarie.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>Il Filesystem Hierarchy Standard (FHS) definisce la struttura delle directory nei sistemi Linux.<\/li>\n<li>La directory radice <code>\/<\/code> rappresenta il punto di partenza dell&#8217;intero filesystem.<\/li>\n<li><code>\/bin<\/code>, <code>\/boot<\/code>, <code>\/etc<\/code>, <code>\/lib<\/code>, <code>\/home<\/code>, <code>\/usr<\/code> e <code>\/var<\/code> svolgono funzioni specifiche e ben definite.<\/li>\n<li>Conoscere la funzione di ciascuna directory \u00e8 fondamentale per amministrare correttamente un sistema Linux.<\/li>\n<\/ul>\n<h2>104.6.2 Individuare file e comandi in un sistema Linux<\/h2>\n<p>Durante l&#8217;amministrazione di un sistema Linux \u00e8 spesso necessario individuare rapidamente file, directory o programmi eseguibili. Linux mette a disposizione numerosi strumenti, ciascuno progettato per uno scopo specifico. Alcuni comandi effettuano una ricerca direttamente nel filesystem, mentre altri consultano database o verificano il percorso degli eseguibili disponibili nella variabile d&#8217;ambiente <code>PATH<\/code>.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante conoscere le differenze tra <code>find<\/code>, <code>locate<\/code>, <code>whereis<\/code>, <code>which<\/code> e <code>type<\/code>, sapendo quando utilizzare ciascun comando.<\/p><\/blockquote>\n<hr \/>\n<h3>Ricercare file con <code>find<\/code><\/h3>\n<p>Il comando <code>find<\/code> ricerca file e directory esplorando direttamente il filesystem. La sintassi generale \u00e8:<\/p>\n<pre><code>find percorso opzioni\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>find \/home\/mario -name \"documento.txt\"\r\n<\/code><\/pre>\n<p>Questo comando cerca il file <code>documento.txt<\/code> all&#8217;interno della directory <code>\/home\/mario<\/code> e di tutte le sue sottodirectory. Il comando <code>find<\/code> \u00e8 molto potente e consente di effettuare ricerche in base a numerosi criteri, tra cui:<\/p>\n<ul>\n<li>nome del file;<\/li>\n<li>dimensione;<\/li>\n<li>tipo di file;<\/li>\n<li>permessi;<\/li>\n<li>proprietario;<\/li>\n<li>data di modifica.<\/li>\n<\/ul>\n<p>Poich\u00e9 analizza realmente il filesystem, pu\u00f2 richiedere pi\u00f9 tempo su dischi di grandi dimensioni.<\/p>\n<hr \/>\n<h3>Ricercare file con <code>locate<\/code><\/h3>\n<p>Il comando <code>locate<\/code> ricerca i file consultando un database indicizzato. Ad esempio:<\/p>\n<pre><code>locate documento.txt\r\n<\/code><\/pre>\n<p>La ricerca \u00e8 generalmente molto pi\u00f9 veloce rispetto a <code>find<\/code>, poich\u00e9 non analizza il disco in tempo reale. Tuttavia, il risultato dipende dall&#8217;aggiornamento del database. Per aggiornarlo \u00e8 possibile utilizzare:<\/p>\n<pre><code>updatedb\r\n<\/code><\/pre>\n<p>Generalmente questo aggiornamento viene eseguito automaticamente dal sistema tramite attivit\u00e0 pianificate.<\/p>\n<hr \/>\n<h3>Trovare un comando con <code>whereis<\/code><\/h3>\n<p>Il comando <code>whereis<\/code> permette di individuare diversi elementi relativi a un programma:<\/p>\n<ul>\n<li>l&#8217;eseguibile;<\/li>\n<li>il codice sorgente (se disponibile);<\/li>\n<li>le pagine del manuale.<\/li>\n<\/ul>\n<p>Ad esempio:<\/p>\n<pre><code>whereis ls\r\n<\/code><\/pre>\n<p>L&#8217;output potrebbe essere:<\/p>\n<pre><code>ls: \/usr\/bin\/ls \/usr\/share\/man\/man1\/ls.1.gz\r\n<\/code><\/pre>\n<p>Questo comando \u00e8 utile per ottenere rapidamente una panoramica delle risorse associate a un programma.<\/p>\n<hr \/>\n<h3>Individuare l&#8217;eseguibile con <code>which<\/code><\/h3>\n<p>Il comando <code>which<\/code> mostra quale programma verr\u00e0 eseguito quando si digita un determinato comando nella shell. Ad esempio:<\/p>\n<pre><code>which ls\r\n<\/code><\/pre>\n<p>Risultato:<\/p>\n<pre><code>\/usr\/bin\/ls\r\n<\/code><\/pre>\n<p>La ricerca viene effettuata esclusivamente nelle directory elencate nella variabile d&#8217;ambiente <code>PATH<\/code>. \u00c8 particolarmente utile quando sul sistema sono presenti pi\u00f9 versioni dello stesso programma.<\/p>\n<hr \/>\n<h3>Interpretare un comando con <code>type<\/code><\/h3>\n<p>Il comando <code>type<\/code> fornisce informazioni pi\u00f9 dettagliate sul modo in cui la shell interpreta un comando. Ad esempio:<\/p>\n<pre><code>type ls\r\n<\/code><\/pre>\n<p>Possibili risultati:<\/p>\n<pre><code>ls is \/usr\/bin\/ls\r\n<\/code><\/pre>\n<p>oppure:<\/p>\n<pre><code>cd is a shell builtin\r\n<\/code><\/pre>\n<p>A differenza di <code>which<\/code>, il comando <code>type<\/code> \u00e8 in grado di riconoscere:<\/p>\n<ul>\n<li>comandi incorporati nella shell (built-in);<\/li>\n<li>alias;<\/li>\n<li>funzioni della shell;<\/li>\n<li>programmi eseguibili.<\/li>\n<\/ul>\n<p>Per questo motivo rappresenta uno strumento molto utile durante la risoluzione dei problemi.<\/p>\n<hr \/>\n<h3>Confronto tra i principali strumenti<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Scopo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>find<\/code><\/td>\n<td>Ricerca file e directory analizzando direttamente il filesystem.<\/td>\n<\/tr>\n<tr>\n<td><code>locate<\/code><\/td>\n<td>Ricerca file tramite un database indicizzato.<\/td>\n<\/tr>\n<tr>\n<td><code>updatedb<\/code><\/td>\n<td>Aggiorna il database utilizzato da <code>locate<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>whereis<\/code><\/td>\n<td>Individua eseguibili, sorgenti e pagine del manuale.<\/td>\n<\/tr>\n<tr>\n<td><code>which<\/code><\/td>\n<td>Mostra il percorso dell&#8217;eseguibile presente nel <code>PATH<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>type<\/code><\/td>\n<td>Indica come la shell interpreta un comando.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote><p><strong>\ud83d\udccc Da ricordare<\/strong> <code>find<\/code> ricerca direttamente nel filesystem, mentre <code>locate<\/code> utilizza un database aggiornato tramite <code>updatedb<\/code>. <code>which<\/code> individua l&#8217;eseguibile nel <code>PATH<\/code>, <code>whereis<\/code> mostra anche manuali e sorgenti, mentre <code>type<\/code> indica come la shell interpreta un comando.<\/p><\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Utilizza <code>find<\/code> quando hai bisogno di risultati sempre aggiornati o desideri effettuare ricerche basate su attributi dei file. Preferisci <code>locate<\/code> quando la rapidit\u00e0 \u00e8 pi\u00f9 importante e il database \u00e8 aggiornato. Per verificare quale comando verr\u00e0 realmente eseguito dalla shell, utilizza <code>type<\/code>, che fornisce informazioni pi\u00f9 complete rispetto a <code>which<\/code>.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>find<\/code> ricerca file e directory direttamente nel filesystem.<\/li>\n<li><code>locate<\/code> utilizza un database per effettuare ricerche molto rapide.<\/li>\n<li><code>updatedb<\/code> aggiorna il database utilizzato da <code>locate<\/code>.<\/li>\n<li><code>whereis<\/code> individua eseguibili, sorgenti e pagine del manuale.<\/li>\n<li><code>which<\/code> mostra il percorso dell&#8217;eseguibile presente nel <code>PATH<\/code>.<\/li>\n<li><code>type<\/code> indica come la shell interpreta un comando ed \u00e8 generalmente pi\u00f9 completo di <code>which<\/code>.<\/li>\n<\/ul>\n<h2>104.6.3 Configurare il database di <code>locate<\/code> con <code>\/etc\/updatedb.conf<\/code><\/h2>\n<p>Il comando <code>locate<\/code> \u00e8 estremamente veloce perch\u00e9 non ricerca direttamente nel filesystem, ma consulta un <strong>database indicizzato<\/strong> creato dal comando <code>updatedb<\/code>. Il comportamento di <code>updatedb<\/code> \u00e8 controllato dal file di configurazione:<\/p>\n<pre><code>\/etc\/updatedb.conf\r\n<\/code><\/pre>\n<p>Questo file permette di stabilire quali directory e quali filesystem devono essere inclusi o esclusi durante la creazione del database utilizzato da <code>locate<\/code>.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante conoscere lo scopo del file <code>\/etc\/updatedb.conf<\/code> e ricordare il significato delle direttive <code>PRUNEPATHS<\/code> e <code>PRUNEFS<\/code>.<\/p><\/blockquote>\n<hr \/>\n<h3>Il ruolo di <code>updatedb<\/code><\/h3>\n<p>Il comando:<\/p>\n<pre><code>updatedb\r\n<\/code><\/pre>\n<p>analizza il filesystem e costruisce il database utilizzato successivamente da:<\/p>\n<pre><code>locate\r\n<\/code><\/pre>\n<p>Grazie a questo database, la ricerca dei file risulta praticamente immediata. Nella maggior parte delle distribuzioni Linux, <code>updatedb<\/code> viene eseguito automaticamente tramite attivit\u00e0 pianificate (cron o systemd timer).<\/p>\n<hr \/>\n<h3>Il file <code>\/etc\/updatedb.conf<\/code><\/h3>\n<p>Questo file contiene le impostazioni utilizzate durante la creazione del database. Ad esempio:<\/p>\n<pre><code>PRUNEPATHS=\"\/tmp \/var\/spool \/media\"\r\nPRUNEFS=\"nfs tmpfs proc sysfs\"\r\n<\/code><\/pre>\n<p>Le direttive principali consentono di evitare la scansione di directory o filesystem che non \u00e8 necessario indicizzare.<\/p>\n<hr \/>\n<h3>Direttiva <code>PRUNEPATHS<\/code><\/h3>\n<p>La direttiva:<\/p>\n<pre><code>PRUNEPATHS\r\n<\/code><\/pre>\n<p>specifica le directory che devono essere escluse dalla scansione. Ad esempio:<\/p>\n<pre><code>PRUNEPATHS=\"\/tmp \/media \/mnt\"\r\n<\/code><\/pre>\n<p>In questo caso:<\/p>\n<ul>\n<li>la directory <code>\/tmp<\/code> non verr\u00e0 indicizzata;<\/li>\n<li>i dispositivi montati in <code>\/media<\/code> verranno ignorati;<\/li>\n<li>le directory montate in <code>\/mnt<\/code> non saranno incluse nel database.<\/li>\n<\/ul>\n<p>Questa configurazione evita di indicizzare file temporanei o dispositivi rimovibili che potrebbero non essere sempre disponibili.<\/p>\n<hr \/>\n<h3>Direttiva <code>PRUNEFS<\/code><\/h3>\n<p>La direttiva:<\/p>\n<pre><code>PRUNEFS\r\n<\/code><\/pre>\n<p>specifica invece i tipi di filesystem che non devono essere analizzati. Ad esempio:<\/p>\n<pre><code>PRUNEFS=\"proc sysfs tmpfs nfs\"\r\n<\/code><\/pre>\n<p>Tra i filesystem comunemente esclusi troviamo:<\/p>\n<table>\n<thead>\n<tr>\n<th>Filesystem<\/th>\n<th>Motivo dell&#8217;esclusione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>proc<\/code><\/td>\n<td>Filesystem virtuale del kernel.<\/td>\n<\/tr>\n<tr>\n<td><code>sysfs<\/code><\/td>\n<td>Informazioni sui dispositivi del sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>tmpfs<\/code><\/td>\n<td>Filesystem temporaneo residente in memoria.<\/td>\n<\/tr>\n<tr>\n<td><code>nfs<\/code><\/td>\n<td>Filesystem di rete, spesso non sempre disponibile.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Escludere questi filesystem rende la creazione del database pi\u00f9 veloce ed evita l&#8217;indicizzazione di dati inutili.<\/p>\n<hr \/>\n<h3>Perch\u00e9 escludere alcune directory?<\/h3>\n<p>Non tutti i percorsi del filesystem sono adatti all&#8217;indicizzazione. Ad esempio:<\/p>\n<ul>\n<li>i file temporanei cambiano continuamente;<\/li>\n<li>i filesystem virtuali non contengono veri file su disco;<\/li>\n<li>i filesystem di rete potrebbero essere scollegati o rallentare la scansione.<\/li>\n<\/ul>\n<p>Per questo motivo <code>updatedb<\/code> consente di ignorare tali percorsi.<\/p>\n<hr \/>\n<h3>Flusso di funzionamento<\/h3>\n<p>Il processo seguito da <code>locate<\/code> pu\u00f2 essere riassunto nel seguente schema:<\/p>\n<pre><code>Filesystem\r\n      \u2502\r\n      \u25bc\r\n updatedb\r\n      \u2502\r\n      \u25bc\r\nDatabase di locate\r\n      \u2502\r\n      \u25bc\r\n locate nome_file\r\n<\/code><\/pre>\n<p>Il comando <code>locate<\/code> non analizza il disco in tempo reale, ma consulta esclusivamente il database generato da <code>updatedb<\/code>.<\/p>\n<hr \/>\n<h3>Direttive principali<\/h3>\n<table>\n<thead>\n<tr>\n<th>Direttiva<\/th>\n<th>Funzione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>PRUNEPATHS<\/code><\/td>\n<td>Esclude specifiche directory dalla scansione.<\/td>\n<\/tr>\n<tr>\n<td><code>PRUNEFS<\/code><\/td>\n<td>Esclude determinati tipi di filesystem.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote><p><strong>\ud83d\udccc Da ricordare<\/strong> Il comando <code>locate<\/code> utilizza un database creato da <code>updatedb<\/code>. Il file <code>\/etc\/updatedb.conf<\/code> definisce quali directory (<code>PRUNEPATHS<\/code>) e quali filesystem (<code>PRUNEFS<\/code>) devono essere esclusi durante la creazione di tale database.<\/p><\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Mantieni aggiornata la configurazione di <code>\/etc\/updatedb.conf<\/code> evitando di indicizzare directory temporanee, filesystem virtuali e dispositivi rimovibili. In questo modo il database di <code>locate<\/code> rimarr\u00e0 compatto, verr\u00e0 aggiornato pi\u00f9 rapidamente e produrr\u00e0 risultati pi\u00f9 pertinenti.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>updatedb<\/code> crea il database utilizzato dal comando <code>locate<\/code>.<\/li>\n<li>La configurazione di <code>updatedb<\/code> \u00e8 contenuta nel file <code>\/etc\/updatedb.conf<\/code>.<\/li>\n<li><code>PRUNEPATHS<\/code> esclude specifiche directory dalla scansione.<\/li>\n<li><code>PRUNEFS<\/code> esclude determinati tipi di filesystem.<\/li>\n<li>Una corretta configurazione rende il database di <code>locate<\/code> pi\u00f9 efficiente e aggiornato.<\/li>\n<\/ul>\n<h2>\ud83d\udcda Riepilogo della lezione<\/h2>\n<p>In questa lezione hai approfondito il <strong>Filesystem Hierarchy Standard (FHS)<\/strong>, lo standard che definisce l&#8217;organizzazione delle directory nei sistemi Linux. Hai imparato la funzione delle principali directory del filesystem e come individuare rapidamente file, programmi ed eseguibili utilizzando strumenti come <code>find<\/code>, <code>locate<\/code>, <code>whereis<\/code>, <code>which<\/code> e <code>type<\/code>. Hai inoltre scoperto il funzionamento del database utilizzato da <code>locate<\/code> e il ruolo del file di configurazione <code>\/etc\/updatedb.conf<\/code> nella gestione dell&#8217;indicizzazione del filesystem.<\/p>\n<h3>Concetti principali<\/h3>\n<ul>\n<li>Hai compreso lo scopo del Filesystem Hierarchy Standard (FHS).<\/li>\n<li>Hai imparato la funzione delle principali directory di sistema, come <code>\/bin<\/code>, <code>\/boot<\/code>, <code>\/etc<\/code>, <code>\/home<\/code>, <code>\/usr<\/code> e <code>\/var<\/code>.<\/li>\n<li>Hai utilizzato <code>find<\/code> per ricercare file direttamente nel filesystem.<\/li>\n<li>Hai scoperto come <code>locate<\/code> utilizza un database per effettuare ricerche molto rapide.<\/li>\n<li>Hai imparato a individuare programmi ed eseguibili con <code>whereis<\/code>, <code>which<\/code> e <code>type<\/code>.<\/li>\n<li>Hai compreso il ruolo del file <code>\/etc\/updatedb.conf<\/code> e delle direttive <code>PRUNEPATHS<\/code> e <code>PRUNEFS<\/code>.<\/li>\n<\/ul>\n<blockquote><p><strong>\ud83c\udfaf Obiettivo raggiunto<\/strong> Al termine di questa lezione sei in grado di orientarti all&#8217;interno della struttura standard del filesystem Linux, individuare rapidamente file e programmi e comprendere come viene gestito il database utilizzato dal comando <code>locate<\/code>.<\/p><\/blockquote>\n<h3>Comandi da ricordare<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>find<\/code><\/td>\n<td>Ricerca file e directory direttamente nel filesystem.<\/td>\n<\/tr>\n<tr>\n<td><code>locate<\/code><\/td>\n<td>Ricerca file tramite un database indicizzato.<\/td>\n<\/tr>\n<tr>\n<td><code>updatedb<\/code><\/td>\n<td>Aggiorna il database utilizzato da <code>locate<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>whereis<\/code><\/td>\n<td>Individua eseguibili, sorgenti e pagine del manuale di un comando.<\/td>\n<\/tr>\n<tr>\n<td><code>which<\/code><\/td>\n<td>Mostra il percorso dell&#8217;eseguibile presente nel <code>PATH<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>type<\/code><\/td>\n<td>Indica come la shell interpreta un comando.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Directory del Filesystem Hierarchy Standard<\/h3>\n<table>\n<thead>\n<tr>\n<th>Directory<\/th>\n<th>Funzione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/bin<\/code><\/td>\n<td>Comandi essenziali del sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>\/boot<\/code><\/td>\n<td>File necessari all&#8217;avvio del sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>\/etc<\/code><\/td>\n<td>File di configurazione del sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>\/lib<\/code><\/td>\n<td>Librerie condivise e moduli del kernel.<\/td>\n<\/tr>\n<tr>\n<td><code>\/home<\/code><\/td>\n<td>Directory personali degli utenti.<\/td>\n<\/tr>\n<tr>\n<td><code>\/usr<\/code><\/td>\n<td>Programmi, librerie e dati condivisi.<\/td>\n<\/tr>\n<tr>\n<td><code>\/var<\/code><\/td>\n<td>Log, cache e dati variabili.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>File e configurazioni importanti<\/h3>\n<table>\n<thead>\n<tr>\n<th>Elemento<\/th>\n<th>Funzione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/etc\/updatedb.conf<\/code><\/td>\n<td>Configura il comportamento del comando <code>updatedb<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>PRUNEPATHS<\/code><\/td>\n<td>Elenca le directory escluse dall&#8217;indicizzazione.<\/td>\n<\/tr>\n<tr>\n<td><code>PRUNEFS<\/code><\/td>\n<td>Elenca i tipi di filesystem esclusi dall&#8217;indicizzazione.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote><p><strong>\ud83d\udca1 Preparazione all&#8217;esame LPIC-1<\/strong> Prima di proseguire assicurati di conoscere la funzione delle principali directory del Filesystem Hierarchy Standard, sapere quando utilizzare <code>find<\/code>, <code>locate<\/code>, <code>whereis<\/code>, <code>which<\/code> e <code>type<\/code>, e ricordare il ruolo del file <code>\/etc\/updatedb.conf<\/code> e delle direttive <code>PRUNEPATHS<\/code> e <code>PRUNEFS<\/code>.<\/p><\/blockquote>\n<hr \/>\n<h2>\ud83c\udf89 Hai completato le lezioni del Topic 104!<\/h2>\n<p>Hai concluso lo studio teorico del <strong>Topic 104 &#8211; Dispositivi, filesystem Linux e Filesystem Hierarchy Standard<\/strong>.<\/p>\n<p>Ora possiedi le competenze fondamentali per creare e gestire filesystem, verificarne l&#8217;integrit\u00e0, amministrare permessi e propriet\u00e0, utilizzare hard link e link simbolici e orientarti nella struttura standard dei sistemi Linux secondo il <strong>Filesystem Hierarchy Standard (FHS)<\/strong>.<\/p>\n<p>Queste conoscenze rappresentano una parte importante del programma LPIC-1 e costituiscono una solida base per l&#8217;amministrazione di sistemi Linux.<\/p>\n<blockquote><p><strong>\ud83c\udfaf Il prossimo passo<\/strong><br \/>\nPrima di passare al Topic successivo, metti alla prova le tue conoscenze completando le <strong>Simulazioni d&#8217;esame<\/strong> e i <strong>Quiz di autovalutazione<\/strong>. Sono progettati per aiutarti a consolidare gli argomenti studiati e prepararti alle domande che potresti incontrare durante l&#8217;esame LPIC-1.<\/p><\/blockquote>\n<blockquote><p><strong>\ud83d\udcd6 Materiale di approfondimento<\/strong><br \/>\nConsulta anche il PDF allegato al Topic 104 per ripassare i concetti principali, svolgere i laboratori guidati e approfondire gli argomenti trattati nelle lezioni.<\/p><\/blockquote>\n","protected":false},"comment_status":"open","ping_status":"closed","template":"","class_list":["post-3649","lesson","type-lesson","status-publish","has-post-thumbnail","hentry"],"uagb_featured_image_src":[],"uagb_author_info":{"display_name":"Rootmail Academy","author_link":"https:\/\/rootmail.it\/en\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"104.6 Individuare i file di sistema e collocarli nella posizione corretta Una corretta organizzazione dei file \u00e8 uno degli elementi fondamentali dell&#8217;amministrazione di un sistema Linux. Per garantire uniformit\u00e0 tra le diverse distribuzioni, Linux adotta il Filesystem Hierarchy Standard (FHS), uno standard che definisce la struttura delle directory e stabilisce dove devono essere collocati programmi,&hellip;","_links":{"self":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson\/3649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson"}],"about":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/types\/lesson"}],"replies":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/comments?post=3649"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media\/3686"}],"wp:attachment":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media?parent=3649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}