Linux Professional Institute Learning Logo.
Torna al contenuto principale
  • Home
    • Tutte le Risorse
    • LPI Learning Materials
    • Collabora
    • Publishing Partner
    • Diventa un Publishing Partner
    • FAQ
    • Collaboratori
    • Contatto
  • LPI.org
2.2 Lezione 1
Argomento 1: La Comunità Linux e una Carriera nell'Open Source
1.1 Evoluzione di Linux e Sistemi Operativi più Diffusi
  • 1.1 Lezione 1
1.2 Principali Applicazioni Open Source
  • 1.2 Lezione 1
1.3 Software e Licenze Open Source
  • 1.3 Lezione 1
1.4 Competenze ICT - Lavorare con Linux
  • 1.4 Lezione 1
Argomento 2: Trovare il Proprio Modo di Operare su un Sistema Linux
2.1 Nozioni di Base sulla Command Line
  • 2.1 Lezione 1
  • 2.1 Lezione 2
2.2 Utilizzo della Command Line per Ottenere Aiuto
  • 2.2 Lezione 1
2.3 Utilizzo di Directory e Elenchi di File
  • 2.3 Lezione 1
  • 2.3 Lezione 2
2.4 Creazione, Spostamento ed Eliminazione di File
  • 2.4 Lezione 1
Argomento 3: Il Potere della Command Line
3.1 Archiviazione dei File sulla Command Line
  • 3.1 Lezione 1
3.2 Ricerca ed Estrazione di Dati dai File
  • 3.2 Lezione 1
  • 3.2 Lezione 2
3.3 Trasformare i Comandi in uno Script
  • 3.3 Lezione 1
  • 3.3 Lezione 2
Argomento 4: Il Sistema Operativo Linux
4.1 Scelta di un Sistema Operativo
  • 4.1 Lezione 1
4.2 Comprendere l'Hardware del Computer
  • 4.2 Lezione 1
4.3 Dove Sono Memorizzati i Dati
  • 4.3 Lezione 1
  • 4.3 Lezione 2
4.4 Il Tuo Computer in Rete
  • 4.4 Lezione 1
Argomento 5: Sicurezza e Permessi sui File
5.1 Sicurezza di Base e Identificazione dei Tipi di Utente
  • 5.1 Lezione 1
5.2 Creazione di Utenti e Gruppi
  • 5.2 Lezione 1
5.3 Gestione delle Autorizzazioni e delle Proprietà dei File
  • 5.3 Lezione 1
5.4 Directory e File Speciali
  • 5.4 Lezione 1
How to get certified
  1. Argomento 2: Trovare il Proprio Modo di Operare su un Sistema Linux
  2. 2.2 Utilizzo della Command Line per Ottenere Aiuto
  3. 2.2 Lezione 1

2.2 Lezione 1

Certificazione:

Linux Essentials

Versione:

1.6

Argomento:

2 Trovare il Proprio Modo di Operare su un Sistema Linux

Obiettivo:

2.2 Utilizzo della Command Line per Ottenere Aiuto

Lezione:

1 di 1

Introduzione

La Command Line è uno strumento molto complesso. Ogni comando ha le sue specifiche opzioni, per cui la documentazione è fondamentale quando si lavora con un sistema Linux. Oltre alla directory /usr/share/doc/, che contiene la maggior parte della documentazione, diversi altri strumenti forniscono informazioni sull’uso dei comandi Linux. Questo capitolo si concentra sui metodi per accedere a tale documentazione per ottenere aiuto.

Esistono molti metodi per ottenere aiuto dalla Command Line di Linux: man, help e info sono solo alcuni di questi. Per Linux Essentials, ci concentreremo su man e info poiché sono gli strumenti più frequentemente utilizzati per ottenere aiuto.

Un altro argomento di questo capitolo sarà la ricerca dei file. Lavorerai principalmente con il comando locate.

Ottenere Aiuto dalla Command Line

Aiuto Interno

