Salta ai contenuti

Atuin

Gestore magico della cronologia della shell con archiviazione SQLite, sincronizzazione crittografata e ricerca full-text tra macchine e sessioni.

ComandoDescrizione
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | shInstalla tramite script ufficiale
brew install atuinInstalla su macOS con Homebrew
cargo install atuinInstalla da crates.io
pacman -S atuinInstalla su Arch Linux
apt install atuinInstalla su Debian/Ubuntu (se disponibile)
dnf install atuinInstalla su Fedora
nix-env -i atuinInstalla su NixOS
scoop install atuinInstalla su Windows con Scoop
atuin --versionMostra la versione installata
ComandoDescrizione
atuin init bash >> ~/.bashrcInizializza per Bash
atuin init zsh >> ~/.zshrcInizializza per Zsh
atuin init fish >> ~/.config/fish/config.fishInizializza per Fish
atuin init nushellMostra i comandi di init per Nushell
# Bash — aggiungi a ~/.bashrc
eval "$(atuin init bash)"

# Zsh — aggiungi a ~/.zshrc
eval "$(atuin init zsh)"

# Fish — aggiungi a ~/.config/fish/config.fish
atuin init fish | source

# Zsh con disattivazione freccia su (usa solo Ctrl+R)
eval "$(atuin init zsh --disable-up-arrow)"
ComandoDescrizione
Ctrl + RApri ricerca interattiva nella cronologia
Digita la query dopo Ctrl + RFiltra la cronologia interattivamente
EnterEsegui il comando selezionato
TabInserisci il comando senza eseguirlo
Ctrl + R di nuovoCicla tra le modalita di ricerca
↑ / ↓Naviga i risultati della ricerca
EscapeAnnulla ricerca
Ctrl + DElimina la voce selezionata dalla cronologia
Alt + 1-4Cambia modalita filtro (globale/host/sessione/directory)
ComandoDescrizione
atuin history listMostra la cronologia recente dei comandi
atuin history list --cmd-onlyMostra solo i comandi (senza metadati)
atuin history list --format "{time} {command}"Formato di output personalizzato
atuin history list --reverseMostra i piu vecchi per primi
atuin history list -n 50Mostra gli ultimi 50 comandi
atuin history countMostra il conteggio totale della cronologia
atuin history lastMostra il comando piu recente
Atuin cicla tra 4 modalita di ricerca con Ctrl+R:

1. Fuzzy    — Corrisponde ai caratteri in qualsiasi ordine (come fzf)
2. Prefix   — Corrisponde dall'inizio del comando
3. Fulltext — Corrisponde a sottostringhe esatte ovunque
4. Skim     — Corrispondenza fuzzy stile Skim

Cambia modalita durante la ricerca con Ctrl+R, oppure imposta
una predefinita nel file di configurazione.
ComandoDescrizione
atuin search queryCerca nella cronologia dalla riga di comando
atuin search "git commit"Cerca un comando specifico
atuin search --cwdCerca nella cronologia solo per la directory corrente
atuin search --sessionCerca nella cronologia solo per la sessione corrente
atuin search --globalCerca in tutta la cronologia tra le macchine
atuin search --interactiveApri l’interfaccia interattiva
ComandoDescrizione
atuin search --after "2024-01-01"Cerca dopo una data specifica
atuin search --before "yesterday"Cerca prima di un momento specifico
atuin search --after "1 hour ago"Cerca nell’ultima ora
atuin search --after "3 days ago"Cerca negli ultimi 3 giorni
atuin search --after "last week"Cerca nell’ultima settimana
atuin search --before "2024-06-01" --after "2024-01-01"Intervallo di date
ComandoDescrizione
atuin search --exit 0Cerca solo comandi riusciti
atuin search --exit 1Cerca solo comandi falliti
atuin search --exit 127Cerca errori “comando non trovato”
atuin search --limit 50Limita il numero di risultati
ComandoDescrizione
atuin search --cwd /path/to/dirFiltra per directory di lavoro specifica
atuin search --hostname myserverFiltra per hostname
atuin search --session SESSION_IDFiltra per ID sessione
atuin search --duration ">5s"Filtra per durata di esecuzione
atuin search --duration "<100ms"Trova comandi veloci
ComandoDescrizione
atuin search --format "{time} {command}"Mostra ora e comando
atuin search --format "{duration} {command}"Mostra durata e comando
atuin search --format "{host} {command}"Mostra hostname e comando
atuin search --format "{user} {directory} {command}"Contesto completo
# Trova tutti i comandi docker che sono falliti
atuin search docker --exit 1

# Trova operazioni git dell'ultima settimana
atuin search git --after "1 week ago"

# Trova comandi a lunga esecuzione (>30 secondi)
atuin search --duration ">30s"

# Trova comandi eseguiti in un progetto specifico
atuin search --cwd ~/projects/myapp

