Shell : contrôle continu No 1

Durée: 1h15. Tous les documents sont autorisés.

Vous m'enverrez par mail à l'adresse pascal.petit@shayol.org le fichier contenant les réponses aux questions.

Exercice 1

  1. donnez une ligne de commande permettant de connaître le nombre de ligne du fichier /etc/passwd de votre poste
  2. donnez une ligne de commande permettant d'afficher les lignes 3 à 9 du fichier /etc/passwd de votre poste
  3. le fichier /etc/passwd est constitué de champs séparés par le caractère ":". Le premier  champ contient le nom d'ouverture de session (nom d login) de l'utilisateur. Donnez une commande permettant d'obtenir la liste des noms de login des utilisateurs du système.
  4. le fichier /etc/passwd est constitué de champs séparés par le caractère ":". Le troisième champ contient le numero de groupe (appelé GID) de l'utilisateur. donnez une commande qui affiche la liste des numéros de groupes différents utilisés dans /etc/passwd. Un même numéro ne doit être affiché qu'une seule fois.

Exercice 2 expansion des noms de fichiers

Donnez l'argument à donner à la commande ls pour afficher
  1. tous les fichiers commençant par une lettre majuscule non accentuée
  2. tous les fichiers finissant par les caractères ".txt" et commençants par un chiffre.
  3. les fichiers dont le nom fait exactement 4 caractères
  4. les fichiers commençant par un chiffre  ou le caractère \

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 listeArticlesCommandés qui affiche la liste des articles commandés. Un article commandé plusieurs fois apparaîtra plusieurs fois. Si vous ne savez pas écrire une fonction, vous pouvez fournir la commande permettant d'obtenir la liste des articles commandés.
  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 prixTotal qui affiche la somme des prix des articles commandés.
  4. Question subsidiaire: écrire un script prixParPersonne qui affiche pour chaque personne la somme totale des articles qu'il a commmandé.