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.