Aller au contenu

Cheatsheet

3 niveaux de fréquence :

  • quotidien — tu tapes ça tous les jours, apprends-les par coeur. Si tu connais celles-là, tu t’en sors.
  • occasionnel — utile régulièrement, tu reviendras les chercher ici quand il faudra.
  • rarement — tu en auras besoin une ou deux fois, surtout pour le setup ou le nettoyage.

Les mots entre <chevrons> sont des placeholders — remplace-les par ta propre valeur. Exemple : git checkout -b <branche> → git checkout -b feature/login

CommandeDescriptionFréquence
git statusVoir l’étatquotidien
git add .Tout ajouter au stagingquotidien
git commit -m "<message>"Committerquotidien
git pushPousser sur le remotequotidien
git pullRécupérer depuis le remotequotidien
git checkout -b <branche>Créer et aller sur une branchequotidien
git log --onelineHistorique compactoccasionnel
git merge <branche>Fusionner une brancheoccasionnel
git initInitialiser un reporarement
git branch <branche>Créer une branche (sans y aller)rarement
CommandeDescriptionFréquence
ls -laLister tout (fichiers cachés inclus)quotidien
cd <chemin>Se déplacerquotidien
cat <fichier>Lire un fichierquotidien
mkdir -p <chemin>Créer des dossiers récursifsquotidien
grep -r "<texte>" <dossier>/Chercher du textequotidien
sudo apt update && sudo apt install -y <paquet>Installer un paquet (ex: curl, git)quotidien
pwdAfficher le répertoire courantoccasionnel
nano <fichier>Éditer un fichier dans le terminaloccasionnel
rm -r <dossier>Supprimer (récursif)occasionnel
cp -r <source> <destination>Copier (récursif)occasionnel
mv <source> <destination>Déplacer / renommeroccasionnel
chmod 755 <fichier>Changer les permissionsoccasionnel
export <NOM_VARIABLE>="<valeur>"Définir une variable d’environnementoccasionnel
ps auxLister les processusoccasionnel
kill <PID>Tuer un processus (PID = numéro affiché par ps aux)occasionnel
find . -name "*.py"Chercher des fichiersrarement
chown <user>:<group> <fichier>Changer le propriétairerarement
systemctl start/stop/status <service>Gérer un service (ex: nginx, docker)rarement
whoamiAfficher l’utilisateur courantrarement
printenvLister les variables d’environnementrarement
journalctl -u <service>Voir les logs d’un servicerarement
CommandeDescriptionFréquence
curl <URL>Requête HTTP (ex: curl http://localhost:8000/api/tasks)quotidien
ss -tlnpPorts ouvertsoccasionnel
ping <hôte>Tester la connectivité (ex: ping google.com)occasionnel
curl -I <URL>Voir les headersoccasionnel
dig +short <domaine>Résoudre un DNS (ex: dig +short google.com)rarement
wget <URL>Télécharger un fichierrarement
hostname -IVoir son IP privéerarement
curl ifconfig.meVoir son IP publiquerarement
traceroute <hôte>Chemin réseaurarement
sudo ufw allow <port>Ouvrir un port (ex: sudo ufw allow 8000)rarement
sudo ufw enableActiver le firewallrarement
sudo ufw statusVoir les règlesrarement
MéthodeCe que ça faitExemple
GETLire une ressourcecurl http://localhost:8000/api/tasks
POSTCréer une ressourcecurl -X POST -H "Content-Type: application/json" -d '{"title":"..."}' http://localhost:8000/api/tasks
PATCHModifier une donnée existantecurl -X PATCH http://localhost:8000/api/tasks/1
PUTModifier une donnée existante(non utilisé dans ce projet)
DELETESupprimercurl -X DELETE http://localhost:8000/api/tasks/1

PATCH vs PUT : pour faire simple, les deux servent à modifier une donnée qui existe déjà. La différence technique : PATCH modifie seulement les champs envoyés, PUT remplace la ressource entièrement. En pratique, beaucoup d’APIs utilisent l’un ou l’autre sans distinction. Dans ce cursus on utilise PATCH — si tu vois PUT ailleurs, dis-toi que c’est la même idée.

CommandeDescriptionFréquence
docker compose up -d --buildLancer avec Composequotidien
docker compose downTout arrêterquotidien
docker compose psVoir l’état des servicesquotidien
docker compose logs -fLogs de tous les servicesquotidien
docker psContainers en coursquotidien
docker logs -f <container>Suivre les logs d’un containerquotidien
docker exec -it <container> bashEntrer dans un containeroccasionnel
docker build -t <nom>:<tag> .Construire une image (ex: docker build -t mon-app:1.0 .)occasionnel
docker stop <container>Arrêter un containeroccasionnel
docker rm <container>Supprimer le containeroccasionnel
docker ps -aTous les containers (même arrêtés)occasionnel
docker run -d -p <port_machine>:<port_container> --name <nom> <image>Lancer un container sans Composerarement
docker rmi <image>Supprimer l’imagerarement
docker pull <image>Télécharger une image (ex: docker pull postgres:16)rarement
docker imagesLister les images localesrarement
docker system dfVoir l’espace utilisé par Dockerrarement
docker system prune -aNettoyer images/containers inutilisésrarement
CommandeDescriptionFréquence
bun installInstaller les dépendancesquotidien
bun run devLancer le serveur de devquotidien
bun run buildCompiler pour la productionoccasionnel
bunx oxlint .Lancer le linteroccasionnel

Bun remplace npm + Node.js. Les commandes équivalentes npm : npm install, npm run dev, npx oxlint .

CommandeDescriptionFréquence
uv syncInstaller les dépendancesquotidien
uv run uvicorn main:app --reloadLancer le serveur backendquotidien
uv run pytestLancer les testsquotidien
uv run ruff check .Lancer le linteroccasionnel
uv add <paquet>Ajouter une dépendance (ex: uv add fastapi)rarement

uv remplace pip + venv. Les commandes équivalentes : pip install -r requirements.txt, python -m pytest

# Structure minimale
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo "Hello CI"
ConceptSyntaxe
Secret${{ secrets.<NOM_DU_SECRET> }}
Dépendance entre jobsneeds: <nom_du_job>
Conditionif: github.ref == 'refs/heads/main'
CommandeDescriptionFréquence
aws ec2 describe-instancesLister les instancesquotidien
aws ec2 stop-instances --instance-ids <ID>Arrêter (ex: --instance-ids i-0abc123)quotidien
aws ec2 start-instances --instance-ids <ID>Démarrerquotidien
aws s3 cp <fichier> s3://<bucket>/Uploadoccasionnel
aws s3 ls s3://<bucket>/Lister le contenu d’un bucketoccasionnel
aws ec2 terminate-instances --instance-ids <ID>Supprimer définitivementoccasionnel
aws configureConfigurer les credentialsrarement
aws s3 mb s3://<bucket>Créer un bucketrarement
aws rds describe-db-instancesLister les bases RDSrarement
aws rds delete-db-instance --db-instance-identifier <ID> --skip-final-snapshotSupprimer une base RDSrarement
aws lambda list-functionsLister les fonctions Lambdararement
aws lambda invoke --function-name <NOM> output.jsonInvoquer une Lambdararement
aws lambda delete-function --function-name <NOM>Supprimer une Lambdararement

Voir le guide complet. Le raccourci à mettre dans ~/.bashrc :

Fenêtre de terminal
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1
alias awslocal='aws --endpoint-url=http://localhost:4566'
CommandeDescriptionFréquence
cd ~/devops-project/floci && docker compose up -dDémarrer l’AWS localquotidien
curl -s -o /dev/null -w "%{http_code}\n" http://localhost:4566/healthVérifier qu’il répond (doit dire 200)quotidien
awslocal <commande>Toute commande AWS, en localquotidien
docker compose down && docker compose up -dRepartir d’un AWS viergeoccasionnel
docker compose logs -f flociVoir ce qui se passeoccasionnel
docker compose downTout arrêter et tout effaceroccasionnel

À retenir : depuis ta machine → http://localhost:4566. Depuis un autre container → http://floci:4566.

Terraform en local — ajouter au bloc provider "aws" :

access_key = "test"
secret_key = "test"
skip_credentials_validation = true
skip_metadata_api_check = true
skip_requesting_account_id = true
s3_use_path_style = true
endpoints {
ec2 = "http://localhost:4566"
s3 = "http://localhost:4566"
}
CommandeDescriptionFréquence
terraform planPrévisualiserquotidien
terraform applyAppliquerquotidien
terraform initInitialiser (télécharger providers)occasionnel
terraform destroyTout supprimeroccasionnel
terraform fmtFormater le codeoccasionnel
terraform validateVérifier la syntaxerarement
terraform state listVoir les ressources géréesrarement
CommandeDescriptionFréquence
ansible-playbook -i <inventory> <playbook>.ymlLancer un playbookquotidien
ansible -i <inventory> <hosts> -m pingTester la connexionoccasionnel
ansible-playbook -i <inventory> <playbook>.yml --checkDry runoccasionnel
ansible-vault encrypt <fichier>Chiffrer un fichierrarement
CommandeDescriptionFréquence
kubectl get podsLister les podsquotidien
kubectl get servicesLister les servicesquotidien
kubectl logs <pod>Voir les logsquotidien
kubectl apply -f <fichier>.ymlAppliquer une configquotidien
kubectl describe pod <pod>Détails d’un podoccasionnel
kubectl get deploymentsLister les deploymentsoccasionnel
kubectl delete -f <fichier>.ymlSupprimeroccasionnel
kubectl scale deployment <nom> --replicas=<N>Scaler (ex: --replicas=3)occasionnel
kubectl rollout status deployment/<nom>Suivre un deploymentrarement
kubectl get namespacesLister les namespacesrarement
kubectl set image deployment/<nom> <container>=<image>:<tag>Mettre à jour l’imagerarement
minikube startLancer le cluster localrarement
minikube stopArrêter le cluster localrarement
minikube image load <image>Charger une image locale dans minikuberarement
minikube service <nom> --urlObtenir l’URL d’un servicerarement
Commande / URLDescriptionFréquence
http://localhost:9090Prometheus UIquotidien
http://localhost:3001Grafana UIquotidien
curl http://localhost:8000/metricsVoir les métriques brutesoccasionnel
rate(<métrique>[1m])Taux par seconde (PromQL)rarement
histogram_quantile(0.95, ...)Percentile 95 (PromQL)rarement
docker compose up -d (avec prometheus.yml)Lancer Prometheus + Grafanararement