Aller au contenu

Atuin

Gestionnaire d’historique shell magique avec stockage SQLite, synchronisation chiffrée et recherche en texte intégral entre machines et sessions.

CommandeDescription
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | shInstaller via le script officiel
brew install atuinInstaller sur macOS avec Homebrew
cargo install atuinInstaller depuis crates.io
pacman -S atuinInstaller sur Arch Linux
apt install atuinInstaller sur Debian/Ubuntu (si disponible)
dnf install atuinInstaller sur Fedora
nix-env -i atuinInstaller sur NixOS
scoop install atuinInstaller sur Windows avec Scoop
atuin --versionAfficher la version installée
CommandeDescription
atuin init bash >> ~/.bashrcInitialiser pour Bash
atuin init zsh >> ~/.zshrcInitialiser pour Zsh
atuin init fish >> ~/.config/fish/config.fishInitialiser pour Fish
atuin init nushellAfficher les commandes d’initialisation Nushell
# Bash — ajouter à ~/.bashrc
eval "$(atuin init bash)"

# Zsh — ajouter à ~/.zshrc
eval "$(atuin init zsh)"

# Fish — ajouter à ~/.config/fish/config.fish
atuin init fish | source

# Zsh avec désactivation de la flèche haut (Ctrl+R uniquement)
eval "$(atuin init zsh --disable-up-arrow)"
CommandeDescription
Ctrl + ROuvrir la recherche interactive dans l’historique
Taper la requête après Ctrl + RFiltrer l’historique de manière interactive
EnterExécuter la commande sélectionnée
TabInsérer la commande sans l’exécuter
Ctrl + R à nouveauBasculer entre les modes de recherche
↑ / ↓Naviguer dans les résultats de recherche
EscapeAnnuler la recherche
Ctrl + DSupprimer l’entrée sélectionnée de l’historique
Alt + 1-4Changer le mode de filtre (global/hôte/session/répertoire)
CommandeDescription
atuin history listAfficher l’historique récent des commandes
atuin history list --cmd-onlyAfficher uniquement les commandes (sans métadonnées)
atuin history list --format "{time} {command}"Format de sortie personnalisé
atuin history list --reverseAfficher les plus anciennes en premier
atuin history list -n 50Afficher les 50 dernières commandes
atuin history countAfficher le nombre total d’entrées
atuin history lastAfficher la commande la plus récente
Atuin alterne entre 4 modes de recherche avec Ctrl+R :

1. Fuzzy    — Correspond aux caractères dans n'importe quel ordre (comme fzf)
2. Prefix   — Correspond depuis le début de la commande
3. Fulltext — Correspond aux sous-chaînes exactes n'importe où
4. Skim     — Correspondance floue style Skim

Changez de mode pendant la recherche avec Ctrl+R, ou définissez
un mode par défaut dans le fichier de configuration.
CommandeDescription
atuin search queryRechercher dans l’historique depuis la ligne de commande
atuin search "git commit"Rechercher une commande spécifique
atuin search --cwdRechercher l’historique du répertoire courant uniquement
atuin search --sessionRechercher l’historique de la session courante uniquement
atuin search --globalRechercher tout l’historique sur toutes les machines
atuin search --interactiveOuvrir l’interface interactive
CommandeDescription
atuin search --after "2024-01-01"Rechercher après une date spécifique
atuin search --before "yesterday"Rechercher avant un moment spécifique
atuin search --after "1 hour ago"Rechercher dans la dernière heure
atuin search --after "3 days ago"Rechercher dans les 3 derniers jours
atuin search --after "last week"Rechercher dans la dernière semaine
atuin search --before "2024-06-01" --after "2024-01-01"Plage de dates
CommandeDescription
atuin search --exit 0Rechercher uniquement les commandes réussies
atuin search --exit 1Rechercher uniquement les commandes échouées
atuin search --exit 127Rechercher les erreurs “commande introuvable”
atuin search --limit 50Limiter le nombre de résultats
CommandeDescription
atuin search --cwd /path/to/dirFiltrer par répertoire de travail spécifique
atuin search --hostname myserverFiltrer par nom d’hôte
atuin search --session SESSION_IDFiltrer par identifiant de session
atuin search --duration ">5s"Filtrer par durée d’exécution
atuin search --duration "<100ms"Trouver les commandes rapides
CommandeDescription
atuin search --format "{time} {command}"Afficher l’heure et la commande
atuin search --format "{duration} {command}"Afficher la durée et la commande
atuin search --format "{host} {command}"Afficher le nom d’hôte et la commande
atuin search --format "{user} {directory} {command}"Contexte complet
# Trouver toutes les commandes docker qui ont échoué
atuin search docker --exit 1

