Aller au contenu principal

Unix & Shell · L1 · Section 7/7

Ressources

Progression

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#Ressources: SPUF201, Système 1

#Références UCA

Le fonds local de l'UE couvre l'intégralité du programme.

  • Cours — sept chapitres: introduction et structure d'Unix; fichiers et répertoires; installation d'une distribution GNU/Linux; réseaux, adresses et protocoles; le shell; les outils d'Unix; connexion et communication.
  • Travaux pratiques — six séances: session utilisateur, terminaux et Emacs; arborescence, fichiers, liens et permissions; installation d'une distribution en machine virtuelle; réseau, courrier et groupes de discussion; shell, redirections et filtres; scripts, processus et filtres.
  • Mémentos — Unix, Emacs et Emacs avancé, avec le code ASCII complet et les raccourcis clavier.
  • Fiches de révision — Linux (fichiers, droits, recherche, expressions rationnelles), shell (définition, scripts, options, codes de retour), fonctions et portée des variables.
  • Sujets d'épreuve — un partiel blanc 2023-2024, un partiel du 23/03/2022, un contrôle continu terminal du 9/05/2022 et un du 9/05/2023, avec les corrigés de scripts distribués par l'UE.
  • Archives d'exercices — arborescences de TP, scripts d'exemple et d'exercice du cours.

Ordre conseillé: fichiers et répertoires, permissions, commandes et redirections, scripts shell, processus, réseau et connexions distantes. Refaites ensuite les TP dans un terminal vierge, sans recopier les commandes du corrigé, puis passez aux exercices d'épreuve.

#Documentation pratique

L'aide d'Unix se consulte en trois voies, que le cours présente comme un système d'aide en ligne à part entière.

Les pages de manuel sont organisées en chapitres, initialement au nombre de huit: 1 commandes accessibles depuis le shell, 2 appels système, 3 appels de bibliothèque, 4 fichiers spéciaux des périphériques, 5 conventions et organisation des fichiers, 6 jeux, 7 divers, 8 commandes d'administration. Les fichiers se trouvent dans la hiérarchie /usr/share/man/, dans des répertoires man1/, man2/, etc. Une page comporte des sections normalisées: NOM, SYNOPSIS, DESCRIPTION, OPTIONS, EXEMPLES. Dans le SYNOPSIS, le texte en gras est à taper tel quel, l'italique est à remplacer par un argument, les crochets signalent les éléments facultatifs, la barre verticale sépare des options incompatibles, et les points de suspension indiquent une répétition.

  • man nom affiche la page correspondante, man -k nom énumère tous les en-têtes qui contiennent le mot — c'est aussi ce que fait apropos nom.
  • man 2 fork, man 7 pipe: préciser le chapitre lève les ambiguïtés entre commande, appel système et convention.
  • La touche q quitte la page; SPC avance d'une page, d d'une demi-page, RET d'une ligne, /chaîne cherche vers l'avant, ?chaîne vers l'arrière.
  • --help ou -h donne un résumé immédiat: appeler une commande incorrectement est souvent le plus rapide pour découvrir sa syntaxe. Attention, -h peut être une option légitime — c'est le cas de cal.

Le système Info est l'outil de consultation des pages de manuel des outils du projet GNU, avec une navigation hiérarchisée et hypertextuelle. Il se lance par info dans un terminal, ou par C-h i dans Emacs. Les touches n, p et u passent à la page suivante, précédente, ou supérieure.

L'aide de Gnome, accessible par la commande yelp, se comporte comme un navigateur simplifié.

#Outils à installer pour pratiquer

  • strace: tracer les appels système d'un programme.
  • tree: visualiser une arborescence, avec -d pour ne garder que les répertoires.
  • htop: une version interactive de top.
  • shellcheck: analyseur statique qui signale les pièges classiques des scripts.
  • wireshark ou tcpdump: observation du trafic réseau.

#Références

  • The Linux Command Line: ouvrage libre pour consolider les bases.
  • Bash Reference Manual: référence du langage shell.
  • zsh: le shell officiel de l'UE.
  • ShellCheck: analyseur statique qui détecte les pièges classiques des scripts.
  • OpenSSH: ssh, scp, sftp et ssh-agent.
  • Les pages de manuel du système: man 7 zshexpn pour les modèles étendus, man 1 test pour les prédicats, man 1 grep pour les expressions rationnelles.

#Auto-évaluation

Vous êtes prêt pour l'examen si vous savez, sans notes: décoder une ligne de ls -l, calculer un umask dans les deux sens, expliquer la différence entre une commande intrinsèque et une commande externe, extraire un intervalle de lignes avec head puis tail, distinguer jokers et expressions rationnelles, écrire un script en #!/bin/zsh qui contrôle ses paramètres, expliquer la différence entre TERM et KILL, et ouvrir un tunnel SSH vers un service privé.