Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Vade-mecum de l'informatique contemporaine
  3. mecum de l'informatique contemporaine
Extrait - Vade-mecum de l'informatique contemporaine (TCP, SOA, Linux, Python, Docker, HDFS, RDF, Adam, OWASP, KPI, UML, Scrum…)
Extraits du livre
Vade-mecum de l'informatique contemporaine (TCP, SOA, Linux, Python, Docker, HDFS, RDF, Adam, OWASP, KPI, UML, Scrum…)
2 avis
Revenir à la page d'achat du livre

Aide-mémoire

Introduction

Parfois, vous trouverez des aide-mémoire similaires sur Internet sous les vocables refcard, how-to. Il est agréable d’avoir ce type de mémo à portée de main tant que vous ne maîtrisez pas la syntaxe d’un outil ou d’un contexte sur lequel vous devez intervenir.

Feuilletez les sections suivantes pour avoir en tête où se trouve quoi, afin de ne pas perdre de temps le jour où ils vous seront utiles.

Aide-mémoire : directives et commandes assembleur

1. Directives assembleur

a. SECTION

La directive section est utilisée pour définir une section dans le programme assembleur. Une section est une partie du programme qui contient des instructions ou des données spécifiques.

Exemple, afficher le message “Hello, World!” sur la sortie standard (généralement l’écran) :

section .data 
    message db 'Hello, World!', 0 
 
section .text 
    global _start 
 
_start: 
    mov eax, 4 
    mov ebx, 1 
    mov ecx, message 
    mov edx, 13 
    int 0x80 
 
    mov eax, 1 
    xor ebx, ebx 
    int 0x80 

b. EXTERN

La directive extern est utilisée pour déclarer des symboles externes, c’est-à-dire des symboles qui sont définis dans d’autres fichiers source ou bibliothèques.

Exemple, appeler la fonction printf pour afficher le message "Hello, World!" sur la sortie standard :

extern printf 
 
section .data 
    format db 'Hello, World!', 0 
 
section .text 
    global _start 
 
_start: 
    push format 
    call printf 
    add esp, 4 
 
    mov eax, 1 
    xor ebx, ebx 
    int 0x80 

c. EQU

La directive equ est utilisée pour définir une constante avec une valeur spécifique.

Exemple, calculer l’aire d’un cercle en utilisant un rayon prédéfini (dans ce cas, un rayon égal à 5) et afficher le résultat sur la sortie standard :

section .data 
    radius equ 5 
 
section .text ...

Aide-mémoire HDFS et Hadoop, gestion de fichiers

Rappelons que les fichiers déposés et gérés dans ce contexte sont souvent très volumineux et que les performances d’Hadoop sont exceptionnelles. Pour autant, les informaticiens qui travaillent dans ce contexte peuvent plus ou moins conserver leurs repères syntaxiques Linux, comme vous pouvez le constater plus bas.

1. Afficher les informations de base sur un fichier

  • hadoop fs -ls PATH : affiche les informations de base sur un fichier ou un répertoire.

    Exemple : hadoop fs -ls /user/hadoop/file.txt

  • hadoop fs -du PATH : affiche la taille d’un fichier ou d’un répertoire.

    Exemple : hadoop fs -du /user/hadoop/file.txt

  • hadoop fs -count PATH : affiche le nombre de fichiers, de répertoires et la taille totale d’un répertoire.

    Exemple : hadoop fs -count /user/hadoop/

  • hadoop fs -checksum PATH : affiche la somme de contrôle MD5 d’un fichier.

    Exemple : hadoop fs -checksum /user/hadoop/file.txt

  • hadoop fs -stat "%a %n" PATH : affiche les autorisations et le nom d’un fichier.

    Exemple : hadoop fs -stat "%a %n" /user/hadoop/file.txt

  • hadoop fs -tail PATH : affiche les dernières lignes d’un fichier.

    Exemple : hadoop fs -tail /user/hadoop/file.txt

2. Gestion des fichiers et des répertoires

  • hadoop fs -mkdir DIR : crée un nouveau...

Aide-mémoire SQL

1. Clause WHERE - utilisation avec SELECT/UPDATE/DELETE/INSERT

