Bases du shell
Progression
#Bases du shell
Une commande a un nom, puis des arguments, et retourne un code de sortie (0 = succès). Après l’exécution, ce code est disponible dans la variable spéciale $?
. On ne s’attarde pas à le vérifier à chaque ligne, mais il devient crucial dans des scripts.
Avant de plonger, deux réflexes: la complétion par tabulation (gagne du temps, évite les fautes) et la recherche dans l’historique avec Ctrl+R
(retapez moins, réutilisez plus).
#Naviguer et lister
pwd
annonce le répertoire courant. ls -lah
liste en affichant droits, propriétaire, taille lisible. Le “globbing” (*.md
, img_??.png
) permet de cibler un groupe de fichiers sans écrire leurs noms un par un.
#Rediriger et chaîner
Le shell manipule trois flux: entrée (stdin), sortie (stdout), erreurs (stderr). >
redirige la sortie vers un fichier (en l’écrasant), >>
ajoute à la fin, <
lit depuis un fichier. Le pipe |
relie la sortie d’une commande à l’entrée de la suivante.
Exemple commenté:
1# Compter les lignes d'un CSV sans l'ouvrir2wc -l data.csv3 4# Extraire la première colonne, supprimer l'en-tête, trier et compter les valeurs5cut -d, -f1 data.csv | tail -n +2 | sort | uniq -c | sort -nr | head
On compose une intention claire plutôt que de chercher une “commande magique”.
#Variables d’environnement utiles
PATH
indique où chercher les exécutables. HOME
pointe sur votre dossier utilisateur. Pour définir une variable valable pour les programmes lancés ensuite, utilisez export
:
1export EDITOR=vim
Les scripts d’initialisation (~/.bashrc
, ~/.zshrc
) servent à définir durablement vos alias et exports. Allez-y progressivement, commentez vos ajouts et évitez les modifications obscures copiées sur Internet.
#Mise en pratique rapide
Créez un dossier atelier
, placez‑vous dedans, et écrivez en une ligne la commande qui crée 3 fichiers (a.txt
, b.txt
, c.txt
) contenant chacun “bonjour”. Vérifiez avec cat
et ls -l
.
Correction possible:
1mkdir -p atelier && cd atelier && for f in a b c; do echo "bonjour" > "$f.txt"; done && ls -l && cat a.txt
Retenez l’idée de “chaîne d’actions lisible” plutôt que la syntaxe exacte du for
.
#Animation: pipeline de commandes
#Atelier interactif : composer un pipeline
Construire une pipeline shell
Composez source, filtres et destination. Le shell enchaîne les commandes via |
: chacune lit sur son stdin et écrit sur son stdout.
Astuce : activez set -euo pipefail
dans vos scripts pour propager les erreurs dans les pipelines.
Source
Filtres (ordre d’exécution)
L’ordre dépend des colonnes disponibles : uniq -c
attend un flux trié.
Destination
Flux résultant
cat app.log | grep "ERROR" | cut -d, -f1 | sort -nr | uniq -c | head -n 10 | less -R
Conseil : encapsulez la pipeline dans une fonction shell pour la réutiliser et testez-la avec des jeux de données réduits avant de l’exécuter sur un gros fichier.