Module 01 · Aide-mémoire

Mémo

Les syntaxes Bash et Vim à retrouver sans relire le cours.

Script Bash : chemin logique

#!/bin/bash          # première ligne : interpréteur
chmod +x script.sh  # donner le droit d'exécution
./script.sh         # exécuter depuis le dossier courant
BesoinSyntaxeRôle
Variablenom="Axel"Aucun espace autour de =.
Lire une variableecho "$nom"Les guillemets protègent la valeur.
Récupérer une commandedate_actuelle=$(date)$(...) capture la sortie.
Calculresultat=$((x + y))$((...)) produit un résultat numérique.
Arguments du script$1, $2, $#, "$@"Arguments, nombre d’arguments, tous les arguments.
Séparer sur une lignecmd1; cmd2Le ; sépare deux commandes.

Conditions

SyntaxeQuand l’utiliserExemple
[ ... ]Test classique/POSIX[ "$nom" = "Axel" ]
[[ ... ]]Test Bash, plus sûr pour le texte[[ $nom == "Axel" ]]
(( ... ))Calcul ou comparaison d’entiers(( age >= 18 ))
if [[ $nom == "Axel" ]]; then
    echo "Bonjour Axel"
elif [[ -z $nom ]]; then
    echo "Nom absent"
else
    echo "Bonjour $nom"
fi
TestSignification
-f fichier / -d dossierFichier ordinaire / dossier existant.
-e cheminLe chemin existe.
-z "$texte" / -n "$texte"Chaîne vide / non vide.
-eq -ne -lt -le -gt -geComparaisons numériques dans [ ] ou [[ ]].

Fonctions : paramètres et valeur produite

# Le mot-clé function est autorisé mais facultatif.
function add {
    local x=$1
    local y=$2
    echo $((x + y))
}

added_to() {
    local x=$1
    local y=$2
    local who=$3
    echo "$who retourne $(add "$x" "$y")"
}

message=$(added_to 4 5 "Axel")
echo "$message"  # Axel retourne 9
SyntaxeÀ retenir
fonction() { ...; }Forme sans function ; sur une ligne, ; est requis avant }.
$1, $2, $3Paramètres reçus par position.
echo "$valeur"Produit une donnée récupérable avec $(...).
return 0Renvoie un code d’état : 0 = succès, autre valeur = erreur.

Vim : commandes par mode

Réflexe : Échap ramène toujours au mode normal.

Mode normal — se déplacer et agir

BesoinCommande
Déplacementh gauche · j bas · k haut · l droite
Début / fin de ligne0 / $
Copier / couper une ligneyy / dd
Coller / annulerp / u
Chercher/mot, puis n

Mode insertion — écrire

CommandeEffet
i / aInsérer avant / après le curseur.
oCréer une ligne en dessous.
ÉchapRevenir au mode normal.

Mode visuel — sélectionner plusieurs caractères ou lignes

BesoinCommandeAction après sélection
Sélection sur une même lignev puis déplacementy copier · d couper · c remplacer
Plusieurs lignes entièresV puis j/k>/< indenter/désindenter
Bloc verticalCtrl+V puis déplacementI, texte, Échap : insérer sur chaque ligne

Mode commande — enregistrer et quitter

CommandeEffet
:wEnregistrer.
:qQuitter.
:wqEnregistrer et quitter.
:q!Quitter sans enregistrer.
CKAD/YAML : pour corriger l’indentation de plusieurs lignes : V → sélectionner avec j/k → > ou <.

jq : lire et filtrer

BesoinCommande
Afficher proprementjq '.' fichier.json
Parcourir un tableaujq '.[]' fichier.json
Filtrerjq '.[] | select(.age >= 18)' fichier.json
Filtrer puis extrairejq -r '.[] | select(.actif == true) | .nom' fichier.json
Recréer un tableaujq '[.[] | select(.age >= 18)]' fichier.json