Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Linux
  3. Corrigé 10
Extrait - Linux Entraînez-vous sur les commandes de base : Exercices et corrigés (5e édition)
Extraits du livre
Linux Entraînez-vous sur les commandes de base : Exercices et corrigés (5e édition) Revenir à la page d'achat du livre

Corrigé 10

Prérequis

1.

a.

Faux. La commande ls ne permet que de lister le contenu de répertoires.

b.

Vrai.

c.

Faux. Ceci n’est pas une commande standard Linux.

d.

Faux. La commande locate permet de rechercher des fichiers dans l’arborescence Linux, mais uniquement suivant leur nom.

2.

a.

Faux. La commande head affiche les premières lignes d’un fichier.

b.

Faux. La commande tail affiche les dernières lignes d’un fichier.

c.

Vrai.

d.

Faux. La commande ls liste le contenu de répertoires.

e.

Vrai. La commande sed permet aussi de filtrer le contenu de fichiers.

f.

Vrai. La commande awk permet aussi de filtrer le contenu de fichiers.

3.

a.

Faux. La commande head affiche les premières lignes d’un fichier.

b.

Vrai.

c.

Vrai. La commande awk permet aussi d’afficher certains champs d’un fichier.

d.

Faux. La commande join permet de fusionner les lignes de deux fichiers ayant un champ commun.

Corrigé 10.1 find

1.

Appuyez sur les touches [Ctrl]-[Alt]-[F3], puis :

localhost login: tux 
Password: <le mot de passe n'apparaît pas> 
[tux]$ 

2.

[tux]$ cd 
[tux]$ pwd 
/home/tux 
[tux]$ find . 
. 
./droits 
./.gnome2_private 
./monscript 
./.thumbnails 
./.thumbnails/normal 
./.thumbnails/normal/d4018c3831bb08001dfad1f175a8d667.png 
./.thumbnails/normal/c2f2e44685edd23e94cfacc920c5bffc.png 
... 

3.

[tux]$ find /usr/bin /usr/lib 
/usr/bin 
/usr/bin/rm 
/usr/bin/touch 
/usr/bin/csh 
/usr/bin/env 
/usr/bin/rview 
/usr/bin/su 
... 
/usr/lib 
/usr/lib/libacl.so.1 
/usr/lib/libasound.so.2 
/usr/lib/libpam_misc.so.0 
/usr/lib/libc-2.3.5.so 
/usr/lib/libdevmapper.so 
... 

4.

Arborescence de répertoires du sous-répertoire chapitre5 :

[tux]$ find chapitre5 -type d 
chapitre5 
chapitre5/rep2 
chapitre5/docperso 
chapitre5/rep1 

Arborescence de fichiers ordinaires du sous-répertoire chapitre5 :

[tux]$ find chapitre5 -type f 
chapitre5/fic2 
chapitre5/docperso/fica 
chapitre5/docperso/ficc 
chapitre5/docperso/ficd 
chapitre5/docperso/ficb 
chapitre5/fic1 
chapitre5/rep1/secret 

5.

[tux]$ cd chapitre5 
[tux]$ pwd 
/home/tux/chapitre5 
[tux]$ find . -name 'fic*' 
./fic2 
./docperso/fica 
./docperso/ficc 
./docperso/ficd 
./docperso/ficb 
./fic1 

Note

Les apostrophes sont obligatoires...

Corrigé 10.2 grep

1.

[tux]$ ps -ef | grep bash 
tux       29036    2410    0  02:37  tty2     00:00:00  -bash 
tux       29075   29074   10  02:38  pts/1    00:00:00  -bash 
tux       29100   29075    0  02:38  pts/1    00:00:00  grep  bash 

Note

La ligne concernant le processus grep lui-même est incluse dans le résultat car la chaîne de caractères "bash" est présente dans la ligne de commandes.

2.

[tux]$ grep http /etc/services  
#       http://www.iana.org/assignments/port-numbers 
http            80/tcp          www www-http    # WorldWideWeb HTTP 
http            80/udp          www www-http    # HyperText Transfer Protocol 
https           443/tcp                         # MCom 
https           443/udp                         # MCom 
gss-http        488/tcp 
gss-http        488/udp 
http-alt        8008/tcp 
http-alt    ...

Corrigé 10.3 cut

1.

[tux]$ cut -f1,3 -d: /etc/group 
root:0 
bin:1 
daemon:2 
sys:3 
adm:4 
... 

2.

[tux]$ ls -l /etc 
total 3348 
-rw-r--r--   1 root root   15289 mar 23 17:18 a2ps.cfg 
-rw-r--r--   1 root root    2562 mar 23 17:18 a2ps-site.cfg 
drwxr-xr-x   4 root root    4096 mai 22 12:29 acpi 
-rw-r--r--   1 root root      46 jun 23 03:42 adjtime 
drwxr-xr-x   4 root root    4096 mai 22 12:30 alchemist 
-rw-r--r--   1 root root    1512 avr 25 18:48 aliases 
-rw-r-----   1 root smmsp  12288 jun 29 00:02 aliases.db 
drwxr-xr-x   4 root root    4096 mai 22 12:31 alsa 
drwxr-xr-x   2 root root    4096 mai 22 12:43 alternatives  
... 
[tux]$ ls -l /etc | cut -c 2-10,26-31,45- 
otal 3348 
rw-r--r--  15288 a2ps.cfg 
rw-r--r--   2568 a2ps-site.cfg 
rwxr-xr-x   4099 acpi 
rw-r--r--     42 adjtime 
rwxr-xr-x   4090 alchemist 
rw-r--r--   1518 aliases 
rw-r-----  12282 aliases.db 
rwxr-xr-x   4091 alsa 
rwxr-xr-x   4093 alternatives 
... 