# Trova comandi dal tuo laptop di lavoro
atuin search --hostname work-mbp
ComandoDescrizione
atuin register -u username -e email -p passwordCrea account di sincronizzazione
atuin login -u username -p passwordAccedi all’account di sincronizzazione
atuin login -u username -p password -k KEYAccedi con chiave di crittografia
atuin logoutEsci dall’account di sincronizzazione
atuin accountMostra lo stato dell’account
atuin account deleteElimina l’account di sincronizzazione
atuin keyMostra la chiave di crittografia (salvala!)
atuin statusMostra lo stato della sincronizzazione
ComandoDescrizione
atuin syncSincronizza la cronologia con il server
atuin sync -fForza sincronizzazione completa
atuin sync --forceForza il ri-upload di tutta la cronologia
Tutti i dati sono crittografati end-to-endIl server non vede mai la cronologia in chiaro
# Prima configurazione sulla macchina 1
atuin register -u myname -e me@example.com -p mypassword
atuin key  # SALVA QUESTA CHIAVE — ti servira per le altre macchine
atuin sync

# Configurazione sulla macchina 2
atuin login -u myname -p mypassword -k LA_TUA_CHIAVE_DI_CRITTOGRAFIA
atuin sync

# La tua chiave di crittografia assomiglia a:
# abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890

# Senza la chiave, il server non puo decrittare la tua cronologia.
# Se perdi la chiave, la cronologia sincronizzata e irrecuperabile.
# Esegui il tuo server Atuin di sincronizzazione
docker run -d \
  --name atuin-server \
  -p 8888:8888 \
  -v atuin-data:/config \
  ghcr.io/atuinsh/atuin:latest \
  server start

# Punta il tuo client al server self-hosted
# In ~/.config/atuin/config.toml:
# sync_address = "http://your-server:8888"
ComandoDescrizione
atuin import autoRileva automaticamente e importa la cronologia della shell
atuin import bashImporta dalla cronologia Bash
atuin import zshImporta dalla cronologia Zsh
atuin import zsh-hist-dbImporta dal plugin hist-db di Zsh
atuin import fishImporta dalla cronologia Fish
atuin import reshImporta dalla cronologia RESH
atuin import nuImporta dalla cronologia Nushell
atuin import nu-hist-dbImporta dalla cronologia SQLite di Nushell
# Rileva automaticamente la tua shell e importa
atuin import auto

# Importa specificamente la cronologia Zsh
atuin import zsh

# Controlla quante voci sono state importate
atuin history count

# Verifica che l'importazione abbia funzionato
atuin search --limit 5
ComandoDescrizione
atuin statsMostra statistiche della cronologia
atuin stats --count 20Mostra i 20 comandi piu usati
atuin stats --period dayStatistiche di oggi
atuin stats --period weekStatistiche di questa settimana
atuin stats --period monthStatistiche di questo mese
atuin stats --period allStatistiche di sempre
atuin history countTotale voci nella cronologia
$ atuin stats --count 10
┌─────────┬─────────────────┬───────┐
│ Rank    │ Command         │ Count │
├─────────┼─────────────────┼───────┤
│ 1       │ git status      │  1847 │
│ 2       │ ls              │  1523 │
│ 3       │ cd              │  1201 │
│ 4       │ git diff        │   987 │
│ 5       │ vim             │   842 │
│ 6       │ git add         │   756 │
│ 7       │ docker ps       │   689 │
│ 8       │ npm run         │   534 │
│ 9       │ git commit      │   498 │
│ 10      │ make            │   423 │
└─────────┴─────────────────┴───────┘

Comandi totali:   45.231
Comandi unici:     8.432
ComandoDescrizione
~/.config/atuin/config.tomlFile di configurazione principale
atuin default-configStampa la configurazione predefinita
ComandoDescrizione
search_mode = "fuzzy"Imposta modalita di ricerca fuzzy
search_mode = "prefix"Imposta modalita di ricerca per prefisso
search_mode = "fulltext"Imposta modalita di ricerca full-text
search_mode = "skim"Imposta modalita di ricerca fuzzy skim
filter_mode = "global"Cerca in tutta la cronologia per impostazione predefinita
filter_mode = "host"Cerca nell’host corrente per impostazione predefinita
filter_mode = "session"Cerca nella sessione corrente per impostazione predefinita
filter_mode = "directory"Cerca nella directory corrente per impostazione predefinita
filter_mode_shell_up_key_binding = "session"La freccia su cerca nella sessione corrente
ComandoDescrizione
style = "compact"Usa stile interfaccia compatto
style = "full"Usa stile interfaccia completo
style = "auto"Rileva automaticamente in base al terminale
inline_height = 40Imposta l’altezza della ricerca inline
show_preview = trueMostra pannello di anteprima del comando
show_help = trueMostra aiuto per i tasti
show_tabs = trueMostra le tab delle modalita filtro
max_preview_height = 4Righe massime per l’anteprima
# ~/.config/atuin/config.toml

