Atelier 5 - Bash

Introduction

Ce atelier contient quatre exercices à réaliser individuellement. Vous devrez remettre un fichier pour chaque exercice contenant les commandes correspondant aux exercices.

Pour réaliser les exercices vous aurez besoin de regarder les différentes commandes vues en cours (commandes et boucles) et les commandes ci-dessous (voir la rubrique Astuces). Vous DEVREZ aller consulter les pages de manuel des différentes commandes pour trouver la façon de réaliser ce que vous souhaitez.

Astuces

  1. Utilisation de la commande grep : il est possible de fitrer une chaine de caractères mais aussi de spécifier d’autres options.

Exemple : pour spécifier que la chaine filtrée doit se trouver au début de la ligne, on utilisera ^.

$ cat fichier | grep "^chaine"

Fitrera les lignes commençant par chaine.

  1. Pour afficher l’arborescence des dossiers, vous pouvez utiliser la commande tree

  2. Il est possible d’utiliser la calculatrice bc de cette façon:

$ echo 7-3 | bc
  1. Liste de commandes utiles :
  • sed : permet de momdifier du texte dans un fichier. Exemple d’utilisation :
$ sed "s/foo/bar/g" -i fichier

Remplace foo par bar dans le fichier nommé fichier.

  1. La commande sort permet de trier selon plusieurs paramètres. Regardez dans l’aide pour la liste des paramètres.

  2. La commande wc permet de compter les lettres, mots et lignes produits par une commande.

274ec251bb72708955f3b212286e81154aab67cc

Exercice 1

  1. Ouvrez une session avec l’utilisateur standard et reproduisez, dans le répertoire courant, l’arborescence suivante et ce en utilisant un maximum de trois commandes :
├── H2021
│   ├── Linux
│   │   ├── Notes
│   │   └── Travaux
│   └── Virtualisation
│       └── machines
└── Personnel
 
  1. Changez de répertoire en allant dans le dossier Notes.

  2. En saisissant une seule commande, créez, à l’intérieur du répertoire courant, les dossiers semaine1, semaine2, …semaine15. Vous n’avez pas à entrer tous les noms des dossiers (Tous les noms de semaines) dans la commande.

  3. En une seule commande, faites-en-sorte que dans chacun des dossiers précédents (semaine1..), un fichier est créé et qui contient la ligne suivante : Ce cours concerne la semaineN

Où N correspond au numéro de la semaine.

  1. Toujours à partir du répertoire courant, utilisez le chemin relatif pour copier dans le dossier Travaux le fichier passwd qui est dans /etc.

  2. Toujours à partir du répertoire courant et en utilisant le chemin relatif, renommez le fichier copié en ajoutant « Copie » à son nom (passwdCopie)

  3. Changez le caractère délimiteur du fichier passwdCopie par ;

  4. Triez le contenu du fichier passwdCopie en ordre croissant du numéro de groupe, soit le quatrième champ. On veut que le fichier soit trié et non uniquement le résultat retourné par la commande.

Exercice 2

  1. Écrire la ligne de commande qui permet d’afficher le nombre d’utilisateurs qui ont pour shell par défaut un des shells disponibles sur votre machine. À l’exécution de la commande, on aurait pour chacun des shells un résultat de la même forme que le suivant:
0 utilisateurs ont pour shell /bin/sh
11 utilisateurs ont pour shell /bin/bash
0 utilisateurs ont pour shell /usr/bin/sh
0 utilisateurs ont pour shell /usr/bin/bash

Vous n’avez pas à indiquer manuellement les noms des shells

Exercice 3

  1. On veut savoir combien de dossiers et de fichiers standards et combien d’éléments qui ne sont ni des dossiers ni des fichiers standards contient le répertoire courant. Le résultat doit être affiché comme suit :
Le répertoire nomdurépertoire contient   N dossiers
Le répertoire nomdurépertoire contient   N fichiers standards
Le répertoire nomdurépertoire contient   N fichiers qui ne sont ni standards ni des répertoires

Nomdurépertoire est affiché automatiquement.

N est le nombre trouvé.

  1. On veut afficher la liste de tous les fichiers standards (de toute l’arborescence) portant le nom du dernier utilisateur créé sur votre machine. Les messages d’erreurs sont redirigés vers /dev/null

Exercice 4

Trouvez tous les fichiers txt sur votre disque dur en tant qu’utilisateur standard et sans afficher les erreurs.

Afficher la taille de ces fichiers avec les unités puis ne conserver que la taille et le nom du fichier et classer les par ordre de taille croissante (incluant les unités).