Manuel dynamique terminal

Interface terminal interactive pour gérer connexions SSH, repos GitHub, alias et fonctions Bash depuis un menu navigable.

Installation

Via curl (recommandée)

curl -fsSL https://cdn.sylvain.sh/bash/mn@latest/install.sh | sh

Installation manuelle depuis le dépôt local

./install.sh

Mise à jour

Via curl

curl -fsSL https://cdn.sylvain.sh/bash/mn@latest/install.sh | sh

L'installeur détecte une installation existante et met à jour les fichiers sans toucher aux données.

Depuis le dépôt local

./update.sh

Utilisation

Ouvrir le menu principal

mn

Accès direct aux modules

mn conn        # Connexions SSH/Custom
mn repos       # Repos GitHub
mn alias       # Alias Bash
mn funcs       # Fonctions shell
mn docs        # Documentation interne
mn config      # Configuration
mn help        # Aide

Les raccourcis courts sont également supportés : mn r (repos), mn a (alias), mn f (funcs), mn d (docs), mn c (config), mn h (help).

ToucheAction
/ kMonter dans le menu
/ jDescendre dans le menu
/ Page précédente / suivante
EntréeSélectionner / exécuter
eModifier l'élément sélectionné
dSupprimer l'élément sélectionné
vVoir les détails
rRetour / quitter

Fonctionnalités

  • Connexions SSH/Custom — stocker des serveurs avec label, IP, type de connexion (SSH ou commande personnalisée) et mot de passe optionnel, puis s'y connecter en une touche (voir le guide SSH pour plus de détails)
  • Repos GitHub — créer des alias vers des répertoires locaux et les ouvrir dans VS Code directement (pour télécharger des releases GitHub depuis le terminal, voir gft)
  • Alias Bash — ajouter, modifier, supprimer des alias avec synchronisation automatique vers ~/.bash_aliases
  • Fonctions shell — gérer des fonctions Bash complexes avec synchronisation vers ~/.bash_functions
  • Documentation — lire des fichiers Markdown internes directement dans le terminal
  • Configuration — éditer les fichiers de configuration et recharger l'environnement à la volée

Structure des fichiers

~/.config/mn/
├── mn                 # Point d'entrée principal
├── lib/
│   ├── core.sh        # Config, couleurs, utilitaires
│   ├── crud.sh        # Moteur CRUD générique
│   ├── ui.sh          # Rendu du menu et gestion des entrées
│   ├── module.sh      # Registre des modules
│   └── dat.sh         # Helpers pour les fichiers de données
├── modules/
│   ├── connexions.sh  # Module SSH/Custom
│   ├── repos.sh       # Module repos
│   ├── alias.sh       # Module alias
│   ├── funcs.sh       # Module fonctions
│   ├── docs.sh        # Module documentation
│   └── config.sh      # Module configuration
├── data/
│   ├── connexions.dat
│   ├── repos.dat
│   ├── aliases.dat
│   └── functions.dat
└── docs/              # Documentation Markdown interne

Format des données

Toutes les données sont stockées dans des fichiers .dat avec ::: comme séparateur. Les fichiers sont triés alphabétiquement et peuvent être édités manuellement.

connexions.dat

label:::ip:::description:::type:::password:::cmd
prod:::user@192.168.1.10:::Serveur de production:::ssh:::
backup:::user@192.168.1.20:::Serveur de backup:::custom::::rsync -avz user@192.168.1.20:/data/ ~/backups/

repos.dat

name:::path:::description
myapp:::~/Projects/myapp:::Application principale
api:::~/Projects/api:::API REST

aliases.dat

name:::command:::description
c:::clear:::Effacer le terminal
ll:::ls -lah:::Listing détaillé

functions.dat

name:::code:::description
mkcd:::mkdir -p "$1" && cd "$1";:::Créer un dossier et y entrer

Personnalisation

Changer l'éditeur par défaut

export EDITOR=vim   # ou code, nano, micro...

Modifier les couleurs

Les couleurs sont définies dans ~/.config/mn/lib/core.sh.

Ajouter de la documentation interne

Déposer un fichier Markdown dans ~/.config/mn/docs/ — il apparaîtra automatiquement dans le module docs.

Fonctionnement

mn stocke toutes les données dans ~/.config/mn/data/ sous forme de fichiers .dat séparés par :::, donc il :

  • Ne nécessite aucune base de données (fichiers texte plats)
  • Synchronise automatiquement les alias et fonctions dans ~/.bash_aliases et ~/.bash_functions
  • Recharge l'environnement Bash à chaque fermeture du menu

L'architecture repose sur un moteur CRUD générique et un système de modules déclaratifs — chaque module (connexions, repos, alias...) est indépendant et extensible.

Prérequis

  • bash (>= 4.0)
  • curl (pour l'installation)
  • Connexion internet

Dépannage

Commande mn introuvable

  • Vérifier que /usr/local/bin ou ~/.local/bin est dans le $PATH
  • Relancer un terminal ou sourcer le fichier de configuration shell

Les alias ne se rechargent pas

  • Vérifier que ~/.bash_aliases est sourcé dans ~/.bashrc
  • Utiliser CONFIG → Source tous les fichiers depuis le menu

Données perdues après mise à jour

  • Les fichiers .dat dans ~/.config/mn/data/ ne sont jamais modifiés par l'installeur