Configuration iTerm2 pour SRE






Terminal iTerm2 pour SRE : Configuration Pro sur macOS


Terminal Pro sur macOS

iTerm2 + Zsh + Powerlevel10k pour DevOps et SRE

Transformez votre terminal en station de contrôle d’infrastructure avec des outils, des alias et une esthétique qui vous fait aimer la ligne de commande.

Si vous êtes ingénieur DevOps ou SRE sur macOS, votre terminal est votre espace de travail principal. Vous y déployez les conteneurs, orchestrez Kubernetes, lancez Terraform et lancez des alertes production. Avec la bonne configuration, il peut devenir une interface puissante qui vous prévient automatiquement si vous êtes connecté au bon cluster, affiche votre contexte AWS en temps réel, et vous fait gagner des heures chaque année sur les tâches répétitives.

Voici comment configurer iTerm2 + Zsh + Powerlevel10k pour un environnement SRE professionnel et fiable. Pas de cosmétique vide : chaque élément sert un but.

Prérequis et fondations

Avant toute chose, vous avez besoin de Homebrew et des bonnes polices. Ce sont les briques de base.

Étape 1 : Installer Homebrew

Si ce n’est pas encore fait, installez Homebrew. C’est votre gestionnaire de paquets sur macOS.

$

/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”

Note : Après l’installation, Homebrew vous indiquera d’ajouter le chemin à votre profil shell. Exécutez les commandes qu’il affiche.

Étape 2 : La police MesloLGS NF

Powerlevel10k affiche des icônes sophistiquées pour Git, Docker, Kubernetes, AWS. Sans la bonne police, vous verrez des caractères cassés. Vous devez installer MesloLGS NF (Nerd Font).

Configuration rapide de la police

Exécutez cette commande dans votre terminal actuel (avant d’installer iTerm2) :

$

curl -L “https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf” -o ~/Downloads/MesloLGS_NF_Regular.ttf

$

curl -L “https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf” -o ~/Downloads/MesloLGS_NF_Bold.ttf

$

curl -L “https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf” -o ~/Downloads/MesloLGS_NF_Italic.ttf

$

curl -L “https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf” -o ~/Downloads/MesloLGS_NF_Bold_Italic.ttf

Puis, ouvrez votre dossier Téléchargements et double-cliquez sur chaque fichier `.ttf`. Cliquez sur Installer à chaque fois.

Installation d’iTerm2

iTerm2 est plus que Terminal.app. Il offre des multi-panneaux, des profils colorés par environnement, et des intégrations qui sauvent des vies en production.

$

brew install –cask iterm2

Lancez iTerm2. Allez dans Préférences (Cmd + ,) puis Profiles / Text. Cherchez Change Font en bas à droite et sélectionnez MesloLGS NF Regular.

Conseil pro : Configurez un deuxième profil intitulé “Production” avec un fond rouge très sombre ou une bordure orange vif. Connectez-vous toujours à vos envs prod via ce profil. Cela vous sauvera d’un `terraform destroy` accidentel une nuit.

Oh My Zsh et Powerlevel10k

Zsh est le shell par défaut de macOS depuis Catalina. Oh My Zsh vous en donne un écosystème complet. Powerlevel10k vous donne un prompt qui change de couleur selon votre contexte.

Installer Oh My Zsh

$

sh -c “$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)”

Installer Powerlevel10k et les plugins

$

brew install powerlevel10k zsh-autosuggestions zsh-syntax-highlighting

Note : Powerlevel10k s’installe aussi automatiquement via le dépôt Oh My Zsh, mais Homebrew vous donne une version plus stable et facilement mis à jour.

Votre fichier .zshrc optimisé pour SRE

C’est ici qu’on fabrique la magie. Voici la configuration complète pour un ingénieur SRE/DevOps en 2026.

Collez ce script dans votre terminal. Il écrase votre `~/.zshrc` avec une configuration prête pour la prod :

