↓ Aller au contenu

Linux, terminal et interpréteurs de commandes

·3 mins·
Linux - Cet article fait partie d'une série.
Partie 1: Cet article

Linux, terminal, shell, Bash ou PowerShell sont souvent utilisés comme des synonymes. Pourtant, ils désignent des composants différents.

Comprendre ces distinctions permet de mieux maîtriser son environnement de travail, notamment lorsqu’on utilise Linux, Windows ou WSL.


Linux et les distributions
#

Linux désigne techniquement le noyau (kernel) d’un système d’exploitation. Il assure notamment la gestion des processus, de la mémoire, des périphériques et des ressources matérielles.

Une distribution Linux regroupe ce noyau avec les outils et logiciels nécessaires pour obtenir un système utilisable.

Quelques distributions courantes :

  • Ubuntu — distribution généraliste, fréquente en développement et sur les serveurs.
  • Debian — distribution privilégiant la stabilité.
  • Fedora — distribution intégrant régulièrement des technologies récentes.
  • Alpine — distribution légère, notamment utilisée dans les conteneurs.

Terminal et shell : quelle différence ?
#

Le terminal et le shell remplissent deux fonctions distinctes.

ConceptRôle
TerminalInterface permettant de saisir des commandes et d’afficher leurs résultats.
ShellProgramme qui interprète les commandes et lance leur exécution.
CLI (Command Line Interface)Interface en ligne de commande permettant d’interagir avec un programme.

Le terminal fournit donc l’interface, tandis que le shell interprète les instructions.

Par exemple, Windows Terminal et le terminal intégré de VS Code peuvent permettre d’utiliser différents shells.


Les principaux shells
#

Il existe plusieurs interpréteurs de commandes, chacun avec ses particularités.

ShellEnvironnementParticularité
shUnix / LinuxShell traditionnel ou interface compatible POSIX, souvent utilisé pour les scripts portables.
BashLinux / macOS / WSLShell très répandu, adapté au scripting et à l’administration.
ZshLinux / macOSShell proposant des fonctionnalités avancées d’interaction et de personnalisation.
FishLinux / macOSShell privilégiant l’ergonomie, les suggestions et l’autocomplétion.
PowerShellWindows / Linux / macOSShell et langage de scripting orientés objets, particulièrement adaptés à l’automatisation.
CMDWindowsInterpréteur de commandes historique de Windows.

Bash et Zsh
#

Bash (Bourne Again Shell) et Zsh (Z Shell) partagent une grande partie des commandes usuelles.

Ils présentent cependant des différences de syntaxe, de configuration et de comportement. Un script Bash n’est donc pas systématiquement compatible avec Zsh.

Bash et PowerShell
#

La différence est plus importante.

  • Bash combine principalement des commandes qui échangent des flux de texte.
  • PowerShell permet notamment de transmettre des objets structurés entre ses commandes (cmdlets).

Par exemple :

# Bash : filtrer du texte
ps aux | grep python
# PowerShell : filtrer des objets
Get-Process | Where-Object ProcessName -eq "python"

Ces deux approches permettent de rechercher des processus Python, mais reposent sur des mécanismes différents.


Exemple : Windows, WSL et Ubuntu
#

Sous Windows 11, il est possible d’utiliser Linux grâce à WSL2 (Windows Subsystem for Linux).

Un environnement typique peut alors être composé de :

  • Windows 11 — système d’exploitation hôte.
  • WSL2 — environnement permettant d’exécuter un noyau Linux sous Windows.
  • Ubuntu — distribution Linux installée dans WSL.
  • Bash — shell utilisé dans Ubuntu.
  • Windows Terminal — application permettant d’accéder à cet environnement.

Le même terminal peut également ouvrir PowerShell ou CMD, sans passer par Linux.


Identifier son environnement
#

Quelques commandes utiles sous Linux :

# Identifier le noyau
uname -s

# Identifier la distribution
cat /etc/os-release

# Afficher le shell de connexion configuré
echo "$SHELL"

# Identifier le processus du shell courant
ps -p $$ -o comm=

Attention : la variable $SHELL indique généralement le shell de connexion configuré, qui peut différer du shell réellement utilisé.


À retenir
#

  • Linux est un noyau utilisé par différentes distributions.
  • Le terminal est l’interface permettant de travailler en ligne de commande.
  • Le shell interprète les commandes.
  • Bash, Zsh et PowerShell sont des shells différents.
  • WSL2 permet d’utiliser un environnement Linux directement depuis Windows.

Références
#

Thibault CLEMENT - Intechnia
Auteur
Thibault CLEMENT - Intechnia
Data Scientist / ML Engineer
Linux - Cet article fait partie d'une série.
Partie 1: Cet article