
En tant qu'utilisateur Linux, cela vous est sûrement déjà arrivé : vous savez qu'une commande peut faire le travail, mais impossible de vous souvenir des paramètres exacts. Ou face à une commande complexe comme ffmpeg ou kubectl, vous êtes obligé d'ouvrir le navigateur pour vérifier la syntaxe ?
Aujourd'hui, je vous présente l'outil qui résout ce problème une bonne fois pour toutes — navi, un cheatsheet interactif pour le terminal.
Qu'est-ce que navi ?
navi est un outil de cheatsheet interactif écrit en Rust. Il vous permet de parcourir et exécuter directement des exemples de commandes dans le terminal, sans jamais quitter votre environnement de travail.
Fonctionnalités clés
- 🚀 Recherche interactive : prise en charge de la recherche floue (fuzzy search) pour trouver rapidement la commande souhaitée
- 📝 Remplacement de variables : les paramètres des commandes peuvent être saisis dynamiquement, fini l'édition manuelle
- 🎨 Hautement personnalisable : couleurs, polices et mise en page, tout est configurable
- 📦 Piloté par la communauté : des cheatsheets pour les outils courants sont intégrées, et vous pouvez aussi importer des ressources communautaires
- 🔌 Intégration Shell : compatible avec Bash, Zsh, Fish et les autres shells populaires
Pourquoi choisir navi plutôt que tldr ?
Vous connaissez peut-être tldr, un autre outil populaire de cheatsheet en ligne de commande. Alors, qu'est-ce que navi apporte de plus ?
| Fonctionnalité | tldr | navi |
|---|---|---|
| Mode d'interaction | Affichage statique | Sélection interactive |
| Remplacement de variables | ❌ Non pris en charge | ✅ Saisie dynamique |
| Cheatsheets personnalisées | Limitées | Totalement personnalisables |
| Exécution de commandes | Copier-coller manuel | Exécution directe possible |
| Expérience de recherche | Basique | Fuzzy search |
En résumé : tldr est idéal pour consulter rapidement la syntaxe d'une commande, navi est fait pour exécuter la commande directement.
Installer navi
Méthode 1 : via le gestionnaire de paquets (recommandé)
Fedora/RHEL/CentOS :
sudo dnf install navi
Ubuntu/Debian (ajouter le dépôt d'abord) :
sudo add-apt-repository universe
sudo apt update
sudo apt install navi
Arch Linux :
sudo pacman -S navi
macOS (Homebrew) :
brew install navi
Méthode 2 : via Cargo (gestionnaire de paquets Rust)
Si Rust est déjà installé :
cargo install navi
Méthode 3 : télécharger le binaire
Récupérez le binaire précompilé depuis les GitHub Releases :
# Télécharger la dernière version (v2.23.0 en exemple)
wget https://github.com/denisidoro/navi/releases/download/v2.23.0/navi-v2.23.0-x86_64-unknown-linux-musl.tar.gz
# Extraire
tar -xzf navi-v2.23.0-x86_64-unknown-linux-musl.tar.gz
# Déplacer dans le chemin système
sudo mv navi /usr/local/bin/
Configurer l'intégration Shell
Après l'installation, ajoutez le code d'intégration dans la configuration de votre shell.
Bash
Éditez ~/.bashrc et ajoutez :
eval "$(navi widget bash)"
Zsh
Éditez ~/.zshrc et ajoutez :
eval "$(navi widget zsh)"
Fish
Éditez ~/.config/fish/config.fish et ajoutez :
navi widget fish | source
Une fois configuré, rechargez la configuration du shell :
source ~/.bashrc # ou ~/.zshrc
Utilisation de base
1. Chercher une commande
L'utilisation la plus simple consiste à lancer une recherche directe :
navi
Cela ouvre une interface interactive où vous pouvez taper des mots-clés pour chercher des commandes. Tapez git par exemple, et tous les cheatsheets liés à Git s'afficheront.
2. Utiliser le widget (recommandé)
Après avoir configuré l'intégration Shell, utilisez un raccourci clavier pour appeler navi :
- Bash/Zsh :
Ctrl + G - Fish :
Ctrl + G
Appuyez sur le raccourci, l'interface de recherche apparaît. Sélectionnez une commande et elle sera automatiquement injectée dans votre ligne de commande.
3. Consulter le cheatsheet d'un outil spécifique
navi --query git
navi --query docker
navi --query kubectl
4. Exécuter une commande
Depuis l'interface navi, une fois la commande sélectionnée :
- Appuyez sur
Entrée: la commande est injectée dans le Shell - Appuyez sur
Ctrl + Y: la commande est exécutée directement - Appuyez sur
Échap: annulation
Cheatsheets personnalisées
La vraie force de navi, c'est le support total des cheatsheets personnalisées.
Créer son propre cheatsheet
Créez un fichier .cheat dans le répertoire ~/.config/navi/ :
mkdir -p ~/.config/navi
vim ~/.config/navi/my_tools.cheat
Format du cheatsheet
# Titre
% git 常用命令
# Description de la commande
$ 查看当前分支状态
git status
# Commande avec variable
$ 切换到指定分支
git checkout <branch>
# Variable avec commentaire
$ 创建新分支并切换
git checkout -b <branch>
%% branch: 新分支名称
# Variables multiples
$ 提交代码
git commit -m "<message>"
%% message: 提交信息
# Variable avec valeur par défaut
$ 推送分支
git push <remote> <branch>
%% remote: 默认值 origin
%% branch: 当前分支名
Types de variables
navi prend en charge plusieurs types de variables :
# Saisie de texte
%% name: 请输入名称
# Avec valeur par défaut
%% port: 默认值 8080
# Liste de sélection
%% method: 默认值 GET, 可选值 GET POST PUT DELETE
# Sortie de commande comme option
%% branch: 命令 git branch --format='%(refname:short)', 反引号包裹
Exemple pratique : cheatsheet Docker
% Docker 常用操作
$ 查看运行中的容器
docker ps
$ 查看所有容器(包括已停止)
docker ps -a
$ 启动容器
docker start <container>
%% container: 命令 docker ps -a --format '{{.Names}}'
$ 停止容器
docker stop <container>
%% container: 命令 docker ps --format '{{.Names}}'
$ 删除容器
docker rm <container>
%% container: 命令 docker ps -a --format '{{.Names}}'
$ 查看容器日志
docker logs -f <container>
%% container: 命令 docker ps --format '{{.Names}}'
$ 进入容器
docker exec -it <container> <shell>
%% container: 命令 docker ps --format '{{.Names}}'
%% shell: 默认值 /bin/bash, 可选值 /bin/bash /bin/sh
Importer des cheatsheets communautaires
La communauté navi maintient une vaste collection de cheatsheets pour les outils populaires, importables en un clin d'œil.
Utiliser la fonction intégrée de navi
# Parcourir les dépôts de cheatsheets disponibles
navi repo add denisidoro/navi
# Ou ajouter manuellement
navi repo add https://github.com/denisidoro/cheats
Dépôts de cheatsheets recommandés
- denisidoro/cheats — Cheatsheets généraux maintenus officiellement
- sv222/kubectl-autocompletion-navi — Commandes Kubernetes kubectl
- ormico/navi-cheatsheets — Cheatsheets pour divers outils de développement
Astuces avancées
1. Organiser les commandes avec des tags
% 系统管理
tags: system
$ 查看磁盘使用
df -h
$ 查看内存使用
free -h
% Git 操作
tags: git, version-control
$ 查看提交历史
git log --oneline
2. Variables conditionnelles
$ 根据环境部署
deploy <environment>
%% environment: 可选值 dev staging production
%% 如果 environment = production: echo "⚠️ 生产环境部署,请确认!"
3. Appeler un script externe
$ 备份数据库
./scripts/backup.sh <database>
%% database: 命令 mysql -e "SHOW DATABASES;" | tail -n +2
4. Thème de couleurs personnalisé
Éditez ~/.config/navi/config.yaml :
style:
tag:
color: blue
width: 20
comment:
color: yellow
snippet:
color: green
Cas d'utilisation concrets
Scénario 1 : exécuter rapidement des commandes complexes
Besoin de nettoyer régulièrement les ressources Docker ? Créez un cheatsheet dédié :
% Docker 清理
$ 删除所有停止的容器
docker container prune -f
$ 删除未使用的镜像
docker image prune -f
$ 删除所有未使用的资源
docker system prune -f
Désormais, un simple Ctrl + G, cherchez « docker 清理 », et c'est parti.
Scénario 2 : standardisation des opérations en équipe
Rédigez les opérations courantes de votre équipe dans un cheatsheet, stocké dans un dépôt partagé :
# Dépôt d'équipe
git clone https://github.com/your-team/team-navi-cheats.git ~/.config/navi/team
# Ajouter dans config.yaml
paths:
- ~/.config/navi/team
Un nouveau membre rejoint l'équipe ? Il dispose immédiatement du manuel d'opérations standardisé.
Scénario 3 : apprendre un nouvel outil
En apprentissage de Kubernetes ? Importez le cheatsheet kubectl :
navi repo add https://github.com/sv222/kubectl-autocompletion-navi
Apprenez tout en utilisant, la prise en main est rapide.
Questions fréquentes
Q : navi entre en conflit avec autospawn de Fish shell, que faire ?
R : Ajustez l'ordre de chargement dans la configuration Fish, en veillant à ce que le widget navi soit chargé en dernier.
Q : Comment sauvegarder mes cheatsheets personnalisées ?
R : Placez le répertoire ~/.config/navi/ sous contrôle de version :
cd ~/.config/navi
git init
git add .
git commit -m "Initial navi cheatsheets"
# Pousser vers un dépôt privé
Q : Les caractères chinois s'affichent mal ?
R : Assurez-vous que votre terminal et votre police prennent en charge le chinois, ou configurez dans config.yaml :
terminal:
font: "Noto Sans Mono CJK SC"
Résumé
navi est un outil qui augmente significativement la productivité en ligne de commande, particulièrement adapté pour :
- ✅ Les développeurs qui utilisent fréquemment des commandes complexes
- ✅ Les touche-à-tout qui basculent rapidement entre différents contextes d'outils
- ✅ Les Tech Leads qui souhaitent standardiser les opérations de leur équipe
- ✅ Les débutants en apprentissage d'un nouvel outil
Informations sur le projet : - GitHub : https://github.com/denisidoro/navi - Langage : Rust - Stars : 16 400+ - Licence : Apache-2.0
Investissez 30 minutes pour configurer navi, et économisez 10 minutes par jour à chercher des commandes. Le retour sur investissement est indiscutable !
Lectures associées : - tldr-pages/tldr — Pages man simplifiées - cheat.sh — Cheatsheet en ligne, aucune installation nécessaire - fzf — Fuzzy finder universel, peut être utilisé conjointement avec navi