# Trouver les opérations git de la dernière semaine
atuin search git --after "1 week ago"

# Trouver les commandes longues (>30 secondes)
atuin search --duration ">30s"

# Trouver les commandes exécutées dans un projet spécifique
atuin search --cwd ~/projects/myapp

# Trouver les commandes depuis votre ordinateur portable de travail
atuin search --hostname work-mbp
CommandeDescription
atuin register -u username -e email -p passwordCréer un compte de synchronisation
atuin login -u username -p passwordSe connecter au compte de synchronisation
atuin login -u username -p password -k KEYSe connecter avec la clé de chiffrement
atuin logoutSe déconnecter du compte de synchronisation
atuin accountAfficher le statut du compte
atuin account deleteSupprimer le compte de synchronisation
atuin keyAfficher la clé de chiffrement (conservez-la !)
atuin statusAfficher le statut de la synchronisation
CommandeDescription
atuin syncSynchroniser l’historique avec le serveur
atuin sync -fForcer une synchronisation complète
atuin sync --forceForcer le re-téléversement de tout l’historique
Toutes les données sont chiffrées de bout en boutLe serveur ne voit jamais l’historique en clair
# Première configuration sur la machine 1
atuin register -u myname -e me@example.com -p mypassword
atuin key  # CONSERVEZ CETTE CLÉ — vous en aurez besoin pour les autres machines
atuin sync

# Configuration sur la machine 2
atuin login -u myname -p mypassword -k YOUR_ENCRYPTION_KEY
atuin sync

# Votre clé de chiffrement ressemble à :
# abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890

# Sans la clé, le serveur ne peut pas déchiffrer votre historique.
# Si vous perdez la clé, votre historique synchronisé est irrécupérable.
# Exécuter votre propre serveur de synchronisation Atuin
docker run -d \
  --name atuin-server \
  -p 8888:8888 \
  -v atuin-data:/config \
  ghcr.io/atuinsh/atuin:latest \
  server start

# Pointer votre client vers le serveur auto-hébergé
# Dans ~/.config/atuin/config.toml :
# sync_address = "http://your-server:8888"
CommandeDescription
atuin import autoDétecter automatiquement et importer l’historique shell
atuin import bashImporter depuis l’historique Bash
atuin import zshImporter depuis l’historique Zsh
atuin import zsh-hist-dbImporter depuis le plugin Zsh hist-db
atuin import fishImporter depuis l’historique Fish
atuin import reshImporter depuis l’historique RESH
atuin import nuImporter depuis l’historique Nushell
atuin import nu-hist-dbImporter depuis l’historique SQLite de Nushell
# Détecter automatiquement votre shell et importer
atuin import auto

# Importer l'historique Zsh spécifiquement
atuin import zsh

# Vérifier combien d'entrées ont été importées
atuin history count

# Vérifier que l'import a fonctionné
atuin search --limit 5
CommandeDescription
atuin statsAfficher les statistiques de l’historique
atuin stats --count 20Afficher les 20 commandes les plus utilisées
atuin stats --period dayStatistiques pour aujourd’hui
atuin stats --period weekStatistiques pour cette semaine
atuin stats --period monthStatistiques pour ce mois
atuin stats --period allStatistiques de tous les temps
atuin history countNombre total d’entrées dans l’historique
$ 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 │
└─────────┴─────────────────┴───────┘

Total commands:   45,231
Unique commands:   8,432
CommandeDescription
~/.config/atuin/config.tomlFichier de configuration principal
atuin default-configAfficher la configuration par défaut
CommandeDescription
search_mode = "fuzzy"Définir le mode de recherche floue
search_mode = "prefix"Définir le mode de recherche par préfixe
search_mode = "fulltext"Définir le mode de recherche en texte intégral
search_mode = "skim"Définir le mode de recherche floue skim
filter_mode = "global"Rechercher tout l’historique par défaut
filter_mode = "host"Rechercher l’hôte courant par défaut
filter_mode = "session"Rechercher la session courante par défaut
filter_mode = "directory"Rechercher le répertoire courant par défaut
filter_mode_shell_up_key_binding = "session"La flèche haut recherche la session courante
CommandeDescription
style = "compact"Utiliser le style compact
style = "full"Utiliser le style complet
style = "auto"Détection automatique selon le terminal
inline_height = 40Définir la hauteur de la recherche en ligne
show_preview = trueAfficher le panneau d’aperçu des commandes
show_help = trueAfficher l’aide des raccourcis clavier
show_tabs = trueAfficher les onglets de mode de filtre
max_preview_height = 4Nombre maximum de lignes pour l’aperçu
# ~/.config/atuin/config.toml

## Paramètres de la base de données
db_path = "~/.local/share/atuin/history.db"