a. SELECT avec WHERE

La clause WHERE est utilisée avec la commande SELECT pour filtrer les résultats en fonction d’une condition spécifiée.

  • Exemple, sélectionner tous les clients dont le nom commence par « A » :

    SELECT * FROM clients WHERE nom LIKE ’A%’;

  • Exemple, sélectionner tous les produits dont le prix est supérieur à 100 :

    SELECT * FROM produits WHERE prix > 100;

b. UPDATE avec WHERE

La clause WHERE est utilisée avec la commande UPDATE pour mettre à jour les enregistrements qui satisfont une condition spécifiée.

  • Exemple, mettre à jour le prix des produits dont la catégorie est « Électronique » :

    UPDATE produits SET prix = prix * 0.9 WHERE categorie = ’Électronique’;

  • Exemple, mettre à jour la quantité en stock des produits dont le prix est supérieur à 200 :

    UPDATE produits SET quantite_stock = quantite_stock - 1 WHERE prix > 200;

c. DELETE avec WHERE

La clause WHERE est utilisée avec la commande DELETE pour supprimer les enregistrements qui satisfont une condition spécifiée.

  • Exemple, supprimer tous les clients dont le dernier achat remonte à plus d’un an :

    DELETE FROM clients WHERE dernier_achat < DATE_SUB(NOW(), INTERVAL 1 YEAR);

  • Exemple, supprimer tous les produits dont la quantité en stock est inférieure à 10 :

    DELETE FROM produits WHERE quantite_stock < 10;

d. INSERT avec WHERE

La clause WHERE n’est généralement pas utilisée avec la commande INSERT, car elle est principalement utilisée pour insérer de nouvelles lignes dans une table. Cependant, vous pouvez utiliser une sous-requête avec WHERE pour insérer des données en fonction d’une condition.

  • Exemple, insérer les clients dont le montant total des achats est supérieur à 1000 dans une nouvelle table clients_vip :

    INSERT INTO clients_vip SELECT * FROM clients WHERE montant_total_achats > 1000;

e. SELECT DISTINCT avec WHERE

La clause WHERE peut également être utilisée avec la commande SELECT DISTINCT pour filtrer les résultats uniques en fonction d’une condition spécifiée. ...

Aide-mémoire Git

1. Initialisation d’un dépôt Git

  • git init : initialise un nouveau dépôt Git dans le répertoire courant.

    Exemple : git init

  • git clone URL : clone un dépôt Git distant dans un nouveau répertoire local.

    Exemple : git clone https://github.com/user/repo.git

  • git config --global user.name "NOM" : configure le nom d’utilisateur pour tous les dépôts locaux.

    Exemple : git config --global user.name "John Doe"

  • git config --global user.email "EMAIL" : configure l’adresse e-mail pour tous les dépôts locaux (ne pas négliger cette instruction !).

    Exemple : git config --global user.email "johndoe@example.com"

  • git add : ajoute tout le répertoire à l’index.

  • git add FILE : ajoute un fichier modifié ou nouvellement créé à l’index.

    Exemple : git add file.txt

  • git commit -m "MESSAGE" : crée un instantané du code source actuel et le stocke dans l’historique des versions de Git.

    Exemple : git commit -m "Ajout d’un nouveau fichier"

2. Gestion des branches Git

  • git branch : affiche la liste des branches locales.

    Exemple : git branch

  • git branch BRANCH : crée une nouvelle branche à partir de la branche actuelle.

    Exemple : git branch feature...

Aide-mémoire Linux : Gestion fichiers/processus/ utilisateurs/paquets/archives

1. Gestion de fichiers

ls : affiche le contenu d’un répertoire.

  • ls /home/user/Documents : affiche le contenu du répertoire Documents de l’utilisateur.

  • ls -l /home/user/Documents : affiche le contenu du répertoire Documents de l’utilisateur avec des informations détaillées.

  • ls -a /home/user/Documents : affiche le contenu du répertoire Documents de l’utilisateur, y compris les fichiers cachés.

  • ls -lh /home/user/Documents : affiche le contenu du répertoire Documents de l’utilisateur avec des informations détaillées plus facilement lisibles.

  • ls -R /home/user/Documents : affiche le contenu du répertoire Documents de l’utilisateur et de tous les sous-répertoires.

  • ls -t /home/user/Documents : affiche le contenu du répertoire Documents de l’utilisateur trié par date de modification.

