Shell : contrôle continu No 1

Durée: 1h30. Les supports de cours et de TP ainsi que les pages de manuel du système sont autorisés. Aucun accès WeB ou internet autorisé. Les téléphones mobiles sont interdits.

Vous m'enverrez par mail à l'adresse pascal.petit@shayol.org le fichier contenant les réponses aux questions (ou via la clef USB que je vos ferai passer en fin de séance). Quand c'est pertinent, vous incluerez la commande et le résultat obtenu.

Exercice 1

  1. donnez une ligne de commande permettant de connaître le nombre d'entrées (i.-e. le nombre de fichiers et dossiers) présents à la racine de  /home
  2. donnez une ligne de commande permettant d'afficher les lignes 10 à 17 du fichier /etc/passwd de votre poste
  3. le fichier /etc/passwd est constitué de champs séparés par le caractère ":". L'un de ces champs contient le dossier personnel de l'utilisateur. Donnez une commande permettant d'obtenir la liste des dossiers personnels des utilisateurs du système.
  4. Donnez une commande permettant d'afficher les dossiers personnels communs à plusieurs utilisateurs (i.-e. les dossiers personnels qui apparaissent sur plusieurs lignes de /etc/passwd)

Exercice 2 expansion des noms de fichiers

Donnez l'argument à donner à la commande ls pour afficher
  1. tous les fichiers commençant par la lettre A majuscule;
  2. tous les fichiers finissant par les caractères ".txt" et commençants par un chiffre.
  3. les fichiers dont le nom fait exactement 3 caractères
  4. les fichiers commençant par un chiffre  ou le caractère \
  5. les fichiers dont le nom a un a en première et deuxième position

Exercice 3

  1. Donnez la ligne de commande permettant de faites en sorte que la liste des fichiers et dossier présents directement dans le dossier /etc soit dans un fichier nommé /tmp/liste.txt.
  2. Donnez la ligne de commande permettant d'ajouter liste des fichiers et dossier présents directement dans le dossier /var au fichier  /tmp/liste.txt.

Exercice 4

Dans cet exercice, on travaille avec le fichier fournitures.txt. Ce fichier contient les commandes de fournitures de bureau d'un service administratif. Les lignes sont constitués de champs séparés par le caractère ":". Elles ont la forme suivante:
    nom:prénom:bureau:ville:article commandé:prix
  1. écrire une fonction listePrénoms qui affiche la liste des Prénoms des membres du service. Chaque prénom ne doit apparaître qu'une seule fois.Dans cette question et dans les suivantes, si vous ne savez pas écrire une fonction, vous pouvez fournir la (les) commande(s) permettant d'obtenir la liste des articles commandés (avec évidemment une légère pénalité sur la notation).
  2. écrire une fonction listeOccupantBureau qui affiche la liste des nom et prénom des différents occupant d'un bureau. Le numéro de bureau sera passé en paramètre à la fonction. Chaque personne doit apparaître une seule fois.
  3. écrire une fonction listeNombrePrénoms qui affiche la liste des Prénoms des membres du service et, pour chaque prénom, le nombre de fois qu'il apparaît.