Quando vengono eseguiti con il parametro --help, la maggior parte dei comandi mostra alcune brevi istruzioni sul loro utilizzo. Sebbene non tutti i comandi forniscano questa opzione è comunque una prima prova da fare per saperne di più sui parametri di un comando. Tieni presente che le indicazioni ottenute da --help sono spesso piuttosto brevi rispetto alle altre fonti di documentazione di cui parleremo nel resto di questa lezione.

Pagine Man

La maggior parte dei comandi prevede una pagina di manuale o una pagina "man". Questa documentazione viene solitamente installata con il software ed è possibile accedervi con il comando man. Il comando la cui pagina man deve essere visualizzata viene aggiunto a man come argomento:

$ man mkdir

Questo comando apre la pagina man di mkdir. È possibile utilizzare i tasti freccia su e giù o la barra spaziatrice per navigare nella pagina man. Per uscire dalla pagina man premi Q.

Ogni pagina man è suddivisa in un massimo di 11 sezioni, sebbene molte di queste siano opzionali:

Sezione Descrizione

NAME

Nome del comando e breve descrizione

SYNOPSIS

Descrizione della sintassi del comando

DESCRIPTION

Descrizione degli effetti del comando

OPTIONS

Opzioni disponibili

ARGUMENTS

Argomenti disponibili

FILES

File ausiliari

EXAMPLES

Un esempio della Command Line

SEE ALSO

Riferimenti incrociati agli argomenti correlati

DIAGNOSTICS

Messaggi di avviso ed errore

COPYRIGHT

Autore(i) del comando

BUGS

Eventuali limitazioni note del comando

In realtà, la maggior parte delle pagine man non contiene tutte queste parti.

Le pagine man sono organizzate in otto categorie, numerate da 1 a 8:

Categoria Descrizione

1

Comandi utente

2

Chiamate di sistema

3

Funzioni della libreria C

4

Driver e file di dispositivo

5

File di configurazione e formati di file

6

Giochi

7

Miscellanea

8

Comandi dell’amministratore di sistema

9

Funzioni del kernel (non standard)

Ogni pagina man appartiene esattamente a una sezione. Tuttavia, più sezioni possono avere pagine man con lo stesso nome. Prendiamo come esempio il comando passwd. Questo comando può essere utilizzato per cambiare la password di un utente. Dato che passwd è un comando utente, la sua pagina man si trova nella sezione 1. Oltre al comando passwd, anche il file del database delle password /etc/passwd ha una pagina man che è chiamata anch’essa passwd. Poiché questo file è un file di configurazione, appartiene alla sezione 5. Quando si fa riferimento a una pagina man, la categoria viene spesso aggiunta al nome della pagina man, come in passwd(1) o passwd(5), per identificare la rispettiva pagina man.

Per impostazione predefinita man passwd mostra la prima pagina man disponibile, in questo caso passwd(1). La categoria della pagina man desiderata può essere specificata nel comando come, per esempio, man 1 passwd o man 5 passwd.

Abbiamo già discusso come navigare in una pagina man e come tornare alla Command Line. Internamente man utilizza il comando less per mostrare il contenuto della pagina man. less ti consente di cercare del testo all’interno di una pagina man. Per cercare la parola linux puoi semplicemente usare /linux per effettuare una ricerca in avanti rispetto al punto in cui ti trovi nella pagina, o ?Linux per avviare una ricerca all’indietro. Questa azione evidenzia tutti i risultati trovati e sposta la pagina alla prima corrispondenza evidenziata. In entrambi i casi puoi premere N per passare alla corrispondenza successiva. Per avere ulteriori informazioni su queste funzioni aggiuntive, premi H e verrà visualizzato un menu con tutte le informazioni.

Pagine Info

Un altro strumento che ti sarà d’aiuto mentre lavori con un sistema Linux è rappresentato dalle pagine info. Le pagine info sono solitamente più dettagliate delle pagine man e sono formattate come ipertesti, in modo simile alle pagine web in Internet.