2. Gestion des processus

ps : affiche les processus en cours d’exécution.

  • ps aux : affiche tous les processus en cours d’exécution avec des informations détaillées.

  • ps aux | grep firefox : affiche tous les processus en cours d’exécution contenant le mot « firefox ».

  • kill PID : tue un processus spécifique en utilisant son ID de processus (PID)....

Aide-mémoire Linux : changer les attributs d’un fichier, dont les permissions

1. Changer le propriétaire et le groupe d’un fichier

chown : modifie le propriétaire et le groupe d’un fichier spécifique.

  • chown user:group file.txt : change le propriétaire et le groupe de file.txt en « user » et « group » .

  • chown user file.txt : change le propriétaire de file.txt en « user ».

  • chgrp group file.txt : change le groupe de file.txt en « group ».

  • chown -R user:group directory/ : change récursivement le propriétaire et le groupe de tous les fichiers dans directory/ en « user » et « group ».

  • chgrp -R group directory/ : change récursivement le groupe de tous les fichiers dans directory/ en « group ».

2. Modifier les permissions par défaut pour les nouveaux fichiers

Pour comprendre la signification des expressions qui vont suivre, nous allons considérer une expression comme « -rw-r-r- ». Chaque caractère de cette expression représente une autorisation ou un attribut spécifique associé au fichier :

  • Le premier caractère indique le type de fichier :

  • ‘-’ fichier ordinaire ;

  • ‘d’ répertoire ;

  • ‘l’ lien symbolique ;

  • ‘c’ ou ‘b’ pour les fichiers spéciaux de caractères ou de bloc.

  • Les autres lettres indiquent le niveau d’autorisation :

  • ‘r’ signifie l’autorisation de « lecture ». Elle permet à l’utilisateur de consulter le contenu...

Aide-mémoire Linux : cron

1. Création d’une tâche cron

  • crontab -e : ouvre le fichier crontab de l’utilisateur courant pour éditer les tâches cron.

    Exemple : crontab -e

  • crontab -l : affiche les tâches cron actuelles pour l’utilisateur courant.

    Exemple : crontab -l

  • crontab -r : supprime toutes les tâches cron pour l’utilisateur courant.

    Exemple : crontab -r

  • crontab FILE : installe les tâches cron à partir d’un fichier spécifié.

    Exemple : crontab mycronfile

  • * * * * * COMMAND : planifie une commande à exécuter périodiquement selon une syntaxe spécifique.

    Exemple : * * * * * /usr/bin/command

  • @reboot COMMAND : planifie une commande à exécuter au démarrage du système.

    Exemple : @reboot /usr/bin/command