cat << 'EOF' > ~/.zshrc
# Mode Prompt Instantané – Vitesse de chargement accrue
if [[ -r “${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh” ]]; then
  source “${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh”
fi

# Chemin d’installation Oh My Zsh
export ZSH=”$HOME/.oh-my-zsh”

# Configuration du thème
ZSH_THEME=“powerlevel10k/powerlevel10k”

# Plugins SRE/DevOps complets avec auto-suggestion et correction
plugins=(git z sudo docker docker-compose kubectl helm command-not-found history-substring-search thefuck colored-man-pages macos copypath extract safe-paste gitignore aws brew)

source $ZSH/oh-my-zsh.sh

# Auto-complétion Kubernetes, Helm et AWS CLI
[[ -r “/opt/homebrew/bin/kubectl” ]] && source <(kubectl completion zsh)
[[ -r “/opt/homebrew/bin/helm” ]] && source <(helm completion zsh)
[[ -r “/opt/homebrew/bin/aws” ]] && complete -C ‘/opt/homebrew/bin/aws_completer’ aws

# Alias DevOps pour économiser vos doigts
alias k=”kubectl”
alias kgp=”kubectl get pods”
alias kgs=”kubectl get svc”
alias kgd=”kubectl get deployments”
alias kctx=”kubectx”
alias kns=”kubens”
alias k9s-prod=”kubectx prod-eu1 && k9s”
alias k9s-staging=”kubectx staging && k9s”
alias tf=”terraform”
alias tfa=”terraform apply”
alias tfp=”terraform plan”
alias tfd=”terraform destroy”
alias tfv=”terraform validate”
alias dps=”docker ps –format ‘table {{.Names}}\t{{.Status}}\t{{.Ports}}'”
alias ld=”lazydocker”

# Chargement des plugins externes Homebrew
source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

# Configuration thefuck pour la correction de commandes
eval $(thefuck –alias)

# Charge votre profil Powerlevel10k
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
EOF

Exécutez immédiatement les changements :

$

ln -s /opt/homebrew/share/powerlevel10k ~/.oh-my-zsh/custom/themes/powerlevel10k 2>/dev/null

$

exec zsh

Installez thefuck avant d’utiliser le fichier .zshrc :

$

brew install thefuck

Le guide complet des plugins Oh My Zsh

Votre configuration active 16 plugins Oh My Zsh. Chacun remplit une fonction précise pour vous économiser du temps et prévenir les erreurs. Voici comment les utiliser.

Les incontournables : Git, Navigation & Sudo

git – Raccourcis Git essentiels

Au lieu de taper les commandes complètes :

$

gst
# Affiche git status

$

ga .
# Ajoute tous les fichiers (git add .)

$

gcmsg “fix: kubectl timeout issue”
# Commit avec message (git commit -m)

$

gp
# Git push

Liste complète : tapez alias | grep git pour voir les 100+ raccourcis disponibles.

z – Téléportation entre répertoires

Normalement :

$

cd ../../../../projects/terraform/prod-eu1/modules/networking

Avec z :

$

z prod-eu1

z mémorise vos répertoires les plus visités et vous y téléporte en une commande. Magique pour les SRE qui naviguent 50 dossiers par jour.

sudo – Ajouter sudo en deux Espace

Vous avez oublié sudo :

$

systemctl restart docker
# Appuyez sur Espace deux fois
sudo systemctl restart docker

Prédiction & Correction intelligente

zsh-autosuggestions – Prédiction intelligente en gris

Vous commencez à taper une commande :

$

kubectl get pods -n production-app

Le texte en gris est une suggestion basée sur votre historique. Appuyez sur Tab ou Flèche droite pour l’accepter. Vous économisez des centaines de frappes par mois.

history-substring-search – Chercher dans l’historique

Vous tapez le début d’une commande et appuyez sur Flèche Haut :

$

kubectl logs
# Appuyez sur Flèche Haut
kubectl logs -f deployment/api –tail=100

Zsh cherche dans tout votre historique les commandes commençant par kubectl logs. C’est bien plus utile que Ctrl+R.

thefuck – Corriger vos typos instantanément

Vous faites une typo :

$

kubectl gett pods
error: unknown command “gett”

$

fuck
kubectl get pods [Enter]

Oui, le plugin s’appelle vraiment fuck. C’est corrigé et exécuté. Économise une heure par semaine en production.

Docker & Kubernetes : Auto-complétion Pro

docker, docker-compose & kubectl – Auto-complétion avancée

Ces plugins activent l’auto-complétion intelligent :

$

docker ps –format [TAB] # Affiche tous les formats disponibles

$

kubectl get [TAB] # Affiche toutes les ressources (pods, svc, deployments…)

$

helm install [TAB] # Affiche tous les charts disponibles

Utilitaires et Productivité

command-not-found – Suggestions intelligentes

Vous tapez une commande qui n’existe pas :

$

kubectly
command not found: kubectly
Did you mean: kubectl

colored-man-pages – Man pages lisibles

man kubectl s’affiche maintenant en couleur avec une meilleure hiérarchie. Après 8h sur un écran blanc, vos yeux vous remercient.

extract – Décompresser sans penser

Au lieu de mémoriser les bonnes flags :

$

extract backup.tar.gz

$

extract config.zip

$

extract archive.7z

Ça détecte le format automatiquement et décompresse. Un gain léger mais consistent.

safe-paste – Prévention des accidents

Vous collez 50 lignes de code en masse. safe-paste pause et demande confirmation avant d’exécuter. Sauve votre prod une fois tous les deux ans.

copypath – Copier le chemin courant

Vous êtes dans un répertoire complexe :

$

pwd
/Users/seif/projects/terraform/prod-eu1/modules/networking

$

copypath
# Le chemin est copié en clipboard

Utile pour les scripts et la documentation.

gitignore – Générer .gitignore automatiquement

Vous créez un nouveau projet Terraform/Python/Node :

$

gi terraform python macos
# Génère un .gitignore avec les bonnes règles

Cloud & Infrastructures

aws – Auto-complétion AWS CLI

Naviguez vos ressources AWS avec l’auto-complétion :

$

aws s3 ls [TAB] # Affiche tous vos buckets

$

aws ec2 describe-instances –[TAB] # Affiche tous les flags disponibles

brew – Auto-complétion Homebrew

brew install [TAB] affiche tous les paquets disponibles et vous aide à chercher rapidement.

macOS Spécifique

macos – Raccourcis natifs macOS

Des commandes pratiques spécifiques à macOS :

$

open .
# Ouvre le répertoire courant dans Finder

$

quick-look FILE.pdf
# Affiche un aperçu rapide

$

rm-ds_store
# Supprime tous les .DS_Store du répertoire

Résumé : Votre arsenal productivité

Ce que vous gagnez avec tous ces plugins :

  • Moins de 100 frappes clavier par jour pour les commandes récurrentes
  • Zéro décision sur les flags (l’auto-complétion vous montre les options)
  • Prévention des typos en production (thefuck + command-not-found)
  • Navigation 10x plus rapide entre répertoires (z)
  • Moins de risques de collage accidentel de commandes dangereux (safe-paste)

Configuration visuelle Powerlevel10k

Powerlevel10k vous demandera de configurer votre prompt visuellement. Voici les réglages recommandés pour un SRE.

Après exec zsh, le configurateur Powerlevel10k devrait se lancer. Sinon, tapez :

$

p10k configure

Réglages recommandés

  • Style : Choisissez Classic ou Rainbow pour bien segmenter les informations visuelles.
  • Format d’heure : 24-hour. En production, l’heure doit être alignée avec vos logs et vos dashboards (UTC ou locale selon votre équipe).
  • Segments de droite : Laissez activés AWS, Kubernetes context, Terraform workspace, Docker. Votre prompt changera de couleur ou affichera le cluster Kubernetes sur lequel vous êtes connecté, évitant ainsi les déploiements catastrophiques sur le mauvais environnement.
Sauvetage de carrière : Si vous voyez [prod-eu1] s’afficher en rouge vif dans votre prompt après chaque commande, vous saurez immédiatement que vous êtes en production. C’est utile une fois tous les deux ans, et ça vaut tout l’effort.

Astuces iTerm2 avancées pour production

iTerm2 offre des super-pouvoirs que Terminal.app n’a pas. En voici quelques-uns qui vous rendront plus rapide en incident.

Multi-panneaux : Surveiller plusieurs services à la fois

En SRE, vous devez souvent watchdog plusieurs services ou machines en même temps.

  • Cmd + d : Divise l’écran verticalement
  • Cmd + Shift + d : Divise l’écran horizontalement
  • Cmd + Alt + Flèches : Navigate entre les volets

Exemple d’usage : Ouvrez un volet pour tails les logs d’une app, et un autre pour watch les metrics Prometheus en temps réel.

Profils par environnement

Créez un profil séparé pour production :

  1. Allez à Preferences / Profiles
  2. Cliquez le + pour créer un nouveau profil. Nommez-le Production
  3. Allez dans Colors et changez le Background pour un rouge très foncé ou une bande orange vif
  4. Connectez-vous à vos infras de production via ce profil uniquement

Résultat : Vous traversez l’écran rouge de votre terminal production, vous réfléchissez à deux fois avant de lancer rm -rf quoi que ce soit.

Search et Copy avec Context

Cmd + f ouvre la barre de recherche dans votre historique de terminal. Trouvez la commande Docker que vous avez lancée hier. Copiez la sortie exacte de votre déploiement Terraform pour l’audit.

Alias courants à ajouter

Voici une liste d’alias qui vous feront gagner du temps chaque semaine. Adaptez selon votre workflow.

# Kubernetes shortcuts
alias kdesc=”kubectl describe”
alias klogs=”kubectl logs -f”
alias kexec=”kubectl exec -it”
alias kdel=”kubectl delete”

# Docker shortcuts
alias dls=”docker image ls”
alias dlogs=”docker logs -f”

# Terraform
alias tfv=”terraform validate”
alias tfd=”terraform destroy”

# AWS
alias awss=”aws s3 ls”
alias awsec2=”aws ec2 describe-instances”

Ajoutez ces alias dans votre section des alias du fichier `~/.zshrc` (avant le `EOF`).

Entretien et mise à jour

Votre setup doit rester à jour pour avoir les corrections de sécurité et les nouvelles fonctionnalités.

Chaque mois

brew upgrade met à jour tous vos outils installés via Homebrew (iTerm2, Powerlevel10k, etc.)

$

brew upgrade

Tous les 3 mois

Vérifiez que votre police MesloLGS NF est à jour. Les iconographies Powerlevel10k évoluent.

Une fois par an

Relancez p10k configure et vérifiez que vos segments sont à jour (les plugins Kubernetes et AWS changent souvent de noms).

Outils visuels pour Kubernetes : le niveau pro

Vous maîtrisez kubectl en ligne de commande. Maintenant, installez les outils qui transforment votre workflow Kubernetes. Trois outils essentiels : kubectx, kubens, et k9s. Optionnel mais recommandé : lazydocker.

kubectx et kubens : Basculer entre clusters sans typage

En production, vous gérez souvent 3 à 10 clusters Kubernetes (dev, staging, prod-eu, prod-us, etc.). Taper `kubectl config use-context prod-eu1` à chaque fois, c’est lent et source d’erreurs. kubectx et kubens le font en une ligne.

Installation

$

brew install kubectx

Cela installe à la fois kubectx et kubens. Vérifiez :

$

kubectx

$

kubens

Comment les utiliser

kubectx : Lister et basculer entre clusters

$

kubectx
CURRENT NAME
* prod-eu1
prod-us1
staging
dev

$

kubectx staging
Switched to context “staging”

kubens : Lister et basculer entre namespaces

$

kubens
CURRENT NAME
* default
kube-system
kube-public
production-app
monitoring

$

kubens production-app
Context “staging” modified.

Sans arguments, les deux outils affichent une liste interactive. Tapez pour chercher. C’est plus rapide que de mémoriser les noms exacts.

Intégration avec votre .zshrc

Ajoutez ces alias pour aller encore plus vite :

# Kubernetes context & namespace switching
alias kctx=”kubectx”
alias kns=”kubens”
alias kctx-prod=”kubectx prod-eu1″
alias kctx-staging=”kubectx staging”
alias kns-prod=”kubens production-app”
Rappel production : Votre prompt Powerlevel10k affichera le cluster courant (ex. [prod-eu1]) en rouge vif. Quand vous tapez kubectx staging, le prompt change immédiatement. Avant de lancer un rollout, vous verrez clairement dans quel cluster vous êtes.

k9s : Interface TUI pour Kubernetes

k9s est une interface textuelle (TUI) pour Kubernetes. Au lieu de taper 10 commandes kubectl à la fois, vous naviguez avec les flèches et voyez tout en temps réel. C’est indispensable en incident.

Installation

$

brew install k9s

Lancez-le :

$

k9s

Cas d’usage : Incident en production

Imaginez : Un pod crashe en production toutes les 30 secondes.

  • Sans k9s : kubectl get pods -n production-app, trouvez le pod, kubectl describe pod NOM -n production-app, lisez les logs, kubectl logs POD -n production-app --tail=50
  • Avec k9s : Appuyez sur Enter sur le pod crashé. Voyez immédiatement les logs, les événements, la description, tout en temps réel dans un split screen.
Raccourcis k9s essentiels :

  • ? : Affiche tous les raccourcis disponibles
  • p : Va aux pods (depuis n’importe quel écran)
  • d : Va aux deployments
  • s : Va aux services
  • l : Affiche les logs du pod sélectionné
  • e : Edit en direct un manifest YAML
  • Enter : Détail complet de la ressource
  • Ctrl + l : Tail les logs continu

k9s vous sauve aussi parce que vous voyez d’un coup d’œil :

  • Quels pods sont en CrashLoop
  • Quels pods utilisent trop de CPU ou de mémoire
  • Quels pods ne sont pas Ready
  • Les events les plus récents du cluster
Avertissement : k9s peut aussi delete des pods, restart des deployments, edit les manifests. C’est puissant. Toujours utiliser le profil “Production” d’iTerm2 en couleur rouge quand vous lancez k9s en prod.

Intégration avec votre .zshrc

# k9s shortcut
alias k9s-prod=”kubectx prod-eu1 && k9s”
alias k9s-staging=”kubectx staging && k9s”

Maintenant, k9s-prod bascule au cluster prod ET ouvre k9s en une seule commande.


lazydocker : Interface visuelle pour Docker (Optionnel)

Si vous gérez beaucoup de conteneurs Docker en local ou sur des machines, lazydocker est une interface TUI complète. Moins critique que k9s (qui gère votre prod), mais très utile pour du local/dev.

Installation

$

brew install lazydocker

$

lazydocker

Vous voyez immédiatement :

  • Tous les conteneurs qui tournent
  • Leur CPU/mémoire en temps réel
  • Les logs en direct
  • Les images, volumes, et réseaux

lazydocker est moins critique que k9s pour un SRE, mais c’est un gain de temps si vous travaillez sur Docker Compose en local ou si vous debuggez des conteneurs sur des machines.

# Docker shortcuts
alias ld=”lazydocker”
alias dps=”docker ps –format ‘table {{.Names}}\t{{.Status}}\t{{.Ports}}'”

Résumé : Quel outil pour quel job ?

Outil Cas d’usage Installation
kubectx Basculer entre clusters Kubernetes rapidement brew install kubectx
kubens Basculer entre namespaces Kubernetes rapidement brew install kubectx
k9s Visualiser et gérer un cluster en temps réel (incidents, monitoring) brew install k9s
lazydocker Gérer les conteneurs Docker localement (optionnel) brew install lazydocker

Installation complète en une seule commande

Copiez-collez cette commande pour installer tous les outils avancés en même temps :

$

brew install kubectx k9s lazydocker

Installation correcte de Terraform (et autres tools HashiCorp)

Terraform n’est pas disponible dans le Homebrew principal. Vous devez ajouter le tap officiel HashiCorp :

$

brew tap hashicorp/tap

$

brew install hashicorp/tap/terraform

Ou installez d’autres outils HashiCorp utiles :

$

brew install hashicorp/tap/terraform hashicorp/tap/vault hashicorp/tap/packer

Setup complet DevOps/SRE : Installation complète

Voici les commandes pour installer tous les outils DevOps/SRE essentiels :

$

brew tap hashicorp/tap

$

brew install git kubernetes-cli helm checkov docker awscli aws-vault hashicorp/tap/terraform kubectx k9s lazydocker jq yq

Installation optionnelle : TFLint (linter Terraform)

TFLint n’est pas dans Homebrew. Installez-le via Go (si vous avez Go installé) :

$

go install github.com/terraform-linters/tflint@latest

Ou téléchargez directement depuis GitHub releases.

Vérifiez que tout est installé :

$

terraform –version
Terraform v1.x.x

$

kubectl version –client
Client Version: v1.x.x

$

helm version
version.BuildInfo{Version:”v3.x.x”}

$

docker –version
Docker version 25.x.x

$

aws –version
aws-cli/2.x.x

Votre station de contrôle est complète

Vous avez maintenant un terminal professionnel, rapide, et qui prévient les erreurs coûteuses. Voici ce que vous avez :

  • Powerlevel10k affiche votre contexte (cluster Kubernetes, AWS region, Terraform workspace) en temps réel
  • iTerm2 avec multi-panneaux pour surveiller plusieurs systèmes à la fois
  • Zsh et plugins automatisent les tâches répétitives (git, docker, kubectl)
  • Les alias vous font taper 10 caractères au lieu de 50
  • Les profils colorés vous sauvent d’une bêtise en production
  • kubectx / kubens pour basculer entre clusters et namespaces en une commande
  • k9s pour une visibilité complète sur votre cluster Kubernetes en incident
  • lazydocker (optionnel) pour gérer les conteneurs en local
Prochaines étapes personnalisées :

  • Explorez les configuration avancées de k9s (themes, custom views) en tapant ? dedans
  • Créez des scripts shell pour automatiser vos déploiements les plus courants
  • Intégrez vos cloud credentials (AWS, GCP) pour que Powerlevel10k affiche votre région en direct
  • Paramétrez les alertes visuelles/sonores dans k9s pour les crashloop pods

Votre terminal est maintenant un outil professionnel au niveau des meilleures équipes SRE. Profitez de chaque minute économisée sur les tâches répétitives, et utilisez ce temps pour construire de meilleures infrastructures et meilleures systèmes.

Écrit pour SRE et DevOps sur macOS. Configuration testée sur Apple Silicon (M1/M2/M3) et Intel. Mise à jour : septembre 2026.

Questions ou améliorations ? Adaptez cette configuration à votre flux de travail personnel.


Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top