Le pagine info possono essere visualizzate in questo modo:

$ info mkdir

Per ciascuna di queste pagine il comando info legge un file di informazioni che è strutturato in singoli nodi all’interno di un albero. Ogni nodo contiene un semplice argomento e il comando info include dei collegamenti ipertestuali che possono aiutarti a muoverti da uno all’altro. È possibile accedere al collegamento premendo invio con il cursore posizionato su uno degli asterischi iniziali.

Come man, lo strumento info prevede anche dei comandi di navigazione all’interno della pagina. Per saperne di più su questi comandi premi ? all’interno della pagina info. Questi strumenti ti aiuteranno a navigare nella pagina più facilmente e a capire come accedere ai nodi e a muoverti all’interno dell’albero dei nodi.

La Directory /usr/share/doc/

Come accennato in precedenza, la directory /usr/share/doc/ contiene la maggior parte della documentazione dei comandi utilizzati dal sistema. /usr/share/doc/ contiene una directory per la maggior parte dei pacchetti installati sul sistema. Il nome della directory è solitamente il nome del pacchetto e talvolta include anche la sua versione. Queste directory contengono un file README o readme.txt con la documentazione di base del pacchetto. Oltre al file README, la cartella può contenere anche altri file di documentazione, come per esempio il registro delle modifiche (changelog) che contiene la cronologia del programma in dettaglio, o esempi di file di configurazione per lo specifico pacchetto.

Le informazioni all’interno del file README variano da un pacchetto all’altro. Tutti i file sono in formato testo e quindi possono essere letti con un qualunque editor di testo di tua scelta. Il numero esatto e il tipo di file dipendono dal pacchetto. Controlla alcune di queste directory per avere una panoramica del loro contenuto.

Trovare i File

Il Comando locate

Un sistema Linux è costituito da numerose directory e file. Linux ha molti strumenti per trovare un particolare file all’interno del sistema. Il più veloce è il comando locate.

locate cerca all’interno di un database e poi restituisce ogni nome che corrisponde alla stringa indicata:

$ locate note
/lib/udev/keymaps/zepto-znote
/usr/bin/zipnote
/usr/share/doc/initramfs-tools/maintainer-notes.html
/usr/share/man/man1/zipnote.1.gz

Il comando locate supporta anche l’uso dei caratteri jolly e delle espressioni regolari; quindi la stringa di ricerca non deve corrispondere al nome completo del file desiderato. Potrai scoprirne di più sulle espressioni regolari in uno dei prossimi capitoli.

Per impostazione predefinita locate si comporta come se il pattern di ricerca fosse tra asterischi; quindi locate PATTERN è uguale a locate *PATTERN*. Ciò ti consente di indicare solamente delle sottostringhe invece del nome esatto del file. Puoi modificare questo comportamento usando le diverse opzioni che trovi spiegate nella pagina man di locate.

Poiché locate legge da un database, potresti anche non trovare un file che hai creato di recente. Il database è gestito da un programma chiamato updatedb. Di solito viene eseguito periodicamente, ma se hai privilegi di root e hai bisogno che il database venga aggiornato immediatamente, puoi eseguire tu stesso il comando updatedb in qualsiasi momento.

Il Comando find

find è un altro strumento molto popolare utilizzato per cercare i file. Questo comando ha un approccio diverso rispetto al comando locate. Il comando find cerca in modo ricorsivo in un albero di directory, includendo le sue sottodirectory. find esegue una ricerca di questo tipo a ogni invocazione e non mantiene un database come locate. In analogia con locate, find supporta anche i caratteri jolly e le espressioni regolari.

find richiede almeno il percorso in cui deve cercare. Inoltre è possibile aggiungere le cosiddette espressioni per filtrare i file da visualizzare. Un esempio è l’espressione -name, che cerca i file con uno specifico nome:

~$ cd Downloads
~/Downloads
$ find . -name thesis.pdf
./thesis.pdf
~/Downloads
$ find ~ -name thesis.pdf
/home/carol/Downloads/thesis.pdf

