TP1
Exercice 1 :
1-Creation d’une commande des fichiers :
touch fiche1 fiche2 Fiche4 fiche45 fiche41 Fichier510
2- Lister tous les fichiers :
a- Se terminant pat 1
ls*1
b- Commençant par fiche4
ls fiche4*
c- Commençant par fiche4 et de 7 caractères maximum
ls fiche4 ?
d- Commençant par fiche et se terminant par 2 chiffres numériques
ls fiche[0-9][0-9]
e- Contenant la chaine « hier »
ls *hier*
f- Commençant par f ou F
ls [Ff]*
3-Creation des répertoires « Files » et « tmp » et déplacer les fichiers crées précédemment dans le
répertoire « Files » :
mkdir Files tmp
mv [Ff]* Files/
4- Copier les fichiers dont l’avant dernier caractère est un 4 ou 1 dans le répertoire tmp en une
seule commande :
cp *[41] ?../tmp
Page | 3
Exercice 2 :
mkdir catalogue
touch fiche1 fiche2 fiche22 fiche30 fiche40 fiche41 fiche lettre1 [Link] [Link]
program.c programme emploiA emploiB
1-Le résultat de la commande ls dans les cas suivants :
a- ls *.*
[Link] [Link] program.c
b- ls*.c
program.c
c- ls p*
[Link] [Link] program.c programme
d- ls *e*
fiche1 fiche2 fiche22 fiche30 fiche40 fiche41 fiche lettre1 programme emploiA
emploiB
e- ls fiche[0-9]
fiche1 fiche2
f- ls fiche[0-9]*
fiche1 fiche2 fiche22 fiche30 fiche40 fiche41
g- ls fiche[ !0-9]*
fiche1 fiche2 fiche22 fiche30 fiche40 fiche41 fiche
h- ls lettr??
lettre1
2- Création d’un un sous répertoire de « catalogue » appelé « catalogue3 » :
mkdir -p catalogue/catalogue3
Page | 4
3- Copier tous les fichiers présents dans le répertoire « catalogue » se terminant par un caractère
numérique dans le « catalogue3 » :
cp -r * [0-9] catalogue3/
4- La même commande de la question 3 en utilisant l’option i :
cp -ri * [0-9] catalogue3/
5- La même commande de la question 3 en utilisant l’option f :
cp -rf * [0-9] catalogue3/
6-Vider le contenu de votre répertoire courant *
rm -pf
Exercice 3 :
1-Creation des répertoires en utilisant mkdir avec l’option -p :
mkdir -p F1/F11 F1/F12 F1/F13 F2/F21 F2/F22 F2/F23
2- Créer le fichier ch1 dans le répertoire F22 :
cd F2/F22
touch ch1
3- Copier ch1 dans F11 sous le nom ch2 :
cp F2/F22/ch1 F1/F11/ch2
4- Copier ch2 dans F12 sous le nom ch3 : *
cp F1/F11/ch2 F1/F12/ch3
5- Lier ch2 à ch4 dans F13
cd F11
ln ch2 ch4
mv F1/F11/ch4 F1/F13
Page | 5
6- Lier ch1 à ch5 dans F13
cd F22
ln ch1 ch5
mv F2/F22/ch5 F1/F13
7- Modifier le fichier ch2 en utilisant la commande cat
cat >F1/F11/ch2
8-Afficher le contenue du fichier ch4
cat ch4
9- Supprimer le fichier ch2
rm -pf ch2
10- Copier ch1 dans F1 sous le nom ch6
cp F2/F22/ch1 F1/ch6
11- Quel est le nombre de liens pour chacun des fichiers suivants : ch1 ch3 ch4 ch5 ch6
ls -links F1/F11/ch2 F1/F12/ch3 F1/F13/ch5 F1/F13/ch4 F1/ch6 F2/F22/ch1
12- Supprimer de deux façons les deux arborescences suivantes F1 et F2
rm -r F1 F2
Page | 6
TP2
Exercice 1 :
1) Créer un fichier [Link] :
touch [Link]
cat > [Link]
2) Visionner le fichier avec la commande « more » :
more [Link]
3) A l’aide de « grep » afficher les lignes suivantes :
a- Contenant l’expression « berry» :
grep 'berry' [Link]
b- Contenant l’expression « appLES » en ignorant la casse :
grep -i 'appLES' [Link]
c- Ne contenant pas l’expression « apples » :
grep -v 'apples' [Link]
d- Dont le fruit commence par la lettre « s » :
grep ^[s] [Link]
e- Dont le fruit commence par une voyelle minuscule :
grep ^[aeiouy] [Link]
f- Dont le fruit commence par la lettre « I » ou une lettre comprise entre « a » et « g » :
grep ^[I,a-g] [Link]
g- Dont le fruit ne commence pas par une voyelle :
grep -v ^[aeiouy] [Link]
h- Dont le fruit ne commence pas par une lettre comprise entre « a » et « m » :
grep -v ^[a-m] [Link]
Page | 7
i- Dont le prix se termine par 79 :
grep 79$ [Link]
j- Dont le prix ne se termine pas par 9 :
grep -v 9$ [Link]
k- Dont le prix se termine par 9 mais pas par 39 , 69 , 79 , 89 :
grep [012459]9$ [Link]
l- Dont le prix ne se termine pas par 09 , ni par 39 , ni par 79 :
grep -v [037]9$ [Link]
4) En une seule commande supprimer votre répertoire courant :
rm -rf
Exercice 2 :
1) Dans le répertoire de travail , créer un répertoire « tpunix » :
mkdir tpunix
2) Copier le fichier « /etc/passwd » dans le répertoire « tpunix » sous le nom de « des_lignes » :
cp /etc/passwd tpunix/des_lignes
3) Afficher le contenu de ce fichier :
cat -n des_lignes
4)Faire afficher la première ligne de « des_lignes » :
head -n 1 des_lignes
5) Utiliser un nombre négatif en argument de l’option -n, faire afficher « des_lignes » mais pas ses
deux dernières lignes :
head -n -2 des_lignes
Page | 8
6) Faire afficher les deux dernières lignes de « des_lignes » :
tail -n 2 des_lignes
7) Utiliser un nombre positif en argument de l’option -n, faire afficher « des_lignes » mais pas ses
cinq premières lignes :
tail -n +6 des_lignes
8) Faire afficher les deux premières lignes de tous les fichiers d’extension « .txt », sans en-tête :
head -n 2 -q *.txt
Exercice 3 :
1)Rechercher le fichier ordinaire « [Link] » dans l’arborescence du répertoire personnel :
find ~ -type f -name"[Link]"
2) Rechercher le répertoire « tpunix » dans l’arborescence de répertoire personnel :
find ~ -type d -name"tpunix"
3)Rechercher tous les fichiers ordinaires vous appartenant dans toute l’arborescence du système
de fichiers (depuis la racine) :
find / -type f
4)Afficher les references des fichiers ordinaires vous appartenant contenus dans l’arborescence
du système de fichiers et qui ont été modifiés il y a moins d’une semaine :
find / -type f -mtime -7 -ls
5) Afficher tous les noms des fichiers répertoires commençant par une lettre majuscule :
find ~-type d -name "[A-Z]*"
6) Afficher tous les fichiers normaux ayant pour taille 150Ko :
find ~-type f -size 150k
7)Afficher tous les répertoires ayant l’autorisation d’accès ‘755’ :
find ~ -type d -perm 755
Page | 9
TP3
Exercice 1:
1) Dans votre répertoire de travail personnel, créer un répertoire que vous appellerez catalogue et
les fichiers suivants : fich1, fich2, fich3, prog.c, f1.c, f2.c.
mkdir catalogue
cd catalogue
touch fich1 fich2 fich3 prog.c f1.c f2.c
2) Quels sont les droits d’accès attribués à ces fichiers.
ls -l
Tous les fichiers ont : rw-rw-r--
3) Placez les valeurs de ces droits d’accès aux fichiers suivants
➢ symbolique
chmod u=rwx,g=rw,o=r fich1
chmod u=r,g=r,o=r fich2
chmod u=x,g=x,o=r fich3
➢ octale
chmod 764 fich1
chmod 444 fich2
chmod 114 fich3
4) Déplacez-vous dans le répertoire catalogue et créez un fichier fich4.
touch fich4
5) Comment appeler la commande umask pour attribuer à tous les nouveaux fichiers les droits
d’accès ‘rw-r---w-‘.
umask 024
6) Changer les modes d’accès de tous les fichiers qui ont une extension ’.c ‘ en ‘rw-r-xr-x‘.
chmod 655 *.c
Page | 10
7) Supprimer le mode ‘x’ pour le groupe au niveau du fichier fich3.
chmod g-x fich3
8) Rajoutez le mode ‘w’ pour le propriétaire et enlevez ‘r’ aux autres du fich3
chmod u+w,o-r fich3
9) Changer le propriétaire de ce fichier.
Il faut ajouter un user pour travailler avec cette commande
chown user fich3
Exercice 2:
1) Créer un fichier texte fic1 et changez ses droits d’accès pour que tous ceux de votre groupe
puissent écrire dedans.
touch fic1
chmod g+w fic1
2) Donnez en une seule ligne le droit d'exécution à tous les utilisateurs d'un fichier [Link] qui
n'a jusqu'alors que des droits standards (-rw-r--r--).
chmod a+x [Link]
3) Le fichier toto a les droits suivants : -rwxr--r--. Modifiez-en les droits en une ligne de
commande de sorte que le propriétaire n'ait plus que le droit de lecture.
touch toto
chmod u-wx toto
4) Modifier les droits du fichier toto (-rwxr--r--) de sorte que le groupe et les autres utilisateurs
aient les mêmes droits que le propriétaire.
chmod g+wx,o+wx toto
5) Quelle option permet de modifier récursivement les droits d'un répertoire et des fichiers qu'il
contient ?
chmod -R u=r,g=w,o=r /home/nom d'utilisateur
6) Comment appeler la commande pour attribuer à tous les nouveaux fichiers les droits d’accès
‘r---w-r--‘.
umask 242
Page | 11
Exercice 3:
1) Vérifiez les droits de votre répertoire utilisateur. Que peuvent y faire les autres utilisateurs ?
ls -l
2) Créez un répertoire nommé rep. Quels sont les droits de ce répertoire ?
mkdir rep
ls -l
3) Créez un fichier texte [Link] dans le répertoire rep. Changer l’identité de l’utilisateur et
essayer de lire le contenu du fichier. Peut-il le supprimer ?
touch [Link]
4) Placez-vous dans le répertoire père de rep et retirez-vous les droits en lecture sur ce répertoire.
Pouvez-vous lister le contenu du répertoire ? Pouvez-vous visualiser le contenu de [Link] ?
Rétablissez le droit en lecture sur rep.
cd..
chmod g-r rep
cd rep
ls
cat [Link]
chmod g+r ../grep
5) Créez le fichier [Link] dans rep. Supprimez les droits en écriture au répertoire rep ainsi
qu'au fichier [Link]. Modifiez [Link]. Est-ce possible ? Pourquoi ?
touch [Link]
chmod d-w ../rep
6) Essayez de faire une copie de [Link] en [Link].
cat>> [Link]
cp [Link] [Link]
Page | 12
7) Ajoutez le droit d'écriture et enlevez le droit d'exécution du répertoire rep. Essayez de créer un
fichier dans rep. Essayez de lister le contenu de rep. Essayez de vous déplacer dans rep. Qu'en
concluez-vous sur l'utilisation du droit d'exécution sur un répertoire ?
chmod g-x+w /rep
ls
cd
TP4
Exercice 1:
1) Dans votre répertoire courant, créez en une commande les fichiers suivants : annee1 Annee2
annee4 annee45 annee41 annee510 en utilisant la commande touch
touch annee1 Annee2 annee45 annee41 annee 510
2) Dans votre répertoire courant, créez le répertoire R
mkdir R
3) Dans votre répertoire courant, Copier la liste des fichiers et leurs attribues dont l'avant dernier
caractère est un 4 ou 1 dans le fichier ch1 dans R.
ls -l *[14]? > R/ch1
4) Afficher le contenue de ch1
cat R/ch1
5) Copier la date du système dans le fichier ch1 dans R
date > ch1
6) Afficher le contenue de ch1
cat ch1
7) Ajouter au contenu du fichier ch1, la liste des fichiers et leur attribues dont l'avant dernier
caractère est un 4 ou 1
ls -l *[14]? >>ch1
Page | 13
8) Que ce passe-t-il si vous taper les commandes suivantes :
ls -l [aA]* > ch2
liste tous les fichiers et leurs attributs commençant par "a" et "A" du fichier ch2
wc <ch2
affiche le nombre de lignes de ch2
ls -l [aA]* |wc
liste tous les fichiers et leurs attributs commençant par "a" et "A" du fichier ch2 et
affiche le nombre de lignes, mots et caractères
Exercice 2:
1) Créer un répertoire essai-grep dans votre home directory. Dans ce répertoire créer des fichiers
mkdir essai-grep
cd essai-grep
touch tomate poire pomme cerise Fraise fraise courgette POMME3 afraise
2) Afficher les noms des fichiers (sortie de la commande ls redirigée vers grep) avec les critères
sur leur nom suivant :
a) Critère 1 Le nom doit être Fraise ou fraise
grep [Ff]raise
b) Critère 2 « se » est en fin de nom
ls | grep se$
c) Critère 3 « ai »est présent dans le nom
ls | grep "ai"
d) Critère 4 Nom contenant un chiffre numérique
ls | grep [0-9]
3) En une seule commande supprimer votre répertoire courant (travail).
rm -rf essai-grep
Page | 14
Exercice 3:
1) 1) 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/lib dont le nom commence par lib.
mkdir inc ; cp -r /usr/lib/lib* inc 2>/dev/null
( 2>/dev/null) : pour ne pas afficher les messages d'erreur
2) Afficher la liste des fichiers de /usr/lib dont le nom commence par a, b ou c.
ls /usr/lib/[abc]*
3) 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é "[Link]" de votre répertoire de connexion.
ls /usr/lib/[abc]* > [Link]
4)Afficher le contenu de ce fichier en utilisant la commande cat. Copier avec cat son contenu dans
un nouveau fichier nommé "Copie".
cat [Link]
cat [Link] > copie
5) Toujours avec cat, créer un nouveau fichier nommé "Double" formé par la mise bout à bout
(concaténation) des fichiers "[Link]" et "Copie". Vérifier que le nombre de lignes a bien doublé
à l’aide de la commande wc.
cat [Link] copie >> double
cat double | wc -l
6) Créer un fichier nommé "Temp" contenant une ligne de texte.
cat > temp
Bonjour
7) Avec cat, ajouter la ligne "The end" à la fin du fichier "Temp”.
cat >> temp
the end
8) En une seule ligne de commande, faire afficher le nombre de fichiers de /usr/lib dont le nom
contient la lettre t.
ls /usr/lib | grep 't' | wc -l
Page | 15
Exercice 4 :
1) Afficher la liste des répertoires de connexion des utilisateurs déclarés dans le fichier
/etc/passwd.
cat /etc/passwd | cut -d: -f 1
2)On rappelle qu’à chaque utilisateur est associé un interpréteur de commandes (shell) lancé lors
de son login. La commande correspondante est indiquée dans le 7ième champ du fichier
/etc/passwd. Afficher en une ligne de commande le nombre d’interpréteurs de commandes
différents mentionnés dans /etc/passwd.
cat /etc/passwd | cut -d: -f 8 | sort | uniq | wc -l
3) On dispose d'un fichier texte [Link] contenant un petit carnet d’adresses. Chaque ligne
est de la forme "nom : prénom : numerotelephone". Les champs sont séparés par « : ». Répondre
aux questions suivantes en utilisant à chaque fois une ligne de commande shell:
a- Afficher le carnet d’adresse trié par ordre alphabétique de noms.
sort -t: -k 1 [Link]
b-Afficher le nombre de personnes dans le répertoire.
cat [Link] | wc -l
c-Afficher toutes les lignes concernant les “Hicham”.
cat [Link] | grep 'hicham'
(grep -n ==> pour afficher les lignes contenant hicham)
d-Afficher toutes les lignes ne concernant pas les “Hicham”.
cat [Link] | grep -v 'hicham'
e-Afficher le numéro de téléphone (sans le nom) du premier “ Hicham ” apparaissant dans le
répertoire.
cat [Link] | grep -m 1'hicham' |cut -d : -f3
f-Afficher le numéro de téléphone (sans le nom) du premier “ Hicham ” dans l’ordre alphabétique
cat [Link] | sort -t: -k 1 | grep -m 1'hicham' |cut -d : -f3
Page | 16