Sommaire
I.! EXERCICES(SUR(LS( 3!
II.! EXERCICES(SUR(LES(RÉPERTOIRES( 6!
LES(COMMANDES(MKDIR(ET(RMDIR( 6!
LA(COMMANDE(CD( 7!
III.! EXERCICES(SUR(CP(ET(MV( 8!
LA(COMMANDE(CP( 8!
LA COMMANDE MV( 9!
IV.! EXERCICES(SUR(CHMOD( 11!
V.! EXERCICES(SUR(LES(JOKERS( 12!
VI.! EXERCICES(SUR(FIND( 14!
VII.! EXERCICES(SUR(CAT( 16!
VIII.! EXERCICES SUR HEAD ET TAIL( 18!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Page!2!! ! par!ASSOUALMA!Med!choaib!
I. Exercices(sur(ls(
!
1. Affiher le contenu de bin
• Pour afficher le contenu d'un répertoire on
utilise la commande ls NomDuRepertoire
!
2. Afficher le contenu de votre répertoire
d’accueil sauf . et .. :
!
!
• Comme nous constatons dans le help de ls,
l’option qui nous permet d’exécuter cette
tache est -A donc :
!
!
!
3. À quoi sert l'option -R de ls ?
(
• La commande ls –R nous permet de lister
récursivement
Le répertoire courant et ses sous répertoires.
• Exemple d’exécution :
!
!
!
Page!3!! ! par!ASSOUALMA!Med!choaib!
!
4.
a) Dans quel ordre les fichiers et
répertoires sont-ils classés par défaut?
Les fichiers et répertoires sont classés par
défaut par ordre alphanumérique
b) Quelles sont les options qui peuvent servir
à modifier ce critère de classement ?
• Les options qui !peuvent servir à modifier ce critère
de classement -t,-
• i : selon inode,
• –r : inverse,
• –c : selon dernière modification du statut,
• –U don’ t sort c.-à-d. les afficher selon leur ordre
dans le dossier
• Si les fichiers on les même paramètres (par exemple
la même date) il affiche selon l’ordre alphabétique
c) Affichez le contenu de votre répertoire courant
de t! elle sorte que les fichiers modifiés récemment
apparaissent en premier.
• Pour Affichez le contenu de votre répertoire courant
de !telle sorte que les fichiers modifiés récemment
apparaissent en premier on utilise l’option –t.
Page!4!! ! par!ASSOUALMA!Med!choaib!
5. Décrivez le résultat de la commande ls -l.
• La commande ls -l affiche des informations sur les
fichiers (statut), quelque soit leurs type le résultat est
forme de plusieurs champs :
! 1er champ : le type et le droit d’accès
! 2eme champ : le nombre de lien
physique « hard Link »
! 3eme champ: le nom du propriétaire
du fichier
! 4eme champ: le nom du groupe du
fichier
! 5eme champ: taille en octets
! 6eme ,7eme et 8eme champs : mois,
jours et heure de la dernière
modification
! 9eme champ : le nom du fichier
6. Quelle est l'option qui affiche le contenu de votre
répertoire avec des signes distinctifs qui
permettent !d'identifier plus vite le type de fichiers
(slash / pour les répertoires, arobase @ pour les liens
symboliques, etc) ?
!
• Pour cela on utilise l’option –F.
• Exemple :
Page!5!! ! par!ASSOUALMA!Med!choaib!
II. Exercices(sur(les(répertoires(
• Les(commandes(mkdir(et(rmdir(
!
1. Créez trois répertoires en une seule ligne de
commande.
• Pour cela il suffit d’utiliser la commande mkdir suivie
des noms des trois répertoires séparés par des espaces.
2. Effacez ces trois répertoires en une seule ligne de
commande.
• Pour cela on utilise soit rm –r suivie des noms et
chemin si nécessaire des 3 répertoires sinon on utilise
rmdir avec ces trois répertoires vides
3. Que se passe-t-il si vous tapez mkdir mkdir ?
• Cette commande crée tous simplement un répertoire
nommé mkdir.
4. Y a-t-il une option de mkdir qui permette de créer à la
fois un répertoire et un sous-répertoire de ce !répertoire
?
Page!6!! ! par!ASSOUALMA!Med!choaib!
• Oui l’option –p de mkdir nous permet de créer à la fois
un répertoire et ses sur-répertoires, par exemple :
• Cette commande nous a permis de créer un répertoire
rep2 et son père rep1. Si on n’utilise pas –p rep1 doit
exister déjà pour pouvoir créer rep2 sans message
d’erreur.
• La(commande(Cd:(
1. Créer ~/Rapport/docs/afaire et
~/Rapport/docs/fait
!
dans!la!deuxieme!ligne!c!pas!grave!si!on!met!pas!le!p!car!on!a!deja!
creé!/rapport/docs!!
2. Allez directement dans ~/Rapport/docs/afaire/.
!
!
3. De là, passez dans ~/Rapport/docs/fait/.
4. Revenez dans ~/Rapport/.
5. Passez dans ~/Rapport/docs/.
6. En restant là où vous êtes, affichez les droits
de/etc/rc.d
7. Revenez dans votre répertoire principal.
!
!
!
Page!7!! ! par!ASSOUALMA!Med!choaib!
III. Exercices(sur(cp(et(mv(
• La(commande(Cp(
!
1. Est-il possible de faire une copie d'un répertoire et de
l'ensemble de ses sous-répertoires en une seule ligne
de commande, sans d'abord faire une copie de chacun
des fichiers l'un après l'autre ?
• Oui on peut le faire on utilisant l’option –r de la
commande cp cette option est indispensable pour
copier un dossier qu’il soit vide ou pas.
2. Que se passe-t-il si on fait : cp -r essai tentative et
que le répertoire tentative/ existe déjà ?
• Dans ce cas essaie sera copié dans tentative et la copie
gardera le même nom ‘‘essai’’.
• Sinon si tentative n’existe pas essaie sera copié dans
le répertoire courant et la copie sera nommée tentative
3. Que se passe-t-il si vous voulez faire une copie d'un
fichier dans un répertoire où il existe déjà un fichier
de ce nom ?
• Dans ce cas le fichier sera écrasé par notre copie on
peu ajouter l’option –i pour le mode interactive « pour
que le système nous demande une confirmation avant
de l’écraser »
4. Est-il possible de taper une ligne du genre de : cp f1
f2 f3 répertoire/ ? Quel est l'effet de cette ligne ?
• Oui, cette commande nous permet de copier f1 f2 et f3
dans répertoire sans changer leurs [Link] faut
obligatoirement que le dernier argument soit un
répertoire. Si on a un répertoire parmi les fichier on
Page!8!! ! par!ASSOUALMA!Med!choaib!
doit ajouter l’option –r sinon que les fichier seront
copiés mais pas le répertoire par exemple :
• Cp f1 f2 f3 r4 répertoire/
• Seulement f1 f2 f3 seront copié mais pas r4 dans
répetoire
Cp: Omitting directory ‘r4’
Cp -r f1 f2 f3 r4 répertoire/
Tous va être copié même r4
• La commande mv
1. La syntaxe de mv est : mv fichier1 fichier2;
fichier1 est renommé en fichier2. Mais que se
passe-t-il si fichier2 existe déjà ?
• Si fichier2 existe déjà il sera écrasé par
fichier1 qui sera renommé.
2. Supposez que vous avez chez vous
l'arborescence de l’exercice sur cd, et que vous
vous trouvez dans ~/Rapport/docs/. Comment
faites-vous pour y amener [Link] qui se
trouve dans le répertoire père ?
3. Comment faites-vous ensuite pour ramener ce
fichier à son emplacement d'origine ?
4. Comment renommer un répertoire bla en blo ?
Que se passe-t-il si le répertoire blo existe déjà ?
Page!9!! ! par!ASSOUALMA!Med!choaib!
• Si blo existe déjà alors bla sera déplacé à
l’intérieure de blo Sans être renommé.
5. Comment faire pour à la fois déplacer un fichier
et changer son nom ? Que se passe-t-il si il
existe déjà un fichier de ce nom dans le
répertoire d'arrivée ?
• Si f2 existe déjà dans le répertoire d’arrivé
‘bla’ il sera écrasé par notre nouveau fichier
6. Mêmes questions avec un répertoire.
• Pour le 1er cas c’est idem Si le répertoire n’existe
pas il sera déplacé et renommé avec la même
commande.
• Sinon si il existe déjà notre répertoire va se
mettre a l’intérieure de celui ci et il ne sera pas
renommé ‘comme un déplacement simple ‘
attention on écrase jamais un répertoire.
7. Que se passe-t-il si on lance mv avec les options
-i et -f ensemble ?
• Dans le cas où on veut déplacer un fichier dans
un répertoire qui contient un fichier avec le
même nom on a le choix entre la méthode
classique et les options parmi ces options on
distingue –i pour interactive et –f pour forcer.
• Le mv forcé c’est à dire si le fichier existe il
l’écrase sans rien demandé
• Comme son nom l’indique l’option interactive
demande à l’utilisateur est ce qu’il veut vraiment
écraser le fichier ou pas on peu répondre par Y
pour Yes ou une touche quelq pour non.
Page!10!! ! par!ASSOUALMA!Med!choaib!
IV. Exercices sur chmod
1. Créer un fichier texte file
touch [Link]
2. Quel est le propriétaire de file ? Et le groupe ?
Dans mon cas le proprietaire est choaib et le
groupe est Choaib ( 3eme et 4eme champs de ls –
l)
3. Ajoutez l'exécution au propriétaire et au groupe.
a)methode octal: chmod 755 [Link] (car umask par
defaut est 022 donc droit à la creation 644 on ajoute
l'éxecution)
b)methode symbolique:chmod u+x,g+x [Link]
ou bien
chmod ug+x [Link]
4. Affecter les mêmes droits du groupe aux autres
chmod o=g [Link]
5. En utilisant la méthode octale, modifier les
droits d'un répertoire rep donné, pour qu'il
deviennent : lecture, écriture et exécution pour
le propriétaire, lecture seule pour le groupe et
rien pour les autres
chmod 740 rep
6. même question que 5) en utilisant la méthode
symboliques
chmod u=rwx,g=r,o=- rep
7. Les changements des droits de la question 5) sur
rep, ont-ils été appliqués au contenu de rep ?
Sinon, que faut-il faire pour qu'ils soient
appliqués
[Link] que les changements soient appliqués sur
le contenu il faut faire chmod –R 740 rep
Page!11!! ! par!ASSOUALMA!Med!choaib!
V. Exercices sur les
Jokers
Remarque: Si le caractère spécial figure dans un motif grep ou awk
ou sed il est un caractère spécial d’expression régulière .Sinon si il
figure dans une commande chmod-ls-cp ….etc ou un nom de fichier
c’est un caractère spécial du shell Les ’ ’ annulent seulement la
signification des expressions du shell mais pas les motifs !!
1. Vous avez chez vous des fichiers appelés essai1,
essai2, essai3 et essai4. Comment les effacer en une
seule ligne de commande ?
• rm essai[1-4]
2. Dans mon répertoire d'accueil, j'ai un certain nombre
de fichiers avec un suffixe .c . Je désire les regrouper
dans un répertoire que j'appelerai C. Quelles sont les
commandes que je dois taper ?
• mv *.c C
3. Vous désirez regrouper dans un répertoire
Rangement les fichiers dont le nom contient trois
voyelles à la suite. Quelle(s) est/sont la/les
commande(s) à donner ?
• mv *[aeiouyAEIOUY][aeiouyAEIOUY][aeiouyAEIOUY]*
Rangement
• Vous désirez regrouper dans un répertoire
Rangement les fichiers dont le nom contient trois
[Link](s) est/sont la/les commande(s) à
donner ?
• mv *[aeiouyAEIOUY] * [aeiouyAEIOUY] *
[aeiouyAEIOUY]* Rangement
Page!12!! ! par!ASSOUALMA!Med!choaib!
4. En utilisant ls affichez la liste des fichiers dans /bin
dont le nom :
- Commence par «a» et dont la deuxième lettre est
«s» ou «t»
• ls /bin/a[st]*
ou bien
• ls /bin |grep '^a[st]'
I Contient «un» et se termine par «t»
• ls /bin/*un*t
ou bien
• ls /bin |grep 'un.*t$'
I Contient au moins deux lettres «m»;
• ls /bin/*m*m*
ou bien
• ls /bin |grep '.*m.*m'
• Contient au moins quatre caractères;
• ls /bin/????*
ls |grep '.....*'
ou bien
ls |grep '.\{4,\}'
• Contient exactement quatre caractères
• ls /bin/????
ls |grep '^....$'
ou bien
ls |grep '^.\{4\}$'
• Commence et finit par un chiffre.
• ls /bin/[0-9]*[0-9]
• ls |grep '^[0-9].*[0-9]$'
(
Page!13!! ! par!ASSOUALMA!Med!choaib!
VI. Exercices sur find
1) Comment chercher tous les fichiers commençant par
un «a» majuscule ou une minuscule, suivi de
n’importe quelle chaîne de caractère et se terminant
par un chiffre entre 3 et 6 ?
2) Comment fait-on pour indiquer que le fichier recherché
a été modifié il y a plus de 7 jours ? Il y a 7 jours ? Il y
a moins de 7 jours?
3) Comment chercher les fichiers modifiés plus
récemment qu'un autre fichier donné ?
On utilise l’option –newer de find, par exemple :
4) Comment fait-on pour spécifier que le fichier
recherché est un répertoire ?
On utilise :
• find (oû rechercher) –type d
5) Comment chercher les fichiers dont la taille est
supérieure à une taille donnée ?
• en utilisant find -size +(taille
caractère=octet)c ( find -size +20c (les ficher de
plus de 20 octets on peu également remplacer c par
w pour Word(2 octets) ou k pour kilo-octets ou M
pour Méga-octets ou G Giga-octets ou rien pour
bloc)
Page!14!! ! par!ASSOUALMA!Med!choaib!
6) Utiliser find pour effacer tous vos fichiers se terminant
par un tilde (~) qui ont plus d'un mois.
• Pour effacer tous les fichier find doit s'appliquer
depuis la rascine / car find cherche Seulement les
fichiers dans le repertoire courant et ses sous
repertoire
ou bien
find / -mtime +30 –name "*~" –delete
• xargs est indispensable dans cette deuxieme
methode car rm ne lit pas directement depuis
lentrée standart il faut utiliser .xargs sert à passer
les fichier trouvée à rm en argument
Page!15!! ! par!ASSOUALMA!Med!choaib!
VII. Exercices sur cat
1. Comment visualiser deux fichiers l'un après
l'autre à l'aide de la commande cat ?
2. Utiliser cat pour écrire un peu de texte et mettre
le résultat dans un fichier notes.
• Ou bien on utilise cat >file puis on a la main pour
écrire une fois terminé on tape ctrl+d et notre
saisie s’enregistre dans file
Page!16!! ! par!ASSOUALMA!Med!choaib!
• Quelle différence y a-t-il entre cat bla blo >>
blu et cat bla blo > [Link] se passe-t-il,
pour chaque ligne, selon que le fichier blu
existe ou n'existe pas ?
• La première nous permet d’ajouter le
contenu de bla et blo à la fin de blu on
gardant son contenu
• La deuxième nous permet de mettre le
contenu de bla et blo dans blu en
écrasant son contenu
• Si blu n’existe pas les deux commandes
seront identiques et il permettront de le
créer et copier les contenues de bla et
blo dans blu sinon si l’un des deux
autres fichiers n’existe pas on va copier
un seul et générer un message d’erreur
a la place de l’autre
3. Comment obtenir un fichier blo qui corresponde
à un fichier bla dont les lignes seraient
désormais numérotées ?
• en utilisant loption n de la commande
cat comme indiquée ci-dessous :
• cat –n bla >blo
Page!17!! ! par!ASSOUALMA!Med!choaib!
VIII. Exercices sur head et
tail
Remarque: dans les 4 dernieres questions l'ordre des commandes est
important car la deuxiéme commande est appliqué sur le resultat de la
premiere sinon si on passe le fichier on parametre pour la deuxieme leffet
de la 1ere est annulé est le resultat et celui de la dernieres commande sur le
contenu du fichier
1.
a. Affichez les 15 premières lignes du fichier
/etc/passwd,
head -15 /etc/passwd
Ou bien
head –n +15 /etc/passwd
Sinon si on connaît le nombre de ligne dans notre
fichier on peut faire par exemple si notre fichier
contient 20 lignes alors pour afficher les 15
premières
head –n -5 file
C’est à dire head –n –k file Affiche les L-k premières
lignes avec L le nombres total de lignes.
• head file affiche par défaut les 10 premières lignes
b. Les 15 dernières lignes :
tail -15 /etc/passwd
Ou bien
tail –n -15 /etc /passwd
• tail file affiche par défaut les 10 dernières lignes.
c. Toutes les lignes à partir de la quinzième :
tail –n +15 /etc/passwd
d. Les lignes 15 à 20 :
head -20 /etc/passwd | tail -n +15
Ou bien
taille -n +15 /etc/passwd | head -20
Page!18!! ! par!ASSOUALMA!Med!choaib!
2. Récupérer les lignes 5 à 9 d'un fichier de 12 lignes.
head –n -3 file | tail –n +5
Ou bien
head -9 /etc/passwd| tail -n +5
3. Comment afficher la cinquième ligne d'un fichier ?
• head -5 /etc/passwd | tail -n +5
4. tous les mots dont la seconde lettre est r
grep -o '\<.r.*' file|awk '{print $1}'
ل,432 ا10,/ .-+* و,+* "&'() ا.%$ا" و
Page!19!! ! par!ASSOUALMA!Med!choaib!