Académique Documents
Professionnel Documents
Culture Documents
GNU/ LINUX
EL BAHRI Nisserine
elbahri_nisserin@upf.ac.ma
SYSTÈME D’EXPLOITATION
SYSTÈME D’EXPLOITATION
➢ Services gérés par le système d’exploitation :
Linus Torvalds
HISTORIQUE (UNIX)
UNIX (PHYLOSOPHIE)
Sous unix, tout est fichier
• fichiers (!)
• répertoires
• devices
• liens
• pipes
• sockets
UNIX (PHYLOSOPHIE)
Sous unix, les fichiers doivent être
• lisibles par l'homme
• exploitables simplement par la machine
1x109 FLOPS
20x103 MIPS
1 MIPS
GNU/LINUX (LE KERNEL ET L’OS)
Kernel : Linux
• mise à disposition des ressources machines
▪ entrées
▪ allocation mémoire
• gestion d'accès aux ressources machines
▪ droits
▪ ordonnancement
▪ gestion des accès
• modulaire
▪ chargement déchargement de modules (drivers)
▪ automatique ou manuel
GNU/LINUX (LE KERNEL ET L’OS)
GNU/LINUX (LES DISTRIBUTIONS)
GNU/LINUX (LES DISTRIBUTIONS)
GNU/LINUX (LES DISTRIBUTIONS)
• Payantes (RHEL), semi-payantes (Mandriva)
• gratuites (presque toutes)
• Pour l'expert (Debian), le débutant (Kubuntu),
le maniaque (LFS), le patient (Gentoo), le
nostalgique (Yggdrasil, Slackware)
• Orientée bureautique (Ubuntu), serveur
(Trustix) ou généraliste (SuSE, Fedora)
• Plus de 350 distributions sur le «marché»
GNU/LINUX (LES DISTRIBUTIONS)
• Points communs ?
▪ kernel
▪ outils GNU
• Différences ?
▪ système de packages (rpm, apt, …)
▪ fichiers de configuration
▪ fichiers de démarrage
▪ organisation et type du filesystem
▪ philosophie
▪ canaux de distribution
▪ méthode d'installation, de configuration
▪ outils
▪ …
ATELIER
• Installation d'Ubuntu comme machine virtuelle
▪ Installer Vmware
▪ Installer Ubuntu à partir d’une image iso
▪ Mettre à jour
▪ Explorer Ubuntu
▪ Indicators (haut à droite)
▪ Menu bar
▪ Launcher (barre à gauche)
▪ Dash
▪ workspaces
▪ System Settings
▪ Changer l’apparence
▪ La résolution
▪ La souris
▪ Langue du clavier
▪ Paramètres réseau
CRÉATION D’UNE MACHINE VIRTUELLE
2
CRÉATION D’UNE MACHINE VIRTUELLE
3
CRÉATION D’UNE MACHINE VIRTUELLE
4
CRÉATION D’UNE MACHINE VIRTUELLE
6
CRÉATION D’UNE MACHINE VIRTUELLE
7
CRÉATION D’UNE MACHINE VIRTUELLE
8
CRÉATION D’UNE MACHINE VIRTUELLE
9
CRÉATION D’UNE MACHINE VIRTUELLE
10
CRÉATION D’UNE MACHINE VIRTUELLE
11
CRÉATION D’UNE MACHINE VIRTUELLE
12
CRÉATION D’UNE MACHINE VIRTUELLE
13
CRÉATION D’UNE MACHINE VIRTUELLE
14
CRÉATION D’UNE MACHINE VIRTUELLE
15
CRÉATION D’UNE MACHINE VIRTUELLE
16
FIN CRÉATION D’UNE MACHINE VIRTUELLE
ETAPES D’INSTALLATION
1
ETAPES D’INSTALLATION
3 4
7
ETAPES D’INSTALLATION
9
8
ETAPES D’INSTALLATION
10
ETAPES D’INSTALLATION
11
ETAPES D’INSTALLATION
13
12
ETAPES D’INSTALLATION
14
ETAPES D’INSTALLATION
15
ETAPES D’INSTALLATION
16
ETAPES D’INSTALLATION
17
18
ETAPES D’INSTALLATION
19
20
ETAPES D’INSTALLATION
ETAPES D’INSTALLATION
21
ETAPES D’INSTALLATION
22
23
24
ETAPES D’INSTALLATION
25 26
27
ETAPES D’INSTALLATION
29
28
ETAPES D’INSTALLATION 30
31
33
32
ETAPES D’INSTALLATION
35
34
ETAPES D’INSTALLATION
36
FIN D’INSTALLATION
SHELL (DEFINITIONS)
Invité de commandes
SHELL (DEFINITIONS)
➢ Remarque :
➢ Exemple :
echo $SHELL
➢ Autre exemple :
SHELL
• On peut exécuter plusieurs shells en parallèle (unix est multitâche)
• Plusieurs utilisateurs peuvent exécuter un shell en même temps (unix est
multiutilisateurs)
SHELL (INTERET)
• Chaque utilisateur possède un shell par défaut, qui sera lancé à
l'ouverture d'une invite de commande. Le shell par défaut est précisé
dans le fichier de configuration /etc/passwd dans le dernier champ
de la ligne correspondant à l'utilisateur :
➢ Ou bien :
➢ Exemple :
SHELL
Par défaut dans la plupart des shells le prompt est composé du nom
de la machine, suivi de deux points (:), du répertoire courant, puis d'un
caractère indiquant le type d'utilisateur connecté :
/ : racine
/bin : contient les commandes de base (sous Unix, presque toutes les
commandes sont "externes", et non intégrées au shell comme sous DOS).
/boot : contient les informations nécessaires au démarrage de la machine.
➢ Exemple :
FILESYSTEM (BALADE DANS LE FS)
➢ Exemple :
PRINCIPAUX RACCOURCIS CLAVIER
➢ Gestion des documents :
PRINCIPAUX RACCOURCIS CLAVIER
➢ Edition :
SHELL (E/S)
• Entrées-sorties standard
➢ Exemple :
ls –al > test.txt
cat /etc/passwd >> test.txt
echo “hello” > fich1.txt
▪ «<» indique une redirection de l'entrée standard.
➢ Exemple :
cat < fs
SHELL (E/S)
➢ Exemple :
SHELL(PIPES)
• Les «pipes» (pipelines) permettent d'envoyer la sortie d'une
commande (STDOUT) à l'entrée d'une autre (STDIN) :
• exemples
cp *.txt /tmp
cp Bureau/test.txt Documents/toast.txt
cp -R controles Bureau/backup
mv source destination
➢ déplace la source (fichier ou répertoire) vers la destination (fichier ou
répertoire)
➢ Exemple : mv *.txt /tmp
• Remarque :
Ce ne sont pas des expressions régulières
TP1 : EXERCICE 2
1. Créer les fichiers suivants:
panacota tiramisu anaconda annee2021 annee40
annee4200 annee4a annee4mode Aéroport Aérobie5
Desserts
ls *5
ls annee4*
ls annee4?
ls annee[!0-9]*
ls *ana*
ls [aA]*
TP1 : EXERCICE 3
• En utilisant la commande echo répondre aux questions
suivantes :
1. afficher tous les fichiers se trouvant dans votre répertoire courant.
2. afficher tous les fichiers qui commence par la lettre « D » et qui se trouvent
dans votre répertoire courant.
3. afficher tous les fichiers qui se terminent par un « s ».
4. afficher tous les fichiers qui commencent par « D » et se terminent par « s »
et ont le caractère « n » au milieu.
5. afficher les fichiers qui ont exactement six caractères dans leurs noms.
6. afficher les fichiers qui ont 8 caractères dans leurs noms et qui commencent
par « D ».
7. afficher les fichiers dont les noms contiennent au moins 6 caractères et se
terminent par un « s ».
8. afficher les fichiers qui commencent par un « D » ou un « P ».
9. afficher les fichiers qui ne commencent par un « D » ou un « P ».
10. afficher les fichiers qui commencent par une lettre comprise entre « D » et
« P ».
11. afficher les fichiers qui commencent par une lettre qui n'est pas comprise
entre « D » et « P ».
TP1 : SOLUTION D’EXERCICE 3
1. echo *
2. echo D*
3. echo *s
4. echo D*n*s
5. echo ??????
6. echo D???????
7. echo *?????s ou echo ?????*s
8. echo [DP]*
9. echo [!DP]*
10. echo [D-P]*
11. echo [!D-P]*
SHELL(PIPES)
➢ Exemple :
➢ Exemple : cat fichier > /dev/null && echo "le fichier existe"
➢ Exemple :
cat fichier > /dev/null|| echo "le fichier n'existe pas"
SHELL: JOB CONTROL
Linus Torvalds
EDITEURS (AUTRES)
la différence entre les éditeur est par rapport aux thèmes, rapidité, le
nombre de fonctionnalité, sont-ils destinés à la programmation comme
« Geany » ou au texte,…
• CLI (command line interface) : aee, ed, e3, joe, jed, nano, pico,....
• XWindow : xed, xwpe, axe,...
• Gnome (GNU Network Object Model Environment) : gedit, gnotepad+,
scite,
• scribes...
• KDE : kate, kedit, ...
COMMANDES DE BASE (VIM)
Vim : il s'agit d'une version améliorée de l'un des plus anciens
éditeurs en console : « Vi », il permet l’édition du texte.
COMMANDES DE BASE (VIM)
Installer vim : sudo apt install vim
Pour consulter le tutoriel vim : vimtutor fr
➢ Exemple :
Sortir de vim sans enregistrer: Echap puis taper: « :q! »
Saisir du texte: taper: « i »
Enregistrer les insersion: taper « :x »
Effacer la saisie : Echap puis taper « d » ou cliquer sur « delete »
Enregistrer puis quitter : taper « :wq! »
COMMANDES DE BASE (VIM)
COMMANDES DE BASE (EGREP)
Egrep : permet la recherche dans des fichiers
• D'un caractère ou d'une chaîne de caractères
• Simplement d'un mot
• D'une chaîne formalisée par une expression régulière
() groupage d’expressions
[0-9] un chiffre
[ ] caractère ou un autre
➢ Exemple 1 :
egrep “n” test.txt
egrep “^n” test.txt
➢ Exemple 2 :
Ls | egrep “e$”
➢ Exemple 3 :
egrep -i "effacez moi" fichier && rm -f fichier1
egrep -i "gardez moi" ~/fichier.txt || rm -f fichier2
N.B
^ : exprime aussi la négation
➢ Exemple 4 : egrep “^[^n]” test.txt
COMMANDES DE BASE (EGREP)
• Matcher une ligne commençant par « foo » :
egrep "^foo*"
• Matcher une ligne commençant par « foo » ou contenant « bar » :
egrep "^foo|bar"
• Matcher une ligne commençant par « foo » ou commençant par « bar » :
egrep "^(foo|bar)"
• Matcher une ligne commençant par « foo » et contenant « bar » :
egrep "^foo.*bar"
• Matcher une ligne commençant par « foo » et se terminant par « bar » :
egrep "^foo.*bar$"
• Matcher une ligne contenant le caractère '*' :
egrep "\*"
• Matcher une ligne contenant le caractère '*' ou le caractère '?' :
egrep " \*|\?"
COMMANDES DE BASE (EGREP)
Exemples d'expression régulière :
:Les expressions "space" et "tab" représentent les touches [espace] et [tabulation].
La tabulation est représentée par les caractères ‘\t’ ou <Ctrl-V><tab>.
Regex Signification
Aujourd'hui il y a du soleil, mais demain il pleut !
soleil soleil toujours.
Passer ses vacances au soleil.
3.
➢ Solution :
1 cd cp /etc/passwd ~
2 egrep "^nomlogin" passwd
3 cat passwd | egrep "^nomlogin"
TP2 : EXERCICE 3
1. Rediriger le contenu du fichier « passwd » dans un
nouveau fichier « logins » dans home directory.
2. Ajouter le nom « ahmed », « saad » et « sara2021 » à l’aide
de la commande echo dans le fichier « logins », chaque
nom dans une ligne.
3. Dans le fichier « logins » ,Afficher les lignes des noms de
login ne contenant pas de chiffre.
4. Afficher les lignes du fichier « logins » commençant par
des noms de login de 3 ou 4 caractères.
➢ Solution :
TP2 : EXERCICE 4
2. contenant l’expression appLES en ignorant la casse.
3. ne contenant pas l’expression apple.
4. contenant le mot apples.
5. dont le fruit commence par la lettre s.
6. dont le fruit commence par une voyelle minuscule.
7. dont le fruit commence par la lettre p ou une lettre comprise entre a et g.
8. dont le fruit ne commence pas par une voyelle.
9. dont le fruit ne commence pas par une lettre comprise entre a et m.
10.dont le nom comporte au moins 6 lettres.
11.dont le nom comporte exactement 5 lettres, ni plus ni moins !
12.dont le fruit commence par un p et comporte un maximum de 7 lettres.
13.dont le prix se termine par 79.
14.dont le prix ne se termine pas par 9.
15.dont le prix se termine par 9 mais pas par 39, 69, 79, ni 89.
16.dont le prix ne se termine pas par 09, ni par 39, ni par 79.
17.dont le prix contient un point. On considère que le seul point présent dans chaque ligne marque la décimale du prix.
18.dont le prix est inférieur à 1 euro. Il n’y a pas besoin de comparaisons numériques pour cela. . .
19.dont le prix est inférieur à 1 euro et dont le nom commence par une lettre comprise entre a et g.
20.dont le prix est supérieur ou égal à 1 euro mais inférieur strictement à 1.50 euros.
21.dont la première lettre du fruit est comprise entre a et e, et dont la deuxième lettre est a ou e.
22.dont la première lettre du fruit est comprise entre p et t, ou dont la deuxième lettre est a ou e.
TP2 : SOLUTION D’EXERCICE 4
1. egrep "berries" fruits.txt
2. egrep -i "appLES" fruits.txt
3. egrep -v "apple" fruits.txt
4. egrep -w "apples" fruits.txt
5. egrep "^s" fruits.txt
6. egrep "^[aeyuio]" fruits.txt
7. egrep "^[pa-g]" fruits.txt ou bien egrep "^(p|[a-g])" fruits.txt
8. egrep -vi "^[aeyuio]" fruits.txt ou bien egrep "^[^aeyuioAEYUIO]" fruits.txt
9. egrep -v "^[a-m]" fruits.txt ou bien egrep "^[^a-m]" fruits.txt
10. egrep "^[a-zA-Z]{6,}$" fruits.txt
11. egrep -w "^[a-zA-Z]{5}$" fruits.txt
12. egrep "^p[a-zA-Z]{0,6}$ " fruits.txt
13. egrep "79$" fruits.txt
14. egrep -vi " [9a-z]$" fruits.txt ou egrep "[^9a-zA-Z]$" fruits.txt ou egrep "[0-8]$" fruits.txt
15. egrep "[^36-8]9$" fruits.txt
16. egrep -v "(09|39|79|[A-Za-z])$" fruits.txt
17. egrep "\." fruits.txt
18. egrep " 0\." fruits.txt ou bien egrep " 0\.[0-9]" fruits.txt
19. egrep "^[a-g].* 0\." fruits.txt ou bien egrep "^[a-g].* 0\.[0-9]" fruits.txt
20. egrep "1\.[0-4]" fruits.txt
21. egrep "^[a-e][ae]" fruits.txt
22. egrep "^[p-t]|^.[ae]" fruits.txt
COMMANDES DE BASE
(CAT, LESS, TEE ET WC)
cat fichier1 fichier2 ...
affiche le contenu de fichier1 fichier2 ... sur la sortie standard
wc option fichier
compte le nombre de lignes (-l), bytes (-c), mots (-w) .... dans fichier
➢ Exemple : wc -l /etc/passwd
COMMANDES DE BASE (CUT)
cut :permet d'afficher des zones spécifiques d'un fichier
➢ Syntaxe : cut option fichier1 fichier2 ...
La commande cut attend en paramètre un ou plusieurs fichiers;
si plusieurs fichiers sont fournis alors ces derniers seront concaténés.
options
-c : Couper par caractères
-f : Couper par champs
-d : permet d'exprimer le caractère séparateur de champ.
Le caractère séparateur par défaut est la tabulation.
➢ Exemple :
cut -c 3 Bureau/testvim.txt
cut -d: -f1,6,7 /etc/passwd
COMMANDES DE BASE (TR)
Tr :permet de convertir une chaîne de caractères, supprime et serre
les caractères de l'entrée standard et écrit le résultat dans la sortie
standard..
➢ Syntaxe : tr option caractère caractère
options
-c : Tous les caractères qui ne sont pas spécifiés dans la première
chaîne sont convertis selon les caractères de la seconde.
-d : Efface le caractère spécifié.
-s : si le caractère spécifié se répéte plusieurs fois de suite, il est réduit
à une seule unité.
➢ Exemple :
tr "[a-z]" "[A-Z]" < Bureau/fruits2.txt
echo football | tr -c o t
tr -d "0" < /etc/passwd
tr -s "0" < /etc/passwd
COMMANDES DE BASE (TAIL & HEAD)
head [nX] fichier1 fichier2 ...
affiche les X premiers lignes de fichier1 fichier2 ... sur la sortie standard si
tail est appellé sans arguments, la source est l'entrée standard
Une combinaison des deux permet d'afficher la nième ligne d'un fichier :
head -n10 /etc/passwd | tail -n1 : affiche la 10ème ligne de /etc/passwd
head -n20 /etc/group | tail -n3 : affiche les lignes 18 à 20 lignes de /etc/group
COMMANDES DE BASE
(COMPRESSION)
GZIP
Compression: gzip fichier
Décompression: gunzip fichier.gz
Option Signification
-1...-9 Qualité et la vitesse de compression; -6 par défaut.
-l Permet d'obtenir des informations sur le fichier compressé.
-c Permet d'écrire les résultats sur la sortie standard.
-k Permet de compresser le fichier et de conserver le fichier original
-d Permet de décompresser le fichier
➢ Exemple :
bzip2 test2.txt
bunzip2 test2.txt.bz2
COMMANDES DE BASE (ARCHIVE)
tar
Archivage: tar [options] nom d’archive.tar dossier
ou tar [options] fichier1 fichier2 …
Option Signification
-c signifie créer une archive tar
-v signifie afficher le détail des opérations
-f signifie assembler l'archive dans un fichier
-r Ajouter à un archive existant
-t Afficher le contenu sans extraction
-x Extraire de l’archive
-z Compression gzip
-j Compression bzip2
➢ Exemple :
sort fruits
➢ Exemples :
sort Bureau/fruits.txt -o testsort
sort -k3.1,3.3 /etc/services
TP3 : EXERCICE 1
1. Afficher le contenu du fichier /etc/hdparm.conf avec un arrêt
à chaque page.
2. Afficher le nombre de lignes, de bytes et de mots du fichier
/etc/protocols dans le stdout puis sauvegarder le résultat dans
un autre fichier « résultat.txt » (utiliser une seule commande).
3. Afficher les lignes du fichier /etc/protocols .
4. Afficher les lignes de 5 à 13 contenus dans le fichier
/etc/protocols .
5. Afficher les informations suivantes (provenant de /etc/passwd)
: nom de connexion de l'utilisateur, nom complet (champ libre)
et shell attribué à l'utilisateur.
➢ Comme suivant :
TP3 : SOLUTION D’EXERCICE 1
1. less /etc/hdparm.conf
3. cat /etc/protocols
a. Trier le fichier par ordre croissant la colonne « Résultat ». Les deux lignes
titres doivent figurer dans la sortie triée.
b. Trier le fichier par ordre décroissant la colonne « Résultat ». Les deux
lignes titres doivent figurer dans la sortie triée.
c. Trier par nombre le fichier par ordre croissant la colonne « Résultat ». Les
deux lignes titres doivent figurer dans la sortie triée.
d. Trier le fichier par ordre croissant la colonne « Résultat », puis la colonne
«Nom». Les deux lignes titres doivent figurer dans la sortie triée.
➢ Syntaxe :
uniq option file
Option :
-c: affiche le nombre d'occurences de chaque ligne
-d: Affiche que les doublons
➢ Exemple :
echo -e "aaa\naaa\naaa\nbbb\nbbb"|uniq
COMMANDES DE BASE(SED)
sed : Un éditeur de flux est utilisé pour effectuer des transformations de
texte de base sur un flux d'entrée (un fichier ou une entrée d'un pipeline).
➢ Options:
-i: remplace dans le fichier
-r :permet d'utiliser des expressions régulières (presque) compatibles avec egrep
-n :écrit seulement les lignes spécifiées (par l'option /p) sur la sortie standard
-f :fournit un fichier de commandes.
➢ Fonctions:
• s: remlace texte par un autre sur STDOUT
• d:supprime une ligne sur STDN
• p:imprime la ligne (utile avec l'option -n)
• G: ajouter un saut de ligne après chaque ligne dans le fichier
• g:global, c'est à dire toutes les occurences de la chaine (par defaut seule la première
occurence est remplacée de chaque ligne)
• !: négation (par exemple ne remplacer pas la première occurence)
• = : renvoie le numéro de la ligne
• a: ajoute une ligne après l’occurrence indiquée.
• i: ajoute une ligne avant l’occurrence indiquée
• n: indique l’ordre d’occurrence dans la ligne
COMMANDES DE BASE(SED)
➢ Exemples :
sed 's/apple/banana/' fruits.txt
sed G fruits.txt
sed = fruits.txt
➢ Comparer : ➢ avec :
sed 'p' fruits.txt sed -n 'p' fruits.txt
➢ Comparer : ➢ avec :
sed '/pp/d' fruits.txt sed '/pp/!d' fruits.txt
➢ Comparer : ➢ avec :
sed 's/a/b/' fruits.txt sed 's/a/b/g' fruits.txt
COMMANDES DE BASE(SED)
RECHERCHER DES FICHIERS: FIND
Find : liste les fichiers/répertoires situés dans argument selon des critères définis
dans options.
➢ effectue une recherche sur le filesystem en temps réèl : long
➢ Syntaxe :
Find chemin [OPTION] file
➢ Options:
-name : Recherche par nom de fichier.
-iname : Recherche par nom de fichier sans tenir compte de la casse.
-type : Recherche par type de fichier (fichier,répertoire,lien).
-user : Recherche par propriétaire.
-group : Recherche par appartenance à un groupe.
-size : Recherche par taille de fichier.
-mtime qui permet de donner une indication en jours.
-exec : execute la commande située juste après chaque occurrence trouvée.
➢ patrons de globs :
. n'importe quel caractère
* le caractère précédent 0 ou plusieurs fois
+ le caractère précédent 1 fois au moins
? le caractère précédent 0 ou 1 fois
➢ Exemple :
[a-z] une lettre en minuscule
[a-zA-Z] une lettre
find . –name noms.txt
[0-9] un chiffre find / –name "*co*" –type d
find . -name "Linux2" -exec rm {} \; 2>/dev/null
RECHERCHER DES FICHIERS: LOCATE
• find effectue une recherche sur le filesystem en temps réèl : long
• Pour la recherche par nom de fichier, locate permet de faire la
même chose
• locate permet de rechercher des expressions régulières (find ne
peut rechercher que des globs)
• locate utilise une base de données prégénérée Par updatedb
➢ Options:
-i : insensible à la case.
-c : afficher seulement le nombre de résultat.
-n <N°> : N'affiche que les n premiers résultats .
-e : forcer Locate à imprimer uniquement les entrées qui correspondent
aux fichiers existants
1. cat noms.txt
2. uniq nom.txt
3. uniq -c noms.txt
4. uniq -d noms.txt
5. uniq -c -d noms.txt
TP4 : EXERCICE 2
1. Remplacer la première lettre « r » par « R » de OUTPUT de la commande ls -l.
2. Remplacer la deuxième lettre « r » par « R » de OUTPUT de la commande ls -l.
3. Remplacer toutes les lettres « r » par « R » de OUTPUT de la commande ls -l.
4. ajouter une nouvelle ligne « New Line » avant chaque « u » de OUTPUT de la commande ls -l.
5. ajouter une nouvelle ligne « New Line » après chaque « u » de OUTPUT de la commande ls -l.
6. supposant que le contenu du fichier cmd.txt est comme suivant :
➢ Syntaxe :
userdel nom_user
➢ Exemple :
sudo userdel ahmed
GROUPES (GROUPADD, GROUPMOD &
GROUPDEL)
• groupadd : permet de créer un groupe et pour Vérifier la liste des
groupes : /etc/group
➢ Exemple :
sudo groupadd -g 7888 comptabilité
• groupmod : permet de modifier les informations d’un groupe.
Options :
-n: changer le nom du groupe.
-g: changer le numéro du groupe « gid »
➢ Exemple :
sudo groupmod -g 1050 comptabilité
sudo groupmod -n gestion comptabilité
1. Création de 2 groupes “G1” “G2”.
TP5 :
2. Vérifier si les deux groupes sont ajoutés dans la liste des groupes /etc/group.
3. Créer quatre utilisateurs : fahd, aicha, hamid, morad. (à l’aide de la cmd adduser)
4. Vérifier si les quatres users sont ajoutés dans la liste des users /etc/passwd.
5. Le premier et deuxième utilisateur sont membres du premier groupe.
6. Le troisième et quatrième utilisateur sont membres du second groupe.
7. Le deuxième utilisateur est aussi membre du second groupe.
8. Le quatrième utilisateur est aussi membre du premier groupe.
9. Créer un groupe sous gid « 1300 » où le nom est « secrétariat ».
10. Changer le nom du groupe « G1 » par « marketing ».
11. Vérifier la liste des groupes
12. Modifier le uid de utilisateur fahd vers « 7000 ».
13. Modifier le commentaire du compte aicha par "c'est un compte secrétariat".
14. Modifier le groupe primaire de l’utilisateur hamid par « Finance ».
15. Modifier pour le compte morad : son groupe primaire par « marketing » et son shell par « dash ».
16. Modifier le nom du compte(login) hamid par hamada
17. Vérifier si les modifications sont effectuées à partir la liste des comptes utilisateurs
18. Supprimer le group G2.
19. Désactiver le compte de la secrétaire après 3 mois d’utilisation
20. Se connecter au compte de la secrétaire pour vérifier son expiration (via la console).
21. Se connecter au compte morad (via le mode graphique), puis fermer sa session, ensuite : Supprimer
son compte et son espace personnel (via le mode console).
TP5 : EXERCICE 1 SOLUTION
1. sudo groupadd G1; sudo groupadd G2
2. cat /etc/group
3. sudo adduser fahd; sudo adduser aicha; sudo adduser hamid; sudo adduser morad
4. cat /etc/passwd
5. sudo usermod -G G1 fahd; sudo usermod -G G1 aicha
6. sudo usermod -G G2 hamid; sudo usermod -G G2 morad
7. sudo usermod -aG G2 aicha
8. sudo usermod -aG G1 morad
9. sudo groupadd -g 1300 secrétariat
10. sudo groupmod -n marketing G1
11. cat /etc/group
12. sudo usermod -u 7000 fahd
13. sudo usermod -c "c'est un compte secrétariat" aicha
14. sudo groupadd Finance && sudo usermod -g Finance hamid
15. sudo usermod -g marketing -s /bin/dash morad
16. sudo usermod -l hamada hamid
17. cat /etc/passwd
18. sudo groupdel -f G2
19. sudo usermod -e 2022-07-20 aicha
20. su aicha
21. sudo userdel morad&&sudo rm -R /home/morad
ou bien : sudo userdel morad;sudo rm -R /home/morad
ou bien : sudo deluser morad;sudo rm -R /home/morad
LES DROITS
LES DROITS (GÉNÉRALITÉS)
Chaque fichier ou répertoire possède :
• un propriétaire
• un groupe propriétaire
Chaque fichier ou répertoire possède 3 listes de droits :
• les droits pour le propriétaire
• les droits pour le groupe
• les droits pour les autres
Chaque liste donne les opérations possibles pour cet utilisateur :
• lecture (r) :
fichier : donne la possibilité de lire le contenu du fichier
répertoire : donne la possibilité de lire le contenu d'un répertoire (la liste des
fichiers qu'il contient)
• écriture (w) :
fichier : permet d'écrire dans ce fichier
répertoire : permet d'y créer/renommer/supprimer des fichiers ou des répertoires
• exécution ou accès(x) :
fichier : permet d'exécuter ce fichier
répertoire : permet d'y 'rentrer' (cd) et de voir son contenu
LES DROITS (FONCTIONNEMENT)
• Ls –l : c’est la commande qui permet l’affichage des droit d’un fichier ou d’un
repétoire et son contenu.
• option:
-d : permet d’afficher exactement les droits juste de repértoire donné.
➢ Exemple :
Ls -ld repértoire
Ls -l fichier1
LES DROITS (CHMOD)
chmod : permet de gérer les droits et peut fonctionner selon
un mode littéral ou bien le mode binaire.
➢ Deux méthode :
binaire
absolue
littéral
chmod
relative littéral
LES DROITS (CHMOD
« MODE LITTÉRAL »)
➢ Syntaxe :
chmod destinataire(s) opération droits, ...
• destinataire : u (user), g (group), o (other) ou a(all c-à-dire les 3 catégories)
• droits : r (read), w (write),x (execute ou cd)
0 0 0 0
➢ Exemple :
chmod 755 Fichier1
LES DROITS (CHMOD
« EXEMPLE »)
1. Changer les droits d’accès pour qu’ils deviennent : rwx r-- ---, par les 3 façons
2. Retirer le droit de l ’écriture de user par la méthode relative.
➢ Solution : • USER : rwx : 7
• Groupe : r-- : 4
• Autres : --- : 0
➢ Autre syntaxe :
chown propriétaire:groupe fichier ou répertoire
• propriétaire : nouveau propriétaire du fichier ou répertoire
• groupe : nouveau groupe propriétaire du fichier ou répertoire
• fichier ... : fichiers ou répertoires dont il faut changer la propriété
➢ Exemple :
chown amjad:tutorat /home/cours
LES DROITS (CHGRP)
chown : permet de changer le groupe propriétaire d'un
fichier.
➢ Exemple :
chgrp tutorat /home/cours
➢ Exemple :
Ls -ld /home/cours
LES DROITS (UMASK)
• Les droits d'un fichier ou répertoire à sa création sont défini
par umask.
• A sa création, un fichier aura les permissions :
666 - (umask)
• A sa création, un répertoire aura les permissions :
777 - (umask)
LES DROITS (UMASK)
• umask : affiche la valeur de umask par défaut.
• umask -S: affiche les doits d’accès par défaut.
• umask -p: définit ou change la valeur de umask par défaut durant
l’ouverture de la session.
➢ Exemple : Changer les droits par défaut par : u=rwx, g=rx, o=r
umask : 0 2 3
LES DROITS (SUID/SGID BITS)
suid/sgid bits (s) : celui qui exécute prend temporairement
l'identité du propriétaire ou groupe propriétaire du fichier.
commande 1 oui oui oui oui non oui non non oui
commande 2 oui non oui non oui non non non oui
commande 3 non oui non non non oui oui non non
commande 4 non non oui oui non oui non non non
commande 5 oui non non oui non non oui non non
TP6 : SOLUTION D’EXERCICE 2
1. sudo mkdir essai-droit
2. su root
Absolue Relative
commande
Octal Littéral Littéral
commande 1 Chmod 751 essai-droit chmod o=x essai-droit chmod o-r essai-droit
commande 2 chmod 521 essai-droit chmod u=rx,g=w,o=x essai-droit chmod u-w,g-rx+w,o-r essai-droit
commande 3 chmod 214 essai-droit chmod u=w,g=x,o=r essai-droit chmod u-rx,g-r,o-x essai-droit
commande 4 chmod 150 essai-droit chmod u=x,o=- essai-droit chmod u-rw,o-rx essai-droit
commande 5 chmod 444 essai-droit chmod a=r essai-droit chmod u-xw,g-x,o-x essai-droit
TP6 : EXERCICE 3
1. Afficher le masque appliqué aux droits des fichiers et dossiers lors
de la création.
2. Quel masque appliquer si on veut créer les fichiers et les dossiers
en lecture seule ?
3. Tapez la commande umask, de manière à ce que les fichiers lors
de leur création aient par défaut les droits 640 (rw-r-----), et les
répertoires 750 (rwxr-x---).
➢ Solution :
1. umask
2. Umask 033
3. umask 027
TP6 : EXERCICE 4
1. Créer un compte utilisateur « adil » à l’aide de la cmd adduser.
2. Tester la possibilité de l’utilisateur de changer son mot de passe.
3. Afficher les droits du fichier /usr/bin/passwd.
4. Changer en tant que « adil » le suid du fichier /usr/bin/passwd,
quel est le résultat de cette commande?et quelle la solution?
a. vérifier le contenu du fichier /etc/sudoers.
b. vérifier les membres du groupe sudo.
c. ajouter « adil » à ce groupe.
d. rechanger en tant que « adil » le suid du fichier /usr/bin/passwd
9. su adil
10. touch sticky/file; sudo chmod a=rwx sticky/file
➢ Exemple :
alias cat="echo 'impossible de lire'"
alias Bureau="cd /home/nisserine/Bureau"
➢ Exemple : alias
sh script1.sh
./script1.sh
➢ Exemple : SHELL SCRIPTING
1. Créer un fichier « test-script.sh ».
2. Editer ce dernier par l’éditeur « vim » comme suivant :
➢ Suppression de variables :
• Pour rendre indéfinies une ou plusieurs variables, on utilise la
commande interne unset.
➢ Syntaxe :
unset var [ var1 . . . ]
➢ Exemple : a=4
echo $a
unset a
declare g=9.81
➢ Exemple de déclaration d’une constante : echo $g
SHELL SCRIPTING (VARIABLES)
• Le passage d’une valeur à partir de l’entrée standard se fait
par:
Read var
➢ Exemple 1 :
➢ Options :
-t: limiter le temps autorisé pour saisir un message.
-p: afficher un message de prompt
-n: limiter le nombre de caractère.
➢ Exemple 2 :
SHELL SCRIPTING (VARIABLES)
• La commande test ou [ ] :permet la comparaison entre-elles.
➢ Les opérateurs arithmétiques :
✓ l'addition : +
✓ la soustraction : -
✓ la multiplication : *
✓ la division : / ➢opérations logiques :
✓ la puissance : **
✓ && : signifie « et »
✓ le modulo : %
✓ || : signifie « ou »
➢ Autre exemple :
SHELL SCRIPTING (VARIABLES)
➢ Syntaxe 1 : ➢ Syntaxe 2 :
Var=$[ expression ] Var=$(( expression ))
➢ Exemple 1 : ➢ Exemple 2 :
valeur=$[10*20] valeur=$((10*20))
echo $valeur echo $valeur
valeur=$[$valeur + 2] valeur=$(($valeur+2))
echo $valeur echo $valeur
SHELL SCRIPTING (VARIABLES)
➢ tableau:
• L’interpréteur bash permet d’utiliser des tableaux indicés ou associatifs
➢ Syntaxe :
tableau=(“valeur1” “valeur2”…)
➢ Exemple : tableau indicé ➢ Exemple : tableau associatifs
➢ l’option :
-a : pour un tableau indicé.
-A : pour un tableau associatif :
➢ Exemple :
➢ Autre exemple :
SHELL SCRIPTING (BRANCHEMENTS)
• La construction if/then/else/fi permet d'effectuer des
branchements conditionnels
➢ Syntaxe :
if [ test ]
then
echo "C'est vrai“
else
echo ‘C’est faux”
fi
➢ Exemple :
SHELL SCRIPTING (BRANCHEMENTS)
• La construction if/then/elif/then/else/fi permet d'effectuer des
branchements conditionnels imbiriquées.
➢ Syntaxe :
if [ test1 ]
then ➢ Exemple :
echo "vrai du test1 "
elif [ test2 ]
then
echo "vrai du test2 "
else
echo " faux du test2 "
fi
SHELL SCRIPTING (BRANCHEMENTS)
• La construction case permet également d'effectuer des
branchements conditionnels
➢ Syntaxe :
➢ Exemple :
case variable in
cas1)
…;;
cas2)
…;;
cas3)
… ;;
*)
… ;;
esac
SHELL SCRIPTING (OPÉRATEURS DE
TEST DES FICHIERS)
-e FILE : FILE existe
-d FILE : FILE existe et c’est un répertoire
-f FILE : FILE existe et c’est un fichier régulier
-r FILE FILE existe et la lecture est permise
-s FILE FILE existe et sa taille est supérieure à 0
-w FILE FILE existe et l’écriture est permise
-x FILE FILE existe et l’exécution est permise
➢ Exemple :
if [ -d $repertoire ]
then
echo " c’est un répertoire"
else
echo “ce n’est pas un répertoire"
fi
SHELL SCRIPTING (BOUCLES)
➢ Exemple :
TP 7: EXERICE 1
1. Trouver le fichier contenant l’historique des commandes pour
chaque utilisateur.
2. Afficher l’historique de vos commandes.
3. Afficher l’historique des commandes du root.
4. Ré exécuter une commande par numéro.
5. Ré exécuter une commande par nom.
➢ Solution :
1. echo $HISTFILE
2. history
3. Su root
history
4. !102
5. !ls -l
TP 7: EXERICE 2
1. Créer un alias permettant de passer vers les comptes d’utilisateurs en
mettant le nom du compte. (exemple : le compte salah)
2. Créer un alias « a » permettant de changer l’utilisateur vers votre
compte.
3. Créer un alias permettant d’imposer la liste étendue lors de l’exécution
de la commande ls.
4. Supprimer le dernier alias crée.
5. Voir la possibilité d’exécuter les alias dans un autre shell.
6. Voir si les alias restent après fermeture du shell.
➢ Solution :
1. alias salah="su salah"
2. alias a="su ahmed"
3. alias ls="ls -l"
4. unalias ls
5. sh
salah
6. bash
a
TP 7: EXERICE 3
1. Utiliser une boucle pour créer 10 fichiers (file1, …, file10).
2. Vérifier la création des fichiers.
3. Utiliser une boucle pour supprimer les 10 fichiers à la fois.
4. Vérifier la suppression des fichiers.
5. Utiliser une boucle pour créer 10 fichiers (file1, …, file10) chaque
fichier doit contenir un message « Bounjour dans fichier n ».
6. Utiliser une boucle pour afficher le contenu du fichier comme suit :
➢ Solution :
1. for i in `seq 10`; do touch fichier$i; done
2. ls
3. for i in `seq 10`; do rm fichier$i; done
4. ls
5. for i in `seq 10`; do echo 'Bounjour dans fichier'$i > fichier$i; done
6. for i in `seq 10`;do echo fichier$i :; cat fichier$i;done
TP 7: EXERICE 4
1. Afficher une liste de numéros de 1 à 10.
2. Créer un fichier « dix.txt » , éditer -le pour qu'il contient la liste des
nombres de 1 à 10.
3. Ecrire une commande qui permet de lister les fichiers et les
répertoires dans le dossier actuel avec le format suivant :
4. Afficher la liste des fichiers par type selon le format suivant (utiliser
la commande file -b):
SOLUTION TP 7: EXERICE 4
➢ Solution :
1. touch admission.bash
2. gedit admission.bash
3. read -p "donner votre note " note
4. if [ $note -ge 10 ] && [ $note -le 20 ]
then
echo "vous êtes admis"
else
echo "vous n'êtes pas admis"
fi
TP 7: EXERICE 6
4. ./testfile.bash
Bureau
5. mkdir testdossier
6. ./testfile.bash
testdossier
7. sudo chmod u-wx testdossier
8. touch testfich.txt
9. ./testfile.bash
testfich.txt
10. sudo chmod u+x-w testfich.txt
./testfile.bash
testfich.txt
TP 7: EXERICE 8
Menu
Affichage repertoire courant........... 1
Liste des fichiers du repertoire....... 2
Informations sur un fichier..............3
Accès à un de repertoire…..............4
n premieres lignes d'un fichier.........5
Sortie................................................0
Choix:
#!/bin/bash
clear
choix=1
while [ $choix -ne 0 ]
do
echo "Menu"
echo " Affichage repertoire courant............1"
echo " Liste des fichiers du repertoire..........2"
echo " Informations sur un fichier.................3"
echo " Accès à un repertoire........................4"
echo " n premieres lignes d'un fichier..........5"
echo " Sortie....................................................0"
echo -n "Choix: "
read choix
case $choix in
"0")
echo "fin de menu" ;;
"1")
pwd ;;
"2")
ls ;;
"3")
echo -n "Nom du fichier: " ; read file
ls -l $file;;
"4")
echo -n "Nom du repertoire: " ; read rep
cd $rep;ls;;
"5")
echo -n "Nom du fichier: " ; read file
echo -n "Nb de lignes a afficher: " ; read n
head -$n $file ;;
*)
echo "Choix non propose";;
esac
done
TP 7: EXERICE 9
1. Créer un script « tri-tableau.bash » dans le home directory.
2. Activer son droit d’exécution.
3. Editer ce fichier par l’éditeur « gedit » pour que soit traiter :
a. Initialiser un tableau par {8,3,2,9,4}.
b. Trier ce tableau.
c. Afficher le résultat du tri.
4. Exécuter le script.
TP 7: EXERICE 10
1. Créer un script « moy-contrôle.bash » dans le home directory.
2. Activer son droit d’exécution.
3. Editer ce fichier par l’éditeur « gedit » pour que soit traiter :
a. Demander le nombre des étudiant.
b. Demander la note du contrôle1 et la note du contrôle2 de
chaque étudiant.
c. Vérifier que chaque est entre 0 et 20, si non l’utilisateur doit
ressaisir la note.
d. Calculer la moyenne de chaque étudiant à l’aide de la
commande « let ».
e. Afficher la moyenne de chaque étudiant en indiquant sa
position.