Skip to main content
  1. Comandi/

history

·2 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

`

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 cronologia

Comandi essenziali
#

ComandoCosa faNote
historyMostra tutti i comandi con numeroTipicamente ultimi 500-1000
history | lessNaviga la lista con paginazioneUtile se la lista e' lunga
history | grep patternCerca un comando nella cronologiapattern = stringa da cercare
!NRiesegui il comando numero NSostituisci N con il numero dalla lista
!!Riesegui l'ultimo comandoUtile con sudo !! se hai dimenticato sudo
!stringaRiesegui l'ultimo comando che inizia con stringaes. !ssh riesegue l'ultimo ssh
history -cCancella tutta la cronologia della sessioneNon cancella ~/.bash_history su disco
CTRL+RRicerca interattiva nella cronologiaDigita 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 cronologia

Scenario 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 modifica
Un 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

Related