## Impostazioni Database
db_path = "~/.local/share/atuin/history.db"

## Impostazioni di Ricerca
search_mode = "fuzzy"
filter_mode = "global"
filter_mode_shell_up_key_binding = "host"

## Impostazioni Interfaccia
style = "auto"
inline_height = 40
show_preview = true
show_help = true
show_tabs = true
max_preview_height = 4
invert = false

## Impostazioni Cronologia
update_check = true
sync_frequency = "5m"
sync_address = "https://api.atuin.sh"

## Tasti predefiniti
# Ctrl+R = ricerca
# Freccia su = ricerca (a meno che non sia disabilitata)
# Tab = accetta senza eseguire
# Enter = accetta ed esegui

## Filtro segreti — non registrare comandi con segreti
history_filter = [
  "^export.*TOKEN",
  "^export.*SECRET",
  "^export.*PASSWORD",
  "^export.*KEY",
  ".*AWS_SECRET.*",
]

## Ignora comandi specifici
history_filter = [
  "^ls$",
  "^cd$",
  "^pwd$",
  "^exit$",
  "^clear$",
]

## Impostazioni sincronizzazione
sync_frequency = "5m"
# sync_address = "https://api.atuin.sh"  # Server predefinito
# sync_address = "http://localhost:8888"  # Self-hosted
TastoDescrizione
Ctrl + RApri ricerca / cicla modalita di ricerca
↑ / ↓Naviga i risultati
EnterEsegui il comando selezionato
TabInserisci il comando senza eseguirlo
EscapeAnnulla ricerca
Ctrl + DElimina la voce selezionata dalla cronologia
Alt + 1Passa al filtro globale
Alt + 2Passa al filtro host
Alt + 3Passa al filtro sessione
Alt + 4Passa al filtro directory
Ctrl + UCancella la query di ricerca
Ctrl + WElimina parola precedente
ComandoDescrizione
~/.local/share/atuin/history.dbPosizione predefinita del database
Il database usa il formato SQLitePuo essere interrogato con qualsiasi strumento SQLite
sqlite3 ~/.local/share/atuin/history.db ".tables"Elenca le tabelle del database
# Apri il database direttamente con SQLite
sqlite3 ~/.local/share/atuin/history.db

# Conta le voci totali
sqlite3 ~/.local/share/atuin/history.db \
  "SELECT COUNT(*) FROM history;"

# Trova i comandi con esecuzione piu lunga
sqlite3 ~/.local/share/atuin/history.db \
  "SELECT command, duration FROM history
   ORDER BY duration DESC LIMIT 10;"

# Comandi per directory
sqlite3 ~/.local/share/atuin/history.db \
  "SELECT cwd, COUNT(*) as cnt FROM history
   GROUP BY cwd ORDER BY cnt DESC LIMIT 10;"
  1. Importa prima la cronologia esistente — Esegui atuin import auto immediatamente dopo l’installazione per iniziare con un database di cronologia ricco piuttosto che da zero.

  2. Usa la modalita di ricerca fuzzy — Imposta search_mode = "fuzzy" per la corrispondenza piu flessibile. Puoi sempre ciclare ad altre modalita con Ctrl+R durante una ricerca.

  3. Filtra i segreti dalla cronologia — Aggiungi pattern a history_filter nella configurazione per evitare la registrazione di comandi contenenti token, password e chiavi API.

  4. Salva la tua chiave di crittografia — Esegui atuin key e salva la chiave in un gestore di password. Se la perdi, la cronologia sincronizzata da altre macchine e permanentemente irrecuperabile.

  5. Configura la sincronizzazione tra macchine — La sincronizzazione crittografata e la funzionalita principale di Atuin. Registra un account e configura tutte le tue macchine per avere una cronologia unificata ovunque.

  6. Usa la ricerca per directory — Premi Alt+4 durante la ricerca per filtrare i comandi eseguiti nella directory corrente - perfetto per flussi di lavoro specifici del progetto.

  7. Personalizza la freccia su — Imposta filter_mode_shell_up_key_binding = "host" per fare in modo che la freccia su mostri solo i comandi dalla macchina corrente, mentre Ctrl+R cerca globalmente.

  8. Configura il server self-hosted — Se gestisci dati sensibili, esegui il tuo server Atuin con Docker per il controllo completo sulla cronologia sincronizzata.

  9. Rivedi le statistiche regolarmente — Esegui atuin stats periodicamente per capire i tuoi pattern e identificare comandi che potresti creare come alias per efficienza.

  10. Usa lo stile compatto per terminali piccoli — Imposta style = "compact" se lavori in terminali a pannelli divisi con spazio verticale limitato.