Vous êtes sur la page 1sur 14

ISTA KASBA TADLA

Module 7 : systèmes d’exploitation open source


1. Introduction :
Linux est le noyau d’un système d’exploitation de type UNIX crée par LINUS TORVALDS en 1991 et auquel
un grand nombre de programmeurs ont contribués par internet. Linux ne contient pas une ligne de code
source originale d’Unix, ce n’est qu’un clonage. C’est un S.E multitâche et multi-utilisateur et relativement
orienté réseau, fiable, fonctionnel, sécurisé et performant, il prend en charge la gestion de matériel et logiciel,
ces logiciels sont développés par (FSF : Free software fondation), libres sont présentés par la licence GPL :
Générale Public Licence.
2. Présentation générale de Système GNU/LINUX.
L’architecture générale de S.E linux est composée des éléments suivants :

 Le noyau linux : KERNEL est un noyau stable et fiable, il peut fonctionner dans des serveurs à long terme.
 ligne de commandes : appelée aussi interpréteur des commandes ou shell (sh, sch, bash, tsh).
 Serveur X_windows : c’est une interface graphique capable de fournir des services graphiques aux
utilisateurs et aux applications (pilotes de carte graphique).
 Gestionnaire des fenêtres et bureau : KDE, GNOME Personnalisé.
