Exercice Unix
[tab name=’♣ Exercice UNIX’]
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.
[/tab][tab name=’Correction’]
Exercice 1 :
Flux d’E/S standards
- Q1)
echo "Bonjour" |tee salutation.txt
- Q2)
#! /bin/bash read a echo $a|tr "[a-z]" "[A-Z]"
- Q3)
read a echo $a|tr "[a-z]" "[A-Z]"|tee text1
- Q4)
cat salutation.txt|tr "[a-z]" "[A-Z]"|tee text1|wc -c
Exercice 2 :
Redirections, méta-caractères
Le répertoire /usr/include contient les fichiers d’entête standards en langage C (stdlib.h, …).
- Q1)
mkdir inc cp /usr/include/std* $HOME/inc
- Q2)
find /usr/include/ \( -name 'a*' -o -name 'b*' -o -name 'c*' \)
ou
find /usr/include/ -name [abc]*
- Q3)
find /usr/include/ \( -name 'a*' -o -name 'b*' -o -name 'c*' \) >$HOME/Abc.list
- Q4)
cat Abc.list > copie wc Abc.list 450 450 14861 Abc.list
- Q5)
cat Abc.list copie >double wc double 900 900 29722 double
- Q6)
touch Temp
- Q7)
cat >> temp The end CTRL-d
- Q8)
ls /usr/include/[t]* | wc 14 14 306
Exercice Unix
[/tab][end_tabset skin= »lightness » ]