Il primo comando find cerca il file nella directory corrente Downloads, mentre il secondo cerca il file nella directory home dell’utente.

Il comando find è molto complesso e quindi non sarà trattato nell’esame Linux Essentials. Tuttavia, è uno strumento potente e particolarmente utile nel quotidiano.

Esercizi Guidati

  1. Usa il comando man per scoprire cosa fa ogni comando:

    Comando Descrizione

    ls

    Visualizza il contenuto di una directory.

    cat

    cut

    cd

    cp

    mv

    mkdir

    touch

    wc

    passwd

    rm

    rmdir

    more

    less

    whereis

    head

    tail

    sort

    tr

    chmod

    grep

  2. Apri la pagina info di ls e identifica il MENU.

    • Quali opzioni hai?

    • Trova l’opzione che ti consente di ordinare l’output in base alla data di modifica.

  3. Visualizza il percorso dei primi 3 file README. Usa il comando man per individuare l’opzione corretta di locate.

  4. Crea un file chiamato test nella tua directory home. Trova il suo percorso assoluto con il comando locate.

  5. L’hai trovato subito? Che cosa hai dovuto fare affinché locate lo trovasse?

  6. Utilizzando il comando find cerca il file di test che hai creato in precedenza. Che sintassi hai usato e qual è il percorso assoluto?

Esercizi Esplorativi

  1. C’è un comando nella tabella sopra riportata che non ha una pagina man. Qual è questo comando e perché pensi non abbia una pagina man?

  2. Utilizzando i comandi nella tabella sopra riportata crea il seguente albero di file. I nomi che iniziano con una lettera maiuscola indicano delle Directory, mentre quelli che iniziano con una lettera minuscola indicano dei file.

    User
    ├── Documents
    |   ├──Hello
    |   |   ├──hey2
    |   |   ├──helloa
    |   |   └──ola5
    |   └──World
    |       └──earth9
    ├── Downloads
    |   ├──Music
    |   └──Songs
    |       ├──collection1
    |       └──collection2
    ├── Test
    |   └── passa
    └── test
  3. Visualizza sullo schermo la directory di lavoro corrente, includendo le sue sottodirectory.

  4. Cerca all’interno dell’albero tutti i file che terminano con un numero.

  5. Rimuovi tutti i rami della directory con un unico comando.

Sommario

In questa lezione hai imparato:

  • Come ottenere aiuto;

  • Come usare il comando man;

  • Come navigare in una pagina man;

  • Le diverse sezioni di una pagina man;

  • Come usare il comando info;

  • Come navigare tra i diversi nodi;

  • Come cercare i file all’interno del sistema.

Comandi utilizzati negli esercizi:

man

Visualizza una pagina man.

info

Visualizza una pagina info.

locate

Cerca nel database di locate i file con un specifico nome.

find

Cerca nel file system i nomi che corrispondono a un insieme di criteri di selezione.

updatedb

Aggiorna il database di locate.