## Paramètres de recherche
search_mode = "fuzzy"
filter_mode = "global"
filter_mode_shell_up_key_binding = "host"

## Paramètres de l'interface
style = "auto"
inline_height = 40
show_preview = true
show_help = true
show_tabs = true
max_preview_height = 4
invert = false

## Paramètres de l'historique
update_check = true
sync_frequency = "5m"
sync_address = "https://api.atuin.sh"

## Raccourcis clavier (par défaut)
# Ctrl+R = recherche
# Flèche haut = recherche (sauf si désactivée)
# Tab = accepter sans exécuter
# Enter = accepter et exécuter

## Filtre de secrets — ne pas enregistrer les commandes avec des secrets
history_filter = [
  "^export.*TOKEN",
  "^export.*SECRET",
  "^export.*PASSWORD",
  "^export.*KEY",
  ".*AWS_SECRET.*",
]

## Ignorer des commandes spécifiques
history_filter = [
  "^ls$",
  "^cd$",
  "^pwd$",
  "^exit$",
  "^clear$",
]

## Paramètres de synchronisation
sync_frequency = "5m"
# sync_address = "https://api.atuin.sh"  # Serveur par défaut
# sync_address = "http://localhost:8888"  # Auto-hébergé
ToucheDescription
Ctrl + ROuvrir la recherche / changer de mode de recherche
↑ / ↓Naviguer dans les résultats
EnterExécuter la commande sélectionnée
TabInsérer la commande sans l’exécuter
EscapeAnnuler la recherche
Ctrl + DSupprimer l’entrée sélectionnée de l’historique
Alt + 1Passer au filtre global
Alt + 2Passer au filtre hôte
Alt + 3Passer au filtre session
Alt + 4Passer au filtre répertoire
Ctrl + UEffacer la requête de recherche
Ctrl + WSupprimer le mot précédent
CommandeDescription
~/.local/share/atuin/history.dbEmplacement par défaut de la base de données
La base utilise le format SQLitePeut être interrogée avec n’importe quel outil SQLite
sqlite3 ~/.local/share/atuin/history.db ".tables"Lister les tables de la base de données
# Ouvrir la base de données directement avec SQLite
sqlite3 ~/.local/share/atuin/history.db

# Compter le nombre total d'entrées
sqlite3 ~/.local/share/atuin/history.db \
  "SELECT COUNT(*) FROM history;"

# Trouver les commandes les plus longues
sqlite3 ~/.local/share/atuin/history.db \
  "SELECT command, duration FROM history
   ORDER BY duration DESC LIMIT 10;"

# Commandes par répertoire
sqlite3 ~/.local/share/atuin/history.db \
  "SELECT cwd, COUNT(*) as cnt FROM history
   GROUP BY cwd ORDER BY cnt DESC LIMIT 10;"
  1. Importer votre historique existant d’abord — Exécutez atuin import auto immédiatement après l’installation pour commencer avec une base de données d’historique riche plutôt que de zéro.

  2. Utiliser le mode de recherche floue — Définissez search_mode = "fuzzy" pour la correspondance la plus flexible. Vous pouvez toujours basculer vers d’autres modes avec Ctrl+R pendant une recherche.

  3. Filtrer les secrets de l’historique — Ajoutez des motifs à history_filter dans la configuration pour empêcher l’enregistrement des commandes contenant des tokens, mots de passe et clés API.

  4. Sauvegarder votre clé de chiffrement — Exécutez atuin key et stockez la clé dans un gestionnaire de mots de passe. Si vous la perdez, l’historique synchronisé depuis d’autres machines est définitivement irrécupérable.

  5. Configurer la synchronisation entre machines — La synchronisation chiffrée est la fonctionnalité phare d’Atuin. Créez un compte et configurez toutes vos machines pour avoir un historique unifié partout.

  6. Utiliser la recherche par répertoire — Appuyez sur Alt+4 pendant la recherche pour filtrer les commandes exécutées dans le répertoire courant — parfait pour les workflows spécifiques à un projet.

  7. Personnaliser la flèche haut — Définissez filter_mode_shell_up_key_binding = "host" pour que la flèche haut n’affiche que les commandes de la machine courante, tandis que Ctrl+R recherche globalement.

  8. Configurer le serveur auto-hébergé — Si vous manipulez des données sensibles, exécutez votre propre serveur Atuin avec Docker pour un contrôle complet de votre historique synchronisé.

  9. Consulter les statistiques régulièrement — Exécutez atuin stats périodiquement pour comprendre vos habitudes et identifier les commandes que vous pourriez créer en alias pour plus d’efficacité.

  10. Utiliser le style compact pour les petits terminaux — Définissez style = "compact" si vous travaillez dans des terminaux en panneaux divisés avec un espace vertical limité.