Linux & Bash
Mémo
Script Bash : chemin logique
Conditions
Fonctions : paramètres et valeur produite
Vim : commandes par mode
jq : lire et filtrer
Cours
1. Introduction à Linux
1.1 Un peu d’histoire de Linux
1.2 Architecture du système
1.3 Premières commandes
1.3.1 Comprendre le prompt
1.3.2 Savoir où l’on est : pwd et ls
1.3.3 Chemin absolu et chemin relatif
1.3.4 Se déplacer avec cd
1.4 Variables d’environnement
1.4.1 Créer et lire une variable d’environnement
1.4.2 Variables importantes
1.4.3 Supprimer une variable
1.5 Synthèse
2. Manipulation de fichier et dossier
2.1 Création et manipulation de fichiers et dossiers
2.1.1 Créer un fichier avec touch
2.1.2 Créer un dossier avec mkdir
2.1.3 Supprimer avec rm
2.1.4 Copier avec cp
2.1.5 Déplacer ou renommer avec mv
2.2 Écriture et lecture de fichiers
2.3 Éditeurs de texte
2.3.1 Nano
2.3.2 Vim et ses modes
2.4 Le fichier .bashrc
2.5 Synthèse
3. Les flux de redirection
3.1 Les trois flux standards
3.2 Rediriger les sorties
3.2.1 Sortie standard : 1> et >
3.2.2 Erreur standard : 2> et 2>>
3.2.3 Séparer stdout et stderr
3.2.4 Regrouper stdout et stderr
3.3 Rediriger l’entrée standard
3.3.1 Exemple avec un programme interactif
3.4 Le pipe |
3.5 Enchaîner avec &&
3.6 Synthèse
4. Utilisateurs et droits
4.1 Propriété : utilisateur, groupe et autres
4.1.1 Utilisateur propriétaire
4.1.2 Groupe
4.1.3 Autres utilisateurs
4.2 Super-utilisateur et sudo
4.3 Les trois permissions : r, w et x
4.4 Lire les droits avec ls -l
4.4.1 Découper -rw-rw-r--
4.5 Modifier les permissions avec chmod
4.5.1 Notation numérique
4.5.2 Notation symbolique
4.6 Synthèse
5. Script Shell
5.1 Du terminal au script Bash
5.1.1 Qu’est-ce qu’un script Bash ?
5.1.2 Le shebang : quel interpréteur doit lire le fichier ?
5.1.3 Créer un premier script
5.1.4 Deux façons d’exécuter le script
5.2 Mémoriser et réutiliser des valeurs
5.2.1 Commenter le code
5.2.2 Créer une variable
5.2.3 Les guillemets : protéger ou interpréter du texte
5.2.4 Récupérer le résultat d’une commande
5.2.5 Faire des calculs
5.3 Stocker plusieurs valeurs : les tableaux
5.3.1 Créer et lire un tableau
5.3.2 Modifier et ajouter des éléments
5.3.3 Connaître les indices et le nombre d’éléments
5.4 Faire prendre des décisions au script
5.4.1 La structure if / then / fi
5.4.2 Ajouter else et elif
5.4.3 Comparer du texte et des nombres
5.4.4 Combiner plusieurs conditions
5.4.5 [ ], [[ ]] et (( )) : quelle forme utiliser ?
5.5 Répéter des actions avec des boucles
5.5.1 while : répéter tant qu’une condition est vraie
5.5.2 for : parcourir une série de valeurs
5.5.3 seq : générer une suite d’entiers
5.6 Regrouper du code avec des fonctions
5.6.1 Définir une fonction
5.6.2 Passer des arguments à une fonction
5.6.3 Produire une valeur et la réutiliser
5.6.4 Le point-virgule
5.7 Le chemin logique d’un script Bash
6. Processus
6.1 Du programme au processus
6.1.1 Qu’est-ce qu’un processus ?
6.1.2 Foreground et background
6.2 Premier plan et arrière-plan
6.2.1 Fonctionnement au premier plan
6.2.2 Fonctionnement en arrière-plan avec &
6.3 Suspendre, reprendre et déplacer un processus
6.3.1 Suspendre avec Ctrl+Z
6.3.2 Reprendre au premier plan avec fg
6.3.3 Reprendre à l’arrière-plan avec bg
6.4 Observer les processus en cours
6.4.1 htop : vue interactive
6.4.2 ps : obtenir un état des processus
6.5 Identifier précisément un processus avec son PID
6.5.1 Le PID : Process ID
6.5.2 Retrouver un PID avec pgrep
6.6 Mettre fin à un processus avec kill
6.6.1 Arrêter un processus identifié
6.7 Synthèse : repères de gestion des processus
7. Crontab
7.1 Comprendre Cron et Crontab
7.1.1 Cron : exécuter des tâches automatiquement
7.1.2 Crontab : décrire la planification
7.2 Lire la syntaxe d’un Cron Job
7.2.1 Les cinq champs de temps
7.2.2 Les opérateurs *, -, , et /
7.3 Construire une planification
7.3.1 Tous les jours à 5 h 15
7.3.2 Le 2 de chaque mois à 5 h 15
7.3.3 Toutes les cinq heures
7.3.4 Lundi et mercredi en janvier et février
7.4 Ce qu’une tâche cron doit pouvoir exécuter
7.4.1 L’importance des chemins absolus
7.4.2 Script exécutable et interpréteur
7.5 Administrer une crontab
7.6 Synthèse : logique d’une tâche planifiée
8. JQ
8.1 Comprendre ce que jq manipule
8.1.1 jq travaille sur des données JSON
8.1.2 Tableau et objet JSON
8.2 Comprendre les filtres jq
8.2.1 Le point . : identité
8.2.2 Parcourir un tableau avec []
8.2.3 Sélectionner une tranche
8.2.4 Appliquer plusieurs filtres avec la virgule
8.2.5 Enchaîner les traitements avec le pipe
8.2.6 Filtrer avec select()
8.3 Construire de nouveaux résultats
8.3.1 Construire un tableau
8.3.2 Construire un objet
8.3.3 Construire un document plus complexe
8.4 Utiliser les opérateurs
8.4.1 Addition : +
8.4.2 Soustraction : -
8.4.3 Multiplication : *
8.4.4 Division : /
8.5 Regrouper et compter avec group_by et length
8.5.1 Regrouper les objets
8.5.2 Compter les éléments de chaque groupe
8.6 Le chemin logique avec jq