3. Comparaison Windows et Linux
Cmd.exe-------------------------------Shell
Noyau KERNEL -----------------------KERNEL
Pilote de carte graphique---------serveur X_Windows
Internet explorer ------------------- fire fox (Mozilla)
4. Les fonctionnalités et système des fichiers
Le système de fichiers est une façon d'organiser et de stocker les fichiers sous forme d’une arborescence sur
un support (disque, disquette, cd ...). Permet de fournir au système d’exploitation des meilleurs performances
telles que : la sécurité des données (authentification= login et mot de passe, chiffrement des données
(cryptage), formatage des données (compression et décompression des données) et les quotas (réservation
des espaces disque aux utilisateurs). le système de fichiers pris en charge par Linux sont : FAT, FAT32,
NTFS, EXT1, EXT2…EXT4… etc.
5. Installation d’une distribution linux (voir TP).
La meilleure méthode pour installer une distribution linux est de partitionner le disque dur ou le lecteur en trois
partitions comme suit :
 La racine (/) : réservée aux fichiers et aux dossiers systèmes.
 SWAP (fichier d’échange). Le double de la capacité de la mémoire RAM
 /home ou /usr : partie réservée aux fichiers et dossiers des utilisateurs.
6. Identification des partions d’un disque dur
Le formatage logique (haut niveau), crée un système de fichiers (FAT, FAT32, NTFS, EXT) sur le disque.
Ce système permette à un système d'exploitation (MacOs, Windows, Linux, etc.) d'utiliser
l'espace disque pour stocker et manipuler des fichiers et des dossiers. Ce formatage crée des pistes et des
angles sur chaque interface du plateau.
Le formatage physique (bas niveau) : s’effectue avec un logiciel spécifique aux disques dur, il est
généralement fourni par le constructeur.
Sous linux, chaque périphérique est manipulé par un fichier spécial sur lequel toutes les opérations classiques
sont réalisées (lecture, écriture, modification …etc.).
 Les périphériques de type IDE : sont représentés par les fichiers spéciaux de la forme hdxn avec x
représente la lettre alphabétique (a,b,..z) du lecteur de disque et n (1, 2 ….) le numéro de la partition.

KHAFOURI Mohamed Page 1


ISTA KASBA TADLA

 Les périphériques de type SATA, SCSI et USB : sont représentés par les fichiers spéciaux de la
forme Sdxn.
Exemple
Si un PC contient deux disques dur : le premier Sda le 2ieme Sdb ou Hda et Hdb les partitions Sda1, sdb1
ou Hda1 et Hdb1.
Sous Windows les partitions de disque sont identifiées par des lettres suivi de deux points exemple C :, D :,
E:…
7. Les commandes de base linux (SHELL).
Toutes les commandes linux s’exécutent en mode ligne de commandes appelé SHELL (bash, sh, sch,
tsh…..)
[ista@localhost~]$ : Représente l’utilisateur simple.
[ista@localhost ista]# : Représente le super utilisateur : Administrateur (Root).
1. Les commandes linux
La commande Su : permet de changer l’utilisateur
[ista@localhost]$ su
Mot de passe : xxxxxxxx
[Root@localhost ista]# su ista
[ista@localhost~]$
[ista@localhost nom_rep]$ pwd
La commande pwd print work directory permet d’affiche le répertoire de travail de l’
La commande date affiche la date et l’heure système.
[ista@localhost~]$ date
[ista@localhost~]$ date -s ’’ 11 oct 2018 09 :24:00’’
Ou bien au lieu de –s - -set
[ista@localhost~]$ cal
La commande cal affiche le calendrier de l’année en cours.
[ista@localhost~]$ cal 2018 : affiche le calendrier de l’année 2018
[ista@localhost~]$ cal 01 2018 : affiche le calendrier du mois janvier 2018.
[ista@localhost~]$ who ou bien whoami
La commande who affiche la liste des utilisateurs connectés au système
[ista@localhost~]$ uname -a
uname -a : avec l'option "-a" ou "-all" qui affiche l'ensemble des informations systèmes importantes.
 L'option "-a" permet de regrouper l'ensemble des autres options disponibles sur la commande
"uname". Dans l'ordre, ces commandes sont les suivantes :
 "-s" ou "--kernel-name" : C'est le nom du noyau, Ici "Linux".
 "-n" ou "--nodename" : C'est le nom d'hôte de votre machine, ici "srvlinux1".
 "-r" ou "--kernel-release" : C'est la version actuelle du noyau, ici "2.6.32-5-686" soit squeeze en 32 bits.
 "-v" ou "--kernel-version" : C'est la date à laquelle a été compilé le noyau (date de mise à jours ou
d'installation de la machine la plupart du temps) , ici "# 1 SMP Sun Sep 23 09:49:36 UTC 2012"
 "-i" ou "--machine" : C'est le nom de l'architecture matérielle de la machine. ici "i686"
 "-o" ou "--operating-system" : C'est l'OS sur lequel on exécute la commande.
2. Les opérations sur les répertoires
Création d’un répertoire :
La commande mkdir (Make directory) permet de créer un répertoire
[ista@localhost~]$ mkdir <nom répertoire>
Pour créer une suite de répertoire avec un minimum de commandes on utilise l’option –p
[ista@localhost~]$ mkdir -p <nom répertoire>/<nom_rep>/<nom_rep>
Accéder à un répertoire.
La commande Cd (Change Directory) permet de changer un répertoire.
[ista@localhost~]$ cd <nom répertoire>

KHAFOURI Mohamed Page 2


ISTA KASBA TADLA

[ista@localhost nom_rep]$
Sortir d’un répertoire
La commande CD.. Permet de sortir d’un répertoire
[ista@localhost nom_rep]$ Cd..
[ista@localhost~]$
Exercice
Créer l’arborescence suivante à l’aide d’un minimum de commandes

Correction
[ista@localhost~]$ mkdir –p tri/{cours1/{th,tp},cours2/td1,cours3/{sujet1,sujet2}}
Supprimer un répertoire
La commande rmdir (remove directory) permet de supprimer un répertoire vide.
[ista@localhost nom_rep]$ rmdir <nom-rep>.
La commande ‘’ rm -r’’ supprime un répertoire contenant des fichiers et/ou les sous répertoires
rm : Avec l’option ‘’–f’’ supprime un répertoire contenant des fichiers et/ou les sous répertoires, sans
message de confirmation.
Exemple.
[ista@localhost nom_rep]$ rm –rf <nom-rep>.
Déplacer et renommer un répertoire
La commande mv permet de renommer et/ou déplacer un répertoire d’un emplacement à un autre
Syntaxe
[ista@localhost~]$ mv <source> <destination>
Exemple
[ista@localhost~]$ mv tri101 Tadla/rep/tri101
déplace le repertoire tri101 vers le sous répertoire rep de répertoire Tadla
[ista@localhost~]$ mv tri101 Tadla/rep/tri102
Renomme le répertoire tri101 par tri102 et le déplace vers le sous répertoire rep de Tadla.
Copier un répertoire vers un autre emplacement
[ista@localhost~]$ cp –R <source> <destination>
Ou bien
[ista@localhost~]$ cp –r <source> <destination>
3. Les opérations sur les fichiers.
Création d’un fichier
La commande vi permet d’ouvrir l’éditeur Vi pour créer un nouveau fichier.
Syntaxe
[ista@localhost~]$ vi <nom_fichier>
Dans l’éditeur vi tapez la touche de clavier i pour commencer la saisie de texte, après avoir finir votre texte
tapez la combinaison des touche de clavier pour sauvegarder e quitter votre fichier :
ESC + : + W + Q.
Pour forcer l’éditeur de quitter tapez : ESC + : + W + Q+ !
Pour quitter sans le sauvegarder tapez directement : ESC + : + Q. ou ESC + : + Q + !
Supprimer un fichier
La commande rm (remove directory) permet de supprimer un fichier.
KHAFOURI Mohamed Page 3
ISTA KASBA TADLA

[ista@localhost nom_rep]$ rm -rf <nom-fichier>.


Rm : Avec l’option –f supprime un répertoire contenant des fichiers et/ou les sous répertoires, sans message
de confirmation.
Déplacer et renommer un fichier
La commande mv permet de renommer et/ou déplacer un répertoire d’un emplacement à un autre
Syntaxe
[ista@localhost~]$ mv <source> <destination>.
Copier un fichier d’un emplacement à un autre
La commande cp permet de copier un fichier vers un autre emplacement
[ista@localhost~]$ cp <source> <destination>.
Afficher le contenu d’un fichier
Cat, more et less affichent le contenu d’un fichier sans possibilité de modification.
Syntaxes :
[ista@localhost~]$ cat <nom_fichier>
[ista@localhost~]$ more <nom_fichier>
[ista@localhost~]$ less <nom_fichier> page par page
La commande ls et ses options
[ista@localhost~]$ ls -l
total 36
drwxr-xr-x 2 ista ista 4096 2011-11-03 09:03 Bureau
drwxr-xr-x 2 ista ista 4096 2011-10-25 14:50 Documents
-rw-r--r-- 1 ista ista 179 2011-10-25 14:40 examples
Changer ou modifier les droits d’un fichier ou un répertoire
La commande permettant de modifier les droits d’un fichier ou répertoire est : chmod
[ista@localhost~]$ Chmod <options> <nom_fichier>
Les options peuvent être soient symboliques soient en octal.
Exemple :
Symbolique :
[ista@localhost~]$chmod u+w, g+rwx, o+x <nom-fichier>
Octal :
[ista@localhost~]$chmod 546 <nom-fichier>
La commande umask : permet de modifier les droits par défaut des fichiers et les répertoires
Syntaxe
[ista@localhost~]$umask
Résultat sera 0022
[ista@localhost~]$ umask -S u=rwx, g=rx, o=rx
Les options de la commande ls :
Ls -l : affiche tous les attributs détaillés des fichiers et répertoires
Ls -a : affiche tous les fichiers et répertoires y compris les fichiers cachés (fichier commençant par un point)
Ls -m : affiche tous les fichiers et répertoires séparés par des virgules.
Ls -t : affiche les fichiers et répertoires par date de création ou de modification.
Ls -s : trier les fichiers et répertoires par taille décroissante (du plus grand au plus petit)
Ls -r : trier les fichiers et répertoires par ordre alphabétique inverse (z----a).
Exercice :
1. Créer le fichier ista.txt
2. Quels sont ses droits par défaut ?
3. Attribuer les droits au fichier ista.txt par deux méthodes différentes (symbolique et octal) selon les
commandes du tableau suivant : On suppose qu’à chaque changement de commande le fichier reprend
ses droits par défaut. rw- r--r--

KHAFOURI Mohamed Page 4


ISTA KASBA TADLA

commande Propriétaire Groupe Autres


Cmd1 Oui Oui Oui Oui Oui Non Non Non Non
Cmd2 Oui Oui Non Oui Non Non Non Non Non
Cmd3 Oui Non Non Oui Non Non Oui Non Non
Cmd4 Oui Oui Oui Oui Oui Oui Oui non Oui
La commande df.
df : disk free : La commande df (disk free) permet d’afficher à l’écran la taille de l’espace disque
occupé et la taille de l’espace disque libre (disponible).
[ista@localhost~]$ df
La commande du.
du : disk usage : La commande du (disk usage) permet d’afficher la taille d’un répertoire et de tous les
sous répertoires récursifs qu’il contient.
[ista@localhost~]$ du
La commande ln
La commande ln permet de créer un lien (raccourcis) d’un fichier ou répertoire
Un lien symbolique et avec l’option -s elle crée un lien physique (solide).
Syntaxe
[ista@localhost~]$ ln <nom_fichier> <nom_de_lien> un lien physique
[ista@localhost~]$ ln -s <nom_fichier> <nom_de_lien> un lien symbolique
NB : contrairement au lien symbolique, le lien dur conserve le contenu de fichier origine
même si celui-ci est supprimé (détruit).
La commande nl
nl : numéroter les lignes d’un fichier texte.
[ista@localhost~]$ nl <nom_fichier>
[ista@localhost~]$ cat –n <nom-fichier>
La commande wc (word counter)
Wc permet de compter le nombre de lignes, des octets et mots d’un fichier.
[ista@localhost~]$ wc <nom_fichier>
Ses options sont :
Wc -l : affiche uniquement le nombre de lignes
Wc -w : affiche uniquement le nombre de mots.
Wc -c : affiche uniquement le nombre d’octets.
Wc -m : affiche le nombre de caractères.
Wc -L : affiche la langueur de la ligne la plus langue de fichier.
Les commandes Tail et Head
La commande Tail affiche les 10 dernières lignes d’un fichier texte
La commande Head affiche les 10 premières lignes d’un fichier texte
Syntaxes
[ista@localhost~]$ tail <nom_fichier>
[ista@localhost~]$ head <nom_fichier>
Exemples
[ista@localhost~]$ tail -n <nom_fichier> affiche les n dernières lignes d’un fichier texte
[ista@localhost~]$ tail +n <nom_fichier> affiche les dernières lignes de fichier texte en commençant par la
n ieme ligne.
[ista@localhost~]$ head -n <nom_fichier> affiche les n premiers lignes d’un fichier texte.
La substitution des commandes et les tubes (pipes)
Les caractères « ; » et « | » permettent de substituer plusieurs commandes.
Exemples
[ista@localhost~]$ Pwd; df; cat 2018.txt
KHAFOURI Mohamed Page 5
ISTA KASBA TADLA

Les tubes
[ista@localhost~]$ More 2018.txt | wc
Exercice
1. Créer le fichier lst2.txt et saisissez au moins 13 lignes.
2. Afficher les 8 premières lignes de fichier lst2.txt
3. Afficher les 6 dernières lignes de fichier lst2.txt
4. Afficher uniquement les lignes 7,8 et 9 de fichier lst2.txt.
La commande sort
La commande sort permet de trier les lignes d’un fichier en ordre alphabétique
Syntaxe
[ista@localhost~]$ Sort <nom de fichier>
[ista@localhost~]$ Sort -r <nom de fichier>
Avec l’option - r la commande sort trie les lignes d’un fichier par ordre alphabétique inverse (z---a).
La commande cut
La commande cut permet de sélectionner uniquement un certains colonnes ou champs d’un fichier
[ista@localhost~]$ cut [options] <nom de fichier>
[ista@localhost~]$ cut -c2 2018.txt affiche les deuxièmes colonnes de chaque ligne de fichier.
[ista@localhost~]$ cut -c1-6 2018.txt affiche de la première colonne à la sixième colonne de fichier.
[ista@localhost~]$ cut -c 2 ,5 2018.txt afficher la deuxième et la cinquième colonne de fichier.
[ista@localhost~]$ cut -d’’ :’’ –f 5 2018.txt affiche le cinquième champs de fichier 2018.txt si ce fichier
est séparé par ‘’:’’ -d : délimiteur
[ista@localhost~]$ cut -d’’delim’’ -f2 2018.txt affiche le deuxième champ de chaque ligne de fichier.
[ista@localhost~]$ cut -d’’ delimiteur’’ -f1-6 2018.txt affiche du premier au sixième champ de fichier.
[ista@localhost~]$ cut -d’’ delimiteur’’ -f 2 ,5 2018.txt afficher le deuxième et le cinquième champ de
fichier.
La commande grep
Grep permet de rechercher un motif et affiche les lignes contenant ce motif dans un fichier texte.
Syntaxe
[ista@localhost~]$ grep [motif] <nom de fichier>
Exemples
[ista@localhost~]$ grep ‘’stagiaire’’ 2018.txt les lignes contenant le mot ‘’stagiaire’’
[ista@localhost~]$ grep [a] 2018.txt les lignes contenant la lettre ‘’a’’
[ista@localhost~]$ grep [at] 2018.txt les lignes contenant les lettres ‘’a’’ et ‘’t’’
[ista@localhost~]$ grep [b-g] 2018.txt les lignes contenant les lettre de ‘’b’’ à ‘’g’’
[ista@localhost~]$ grep ^[a] 2018.txt les lignes qui commencent par la lettre ‘’a’’
[ista@localhost~]$ grep ^ [^as] 2018.txt les lignes qui ne commencent pas par les lettres ‘’a’ et ‘’s’’.
[ista@localhost~]$ grep [0-9] 2018.txt les lignes contenant un chiffre
[ista@localhost~]$ grep [A-Z] 2018.txt les lignes contenant la lettre Majuscule
L’archivage et compression des fichiers
Tar permet d’archiver un ou plusieurs fichiers.
Syntaxe
[ista@localhost~]$ tar [options] 2018.txt
Options
-cvf : pour créer un archive
-tvf : pour afficher la liste des fichiers archivés
-xvf : pour extraire les fichiers archivés.
La compression des fichiers
Les commandes gzip ou bzip2 permettent de compresser un fichier
[ista@localhost~]$ gzip 2018.txt

KHAFOURI Mohamed Page 6


ISTA KASBA TADLA

[ista@localhost~]$ bzip2 2018.txt


Les redirections linux
Pour rediriger le contenu d’un fichier ou le résultat d’une commande vers un autre fichier, on utilise le symbole
‘’>’’ ou ‘’>>’’.
Syntaxe
[ista@localhost~]$ cat a.txt > b.txt
Si le fichier b.txt contient déjà des données et pour ne pas les écrasés on utilise ‘’>>’’
[ista@localhost~]$ cat a.txt >> b.txt.
Les redirections sous linux
Pour rediriger la sortie standard d’une commande ou le contenu d’un fichier vers un autre fichier, on utilise le
symbole ‘’>’’.
Pour ajouter le contenu d’un fichier ou la sortie d’une commande contenant des données, on utilise le symbole
‘’>>’’.
Pour rediriger les d’erreurs vers un fichier, on ajoute le numéro 2 au symbole ‘’2>’’ ou ‘’2>>’’
Lire à partir d’un fichier
Pour lire les données à partir d’un fichier on utilise le symbole ‘’<’’ ou ‘’<<’’
Exemples
[ista@localhost~]$ Cat < note.txt
Ou on peut saisir les données et exécuter au même temps une commande en utilisant ‘’<<’’
[ista@localhost~]$ Sort –n << FIN.
GESTION DES UTILISATEURS ET GROUPES D’UTILISATEURS SOUS LINUX
Les fichiers les plus importants pour la gestion des utilisateurs et les groupes d’utilisateurs sont :
/etc/passwd : fichier réservé aux utilisateurs linux
/etc/group : fichier réservé aux groupes d’utilisateurs
/etc/shadow : fichier réservé aux mots de passe des utilisateurs
Forme générale de fichier /etc/passwd
[ista@localhost~]$ cat /etc/passwd
Root: x: 0 :0 :root:/root :/bin/bash
adm :x:3:4:adm:/var/adm:/bin/bash
Ista: x: 500:500: ista: /home/ista: /bin/bash
Sept champs sont explicités séparés par le caractère ":" :
 le nom du compte de l'utilisateur
 le mot de passe de l'utilisateur (codé)
 identificateur de l'utilisateur pour le système d'exploitation (UID=User ID, identifiant utilisateur)
 identificateur le groupe de l'utilisateur (GID=Group ID, identifiant de groupe)
 le commentaire sur l'utilisateur ou simplement son nom réel
 le répertoire de travail de l’utilisateur
 Shell ou interpréteur de commandes.

Le format de fichier /etc/group


Groupname: x: groupid: membres1, members2
 groupname : le nom d’utilisateur appartient à
 mot de passe : Un x indique un mot de passe est laissé vide, et si aucun mot de passe n’a été défini.
 gid : numéro d’identification du groupe auquel elles appartiennent.
 Membres : actuels du dit groupe séparés par une virgule
Crée un utilisateur
La commande useradd permet de créer un nouvel utilisateur

KHAFOURI Mohamed Page 7


ISTA KASBA TADLA

Syntaxe
[ista@localhost~]$ su
Mp : xxxxxxxxxxxxxx
[root@localhost ista]# useradd <nom d’utilisateur>
Attribuer un mot de passe à un utilisateur
La commande passwd permet d’attribuer ou modifier le mot de passe d’un utilisateur
Syntaxe
[root@localhost ista]# passwd <nom d’utilisateur>
Créer un utilisateur en spécifiant son UID
[root@localhost ista]# useradd -u <UID> <nom d’utilisateur>
Créer un utilisateur en spécifiant son mot de passe
[root@localhost ista]# useradd -p <mot de passe> <nom d’utilisateur>
Créer un utilisateur en spécifiant son GID
[root@localhost ista]# useradd -g <GID> <nom d’utilisateur>
Avec GID existe déjà
Créer un utilisateur en spécifiant son commentaire
[root@localhost ista]# useradd -c ’’commentaire’’ <nom d’utilisateur>
Créer un utilisateur en spécifiant son répertoire de travail
[root@localhost ista]# useradd -d <repertoire de tranvail> <nom d’utilisateur>
Avec le répertoire existe déjà
Créer un utilisateur en spécifiant son shell
[root@localhost ista]# useradd -s <shell> <nom d’utilisateur>
Modifier les parametres des utilisateurs
Il suffit de remplacer la commande useradd par usermod suivi des
mêmes options de la commande useradd
Afficher l’identificateur de l’utilisateur et de groupe
[root@localhost ista]# id <nom user>
Supprimer un utilisateur
Userdel permet de supprimer un utilisateur linux
[root@localhost ista]# userdel <nom d’utilisateur>
Pour supprimer un utilisateur avec son répertoire de travail
[root@localhost ista]# Userdel -r <nom d’utilisateur>
Créer un groupe d’utilisateurs
La commande groupadd créer un groupe d’utilisateur
[root@localhost ista]# groupadd <nom de groupe>
Supprimer un groupe d’utilisateur
[root@localhost ista]#groupdel <nom de groupe>
Modifier le groupe principal (par défaut) d’un utilisateur
[root@localhost ista]# usermod -g <nom groupe> <nom user>
Ajouter un utilisateur à un groupe
[root@localhost ista]# usermod –G <nom groupe> <nom user>
Les commandes chown et chgrp
Chown : Changer owner : changer le propriétaire d’un fichier
Chgrp : changer group : changer le groupe d’un fichier
Syntaxes :
[root@localhost ista]#chown <nom d’utilisateur> <nom de fichier>
[root@localhost ista]#chgrp <nom de groupe> <nom de fichier>
On peut modifier le propriétaire et le groupe d’un fichier au même temps à l’aide de la commande chown.

KHAFOURI Mohamed Page 8


ISTA KASBA TADLA

Syntaxe
[root@localhost ista]#chown <nom d’utilisateur> : <nom de groupe> <nom de fichier>
Les processus linux
Un processus est programme ou commande encours d’exécution par le système ou par un utilisateur
La commande permettant d’afficher les processus d’un utilisateur est :
[ista@localhost ~]$ ps
PID : le numéro d’identification de processus (numéro unique).
TTY :le nom de la console depuis laquelle a été lancer le processus
Time : le temps écoulé depuis son exécution.
CMD : le programme qui a généré le processus
Pour afficher tous les processus de tous les utilisateurs on ajoute l’option : –aux
[ista@localhost ~]$ ps -aux
Pour afficher les processus qui s’exécutent en temps réel, on exécute la commande : top
[ista@localhost ~]$ top.
Pour arrêter un processus on utilise la commande :kill suivi de numéro PID de processus
[ista@localhost ~]$kill <PID>
Pour forcer l’arrêt d’un processus on ajoute le numéro 9 :
[ista@localhost ~]$ kill -9 <PID>
Utilisation de la commande find
La commande find permet de chercher des fichiers, et éventuellement d'exécuter une action dessus. Les
options de la commande find sont nombreuses.
Tableau : Principales options de la commande find.
Option Signification
-name Recherche par nom de fichier.
-type Recherche par type de fichier.
-user Recherche par propriétaire.
Recherche par appartenance à un
-group
groupe.
-size Recherche par taille de fichier.
-atime Recherche par date de dernier accès.
Recherche par date de dernière
-mtime
modification.
-ctime Recherche par date de création.
-perm Recherche par autorisations d'accès.

REMARQUE
Pour les options -size, -atime, -mtime, et -ctime , il faut spécifier une valeur, précédée par le signe ``+'' pour
``supérieur à'', ``-'' pour ``inférieur à'', ou rien pour ``égal à''.
Par exemple :
find . -mtime -3 -print

KHAFOURI Mohamed Page 9


ISTA KASBA TADLA

Affiche les fichiers dont les dernières modifications remontent à moins de 3 jours (donc tous les fichiers
modifiés entre aujourd'hui et il y a trois jours seront affichés). De même, +5 afficherait les fichiers dont les
dernières modifications remontent à plus de 5 jours.
Voici d'autres exemples d'utilisation de la commande find :
 Pour afficher tous les fichiers se terminant par ``.c'' :
 find . -name ".c" -print
 Pour afficher tous les répertoires dont le nom se termine par ``s'' :
 find . -type d -name "*s" -print
 Pour afficher tous les fichiers ayant une taille de 10 blocs:
 find . -size 10 -print
ce qui est équivalent à demander la liste des fichiers ayant une taille de 5120 caractères :
 find . -size 5210c -print
On aurait pu aussi demander la liste des fichiers ayant une taille supérieure (+200k) ou inférieure (-
200k) à 200 Ko.
 Pour afficher tous les fichiers ayant une certaine permission exprimée en octale (voir section
 find . -perm 755 -print
ou ayant au minimum les droits d'écriture pour le groupe :
 find . -perm -020 -print
 Pour éxecuter la commande ls -l pour chaque fichier trouvé :
 find . -type f -exec ls -l {} \;
Pour demander confirmation avant chaque action :
 find . -type f -ok -exec rm {} \;
Toute autre commande peut être exécutée avec l'option -exec.
 Pour associer plusieurs critères avec -a pour et, -o pour ou, ! pour négation. Par exemple :
 find . ! -user root -print
Affiche tous les fichiers n'appartenant à root, et
find . \( -name '*.tex' -o -name '*.dvi' \) -print
Affiche tous les fichiers se terminant par ``.tex'' ou ``.dvi''.
Programmation shell : scripts
Un script est un fichier exécutable pouvant être créé à l’aide d’un éditeur de texte tel que vi. Ce fichier
contient un ensemble d’instructions ou commandes et qui commence par # !/bin/bash. Son exécution en
ligne de commandes s’effectue par la commande sh suivi du nom de script
#sh <nom de script>.
La commande echo : permet d’afficher des messages écrits entre guillemets ou le contenu d’une variable.
La commande Read : permet de lire la valeur d’une variable.
# echo "Ceci est mon premier script"
Ceci est mon premier script
# v= 100 #echo $v ==== 100
Les arguments d’un script
Le passage d’argument d’un script Shell se fait par le nom de script suivi d’une série d’arguments :
$* : Affiche la listes des arguments passés au script.
$# : Affiche le nombre des arguments passés au script.
$$ : Affiche le PID de script.
$0 : Affiche le nom du script.
$1 : Affiche le premier argument passé au script.

KHAFOURI Mohamed Page 10


ISTA KASBA TADLA

$9 : Affiche le 9ieme argument passé au script.


$ ? : affiche le résultat de la commande echo.
Exemple :
[ista@localhost ~]$ vi tri1
# !/bin/bash
Echo ‘’ la liste des arguments est : $*’’
Echo ‘’ le nombre d’arguments est : $#’’
Echo ‘’ le PID de ce script est : $$’’
Echo ‘le nom de script est : $*’’
Echo ‘’ le premier argument est : $1’’
Echo ‘’ le cinquième argument est : $5’’.
Exécution de ce script est
[ista@localhost ~]$ sh tri1
Exercice
Ecrire un script qui permet de calculer la somme S de deux variables A et B.
# !/bin/bash
Echo ‘’ donner la valeur de A :’’
Read A
Echo ‘’donner la valeur de B :’’
Read B
S=$(($A + $B))
Echo ‘’ la somme S de A et B est :’’ $S.
Les tests sous linux
Pour effectuer un test sous linux on utilise soit le mot clé test soit les crochets [ ].
Exemple
# !/bin/bash
Echo ‘’ donner la valeur de a :’’
Read a
[ $a =0 ]
Echo $ ?
Si la valeur saisie est égale à 0 le résultat est 0 sinon il affiche 1.
Les opérateurs sur les chaines de caractères
Opérateur Signification
-gt Superieur strictement
-ge Supérieur
-eq Egale à
-ne Différent
-lt Inférieur strictement
-le Inférieur ou égale
-z Variable vide
Les opérateurs sur les fichiers et répertoires
KHAFOURI Mohamed Page 11
ISTA KASBA TADLA

Opérateur Signification
-f Fichier
-d Répertoire
-r Permission de lecture
-w Permission d’écriture
-x Permission d’exécution
Les structures conditionnelles
Structure if
La structure if se présente sous trois formes :
Forme 1 : Forme 2 Forme 3:

if condition ; then If condition1; then if condition ; then


Instruction 1 Instruction 1 Instruction 1
Fi. Elif condition2; then Else
Instruction 2 Instruction 2
Elif condition N ; then Fi.
Instruction N
Fi.
Exemple :
Ecrire un script nommé tri1 qui permet de comparer deux variables A et B saisies par l’utilisateur si (la valeur A
supérieur, inférieur ou égale à la valeur de B ).
# !/bin/bash
Echo ‘’ donner la valeur de A :’’
Read A
Echo ‘’ donner la valeur de B :’’
Read B
If [ $A -gt $B ] ; then
Echo ‘’ A est supérieur à B’’
Elif [ $A -lt $B ] ; then
Echo ‘’ A est inférieur à B ‘’
Else
Echo ‘’ A est égale à B’’
Fi
Exécution:
[ista@localhost ~]$ Sh tri1

Exercice
Écrire un script qui test si un paramètre passé en argument est fichier ou un répertoire. Si c’est un fichier le
script affiche le message « c’est un fichier », le compresse et affiche sa taille et si c’est un répertoire, le script
affiche son contenu détaillé y compris les fichiers cachés.

KHAFOURI Mohamed Page 12


ISTA KASBA TADLA

# !/bin/bash
If [ -z $1 ] ; then
Echo’’veuillez tapez au moins un arg’’
Elif [ -f $1 ] ; then
Echo ‘’c’est un fichier’’
Gzip $1
Du $1.gz
Elif [ -d $1 ] ; then
Echo ‘’ c’est un repertoire’’
Ls –la $1
Else
Echo’’$1 ni fichier ni repertoire’’
Fi
Instruction for
La boucle for se présente sous trois formes :
1ere forme 2eme forme 3eme forme
For variable in chaine1 chaine2 … For variable ensemble For variable ensemble in *
Do Do Do
Instruction Instruction Instruction
Done Done Done.

Exercice
Ecrire un script qui affiche votre nom N fois avec N une entier saisi par l’utilisateur
# !/bin/bin/bash
Echo ‘’ taper un nombre N :’’
Read N
For ((i=1 ; i<=N ))
I=$(($i + 1 ))
Do
Echo ‘’nom’’
done
Structure à choix multiple (case)
Cette structure s’applique lorsqu’on a plusieurs choix à traiter
Case variable in
Expression 1 ) instruction 1
Expression 2 ) instruction 2
Expression N ) instruction N
esac
Exercice
Ecrire un script nommé ‘’semaine’’ qui demande un nombre de 1 à 7 et affiche le nom de jour correspondant.
La structure TANT QUE (While)
Sa syntaxe est :
While condition
Do
KHAFOURI Mohamed Page 13
ISTA KASBA TADLA

