Vous êtes sur la page 1sur 2

Institut national des postes et télécommunications 2020-2021

Filière DataEngineer Introduction aux systèmes d'exploitation


TD 2 : Commandes et script Shell sous Unix
Exercice 1¹ : Liens physiques et droits d'accès
1. Supposons que les numéros d’inœuds s’incrémentent par un à chaque création d’un fichier. Le
prochain numéro d’inœud libre est 345. Nous exécutons les commandes suivantes :
 
1 $ cd ~
2 $ echo "Exercices inoeuds" > ~/toto
3 $ cp toto t2
4 $ cp toto t3
5 $ mv t2 t4
6 $ ln t3 t5
7 $ ln t4 /etc/t6
 
Donner les numéros d’inœud des fichiers toto, t2, t3, t4, t5 et t6.

2. Donner les droits d’accès (en mode symbolique puis en mode octal) du fichier toto après l’exécution
successive de toutes les commandes suivantes :
 
1 $ touch toto
2 $ chmod 354 toto
3 $ chmod a−x toto
4 $ chmod ug+r toto
5 $ chmod o−w toto
6 $ chmod g−w toto
 

3. Considérons les commandes suivantes :


 
1 $ ls −l foo
2 −rw−rw−rw− 1 compte1 compte1 13 Jan 2015 14:30 foo
3 $ umask 024
4 $ cat bar >> foo
5 $ mkdir exam
6 $ cat foo > exam/foobar
 
Quelles sont les permissions sur les fichiers foo, foobar et exam en supposant que bar est un
fichier du répertoire courant ? Justifiez votre réponse.

Exercice 2 : Variable d'environnement, redirection et contrôle de taches


1. Comment régler la variable PATH avec les chemins suivants?
 
1 /usr/bin
2 /export/home/
3 /bin
 

2. Quelle est la différence entre :


 
1 cmd1 & ; cmd2 & ; cmd3
2 cmd1 & ; cmd2 & ; cmd3 &
 

3. Quelle est la différence entre :


¹Source : Contrôle 2014—2015

1
 
1 cmd1 1> sortie.txt 2>&1
2 cmd1 2>&1 1> sortie.txt
 

Exercice 3 : Variables
1. Parmi les syntaxes suivantes, laquelle est correcte :
 
1 $ variable = foo
2 $ variable= foo
3 $ variable =foo
4 $ variable=foo
 

2. Donner une explication possible de l’obtention du résultat suivant :


 
1 $ var = x
2 = x
3 $ var + x
4 + x
5 $ var − x
6 − x
 

Exercice 4 : La commande read


1. Considérons les deux cas suivants :
Cas 1 :
 
1 $ cat datafile
2 the quick brown fox
3 $ read champ1 champ2 champ3 < datafile
 
Cas 2 :
 
1 $ echo the quick > datafile
2 $ read champ1 champ2 champ3 < datafile
 

Donner le résultat d’exécution des commandes suivantes pour chaque cas :


 
1 $ echo Champ numéro un est $champ1
2 $ echo Champ numéro deux est $champ2
3 $ echo Champ numéro trois est $champ3
 

2. Supposons avoir le résultat suivant :


 
1 $ echo $PATH; echo $PATH > /tmp/path.txt
2 /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
 
Donner le résultat d’exécution du script Shell suivant :
 
1 #!/bin/bash
2 read var1 var2 var3 var4 var5 var6 var7 < /tmp/path.txt
3 echo "Avant de modifier IFS"
4 echo $var1, $var2, $var3, $var4, $var5, $var6, $var7
5 IFS=:
6 read var1 var2 var3 var4 var5 var6 var7 < /tmp/path.txt
7 echo "Pour IFS=:"
8 echo $var1, $var2, $var3, $var4, $var5, $var6, $var7
 

Vous aimerez peut-être aussi