Gestore magico della cronologia della shell con archiviazione SQLite, sincronizzazione crittografata e ricerca full-text tra macchine e sessioni.
| Comando | Descrizione |
|---|
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh | Installa tramite script ufficiale |
brew install atuin | Installa su macOS con Homebrew |
cargo install atuin | Installa da crates.io |
pacman -S atuin | Installa su Arch Linux |
apt install atuin | Installa su Debian/Ubuntu (se disponibile) |
dnf install atuin | Installa su Fedora |
nix-env -i atuin | Installa su NixOS |
scoop install atuin | Installa su Windows con Scoop |
atuin --version | Mostra la versione installata |
| Comando | Descrizione |
|---|
atuin init bash >> ~/.bashrc | Inizializza per Bash |
atuin init zsh >> ~/.zshrc | Inizializza per Zsh |
atuin init fish >> ~/.config/fish/config.fish | Inizializza per Fish |
atuin init nushell | Mostra 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)"
| Comando | Descrizione |
|---|
Ctrl + R | Apri ricerca interattiva nella cronologia |
Digita la query dopo Ctrl + R | Filtra la cronologia interattivamente |
Enter | Esegui il comando selezionato |
Tab | Inserisci il comando senza eseguirlo |
Ctrl + R di nuovo | Cicla tra le modalita di ricerca |
↑ / ↓ | Naviga i risultati della ricerca |
Escape | Annulla ricerca |
Ctrl + D | Elimina la voce selezionata dalla cronologia |
Alt + 1-4 | Cambia modalita filtro (globale/host/sessione/directory) |
| Comando | Descrizione |
|---|
atuin history list | Mostra la cronologia recente dei comandi |
atuin history list --cmd-only | Mostra solo i comandi (senza metadati) |
atuin history list --format "{time} {command}" | Formato di output personalizzato |
atuin history list --reverse | Mostra i piu vecchi per primi |
atuin history list -n 50 | Mostra gli ultimi 50 comandi |
atuin history count | Mostra il conteggio totale della cronologia |
atuin history last | Mostra 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.
| Comando | Descrizione |
|---|
atuin search query | Cerca nella cronologia dalla riga di comando |
atuin search "git commit" | Cerca un comando specifico |
atuin search --cwd | Cerca nella cronologia solo per la directory corrente |
atuin search --session | Cerca nella cronologia solo per la sessione corrente |
atuin search --global | Cerca in tutta la cronologia tra le macchine |
atuin search --interactive | Apri l’interfaccia interattiva |
| Comando | Descrizione |
|---|
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 |
| Comando | Descrizione |
|---|
atuin search --exit 0 | Cerca solo comandi riusciti |
atuin search --exit 1 | Cerca solo comandi falliti |
atuin search --exit 127 | Cerca errori “comando non trovato” |
atuin search --limit 50 | Limita il numero di risultati |
| Comando | Descrizione |
|---|
atuin search --cwd /path/to/dir | Filtra per directory di lavoro specifica |
atuin search --hostname myserver | Filtra per hostname |
atuin search --session SESSION_ID | Filtra per ID sessione |
atuin search --duration ">5s" | Filtra per durata di esecuzione |
atuin search --duration "<100ms" | Trova comandi veloci |
| Comando | Descrizione |
|---|
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
| Comando | Descrizione |
|---|
atuin register -u username -e email -p password | Crea account di sincronizzazione |
atuin login -u username -p password | Accedi all’account di sincronizzazione |
atuin login -u username -p password -k KEY | Accedi con chiave di crittografia |
atuin logout | Esci dall’account di sincronizzazione |
atuin account | Mostra lo stato dell’account |
atuin account delete | Elimina l’account di sincronizzazione |
atuin key | Mostra la chiave di crittografia (salvala!) |
atuin status | Mostra lo stato della sincronizzazione |
| Comando | Descrizione |
|---|
atuin sync | Sincronizza la cronologia con il server |
atuin sync -f | Forza sincronizzazione completa |
atuin sync --force | Forza il ri-upload di tutta la cronologia |
| Tutti i dati sono crittografati end-to-end | Il 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"
| Comando | Descrizione |
|---|
atuin import auto | Rileva automaticamente e importa la cronologia della shell |
atuin import bash | Importa dalla cronologia Bash |
atuin import zsh | Importa dalla cronologia Zsh |
atuin import zsh-hist-db | Importa dal plugin hist-db di Zsh |
atuin import fish | Importa dalla cronologia Fish |
atuin import resh | Importa dalla cronologia RESH |
atuin import nu | Importa dalla cronologia Nushell |
atuin import nu-hist-db | Importa 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
| Comando | Descrizione |
|---|
atuin stats | Mostra statistiche della cronologia |
atuin stats --count 20 | Mostra i 20 comandi piu usati |
atuin stats --period day | Statistiche di oggi |
atuin stats --period week | Statistiche di questa settimana |
atuin stats --period month | Statistiche di questo mese |
atuin stats --period all | Statistiche di sempre |
atuin history count | Totale 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
| Comando | Descrizione |
|---|
~/.config/atuin/config.toml | File di configurazione principale |
atuin default-config | Stampa la configurazione predefinita |
| Comando | Descrizione |
|---|
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 |
| Comando | Descrizione |
|---|
style = "compact" | Usa stile interfaccia compatto |
style = "full" | Usa stile interfaccia completo |
style = "auto" | Rileva automaticamente in base al terminale |
inline_height = 40 | Imposta l’altezza della ricerca inline |
show_preview = true | Mostra pannello di anteprima del comando |
show_help = true | Mostra aiuto per i tasti |
show_tabs = true | Mostra le tab delle modalita filtro |
max_preview_height = 4 | Righe 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
| Tasto | Descrizione |
|---|
Ctrl + R | Apri ricerca / cicla modalita di ricerca |
↑ / ↓ | Naviga i risultati |
Enter | Esegui il comando selezionato |
Tab | Inserisci il comando senza eseguirlo |
Escape | Annulla ricerca |
Ctrl + D | Elimina la voce selezionata dalla cronologia |
Alt + 1 | Passa al filtro globale |
Alt + 2 | Passa al filtro host |
Alt + 3 | Passa al filtro sessione |
Alt + 4 | Passa al filtro directory |
Ctrl + U | Cancella la query di ricerca |
Ctrl + W | Elimina parola precedente |
| Comando | Descrizione |
|---|
~/.local/share/atuin/history.db | Posizione predefinita del database |
| Il database usa il formato SQLite | Puo 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;"
-
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.
-
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.
-
Filtra i segreti dalla cronologia — Aggiungi pattern a history_filter nella configurazione per evitare la registrazione di comandi contenenti token, password e chiavi API.
-
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.
-
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.
-
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.
-
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.
-
Configura il server self-hosted — Se gestisci dati sensibili, esegui il tuo server Atuin con Docker per il controllo completo sulla cronologia sincronizzata.
-
Rivedi le statistiche regolarmente — Esegui atuin stats periodicamente per capire i tuoi pattern e identificare comandi che potresti creare come alias per efficienza.
-
Usa lo stile compatto per terminali piccoli — Imposta style = "compact" se lavori in terminali a pannelli divisi con spazio verticale limitato.