Université du Littoral Côte d’Opale
Ecole d’Ingénieurs du Littoral Côte d’Opale
ING1: Système d'exploitation
TD
Exercice A : (les questions du présent exercice sont à réaliser en mode commande, sans utiliser un
éditeur de texte)
[A.1.] En utilisant la commande date afficher sur la même ligne l’expression
Rep A.1.] echo -n "Nous sommes le " ; date
[A.2.] Sauvegarder dans un nouveau fichier fich1 créé en mode commande (sans
éditeur de texte) la ligne permettant l’affichage précédent.
Rep A.2.] echo -n "Nous sommes le " ; date > fich1
[A.3.] Afficher le calendrier du mois courant.
Rep A.3.] cal 11 2020
[A.4.] Rajouter au contenu de fich1 la commande réalisant l’affichage précédent.
Rep A.4.] cal 11 2020 >> fich1
[A.5.] Afficher la valeur du répertoire courant en la précédant de ‘Répertoire courant ‘
Rep A.5.] echo " Le répertoire courant : " ; pwd
[A.6.] Rajouter au contenu de fich1 la commande permettant l’affichage précédent.
Rep A.6.] echo " Le répertoire courant : `pwd ` " >> fich1
1
[A.7.] Rendre fich1 exécutable pour tous (-a pour all)
Rep A.7.] chmod a+x fich1
[A.8.] Exécuter fich1 moyennant /bin/bash fich1 et sauvegarder le résultat de
l’exécution dans un fichier fich1_Exec
Rep A.8.] Dans l’environnment (virtual box, Debian) bash fich1 > fich1_Exec
[A.9.] Créer un répertoire dénommé TD2 et y déplacer par une commande les 2
fichiers fich1 et fich1_Exec
Rep A.9.] mkdir TD2 ; mv fich1 TD2/. ; mv fich1_Exec TD2/.
[A.10.] Générer sous TD2 un fichier Fich1_Text_et_Exec un fichier dont le
contenu comprend le contenu de fich1 suivi de celui de fich1_Exec
Rep A.10.] cd TD2 ; cat fich1 fich1_Exec > Fich1_Text_et_Exec
[A.11.] En utilisant la commande grep toutes les lignes de Fich1_Text_et_Exec
commençant par echo, chaque ligne est précédée de son numéro.
Rep A.11.] grep -n echo Fich1_Text_et_Exec
[A.12.] Sauvegarder les lignes de Fich1_Text_et_Exec ne comprenant pas le mot
echo dans un fichier dénommé fich_sans_echo, chaque ligne étant précédée de son
numéro.
Rep A.12.] grep -v echo Fich1_Text_et_Exec > fich_sans_echo
Exercice B
[B.1.] Quel effet aura la commande chmod 744 fich1 sur le fichier fich1 ?
2
Rep B.1.] les droits d’accès à fich1 deviennent : 7 4+2+1 ou rwx pour user
4 4+0+0 ou r - - pour le groupe
4 4+0+0 ou r - - pour les autres
[B.2.] Après avoir créé un répertoire Dtmp, laquelle des commandes ci-dessous ne
pourra pas fonctionner, pourquoi ?
[1] cp fich1 Dtmp/fich2
[2] cp Dtmp/fich2 fich3
[3] mv fich2 Dtmp/fich3
[4] cat fich3 fich1 > fich2
[5] cat Dtmp/fich2 > Dtmp/fich4
[6] cat Dtmp/ fich3 >> fich4
Rep B.2.] Au départ seul le fichier fich1 existe sur le répertoire courant :
[3] ne peut pas fonctionner car fich2 n’existe pas dans le répertoire courant
(ascendant de Dtmp).
[6] fich3 n’existant pas sous Dtmp la commande de la ligne 6 ne peut pas
fonctionner.
[B.3.] Une fois la commande erronée est identifée comparez les effets des autres
commandes
Rep B.3.]
[1] répertoire courant qui contient fich1 une copie de fich1 dénommé fich2 est créé sur
Dtmp
[2] une copie de fich2 de Dtmp est transféré dans un fichier fich3 du répertoire courant
[3] commande erronée
[4] un fichier fich2 est créé dans le répertoire courant et cumul le contenu de fich1 et
celui fich3
[5] un fichier fich4 est créé sous Dtmp comme copie de fich2 du même répertoire.
[B.4.] Sans consulter les contenus des fichiers cités dans la question précédente, lister
les noms des fichiers (existants) par ordre croissant du nombre des lignes par fichier.
3
Justifier votre classement :
Rep B.4.] fich2 du répertoire courant est le plus grand en taille 2 fois des autres
fichiers ayant un même contenu
[B.5.] Utiliser wc -l <nom_du_fichier> une seule fois pour en déduire le nombre des
lignes par fichier.
Rep B.5.] wc -l fich1 donne le nombre des lignes de fich1 qui sera identique
dans les autres fichiers sauf fich2 du répertoire courant qui a 2 fois le nombre des
lignes de fich1
[B.6.] Cumuler le contenu de l’ensemble des fichiers distincts créés dans un fichier fich5
moyennant une commande. Afficher le nombre des lignes de fich5 moyennant la
commande wc . Justifier le nombre obtenu par wc.
Rep B.6.] cat fich1 fich2 fich3 > fich5 ; cat Dtmp/fich2 Dtmp/fich4 >>
fich5
fich5 contenant 6 copies de fich1 il aura un nombre des lignes 6 le
nombre des lignes de fich1
[B.7.] Afficher les 5 premières lignes de Dtmp/fich2 (avec head)
Rep B.7.] head -5 Dtmp/fich2
[B.8.] Afficher les 7 dernières lignes de Dtmp/fich2 (avec tail)
Rep B.8.] tail +n 7 Dtmp/fich2
[B.9.] Re-exécuter les deux commandes utilisées lors des 2 questions précédentes pour
en créer un fichier fich24 sous Dtmp. Afficher d’abord le nombre des mots, puis le
nombre des caractères composants fich24.
Rep B.9.]
head -5 Dtmp/fich2 > fich24
tail +n 7 Dtmp/fich24 >> fich24 ;
wc -c fich24
4
[B.10.] Créer un répertoire Essai et y loger des copies des fichiers fich1, fich3 et
fich4. Procéder à titre d’essai de supprimer Essai. Que se passe-t-il ? Décrire ce qu’il
faut faire en cas de besoin de suppression du répertoire Essai. Tester.
Rep B.10.] le répertoire Essai ne peut pas être supprimé qu’une fois tous les
fichiers qui y sont rattachés ont d’abord été supprimés