Risposte agli Esercizi Guidati

  1. Usa il comando man per scoprire cosa fa ogni comando:

    Comando Descrizione

    ls

    Visualizza il contenuto di una directory

    cat

    Concatena o visualizza file di testo

    cut

    Rimuove sezioni da un file di testo

    cd

    Passa a un’altra directory

    cp

    Copia un file

    mv

    Sposta un file (può essere utilizzato anche per rinominare)

    mkdir

    Crea una nuova directory

    touch

    Crea un file o aggiorna la data e l’ora dell’ultima modifica di un file esistente

    wc

    Conta il numero di parole, di righe o di byte di un file

    passwd

    Modifica la password di un utente

    rm

    Cancella un file

    rmdir

    Cancella una directory

    more

    Visualizza i file di testo una schermata alla volta

    less

    Visualizza i file di testo, consentendo di scorrere verso l’alto o verso il basso di una riga o di una pagina alla volta

    whereis

    Visualizza il percorso di un programma specificato e dei relativi file di manuale

    head

    Visualizza le prime righe di un file

    tail

    Visualizza le ultime righe di un file

    sort

    Ordina un file numericamente o alfabeticamente

    tr

    Converte o elimina caratteri in un file

    chmod

    Modifica i diritti di accesso di un file

    grep

    Cerca all’interno di un file

  2. Apri la pagina info di ls e identifica il MENU.

    • Quali opzioni hai?

      • Which files are listed (Quali file sono elencati)

      • What information is listed (Quali informazioni vengono visualizzate)

      • Sorting the output (Ordinare l’output)

      • Details about version sort (Dettagli sull’ordinamento per versione)

      • General output formatting (Formato generale dell’output)

      • Formatting file timestamps (Formato dei timestamp)

      • Formatting the file names (Formato dei nomi dei file)

    • Trova l’opzione che ti consente di ordinare l’output in base alla data di modifica.

      -t o --sort=time

  3. Visualizza il percorso dei primi 3 file README. Usa il comando man per individuare l’opzione corretta di locate.

    $ locate -l 3 README
    /etc/alternatives/README
    /etc/init.d/README
    /etc/rc0.d/README
  4. Crea un file chiamato test nella tua directory home. Trova il suo percorso assoluto con il comando locate.

    $ touch test
    $ locate test
    /home/user/test
  5. L’hai trovato subito? Che cosa hai dovuto fare affinché locate lo trovasse?

    $ sudo updatedb

    Il file è stato appena creato e quindi non è presente nel database.

  6. Utilizzando il comando find cerca il file di test che hai creato in precedenza. Che sintassi hai usato e qual è il percorso assoluto?

    $ find ~ -name test

    o

    $ find . -name test
    /home/user/test

Risposte agli Esercizi Esplorativi

  1. C’è un comando nella tabella sopra riportata che non ha una pagina man. Qual è questo comando e perché pensi non abbia una pagina man?

    Il comando cd. Non ha una pagina man poichè è un comando interno alla shell (built-in).

  2. Utilizzando i comandi nella tabella sopra riportata crea il seguente albero di file. I nomi che iniziano con una lettera maiuscola indicano delle Directory, mentre quelli che iniziano con una lettera minuscola indicano dei file.

    User
    ├── Documents
    |   ├──Hello
    |   |   ├──hey2
    |   |   ├──helloa
    |   |   └──ola5
    |   └──World
    |       └──earth9
    ├── Downloads
    |   ├──Music
    |   └──Songs
    |       ├──collection1
    |       └──collection2
    ├── Test
    |   └── passa
    └── test

    La soluzione è una combinazione dei comandi mkdir e touch.

  3. Visualizza sullo schermo la directory di lavoro corrente, includendo le sue sottodirectory.

    $ ls -R
  4. Cerca all’interno dell’albero tutti i file che terminano con un numero.

    $ find ~ -name "*[0-9]"
    $ locate "*[0-9]"
  5. Rimuovi tutti i rami della directory con un unico comando.

    $ rm -r Documents Downloads Test test

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

Prossima Lezione

2.3 Utilizzo di Directory e Elenchi di File (2.3 Lezione 1)

Leggi la prossima Lezione

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

LPI è una organizzazione non-profit.

© 2023 Linux Professional Institute (LPI) è lo standard di certificazione globale e l'organizzazione di supporto alla carriera per i Professionisti Open Source. Con più di 200,000 titolari di Certificazione, è il primo e il più grande ente di Certificazione Open Source e Linux vendor-neutral. LPI ha professionisti certificati in oltre 180 Paesi, offre i suoi Esami in più lingue e ha centinaia di Partner di formazione in tutto il mondo.

La nostra missione è promuovere l'uso dell'Open Source supportando le persone che vi lavorano.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contattaci
  • Privacy & Cookie Policy

Trovato un errore? Per favore scrivi a contattaci.

© 1999–2023 The Linux Professional Institute Inc. Tutti i diritti riservati.