Note

Les numéros de colonnes indiqués à la commande cut dépendent de l’affichage retourné par la commande ls -l, lui-même dépendant des fichiers affichés et du type...

Corrigé 10.4 sort

1.

[tux]$ sort /etc/passwd 
abdel:x:508:502:Abdel Zouyène:/home/abdel:/bin/bash 
adm:x:3:4:adm:/var/adm:/sbin/nologin 
alain:x:506:502::/home/alain:/bin/bash 
bin:x:1:1:bin:/bin:/sbin/nologin 
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
dbus:x:81:81:System message bus:/:/sbin/nologin 
franck:x:501:500:Franck Cornaz:/home/franck:/bin/ 
... 

2.

La commande suivante trie le cinquième champ (-k5) du fichier en utilisant le séparateur de champs -t: :

[tux]$ sort -k5 -t: /etc/passwd  
abdel:x:508:502:Abdel Zouyène:/home/abdel:/bin/bash 
adm:x:3:4:adm:/var/adm:/sbin/nologin 
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin 
bin:x:1:1:bin:/bin:/sbin/nologin 
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
ntp:x:38:38::/etc/ntp:/sbin/nologin 
franck:x:501:500:Franck Cornaz:/home/franck:/bin/bash 
... 

3.

La commande suivante trie numériquement (-n) le troisième champ (-k3) du fichier en utilisant le séparateur de champs -t: :

[tux]$ sort -k3 -t: -n /etc/passwd  
root:x:0:0:root:/root:/bin/bash 
bin:x:1:1:bin:/bin:/sbin/nologin 
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
adm:x:3:4:adm:/var/adm:/sbin/nologin 
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 
sync:x:5:0:sync:/sbin:/bin/sync 
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 
... 

4.

[tux]$ ls -l /etc 
total 3348 
-rw-r--r--...

Corrigé 10.5 head, tail

1.

[tux]$ head -5 /etc/passwd     
root:x:0:0:root:/root:/bin/bash 
bin:x:1:1:bin:/bin:/sbin/nologin 
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
adm:x:3:4:adm:/var/adm:/sbin/nologin 
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 

2.

[tux]$ tail -7 /etc/protocols 
sps     130     SPS             # Secure Packet Shield 
pipe    131     PIPE            # Private IP Encapsulation within IP 
sctp    132     SCTP            # Stream Control Transmission Protocol 
fc      133     FC              # Fibre Channel 
# rsvp-e2e-ignore       134     RSVP-E2E-IGNORE 
#       134-254                 # Unassigned 
#       255                     # Reserved 

3.

[tux]$ ls -l 
total 11540 
drwxrwxr-x  2 tux tux     4096 jun 21 06:05 bin 
-rw-rw-r--  1 tux tux     1326 jun 21 06:27 bin.tgz 
drwxrwxr-x  5 tux tux     4096 jun 19 20:38 chapitre4 
drwxrwxr-x  4 tux tux     4096 jan  1  1970 chapitre4g 
drwxrwxr-x  5 tux tux     4096 jun 29 01:41 chapitre6 ...

Corrigé 10.6 Pour aller plus loin

1.

Lancez votre navigateur web, puis créez un fichier de référence comme suit :

[tux]$ touch /tmp/ref 

Modifiez les préférences du navigateur web, puis exécutez la commande find suivante :

[tux]$ find /home/tux -newer /tmp/ref 
/home/tux/.mozilla/firefox/khea6ivv.default 
/home/tux/.mozilla/firefox/khea6ivv.default/cert8.db 
/home/tux/.mozilla/firefox/khea6ivv.default/formhistory.dat 
/home/tux/.mozilla/firefox/khea6ivv.default/XUL.mfasl 
/home/tux/.mozilla/firefox/khea6ivv.default/prefs.js 
/home/tux/.mozilla/firefox/khea6ivv.default/localstore.rdf 
/home/tux/.mozilla/firefox/khea6ivv.default/secmod.db 
/home/tux/.mozilla/firefox/khea6ivv.default/key3.db 

Tous les fichiers retournés par la commande find :

  • ont une date de modification plus récente que le fichier de référence,

  • se trouvent dans votre répertoire personnel.

Il y a donc de fortes chances que ce soient les fichiers de configuration du navigateur web qui ont été enregistrés lors de la modification des préférences.

2.

[tux]$ ls -l /etc | grep '^l' 
lrwxrwxrwx   1 root root   22 mai 22 12:59 grub.conf -> ../boot/grub/grub.conf 
lrwxrwxrwx   1 root root   11 mai 22 12:26 init.d -> rc.d/init.d 
lrwxrwxrwx   1 root root    7 mai 22 12:27 rc -> rc.d/rc ...