`
Cosa fa#
Mostra la lista numerata dei comandi eseguiti nella shell corrente e nelle sessioni precedenti. I comandi sono salvati in ~/.bash_history (bash) o ~/.zsh_history (zsh) e persistono tra i riavvii.
TL;DR#
history # mostra tutta la lista numerata
history | less # naviga la lista se e' lunga
!88 # riesegui il comando numero 88
!! # riesegui l'ultimo comando
history | grep /usr/bin # cerca nella cronologiaComandi essenziali#
| Comando | Cosa fa | Note |
|---|---|---|
history | Mostra tutti i comandi con numero | Tipicamente ultimi 500-1000 |
history | less | Naviga la lista con paginazione | Utile se la lista e' lunga |
history | grep pattern | Cerca un comando nella cronologia | pattern = stringa da cercare |
!N | Riesegui il comando numero N | Sostituisci N con il numero dalla lista |
!! | Riesegui l'ultimo comando | Utile con sudo !! se hai dimenticato sudo |
!stringa | Riesegui l'ultimo comando che inizia con stringa | es. !ssh riesegue l'ultimo ssh |
history -c | Cancella tutta la cronologia della sessione | Non cancella ~/.bash_history su disco |
CTRL+R | Ricerca interattiva nella cronologia | Digita e filtra in tempo reale |
Dove vive la cronologia#
~/.bash_history # bash — file su disco
~/.zsh_history # zsh — file su disco (formato leggermente diverso)
# Variabili che controllano il comportamento:
echo $HISTSIZE # numero comandi tenuti in memoria durante la sessione
echo $HISTFILESIZE # numero comandi salvati su disco
echo $HISTFILE # path del file di cronologiaScenario Reale#
# ATTACCO — Cancellazione tracce
# Un attaccante dopo aver compromesso un sistema cerca di coprire le tracce:
history -c # cancella la cronologia in memoria
> ~/.bash_history # svuota il file su disco
# DIFESA — Blue Team
# Durante un'analisi forense, la cronologia e' uno dei primi posti da controllare:
cat ~/.bash_history # leggi la cronologia grezza
cat ~/.bash_history | grep -i "wget\|curl\|nc\|python" # cerca tool sospetti
ls -la ~/.bash_history # controlla timestamp ultima modificaUn file
~/.bash_history vuoto o con timestamp recente su un sistema che gira da mesi e' un segnale di compromissione. Il Blue Team dovrebbe includere il monitoraggio della cronologia nella baseline.sudo !! e' una delle combinazioni piu' usate — riesegui l'ultimo comando con privilegi elevati senza riscriverlo.Collegato a#
- system — categoria
- grep — usato insieme per cercare nella cronologia
- shell-interattiva — la cronologia e' legata all'ambiente shell



