Exercice Unix: Shell et commande – flux d’E/S standards – Redirections – méta-caractères
Exercice 1: Flux d’E/S standards
Étudier la documentation de la commande tee.
- Écrire une commande qui affiche « Bonjour » à l’écran et en même temps crée un fichier nommé « Salutation.txt » dont le contenu est le même message.
- Ecrire un script qui lit une ligne de caractères sur son entrée standard et l’écrit sur sa sortie, en passant tous les caractères en majuscules.
- Modifiez votre script pour qu’il affiche le nombre de caractères traités sur sa sortie d’erreur.
- Créer un fichier texte quelconque. Écrire une seule commande shell qui recopie le contenu passé en majuscule de ce fichier dans un nouveau fichier nommé « Titre.txt » et affiche à l’écran le nombre de caractères traités.
Exercice 2: Redirections, méta-caractères
Le répertoire /usr/include contient les fichiers d’entête standards en langage C (stdlib.h, …).
- Créer un répertoire nommé inc dans votre répertoire de connexion (HOME).
En utilisant une seule commande, y copier les fichiers du répertoire /usr/include dont le nom commence par std. - Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.
- Modifier la commande de la question précédente pour qu’au lieu d’afficher le résultat, celui-ci soit placé dans un fichier nommé « Abc.list » de votre répertoire de connexion.
- Afficher le contenu de ce fichier en utilisant la commande cat.
Copier avec cat son contenu dans un nouveau fichier nommé « Copie ». - Toujours avec cat, créer un nouveau fichier nommé « Double » formé par la mise bout à bout (concaténation) des fichiers « Abc.list » et « Copie ».
Vérifier que le nombre de lignes a bien doublé à l’aide de la commande wc. - Créer un fichier nommé « Temp » contenant une ligne de texte.
- Avec cat, ajouter la ligne « The end » à la fin du fichier « Temp”.
- En une seule ligne de commande, faire afficher le nombre de fichiers de /usr/include dont le nom contient la lettre t.
La correction exercices Unix Shell et commande (voir page 2 en bas)