Administrer un ordinateur permet de :
- installer/configurer des outils ;
- programmer (schedule) et automatiser, e.g. sauvegardes, générations de rapports.
Ce module se concentrera sur le système d'exploitation Linux :
- poste de travail des développeurs ;
- très présent sur les serveurs (96,4%).
Objectifs du module :
- notions de cybersécurité sur le fonctionnement des ordinateurs ;
- administrer et personnaliser un poste de travail/serveur ;
- présentations d'outils métiers, e.g. serveurs de calculs, accès à distance.
Attentes :
- comprendre les concepts du module ;
- être capable de suivre des instructions avec rigueur et méthode ;
- être capable d'exploiter les documents fournis, e.g. cheat sheet.
- interpreteur : logiciel interprétant des instructions textuelles (e.g. , ). Deux modes :
- scripts : instructions dans un fichier (e.g. );
- REPL (Read-Eval-Print Loop) : instructions lues ligne par ligne :
En administration système :
- langage Shell, interpréteur ;
- interface en lignes de commande (CLI) : l'interface REPL ;
- invite de commande (prompt) : l'invite ;
- ligne de commande : ligne d'instruction lue par l'interpréteur.
Les serveurs (matériel) sont des ordinateurs fournissant un service (logiciel) :
- serveur Web
- serveur de messagerie
- serveurs d'applications, e.g. Office 365
- serveur de calculs
💡 serveur peut aussi faire référence au logiciel.
Avantage des serveurs :
- disponibilité : h24 7j/7, protections e.g. onduleurs.
- performances : e.g. 100+ CPU, 1To+ de RAM, etc.
- mutualisation des ressources entre plusieurs utilisateurs.
- services sans installation sur les postes de travail, e.g. Intranet, webmails, etc.
- synchronisation de données entre plusieurs postes de travail, e.g. serveur de fichiers.
⚠ Le Shell réécrit les lignes de commande avant de les exécuter.
: affiche la ligne de commande réellement exécutée (très utile pour déboguer un script) :
💡 : interpréter les caractères échappés, e.g. :
- : retour à la ligne ;
- : tabulation ;
- : formatage du texte.
- lignes de commandes parfois complexes, dures à retenir/taper.
- utiliser des alias.
- : définir un alias.
- : afficher l'alias (par défaut affiche tous les alias).
- : supprimer l'alias .
Commande = exécutable (script ou programme), e.g. un script Python :
⚠ est le nom de la commande.
🕮 Shebang : indique à l'ordinateur l'interpréteur à utiliser (ici ).
Syntaxe :
⚠ Dans un script, les chemins relatifs sont évalués relativement au dossier de travail actuel.
💡 Pour placer le dossier de travail à l'emplacement du script :
Python:
Shell:
La commande reçoit les arguments sous la forme d'un tableau, et les interprète arbitrairement.
💡 Les bibliothèques comme argparse (Python) fournissent diverses fonctionnalités :
- interprétation des arguments (arguments parsing) ;
- détection et affichage des erreurs d'usage ;
- génération automatique de la documentation.
Il suffit alors de déclarer les arguments, la bibliothèque se charge du reste :
Différents types d'arguments/paramètres :
- positionnels : paramètre déterminé par la position de l'argument.
- nommés : paramètre déterminé par le nom de l'argument ( ou ).
-
les drapeaux (flags) : paramètre booléen dont la valeur dépend de la présence de l'argument.
- Il est possible de fusionner les drapeaux d'une lettre : = .
Une fois les paramètres déclarés, l'argument permet d'en afficher l'usage :
💡 = argument facultatif.
⚠ À l'inverse de Python, les arguments nommés sont usuellement écrits avant les arguments positionnels.
💡 argparse a encore bien d'autres options que vous pourrez découvrir en lisant sa documentation.