Skip to main content
  1. Blog/

Offline. Non al buio.

·5 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

TL;DR
  • apropos parola trova il comando quando non ne conosci il nome
  • comando --help ti dà i flag in cinque secondi senza uscire dal terminale
  • man comando è il manuale completo, navigabile con /parola per cercare
  • whatis comando ti dice in una riga cosa fa qualcosa che hai trovato nei log
$ history
  • man ls
  • man 5 passwd
  • man -k password
  • man -f passwd
  • apropos permission
  • apropos -r "^ssh"
  • whatis find
  • tar --help
  • tar --help | grep extract

Offline. Non al buio.

Hai una shell aperta su un server che non hai mai visto. Niente internet, niente Stack Overflow, niente documentazione esterna. Devi capire come funziona qualcosa - un flag, un file di configurazione, un comando che compare nei log.

Non sei al buio. La documentazione è già lì, installata insieme al sistema.


Il problema
#

Quattro situazioni ricorrenti su sistemi sconosciuti:

  1. Non sai come si chiama il comando che fa quello che ti serve
  2. Sai il nome, vuoi i flag velocemente senza aprire un manuale
  3. Sai il nome, vuoi capire davvero come funziona
  4. Hai trovato un nome nei log e vuoi sapere cos'è

Per ognuna c'è uno strumento diverso.

graph TD
    Problema{Cosa cerchi?}
    Problema -->|non so il nome del comando| Apropos["apropos parola chiave"]
    Problema -->|so il nome, voglio i flag| Help["comando --help"]
    Problema -->|so il nome, voglio capire| Man["man comando"]
    Problema -->|ho un nome, cosa fa?| Whatis["whatis nome"]
    Man -->|non trovo il flag| Cerca["/ parola → n → N"]

Step 1 - Non sai il nome: apropos
#

apropos cerca una parola chiave nelle descrizioni brevi di tutte le pagine di manuale installate. È il Google interno del sistema - ma mostra solo quello che hai realmente disponibile su quella macchina.

apropos permission
# output reale (varia per sistema)
chmod (1)  - change file mode bits
chown (1)  - change file owner and group
chgrp (1)  - change group ownership
setfacl (1) - set file access control lists

Il numero tra parentesi è la sezione del manuale: (1) = comandi utente, (8) = comandi di amministrazione. Per trovare tool di sistema, filtra sulla sezione 8:

apropos network | grep "(8)"
apropos log | grep "(8)"
apropos user | grep "(8)"

Su un server sconosciuto per mappare cosa è installato:

apropos "packet capture" 2>/dev/null
apropos forensic 2>/dev/null
apropos "disk image" 2>/dev/null

Il 2>/dev/null sopprime i warning se il database non è aggiornato. Per aggiornarlo dopo aver installato nuovi pacchetti:

sudo mandb

Step 2 - Sai il nome, vuoi i flag: --help
#

Sei nel mezzo di qualcosa e hai bisogno di un flag specifico. Non vuoi aprire un manuale. Usi --help.

tar --help

L'output è lungo. Filtralo:

tar --help | grep extract
tar --help | grep -i compress
find --help | grep -i size

-h è spesso un'abbreviazione di --help, ma attenzione: su alcuni comandi -h significa human-readable. Se non sei sicuro, usa --help.


Step 3 - Sai il nome, vuoi capire: man
#

man apre la documentazione ufficiale del comando - scritta per la versione esatta installata su quel sistema. Più affidabile di qualsiasi risultato online per i dettagli di comportamento.

man find
man ssh
man 5 sshd_config    # sezione 5 = file di configurazione
man 5 crontab        # struttura del file crontab
man 7 signal         # tutti i segnali Unix

Le sezioni risolvono l'ambiguità quando lo stesso nome esiste in contesti diversi:

SezioneContieneEsempio
1Comandi utenteman 1 passwd → il comando
5File di configurazioneman 5 passwd → il file /etc/passwd
7Concetti e protocolliman 7 tcp
8Comandi di amministrazioneman 8 useradd

Navigazione interna#

Le pagine man si aprono con less. Non leggerle dall'inizio - cerca quello che ti serve:

TastoAzione
/parolaCerca verso il basso
nOccorrenza successiva
NOccorrenza precedente
GVai alla fine
gVai all'inizio
qEsci

Flusso pratico:

man sshd_config
# poi dentro:
/PasswordAuth
# n per scorrere le occorrenze
# trovi: PasswordAuthentication yes|no
# q per uscire

Questo è più affidabile di cercare online perché è la documentazione della versione installata - non di una versione diversa trovata su Stack Overflow.

Trovare tutte le sezioni disponibili
#

man -f passwd
# passwd (1)  - change user password
# passwd (5)  - the password file

man -f è identico a whatis.


Step 4 - Hai un nome, cosa fa: whatis
#

Trovi un processo sconosciuto nei log o in ps aux. Una riga di descrizione è tutto quello che ti serve per capire se approfondire.

whatis rsyslog
# rsyslog (8) - reliable and extended syslogd

whatis atd
# atd (8) - run jobs queued for later execution

whatis rpcbind
# rpcbind (8) - universal addresses to RPC program number mapper

whatis è identico a man -f. Usa quello che ricordi più facilmente.


La mappa completa
#

graph LR
    A[apropos parola] -->|"trova comandi per funzione"| B[lista comandi]
    B -->|"scegli il comando"| C{Quanto dettaglio?}
    C -->|"solo i flag"| D["comando --help"]
    C -->|"voglio capire"| E["man comando"]
    C -->|"una riga basta"| F["whatis comando"]
    E -->|"cerco un flag specifico"| G["/parola dentro man"]

Quando NON usarlo
#

man mostra la documentazione della versione installata. Se stai cercando comportamenti di una versione diversa, o vuoi confrontare implementazioni tra sistemi operativi, la documentazione locale non è sufficiente.

apropos dipende dal database whatis. Su sistemi appena configurati o con pacchetti installati di recente, il database potrebbe essere vuoto o incompleto - in quel caso apropos non trova nulla anche se il tool esiste. Soluzione: sudo mandb.


exit 0
#

La documentazione non è su internet. È sul server. È lì dal primo giorno, aggiornata alla versione installata, disponibile anche quando la rete non c'è.

apropos per trovare cosa non conosci. --help per ricordare cosa hai dimenticato. man per capire davvero. whatis per identificare quello che hai trovato.

Quattro comandi. Zero dipendenze esterne.


Comandi usati: man · apropos · whatis Concetti correlati: system

Related