Vous passez du terminal Linux au terminal macOS ou inversement ? Bonne nouvelle : ils sont bien plus proches qu’ils n’en ont l’air. Pourtant, quelques différences peuvent surprendre lorsqu’on débute, notamment autour de sudo, de Bash, de Zsh ou encore du fameux shell.
Dans ce guide, vous découvrirez simplement comment fonctionne un terminal, ce qui distingue Linux de macOS et pourquoi la plupart des commandes restent identiques.
À la fin de cette lecture, vous comprendrez les bases essentielles pour utiliser le terminal, quel que soit votre système d’exploitation.
- Comprendre pourquoi le terminal Linux et le terminal macOS se ressemblent autant, sans vous laisser piéger par leurs quelques différences.
- Faire la différence entre le terminal, le shell, Bash et Zsh pour mieux comprendre ce qui se passe lorsque vous exécutez une commande.
- Devenir autonome grâce aux notions essentielles à connaître avant de travailler en ligne de commande sur Linux ou macOS.
Lorsque l’on débute en développement, on entend souvent dire que le terminal Linux et le terminal macOS sont presque identiques. Pourtant, on croise aussi quelques commandes qui fonctionnent sur l’un mais pas sur l’autre, des histoires de Bash, de Zsh ou encore de sudo. De quoi s’y perdre rapidement.
- Le terminal, ce n'est pas le système d'exploitation
- Qu'est-ce qu'un shell ?
- Pourquoi Linux et macOS se ressemblent-ils autant ?
- Les principales différences entre le terminal Linux et le terminal macOS
- Utilise-t-on sudo sur macOS ?
- Bash et Zsh : deux shells très proches
- Faut-il apprendre Linux avant macOS ?
Le terminal, ce n’est pas le système d’exploitation
Avant de comparer le terminal Linux et le terminal macOS, il est important de clarifier une confusion très fréquente.
Le terminal est simplement une application qui vous permet de saisir des commandes au clavier.
Il ne fait pas lui-même le travail : il transmet vos commandes à un autre programme appelé shell, qui les interprète avant de les envoyer au système d’exploitation.
On peut représenter ce fonctionnement de manière très simple :

