Sophie vous voit hésiter devant le terminal et sourit : « Tu as déjà utilisé CMD ou un terminal Linux ? Alors tu vas être surpris. »
Sur le papier, PowerShell ressemble à n’importe quel terminal : on tape une commande, on obtient un résultat. Mais ce qui circule sur le tapis roulant n’a rien à voir.
CMD et Bash : tout est du texte
Dans CMD comme dans Bash, chaque commande renvoie du texte brut, une suite de caractères affichée à l’écran. Si vous voulez lister les fichiers d’un dossier triés par taille en Bash, vous devez enchaîner plusieurs outils qui se passent du texte entre eux :
ls -la | sort -k5 -nÇa fonctionne, mais c’est fragile : si le format d’affichage change un jour (une colonne en plus, un espace en trop), toute votre chaîne de commandes casse. Vous ne manipulez pas vraiment des fichiers, vous manipulez leur représentation textuelle.
PowerShell : tout est un objet
Dans PowerShell, la même commande ne renvoie pas du texte : elle renvoie une collection de véritables objets FileInfo, chacun avec ses propriétés (Name, Length, LastWriteTime, Extension…).
Get-ChildItem | Sort-Object -Property LengthIci, Sort-Object ne trie pas des lignes de texte : il trie directement la propriété Length de chaque objet, sans aucune interprétation ni découpage de chaîne. C’est la différence entre trier des pièces détachées par leur poids réel, et trier des photos de ces pièces en essayant de deviner leur poids sur l’image.
Ce que ça change concrètement à l’atelier
Reprenons le ticket de Sophie : « Lister les 5 processus qui consomment le plus de mémoire. »
En Bash, il faudrait combiner ps, sort, head, en jonglant avec les colonnes et leur format d’affichage.
En PowerShell :
Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 5Chaque poste de la chaîne (Get-Process, Sort-Object, Select-Object) travaille sur de vrais objets Process, avec leurs vraies propriétés. Aucun risque que la commande casse parce qu’un espace de plus est apparu dans l’affichage.
Faut-il abandonner CMD et Bash ?
Pas du tout. Bash reste incontournable sous Linux, et CMD dépanne pour des scripts très simples sous Windows. Mais dès que vos tâches deviennent un peu répétitives ou complexes — exactement le genre de tickets que Sophie empile sur son bureau — le fait de manipuler de vrais objets plutôt que du texte fait gagner un temps considérable et évite des scripts fragiles.
Retenez cette phrase, elle sera votre boussole tout au long de la formation : en PowerShell, on ne parse pas du texte, on manipule des objets.
Dans la prochaine leçon, on installe PowerShell et on vérifie que tout fonctionne, avant de mettre les mains dans le cambouis.