2. Syntaxe de la planification des tâches

  • Les champs de temps sont les suivants : minute (0-59), heure (0-23), jour du mois (1-31), mois (1-12), jour de la semaine (0-6).

    Exemple : 0 0 * * * /usr/bin/command

  • Les caractères spéciaux sont les suivants : * (toutes les valeurs), / (incrément), , (liste), - (plage).

    Exemple : */5 * * * * /usr/bin/command

  • Les commentaires commencent par le caractère dièse (#) et sont ignorés par cron.

    Exemple : # Cette...

Aide-mémoire Linux : réseau

1. Afficher les informations d’interface réseau

  • ifconfig : affiche les informations d’interface réseau pour toutes les interfaces actives.

    Exemple : ifconfig

  • ifconfig INTERFACE : affiche les informations d’interface réseau pour une interface spécifique.

    Exemple : ifconfig eth0

  • ifconfig INTERFACE up : active une interface réseau spécifique.

    Exemple : ifconfig eth0 up

  • ifconfig INTERFACE down : désactive une interface réseau spécifique.

    Exemple : ifconfig eth0 down

  • ifconfig INTERFACE IP_ADDRESS netmask NETMASK : configure l’adresse IP et le masque de sous-réseau pour une interface spécifique.

    Exemple : ifconfig eth0 192.168.1.100 netmask 255.255.255.0

  • ifconfig INTERFACE promisc : active le mode promiscuous pour une interface spécifique.

    Exemple : ifconfig eth0 promisc

Dans le contexte des réseaux, le mode promiscuous permet à une interface réseau de capturer et d’inspecter l’ensemble du trafic sur le segment de réseau auquel elle est connectée, au lieu de se limiter au trafic qui lui est spécifiquement adressé.

2. Afficher les informations de routage

  • route : affiche la table de routage actuelle.

    Exemple : route

  • route add DEFAULT_GATEWAY : ajoute une route par défaut à...

Aide-mémoire Linux : le "bash", en bref

1. Les bases

  • Cmd 1 : # - Utilisée pour ajouter des commentaires dans un script bash.

    Exemple : # Ceci est un commentaire qui explique ce que fait la ligne de code suivante

    Exemple : # Ce commentaire est ignoré lors de l’exécution du script

  • Cmd 2 : echo - Utilisée pour afficher du texte à l’écran.

    Exemple : echo "Bonjour, monde !"

    Exemple : echo "Le script est en cours d’exécution..."

  • Cmd 3 : read - Utilisée pour lire l’entrée de l’utilisateur.

    Exemple : read -p "Entrez votre nom : " nom

    Exemple : read -s -p "Entrez votre mot de passe : " mot_de_passe

  • Cmd 4 : if - Utilisée pour effectuer des tests conditionnels.

Exemple :

if [ $age -gt 18 ]; then 
    echo "Vous êtes majeur."  
fi 

Exemple :

if [ -f fichier.txt ]; then 
    echo "Le fichier existe."  
fi 
  • Cmd 5 : for - Utilisée pour effectuer des boucles sur une liste d’éléments.

Exemple :

for i in 1 2 3; do 
    echo "Valeur : $i"  
done 

Exemple :

for fichier in *.txt; do 
    echo "Traitement du fichier : $fichier"  
done 
  • Cmd 6 : exit - Utilisée pour quitter le script.

    Exemple : exit 0 (termine le script avec un code de retour 0)

    Exemple : exit 1 (termine le script avec un code de retour 1)

2. Les variables

  • Cmd 1 : variable="valeur" - Utilisée pour déclarer une variable et lui assigner une valeur.

    Exemple : nom="Jean"

    Exemple : age=25

  • Cmd 2 : echo $variable - Utilisée pour afficher la valeur d’une variable.

    Exemple : echo $nom

    Exemple : echo $age

  • Cmd 3 : unset variable - Utilisée pour supprimer une variable.

    Exemple : unset nom

    Exemple : unset age

  • Cmd 4 : variable=$(Cmd) - Utilisée pour stocker le résultat d’une commande (ici nommée Cmd) dans une variable.

    Exemple : date=$(date +%Y-%m-%d)

    Exemple : fichiers=$(ls)

  • Cmd 5 : readonly variable - Utilisée pour déclarer une variable en lecture seule.

    Exemple : readonly PI=3.14...

Aide-mémoire Linux : systemd et cgroups

systemd est un gestionnaire de plus en plus couramment utilisé dans de nombreuses distributions Linux, notamment dans des systèmes tels que Ubuntu, Fedora, CentOS, etc.

systemctl est une commande qui permet de gérer le système d’initiation, de contrôler les services et les unités système dans les distributions utilisant le système d’initiation systemd.

  • systemctl : la commande systemctl est un utilitaire chargé d’examiner et de contrôler le système systemd et le gestionnaire de services. Il s’agit d’un ensemble de bibliothèques, d’utilitaires et de démons de gestion système qui fonctionnent comme un successeur du démon System V init.

  • systemctl start nom_service.service : démarre un service nommé nom_service.

  • systemctl stop nom_service.service : arrête un service nommé nom_service.

  • systemctl restart nom_service.service : redémarre un service nommé nom_service

Aide-mémoire Linux : serveur HTTP Apache2 (dans un contexte Systmed)

1. Démarrer, arrêter et redémarrer Apache2

  • sudo systemctl start apache2 : démarre le serveur Apache2.

    Exemple : sudo systemctl start apache2

  • sudo systemctl stop apache2 : arrête le serveur Apache2.

    Exemple : sudo systemctl stop apache2

  • sudo systemctl restart apache2 : redémarre le serveur Apache2.

    Exemple : sudo systemctl restart apache2

  • sudo systemctl reload apache2 : recharge la configuration d’Apache2 sans interrompre les connexions en cours.

    Exemple : sudo systemctl reload apache2

  • sudo systemctl status apache2 : affiche l’état actuel du serveur Apache2.

    Exemple : sudo systemctl status apache2

  • sudo apachectl -t : vérifie la syntaxe des fichiers de configuration d’Apache2.

    Exemple : sudo apachectl -t

2. Gestion des fichiers de configuration

  • /etc/apache2/apache2.conf : fichier de configuration principal d’Apache2.

    Exemple : sudo nano /etc/apache2/apache2.conf

  • /etc/apache2/sites-available/ et /etc/apache2/sites-enabled/ : répertoires qui contiennent les fichiers de configuration des hôtes virtuels.

    Exemple : sudo nano /etc/apache2/sites-available/mysite.conf

  • /etc/apache2/mods-available/ et /etc/apache2/mods-enabled/ : répertoires qui contiennent les fichiers de configuration des modules Apache.

    Exemple : sudo nano...

Aide-mémoire Linux : fireWall

1. Configurer un pare-feu avec iptables

iptables : modifie les règles du pare-feu.

  • iptables -L : affiche les règles actuelles du pare-feu.

  • iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT : ouvre le port 22 pour le trafic sortant.

  • iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT : ouvre le port 80 pour le trafic entrant.

  • iptables -t filter -A INPUT -s 192.168.0.0/24 -j ACCEPT : autorise le trafic entrant en provenance du réseau local.

  • iptables -t filter -A INPUT -i lo -j ACCEPT : autorise le trafic entrant sur l’interface loopback.

  • iptables-save > /etc/sysconfig/iptables : enregistre les règles du pare-feu pour qu’elles soient chargées au démarrage.

2. Configurer un pare-feu avec firewalld

firewall-cmd : modifie les règles du pare-feu.

  • firewall-cmd --state : affiche l’état actuel du pare-feu.

  • firewall-cmd --get-zones : affiche les zones disponibles.

  • firewall-cmd --zone=public --add-port=80/tcp --permanent : ouvre le port 80 pour le trafic entrant dans la zone publique.

  • firewall-cmd --zone=public --add-service=http --permanent : ouvre le service HTTP pour le trafic entrant dans la zone publique.

  • firewall-cmd --zone=public --add-source=192.168.0.0/24 --permanent : autorise le trafic entrant en provenance du réseau local dans la zone publique.

  • firewall-cmd...

Aide-mémoire Linux : SSH

1. Connexion à un serveur distant via SSH

  • ssh USER@HOST : établit une connexion SSH avec un serveur distant.

    Exemple : ssh user@192.168.1.100

  • ssh -p PORT USER@HOST : établit une connexion SSH avec un serveur distant sur un port spécifique.

    Exemple : ssh -p 2222 user@192.168.1.100

  • ssh-copy-id USER@HOST : copie la clé publique de l’utilisateur vers le serveur distant pour une authentification sans mot de passe.

    Exemple : ssh-copy-id user@192.168.1.100

  • scp FILE USER@HOST:DESTINATION : copie un fichier local vers un serveur distant via SSH.

    Exemple : scp file.txt user@192.168.1.100:/home/user/

  • sftp USER@HOST : ouvre une session SFTP pour transférer des fichiers entre le client et le serveur.

    Exemple : sftp user@192.168.1.100

  • rsync SOURCE USER@HOST:DESTINATION : synchronise les fichiers entre le client et le serveur via SSH.

    Exemple : rsync file.txt user@192.168.1.100:/home/user/

2. Gestion des clés SSH

  • ssh-keygen : génère une nouvelle paire de clés SSH pour l’utilisateur.

    Exemple : ssh-keygen

  • ssh-add KEYFILE : ajoute une clé privée à l’agent d’authentification SSH.

    Exemple : ssh-add ~/.ssh/id_rsa

  • ssh-keyscan HOST : récupère la clé publique d’un hôte distant pour l’ajouter à la liste des clés connues....

Aide-mémoire Linux : SSL

1. Création d’un certificat SSL autosigné

  • openssl genrsa -out KEYFILE.pem 2048 : génère une nouvelle clé privée RSA de 2048 bits.

    Exemple : openssl genrsa -out server.key 2048

  • openssl req -new -key KEYFILE.pem -out CSRFILE.csr : crée une demande de signature de certificat (CSR) pour la clé privée.

    Exemple : openssl req -new -key server.key -out server.csr

  • openssl x509 -req -days DAYS -in CSRFILE.csr -signkey KEYFILE.pem -out CERTFILE.crt : signe le CSR avec la clé privée pour créer un certificat autosigné.

    Exemple : openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

  • openssl pkcs12 -export -in CERTFILE.crt -inkey KEYFILE.pem -out PKCS12FILE.p12 : exporte le certificat et la clé privée dans un fichier PKCS#12.

    Exemple : openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12

  • openssl s_client -connect HOST:PORT : établit une connexion SSL/TLS avec un serveur distant et affiche les informations du certificat.

    Exemple : openssl s_client -connect www.google.com:443

  • openssl verify CERTFILE.crt : vérifie la validité d’un certificat SSL/TLS.

    Exemple : openssl verify server.crt

2. Création d’un certificat SSL signé par une autorité de certification

  • openssl genrsa -out KEYFILE.pem...

Aide-mémoire Docker : commandes de base

1. Démarrer un nouveau conteneur

docker run : démarre un nouveau conteneur et exécute une commande.

  • docker run -it ubuntu bash : démarre un nouveau conteneur Ubuntu et ouvre un shell interactif.

  • docker run -d nginx : démarre un nouveau conteneur Nginx en arrière-plan.

  • docker run --name mycontainer nginx : démarre un nouveau conteneur Nginx avec le nom mycontainer.

  • docker run -p 8080:80 nginx : démarre un nouveau conteneur Nginx et mappe le port 8080 du système hôte au port 80 du conteneur.

  • docker run -v /path/on/host:/path/in/container nginx : démarre un nouveau conteneur Nginx et monte le répertoire /path/on/host du système hôte dans le répertoire /path/in/container du conteneur.

  • docker run --rm nginx : démarre un nouveau conteneur Nginx et supprime automatiquement le conteneur lorsqu’il est arrêté.

2. Gérer les images Docker

docker images : liste toutes les images Docker téléchargées sur le système.

  • docker images nginx : liste toutes les images Docker avec « nginx » dans leur nom.

  • docker pull nginx : télécharge l’image Docker nginx.

  • docker rmi nginx : supprime l’image Docker nginx.

  • docker tag nginx myrepo/nginx : crée une nouvelle étiquette...

Aide-mémoire Docker : gestion des volumes

1. Créer un volume

docker volume create : crée un nouveau volume Docker.

  • docker volume create mon_volume : crée un nouveau volume Docker nommé mon_volume.

  • docker volume ls : liste tous les volumes Docker sur le système.

  • docker volume inspect mon_volume : affiche des informations détaillées sur le volume Docker nommé mon_volume.

  • docker volume rm mon_volume : supprime le volume Docker nommé mon_volume.

  • docker volume prune : supprime tous les volumes inutilisés.

2. Utiliser un volume

docker run : démarre un nouveau conteneur et monte un volume.

  • docker run -v mon_volume:/app nginx : démarre un nouveau conteneur Nginx et monte le volume Docker nommé mon_volume dans le répertoire /app du conteneur.

  • docker run --mount source=mon_volume,target=/app nginx : démarre un nouveau conteneur Nginx et monte le volume Docker nommé mon_volume dans le répertoire /app du conteneur.

  • docker run --mount type=bind,source=/path/on/host,target=/path/in/container nginx : démarre un nouveau conteneur Nginx et monte le répertoire /path/on/host du système hôte dans le répertoire /path/in/container du conteneur.

  • docker run --mount type=volume,source=mon_volume,target=/app nginx : démarre un nouveau conteneur Nginx et monte le volume Docker...

Aide-mémoire Docker : instructions contenues dans les Dockerfile

1. Créer une image Docker

  • FROM : spécifie l’image de base pour la nouvelle image.

    Exemple : FROM ubuntu:latest utilise l’image Ubuntu comme image de base.

  • RUN : exécute une commande dans le conteneur et crée une nouvelle couche.

    Exemple : RUN apt-get update && apt-get install -y nginx installe Nginx dans le conteneur.

  • COPY : copie des fichiers du système hôte vers le conteneur.

    Exemple : COPY index.html /var/www/html/ copie le fichier index.html du système hôte vers le répertoire /var/www/html/ du conteneur.

  • WORKDIR : définit le répertoire de travail pour les instructions suivantes.

    Exemple : WORKDIR /var/www/html/ définit le répertoire de travail sur /var/www/html/.

  • EXPOSE : expose un port pour les connexions entrantes.

    Exemple : EXPOSE 80 expose le port 80 pour les connexions entrantes.

  • CMD : spécifie la commande à exécuter lorsque le conteneur démarre.

    Exemple : CMD ["nginx", "-g", "daemon off;"] démarre Nginx lorsque le conteneur démarre.

2. Créer un utilisateur non privilégié

  • RUN useradd : ajoute un nouvel utilisateur au système.

    Exemple : RUN useradd --create-home --shell /bin/bash user ajoute un nouvel utilisateur...

Aide-mémoire Docker : instruction de gestion des conteneurs DockerCompose

1. Création d’un service

  • services: : définit la section des services dans le fichier docker-compose.yml. 

    Exemple : services:

  • <nom du service>: : définit un service nommé dans le fichier docker-compose.yml. 

    Exemple : web:

  • image: : spécifie l’image Docker à utiliser pour le service.

    Exemple : image: nginx:latest

  • ports: : mappe les ports du conteneur sur les ports de l’hôte.

    Exemple : ports: - "8080:80"

  • volumes: : montre un volume ou un fichier sur le conteneur.

    Exemple : volumes: - ./data:/var/www/html/data

  • environment: : définit les variables d’environnement pour le conteneur.

    Exemple : environment: - MYSQL_ROOT_PASSWORD=password

2. Lancement d’un service

  • docker-compose up : lance tous les services définis dans le fichier docker-compose.yml.

    Exemple : docker-compose up

  • docker-compose up <nom du service> : lance un service spécifique défini dans le fichier docker-compose.yml.

    Exemple : docker-compose up web

  • docker-compose up --build : construit les images Docker avant de lancer les services.

    Exemple : docker-compose up --build

  • docker-compose up -d : lance les services en arrière-plan (mode détaché).

    Exemple : docker-compose up -d

  • docker-compose...

Aide-mémoire Pandas : l’indispensable

1. Création d’un DataFrame

  • pd.DataFrame(data [, index, columns, dtype, copy]) : crée un DataFrame à partir de données existantes.

    Exemple : df = pd.DataFrame({’col1’: [1, 2], ’col2’: [3, 4]})

  • pd.read_csv(filepath_or_buffer [, sep, delimiter, ...]) : charge un fichier CSV dans un DataFrame.

    Exemple : df = pd.read_csv(’data.csv’)

  • pd.read_excel(io [, sheet_name, header, ...]) : charge un fichier Excel dans un DataFrame.

    Exemple : df = pd.read_excel(’data.xlsx’)

  • pd.read_sql(sql [, con, index_col, ...]) : charge les résultats d’une requête SQL dans un DataFrame.

    Exemple : df = pd.read_sql(’SELECT * FROM mytable’, con)

  • pd.concat(objs [, axis, join, ignore_index, ...]) : concatène plusieurs DataFrames le long d’un axe.

    Exemple : df = pd.concat([df1, df2], axis=0)

  • pd.merge(left, right [, how, on, left_on, ...]) : fusionne deux DataFrames en fonction des colonnes communes.

    Exemple : df = pd.merge(df1, df2, on=’key’)

2. Manipulation rapide d’un DataFrame

  • df.head(n) : affiche les n premières lignes du DataFrame.

    Exemple : df.head(10)

  • df.tail(n) : affiche les n dernières lignes du DataFrame.

    Exemple : df.tail(10)

  • df.shape : renvoie le nombre de lignes et de colonnes du DataFrame.

    Exemple :...

Aide-mémoire Pandas : zoom sur les manipulations de données

Nous avons traité par ailleurs les manipulations de données avec SQL en conjonction avec Pandas, ici nous nous concentrons sur Pandas.

  • Transposer un DataFrame : la méthode transpose() permet d’intervertir les lignes et les colonnes d’un DataFrame.

    Cmd : df.transpose()

    Exemple 1 : df.transpose()

    Exemple 2 : df.T

  • Pivoter un DataFrame : la fonction pivot() permet de remodeler un DataFrame en convertissant des valeurs uniques d’une colonne en plusieurs colonnes.

    Cmd : df.pivot(index=’colonne1’, columns=’colonne2’, values=’valeur’) 

    Exemple 1 : df.pivot(index=’date’, columns=’variable’, values=’valeur’)

    Exemple 2 : df.pivot_table(index=’date’, columns=’variable’, values=’valeur’, aggfunc=np.sum)

  • Remodeler un DataFrame : la fonction melt() permet de remodeler un DataFrame en combinant différentes colonnes en une seule.

    Cmd : pd.melt(df, id_vars=[’colonne1’], value_vars=[’colonne2’])

    Exemple 1 : pd.melt(df, id_vars=[’id’], value_vars=[’jour1’, ’jour2’], var_name=’jour’, value_name=’valeur’)

    Exemple 2 : pd.melt(df, id_vars=[’id’], value_vars=[’jour1’, ’jour2’], var_name=’jour’, value_name=’valeur’, ignore_index=False)

  • Empiler et désempiler des données : les méthodes stack() et unstack() permettent de pivoter un niveau de colonne ou de ligne vers l’axe opposé, bien qu’un peu difficile à appréhender, attachez-vous à comprendre ces opérations très difficiles à faire autrement, elles sont vitales en data analyse.

    Cmd : df.stack()

    Exemple 1 : df.stack(level=0) ; cette méthode est souvent utilisée lorsque vous avez un DataFrame avec des colonnes multiples et que vous souhaitez les convertir en une seule colonne pour faciliter l’analyse ou la manipulation des données, de façon à ce que chaque ligne porte le nom de son nom de colonne d’origine. L’appel à df.stack() transforme ces colonnes...

Aide-mémoire Pandas : zoom sur les jointures

Plus haut nous avons étudié la syntaxe de jointures SQL. Les jointures natives Pandas sont plus rapides et parfois plus simples à concevoir techniquement quand elles ne comportent pas de filtrage de la donnée ou de transformation des clés.

Jointure interne (inner join)

  • Jointure interne simple

    Cmd : pd.merge(df1, df2, on=’cle’), permet de ne combiner des données qu’uniquement sur la colonne spécifiée comme clé de jointure.

    Exemple : pd.merge(df1, df2, on=’ID’) combine deux DataFrames sur la colonne ID.

  • Spécifier des colonnes de nom différents comme clés de jointure

    Cmd : pd.merge(df1, df2, left_on=’cle_gauche’, right_on= ’cle_droite’)

    Exemple : pd.merge(df1, df2, left_on=’ID1’, right_on=’ID2’)

  • Jointure interne par défaut

    Cette jointure interne correspond à l’option par défaut how=’inner’. Elle inclut uniquement les lignes ayant des correspondances dans les deux DataFrames. 

    Exemple : pd.merge(df1, df2, on=’ID’) effectue une jointure interne par défaut.

  • Jointure sur plusieurs colonnes (2,3, …)

    Cmd : pd.merge(df1, df2, ..., on=[’cle1’, ’cle2’, ...])

    Exemple : pd.merge(df1, df2, df3, on=[‘ID1’, ‘ID2’, ‘ID3’])...