Autrement dit, le terminal est la fenêtre dans laquelle vous tapez vos commandes, tandis que le shell est le véritable « interprète » qui comprend ce que vous lui demandez.
Qu’est-ce qu’un shell ?
Le shell est un programme chargé de lire vos commandes et de les exécuter.
Par exemple, lorsque vous tapez :
ls
Le shell comprend que vous souhaitez afficher le contenu du dossier courant. Il lance alors le programme correspondant et affiche le résultat dans le terminal.
Voici ce qui se passe :
- Le terminal envoie
lsau shell. - Le shell cherche où se trouve le programme
ls. - Il le lance.
- Le programme renvoie le résultat.
- Le shell affiche le résultat dans le terminal.
Le même principe s’applique à toutes les commandes :
pwd
Cette commande affiche le dossier dans lequel vous vous trouvez.
mkdir mon-projet
Ici, le shell demande au système de créer un nouveau dossier nommé mon-projet.
- Sans le shell, le terminal ne saurait tout simplement pas quoi faire de vos commandes.
Le shell est tout simplement le programme qui fait l’intermédiaire entre vous et le système d’exploitation.
Quand vous ouvrez le Terminal, vous ne parlez donc pas directement à Linux ou à macOS. Vous discutez d’abord avec un shell, qui comprend vos commandes, les interprète et demande au système de les exécuter.
Le Terminal est simplement la fenêtre dans laquelle vous tapez vos commandes. Le shell, lui, est le programme qui lit ces commandes.
Pourquoi existe-t-il plusieurs shells ?
Tous permettent d’exécuter les mêmes commandes, mais chacun apporte des fonctionnalités différentes.
Les plus connus sont :
| Shell | Particularités |
|---|---|
| Bash | Le plus répandu, très compatible, idéal pour les scripts. |
| Zsh | Plus moderne, meilleure autocomplétion, très personnalisable. |
| Fish | Très convivial, nombreuses aides visuelles sans configuration. |
| sh | Le shell Unix historique, minimaliste. |
Imaginez que ce sont différents navigateurs web :
- Chrome
- Firefox
- Safari
Ils permettent tous de naviguer sur Internet, mais chacun possède ses propres fonctionnalités. Les shells sont un peu la même idée : ils permettent tous de communiquer avec le système, mais leur ergonomie diffère.
Le shell peut faire bien plus que lancer des commandes
Il peut aussi :
- créer des variables
- exécuter des scripts
- faire des boucles
- utiliser des conditions (
if,case, etc.) - enchaîner des commandes
- rediriger les entrées et sorties
- automatiser des tâches…
for fichier in *.jpg
do
echo "$fichier"
done
Ici, c’est le shell qui comprend la boucle for et exécute les commandes.
Comment savoir quel shell vous utilisez ?
Tapez :
echo $SHELL
Vous obtiendrez par exemple :
/bin/zsh
ou
/bin/bash
Vous pouvez également connaître le shell en cours d’exécution avec :
echo $0
Pour résumer
- Le Terminal est la fenêtre dans laquelle vous tapez vos commandes.
- Le Shell est le programme qui lit, comprend et exécute ces commandes.
- Bash et Zsh sont deux shells différents.
- Sur les versions récentes de macOS, le shell par défaut est Zsh.
- Sur Linux, le shell par défaut dépend de la distribution, mais Bash et Zsh sont les plus courants.
Une analogie simple est celle d’un restaurant :
- Vous êtes le client.
- Le Terminal est la table où vous passez votre commande.
- Le Shell est le serveur qui comprend votre demande et la transmet à la cuisine.
- Le système d’exploitation est la cuisine qui prépare le résultat.
- Le serveur revient ensuite avec votre plat, c’est-à-dire le résultat de la commande.
Pourquoi Linux et macOS se ressemblent-ils autant ?
La principale raison est que macOS est basé sur Unix, tandis que Linux s’est largement inspiré de cette même philosophie.
macOS est donc un système d’exploitation basé sur Unix (plus précisément sur Darwin, un système dérivé de BSD), tandis que la plupart des distributions Linux utilisent le noyau Linux. Les deux offrent donc un terminal très similaire, mais avec quelques différences importantes.
| Fonction | Linux | macOS |
|---|---|---|
| Shell par défaut | Bash ou Zsh (selon la distribution) | Zsh |
| Base système | Noyau Linux | BSD/Darwin |
| Commandes de base | Très nombreuses | Presque les mêmes |
| Gestionnaire de paquets | apt, dnf, pacman… | Homebrew (à installer), MacPorts |
| Système de fichiers | ext4, btrfs… | APFS |
| Compatibilité scripts Bash | Excellente | Excellente |
- Les deux systèmes utilisent donc pratiquement les mêmes commandes.
La majorité des commandes que vous connaissez fonctionneront exactement de la même façon sur l’un ou l’autre terminal.
pwd
ls
cd
mkdir
touch
cp
mv
rm
find
grep
cat
less
nano
vim
ssh
scp
curl
wget
git
Toutes ces commandes fonctionnent aussi bien sous Linux que sous macOS.
Si vous apprenez aujourd’hui à utiliser un terminal Linux, vous serez donc très rapidement à l’aise devant un terminal macOS et inversement.
Les principales différences entre le terminal Linux et le terminal macOS
Même si les deux environnements sont très proches, quelques différences existent.
Les commandes du quotidien
Pour un développeur web, il y a très peu de changements.
Vous utiliserez exactement les mêmes commandes pour :
- naviguer dans les dossiers
- créer ou supprimer des fichiers ou dossiers
- utiliser Git
- lancer PHP
- installer des dépendances avec Composer ou npm
- travailler avec Node.js
Dans 90 à 95 % des cas, vous ne remarquerez aucune différence.
L’installation des logiciels
C’est probablement la différence que vous rencontrerez le plus souvent.
Sous Linux, chaque distribution possède son propre gestionnaire de paquets.
Par exemple :
sudo apt install php
ou
sudo dnf install php
Sur macOS, le plus utilisé est Homebrew.
L’installation devient alors :
brew install php
Le principe reste exactement le même : une seule commande permet d’installer un logiciel.
Quelques commandes changent légèrement
- Sous Linux, de nombreux outils proviennent du projet GNU.
- macOS utilise quant à lui des outils issus de BSD.
Les commandes portent souvent le même nom, mais certaines options diffèrent. Prenons l’exemple de sed, qui permet de modifier automatiquement le contenu d’un fichier.
Sous Linux :
sed -i 's/chat/chien/g' fichier.txt
Sous macOS :
sed -i '' 's/chat/chien/g' fichier.txt
Les deux commandes réalisent exactement la même opération, mais la syntaxe change légèrement.
Le '' est obligatoire. C’est probablement la différence qui surprend le plus les développeurs.
Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?Ce type de différence reste assez rare et concerne surtout les utilisateurs plus avancés.
Les dossiers personnels
Sous Linux, votre dossier personnel ressemble généralement à ceci :
/home/alban
Sous macOS, il devient :
/Users/alban
À part cette différence de chemin, vous retrouverez une organisation très similaire.
La philosophie
Linux est très orienté administration système et serveurs. macOS est davantage orienté poste de travail, tout en offrant un terminal Unix complet.
C’est d’ailleurs une des raisons pour lesquelles il est apprécié par de nombreux développeurs : il combine une interface graphique soignée avec un environnement de développement très proche de celui des serveurs Linux.
En résumé
Pour votre usage de développeur web, la transition entre un terminal Linux et un terminal macOS est généralement très simple. En pratique, environ 90 à 95 % des commandes que vous utilisez au quotidien seront identiques.
Les différences les plus importantes concernent :
- le gestionnaire de paquets (
apt,dnf,pacmancontrebrew) ; - les variantes GNU (Linux) et BSD (macOS) de certaines commandes comme
sed,grepoudate; - quelques chemins système (
/homecontre/Users) ; - l’installation initiale des outils de développement sur macOS.
Si vous utilisez déjà le terminal sous Linux, vous devriez vous sentir très rapidement à l’aise sur macOS et inversement. La plupart des scripts, commandes Git et outils de développement fonctionneront de la même manière, avec seulement quelques ajustements ponctuels lorsque vous utiliserez des commandes système plus avancées.
Utilise-t-on sudo sur macOS ?
La réponse est oui.
sudo signifie Super User Do. Cette commande permet d’exécuter une action avec les droits d’administrateur :
sudo nano /etc/hosts
Cette commande ouvre un fichier système qui ne peut pas être modifié par un utilisateur classique.
La première fois que vous utilisez sudo, macOS vous demande votre mot de passe.
Un détail surprend souvent les débutants : lorsque vous tapez votre mot de passe, aucun caractère ne s’affiche à l’écran. C’est tout à fait normal. Il suffit de saisir votre mot de passe puis d’appuyer sur Entrée.
Le fonctionnement est pratiquement identique à celui de Linux.
La seule différence importante est que, sur macOS, le compte root est désactivé par défaut. Apple préfère que les utilisateurs passent par sudo, ce qui limite certains risques d’erreur.
Bash et Zsh : deux shells très proches
Vous avez peut-être déjà vu apparaître les noms Bash ou Zsh. Il ne s’agit pas de deux terminaux différents, mais de deux shells différents.
Tous les deux comprennent donc les mêmes commandes :
ls
cd
mkdir
git status
npm install
...
Si vous savez utiliser Bash, vous savez déjà utiliser Zsh.
Alors pourquoi existe-t-il deux shells ?
Bash
Bash est le shell le plus connu.
Pendant des années, il a été le shell par défaut sur la majorité des distributions Linux, mais également sur macOS.
Il est réputé pour sa stabilité et son excellente compatibilité avec les scripts. C’est pourquoi de nombreux projets utilisent encore aujourd’hui des scripts Bash.
👉 Coder son premier script shell.
Zsh
Depuis macOS Catalina, Apple utilise Zsh comme shell par défaut.
Pourquoi ce changement ? Parce que Zsh apporte davantage de confort. Par exemple, il propose une autocomplétion beaucoup plus intelligente.
👉 Pour aller plus loin, ZSH : Le Shell moderne
Si vous commencez à taper :
git ch
puis appuyez sur la touche Tab, Zsh peut vous proposer plusieurs commandes :
git checkoutgit cherrygit cherry-pick
Cette aide est particulièrement agréable lorsque l’on débute.
Zsh offre également une personnalisation très poussée grâce à des thèmes et des extensions qui affichent, par exemple, la branche Git actuelle ou la version de PHP utilisée dans votre projet.
Comment savoir quel shell vous utilisez ?
Une simple commande suffit :
echo $SHELL
Le résultat sera généralement :
/bin/zsh
ou
/bin/bash
Vous savez ainsi immédiatement quel shell est lancé lorsque vous ouvrez votre terminal.
Bash ou Zsh : lequel choisir ?
Si vous utilisez un Mac récent, il est inutile de changer quoi que ce soit : Zsh est déjà installé et configuré.
Si vous travaillez sur Linux, Bash reste très répandu, même si de plus en plus de développeurs choisissent également Zsh.
Dans tous les cas, il n’y a pas de mauvais choix.
Les commandes restent quasiment identiques et la plupart des scripts Bash fonctionnent également sous Zsh.
Pour un débutant, le plus important n’est donc pas le nom du shell, mais d’apprendre à utiliser correctement le terminal.
| Fonction | Bash | Zsh |
|---|---|---|
| Ancienneté | Très ancien (1989) | Plus récent (1990) |
| Shell par défaut sur macOS | Jusqu’à Catalina | Depuis Catalina |
| Compatibilité | Excellente | Très bonne (compatible Bash dans la plupart des cas) |
| Autocomplétion | Basique | Très avancée |
| Suggestions pendant la frappe | Non (par défaut) | Oui (avec plugins) |
| Thèmes | Peu | Très nombreux |
| Plugins | Peu | Énormément |
| Personnalisation | Correcte | Excellente |
Faut-il apprendre Linux avant macOS ?
Pas nécessairement.
- Les compétences acquises sur l’un sont directement réutilisables sur l’autre.
Si vous apprenez aujourd’hui à manipuler les dossiers, utiliser Git, lancer PHP ou installer des dépendances avec Composer, vous retrouverez les mêmes habitudes quel que soit le système.
C’est d’ailleurs l’une des grandes forces de ces environnements : ils partagent une philosophie commune qui facilite énormément le passage de Linux à macOS… et inversement.
Peut-on utiliser les mêmes commandes sur Linux et macOS ?
Oui, dans la grande majorité des cas. Les commandes de base comme ls, cd, mkdir, cp ou rm fonctionnent de la même manière sur les deux systèmes. Seules quelques commandes avancées possèdent une syntaxe légèrement différente.
Est-il préférable d’apprendre Bash ou Zsh lorsqu’on débute ?
Peu importe le shell avec lequel vous commencez. Bash et Zsh utilisent presque les mêmes commandes et les connaissances acquises sur l’un sont facilement réutilisables sur l’autre. Si vous utilisez un Mac récent, vous travaillerez simplement avec Zsh par défaut.
Le terminal est-il dangereux pour un débutant ?
Non, à condition de comprendre les commandes que vous exécutez. Les commandes de navigation ou de création de fichiers sont sans risque. En revanche, certaines commandes utilisant sudo ou supprimant des fichiers peuvent avoir des conséquences importantes, d’où l’intérêt de toujours savoir ce qu’elles font avant de les lancer.
Le terminal Linux et le terminal macOS sont beaucoup plus proches que différents. Les commandes essentielles sont identiques, sudo fonctionne de la même manière et les deux systèmes utilisent les mêmes principes de navigation et d’administration.
Les différences concernent surtout quelques outils système, l’installation des logiciels ou encore le shell utilisé par défaut. Heureusement, ces particularités s’apprennent très rapidement et ne remettent jamais en cause les bases que vous aurez acquises.
En maîtrisant les commandes essentielles et en comprenant le rôle du terminal, du shell et de sudo, vous posséderez des connaissances solides qui vous serviront aussi bien sur Linux que sur macOS, mais également sur la majorité des serveurs web que vous rencontrerez au cours de votre parcours de développeur.

Fondateur de l’agence Créa-troyes, affiliée France Num
Intervenant en Freelance.
Contactez-moi