Instruction
Done
Exemple
Ecrire un script qui affiche les premiers nombres
#@ !/bin/bash
I= 1
While [ $i -le ]
Do
I=$(( $i +1 ))
Echo $i
Done.
Utilisation des opérateurs logique OU et ET
Les opérateurs logiques s’effectuent soit par :
-a pour l’opérateur ET soit par - O pour l’opérateur OU
Ou bien par des symboles && pour ET et || pour l’opérateur OU
Exemple
Ecrire un script qui affiche le message ‘’ c’est vrai ‘’ si l’utilisateur a saisi un nombre compris
entre 40 et 50 sinon il affiche le message ‘’c’est faux’’
# !/bin/bash
Echo ‘’ taper un nombre N : ‘’
Read N
If [ $N -gl 40 -a $N -le 50 ]
Echo ‘’ c’est vrai’’
Else
Echo ‘’ c’est faux’’
Fi
Ou bien on peut le traiter comme suit:
# !/bin/bash
Echo ‘’ taper un nombre N : ‘’
Read N
If [ $N -gl 40 ] && [ $N -le 50 ]
Echo ‘’ c’est vrai’’
Else
Echo ‘’ c’est faux’’

FIN
fi

KHAFOURI Mohamed Page 14

Vous aimerez peut-être aussi