Vous êtes sur la page 1sur 135

Chapitre 1

Système
d’Exploitation UNIX
Introduction à l’UNIX

BOUKRI KHALIL
Systèmes d’Exploitation: Rappels

Le Système d’Exploitation (Operating System: OS) est un


ensemble de programmes qui assure la gestion de l‘ordinateur et ses
périphériques.

Le système d‘exploitation serve d‘interface entre matériel


(hardware) et applications (software).

Les fonctions principales d‘un S.E. sont :


Contrôle des ressources (allocation et gestion du CPU et
de la mémoire)
Contrôle des processus
Contrôle des périphériques

Il contient des outils de gestion utilisables par les applications, tels


que la manipulation de fichiers, gestion d‘impressions, date…
Systèmes d’Exploitation: Rappels

Utilisateurs

Applications

Système d‘exploitation
Noyau

Pilotes

Matériels/Périphériques
Systèmes d’Exploitation: Rappels

Architecture-Type:

Applications
Applications (Jeux, Outils bureautiques, …)

Interpréteur de commandes,
Système
Compilateur, …

d‘Exploitation
Noyau

Matériel
Langage machine

D
ispositifs Physiques
Systèmes d’Exploitation: Rappels
Classification des SE

Système mono-tâche:
Gère une seule tâche à la fois.
Le seule programme lancé utilise les ressources de la machine et ne rend la
main au système d‘exploitation qu‘en fin d‘exécution, ou en cas d‘erreur.
Exemple: MS-DOS

Système multi-tâches:
Gère plusieurs tâches simultanément sur une même
machine.
Le système partage le temps du processeur entre plusieurs
programmes.
Le principe est d‘allouer du temps à différentes applications qui sont
découpées en séquence d‘instructions (Tâche ou Processus), ces tâches seront
tour à tour actives, en attente, suspendues ou détruites suivant la priorité
qui leur est associée.
Exemples: OS2 d‘IBM, Windows 95, 98
Systèmes d’Exploitation: Rappels
Classification des SE

Système multi-utilisateurs:
Gère l'environnement propre à chaque utilisateur (identification, ressources
propres)
Gère la sécurité d'accès aux programmes et aux données
Notion de droits d'accès
Exemples: Windows 2000, 2003, XP, Unix (HP-UX, Solaris, AIX, Linux,
FreeBSD...)

Système multi-processeurs:
C‘est un système nécessairement multi-tâches puisqu'on lui demande d'une part
de pouvoir exécuter simultanément plusieurs applications, mais surtout d'organiser
leur exécution sur les différents processeurs (qui peuvent être identiques ou non).
Ces systèmes peuvent être soit architecturés autour d'un processeur central qui
coordonne les autres processeurs, soit avec des processeurs indépendants qui
possèdent chacun leur système d'exploitation, ce qui leur vaut de communiquer
entre eux par l'intermédiaire de protocoles.
Historique d’UNIX

1969 : Bell Laboratories, centre de recherches commun à AT&T et Western


Electrics, Ken Thompson travaille sur MULTICS (Multiplexed Information and
Computing Service). Bell se retire du projet, Multics est abandonné. Ken Thompson
décide de développer son propre OS, en s'éloignant volontairement de tout
existant et écrit UNICS (Unified Information and Computing System) sur DEC
PDP-7. Équipe : Dennis Ritchie, Rudd Canaday, puis Brian Kernighan.
1970 : Premier portage sur DEC PDP-11/20, avec le premier compilateur C, conçu
spécialement pour rendre cet OS portable.
1971 : Version 1 d'Unix sur PDP/11-20 avec un système de fichiers, fork(), roff, ed,
suite à la demande de AT&T qui avait besoin d'un système de traitement de textes
pour l'aide à l'écriture de ses brevets.
1973 : La V2 intègre les tubes (pipes)
1974 : AT&T ne voyant pas d‘avenir commercial à Unix, décide de distribuer le
code source aux universités selon quatre critères de licence. Unix gagne donc la faveur
des universitaires. Entre 1974 et 1977 les versions de la V3 à la V6 voient le jour.
Historique d’UNIX

1979 : Le coût des licences Unix incite l'université de Californie à Berkeley à


continuer ses travaux sur les sources diffusées avant la licence, et créée sa propre
variante : BSD Unix. Le DARPA décide d'utiliser Unix pour ses développements,
notamment BSD Unix.
1983 : AT&T met en vente la version commerciale de Unix SYSTEM
V.
1986 : Première ébauche des normes POSIX sur la standardisation des appels
systèmes et des fonctions.
1987 : Création de X-Window, interface C/S graphique développée au sein du MIT.
System V v3, premiers Unix propriétaires de HP et IBM suite à la modification de la
licence de SYSTEM V. BSD 4.3, Unification de BSD et SYSTEM V (Sun et AT&T),
d'où abandon des particularités de chaque système.
1988 : Troisième version de X/Open Portability Guide, servant de référence pour tous
les développements d'Unix ultérieurs (commandes, appels système, langages, requêtes,
graphique, internationalisation, réseau).
Historique d’UNIX

1990 : System V v4 de AT&T, nouveaux standards d'unification avec Sun. Les


autres
constructeurs se sentent menacés et fondent OSF (Open Software Foundation).
1991 : OSF/1. Apparition des premiers clones Unix comme Linux et
FreeBSD.
1992 : Sun sort Solaris (SunOS), dérivé de System V v4, avec la gestion des threads.
AT&T créée USL (Unix Software Laboratories) et transfert toutes les licences à cettre
société.
1993 : Novell rachète USL, puis transfert les droits de licences à X/Open.
Depuis 1993 : S'il existe un grand nombre d'Unix propriétaires, la plupart restent
conformes aux normes et standards établis (X/Open, Posix). On distingue deux grandes
branches SYSTEM V et BSD. Les deux sont compatibles. L'arrivée de Linux (dérivé
de System V mais avec pas mal d'améliorations issues de BSD) a changé la donne.
Les code source d'Unix appartient aujourd'hui à la société Caldera issue de Novell,
mais les droits et la force de proposition sont transférés à l'Open Group.
Caractéristiques d’UNIX

Vision Portable
Simplifiée Libre et
des E/S gratuit

Système
Un mécanisme Fichiers
de protection Propriétés
hiérarchique

Multi- Multi-
Tâches
Utilisateurs
Interactif
Caractéristiques d’UNIX

Architecture:

Applications

Noyau (Kernel)

Shell Matériel

Utilitaires
Caractéristiques d’UNIX

Une session Unix:


Travailler sous Linux implique une connexion au système
Login: Identification de l‘utilisateur:
Login : <tapez ici
votre nom
d‘utilisateur>
Password :
<tapez ici votre
mot de passe>
Le mot de passe n'apparaît pas en clair et doit être tapé en aveugle. En cas
d'erreur, un message indiquera :
Login incorrect
Suivant la version d'Unix et la configuration, plusieurs lignes de message peuvent
apparaître, qu'il est possible d'ignorer. Puis le prompt du shell devrait apparaître,
quelque chose du genre:
user@machine$ ou $ ou %
Droits accordés par le super-utilisateur (root)
Caractéristiques d’UNIX

Une session Unix :


Changer son mot de passe
 On utilise la commande passwd pour modifier son mot de passe.
$ passwd
 Dans certains cas, il faudra utiliser la commande yppasswd (cas de NIS (Network
Information Services)). Sur les Unix récents l'administrateur peut définir des règles de
sécurité comme le nombre minimum de caractères, contrôler le mot de passe depuis un
dictionnaire s'il est trop simple, lui donner une date de péremption, ...

Utilisateur, groupes

 On distingue sous Unix les utilisateurs et les groupes, notion que nous verrons en
détail lors de la gestion des droits. Un groupe définit un ensemble d'utilisateurs, un
utilisateur fait obligatoirement partie d'au moins un groupe, ou de plusieurs.
Le groupe par défaut d'un utilisateur est « users ».
Caractéristiques d’UNIX

Une session Unix :


Prendre la place d’un autre
Le système permet dans certains cas à un utilisateur connecté de changer de nom en
cours de travail avec la commande su. Le mot de passe du nouvel utilisateur sera
demandé.
su [-] utilisateur [-c commande]
Si – est précisé, l'environnement du nouvel utilisateur est chargé, et si -c est précisé les
commandes qui suivent sont exécutées.

Obtenir son nom de connexion


La commande logname affiche le nom de login de l'utilisateur, en principe
toujours le nom utilisé lors de la première connexion.
$ logname
Caractéristiques d’UNIX

Interpréteur de commandes:
Le shell:
Après le login, dans une console, vous voyez (par exemple):
[user@machine]$ _
L'interpréteur de commande (ou Shell) attend vos instructions.

Le shell est un programme qui interprète vos commandes et les transmet au noyau
unix (OS). Ils permettent en plus de définir un environnement.
Il existe plusieurs shells, les plus communs sont: bash et tcsh.

Définir/modifier un environnement de shell:


Votre environnement de shell est définit par des variables, par exemple: PATH
Cette variable définit la liste des répertoires où le Shell cherche le
binaire correspondant à la commande que vous tapez (p.e.: passwd ).
Pour connaître le contenu d'une variable:
[user@machine]$ echo $PATH
Caractéristiques d’UNIX

Manuel des commandes: La commande « man »

La liste des commandes n‘est pas exhaustive, seules les plus courantes et
les plus adaptées à votre enseignement sont présentées.
De la même façon, seules les options les plus courantes seront indiquées
pour chaque commande.

La commande man permet d'afficher une documentation souvent très


complète sur la commande indiquée.
La commande man est utile, en particulier, pour explorer les
options
possibles d'une commande.
Caractéristiques d’UNIX

Manuel des commandes: La commande « man »


Complément 1

Distributions Linux

Debian: Ubuntu

BOUKRI KHALIL
Introduction

Une Distribution Linux est un ensemble de logiciels, libres, assemblés autour du noyau
Linux.
Elle se compose de:
Un noyau
Des outils
d‘environne
ment
Un outil de gestion de paquetages logiciels
Un logiciel d‘installation
Choix d’une distribution

Critères de choix d’une distribution Linux:

Architecture matérielle i386, amd64, arm


Système de paquetage Dpkg, rpm, opkg
Droits FSF, Commercial, GPL

Stabilité Cycle de révision, Cycle de


maintenance, Support, End Of
Life(EOL)
Usage Bureautique, Mobile, Serveur

Commodité Pratique, Habitude, Procédure

Support commercial Support techniques, solution SAAS


Familles Linux

Distributions Généralistes:

Si les outils spécifiques des distributions (services, paquetages, ...) et leurs


comportements par défaut font toujours la différence, les procédures et les
syntaxes deviennent de plus en plus similaires.

Les distributions généralistes, les plus utilisées, et leurs dérivés, par famille
sont:

Debian, Ubuntu, Kali, Mint


Redhat, CentOS, Fedora
Slackware, Suse, OpenSuse
Familles Linux

Distributions Spécifiques

Ces distributions sont plus spécifiques. Elles disposent chacune de leur


propre communauté, histoire et objectif. Par exemple:

OpenWRT
Archlinux
Gentoo
CoreOS

Il existe des distributions spécialisées qui remplissent un objectif assez


précis. Elles se basent sur l'une ou l'autre des distributions généralistes ou
spécialisées.
Kali Linux est un bon exemple : basée Debian, elle propose ses propres
dépôts pour des logiciels de sécurité.
Cycle de révision

Un cycle de révision fournit des mises à jour et des nouvelles versions.

On peut connaître des :


 révisions mineures : corrections de bugs ou des
ajouts de
fonctionnalités secondaires
 révisions majeures : nouvelles fonctionnalités, voire nouvelle
conception

Exemples :
 Debian connait un cycle de plusieurs années
 Ubuntu connait un cycle de tous les 6 mois
 Fedora est révisé tous les 6 mois
 Une révision mineure est proposée tous les 12/18 mois chez RHEL
(Red Hat Enterprise Linux)
 Une révision majeure est proposée tous les 3/6 ans chez RHEL
Cycle de maintenance

Cycle de maintenance

Un cycle de maintenance est la durée pendant laquelle un logiciel est


corrigé et maintenu sur un système de manière cohérente.

Un statut EOL (End of Life) indique la fin de ce support.


Une mise à niveau (upgrade) est nécessaire pour continuer à
bénéficier d‘un support de maintenance.
Les meilleurs distributions Linux

ArchLinux
Une distribution pour les spécialistes de Linux. Les
performances de cette distribution sont élevées.
Vous pouvez créer votre plateforme
personnalisée ce qui est un avantage indéniable.

Debian

Une des distributions les plus anciennes et des plus


appréciez. Un grand classique pour débuter, celle-ci
dispose d‘un grand nombre de paquets et de
nombreuses versions dérivées ont été créé à partir de
Debian, notamment la plus célèbre qui est Ubuntu.
Les meilleurs distributions Linux

Ubuntu
Ubuntu est une suite Debian. Cette distribution est la plus
connue. La majorité des nouveaux venus sous Linux
débute par cette distribution notamment pour sa
simplicité. Celle-ci possède en outre des accords avec les
fournisseurs de matériels et de logiciels. Par contre, les
plus fervents linuxiens n‘apprécient que modérément
cette distribution.

Linux Mint
Basé sur la distribution Ubutnu, LinuxMint dispose d‘une
interface bien réalisée et facile d‘accès. Mint est en plein
développement et son utilisation est de plus en plus
importante. Vous pourrez également apporter un grand
nombre de personnalisations à Mint.
Les meilleurs distributions Linux

Fedora
Il s‘agit de la suite de RedHat puisque la société a
l‘origine de RedHat a continué son développement, mais
de manières commerciales. Les amateurs de la version
gratuite se sont donc regroupés sous Fedora. Elle est
réputée comme étant plus difficile d‘accès et depuis
plusieurs versions elle a mis l‘accent sur la sécurité par le
biais de différents cryptages.
RedHat Distribution: Fedora

Red Hat est une société multinationale d'origine américaine fondée en


1993 éditant des distributions GNU/Linux.
Elle est l'une des entreprises dédiées aux logiciels Open Source les plus
importantes et les plus reconnues.

Elle distribue un OS : Red Hat Enterprise Linux (RHEL), un système


d'exploitation destiné aux entreprises.
Red Hat fournit des plateformes logicielles (openstack, JBoss), vend des
abonnements d'assistance, de formations et de services d'intégration
personnalisés pour les clients utilisant des logiciels open source.
Toutes les distributions basées Redhat (CentOs, Fedora, …) utilisent
le
même système de paquetage RPM.
RedHat Distribution: Fedora

Fedora

Fedora, anciennement Fedora Core, est une distribution GNU/Linux basée


sur le système RPM, développée par le Projet Fedora et soutenue par la
société Red Hat.
Cette distribution se veut être un système d'exploitation complet et
généraliste, composé uniquement de logiciels libres.
Fedora dérive donc de la distribution Red Hat Linux, et est destinée à la
remplacer pour les utilisateurs finaux (utilisation non commerciale).

Le nom:
Le nom de la distribution vient du projet Fedora Linux : un projet mené par
des bénévoles ayant pour objectif d'intégrer des logiciels tiers à la
distribution Red Hat Linux, et du chapeau représenté sur l'emblème de Red
Hat : un borsalino.
RedHat Distribution: Fedora

Fedora

Le logo de Fedora est composé de plusieurs éléments,


organisés comme suit :
Le symbole de gauche signifie l'infini. L'infini dans
Fedora fait référence à la liberté perpétuelle et immuable du
système d'exploitation et des logiciels qui le composent.
Le « f » est à la fois le « f » de Fedora, ainsi que le « f » de
« freedom », qui signifie « liberté » en anglais.
Enfin, le dernier élément est une bulle, symbolisant « la
voix de la communauté ».
La communauté de Fedora met donc un point d'honneur au
respect de la liberté perpétuelle du système d'exploitation et
des logiciels qui l'accompagnent.
Chapitre 2

Système
d’Exploitation UNIX
Système de Fichiers

BOUKRI KHALIL
Système de Fichiers: Principe de base

Un Système de Fichiers est l‘organisation des données sur disque


dur définie par le système d‘exploitation.
les fichiers, sous linux, sont organisés sous forme d‘arborescence
de répertoires et de fichiers.

Chaque répertoire contient un


lien vers :
lui-même : désigné par un
point .
son père : désigné par deux
points ..
D
Système de Fichiers: Principe de base

Chaque répertoire contient un


lien vers :
lui-même : désigné par un
point .
son père : désigné par deux
points ..

Le répertoire racine / est un


répertoire particulier
puisque les deux liens: lui-
même . et son père .. le
désigne.
Types de Fichiers

On distingue trois types de fichiers:


 Fichiers ordinaires
 Catalogues (répertoires
ou directory)
 Fichiers Spéciaux

Fichiers Ordinaires
Ce sont soit des fichiers contenant du texte, soit des exécutables (ou binaires),
soit des fichiers de données.
Par défaut, rien ne permet de différencier les uns des autres, sauf à utiliser
quelques options de certaines commandes (ls -F par exemple) ou la
commande file.
Types de Fichiers

Catalogues
Les répertoires permettent d'organiser le disque dur en créant une
hiérarchie.
Un répertoire peut contenir des fichiers normaux, des fichiers
spéciaux et d'autres répertoires, de manière récursive.

Fichiers Spéciaux
Ce sont le bien souvent des fichiers servant d‘interface pour les
divers périphériques. Ils peuvent s'utiliser, suivant le cas, comme des
fichiers normaux.
Un accès en lecture ou écriture sur ces fichiers est directement dirigé
vers le périphérique (en passant par le pilote Unix associé s'il existe).
Nomenclature des Fichiers

Pour nommer un fichier il faut suivre quelques règles simples. Ces règles sont
valables pour tous les types de fichiers.
Sur les anciens systèmes un nom de fichier ne peut pas dépasser 14
caractères.
Sur les systèmes récents, on peut aller jusqu'à 255 caractères. Il est possible
d'utiliser des extensions de fichiers mais cela ne modifie en rien le
comportement du système (un exécutable n'a pas besoin d'une extension
particulière).

 Unix fait la distinction entre les minuscules et majuscules.


Emsi, EMSI, EmSi et emsi sont des noms de fichiers différents.
La plupart des caractères (chiffres, lettres, majuscules, minuscules, certains
signes, caractères accentués) sont acceptés, y compris l'espace (très
déconseillé). Cependant quelques caractères sont à éviter :
& ; ( ) ~ <espace> \ | ` ? - (en début de nom)
Nomenclature des Fichiers

Quelques noms valides :


Fichier1
Paie.txt
123traitement.sh
Paie_juin_2002.
xls
8

Quelques noms pouvant


poser problème :
Fichier*
Paie(decembre)
Ben&Nuts
Paie juin
2002.xls
-f
...
Les Chemins

 Les chemins permettent de se déplacer dans le système de fichiers.


 Un nom de fichier est ainsi généralement complété de son chemin d'accès.
 C'est ce qui fait que le fichier « Fich1 » du répertoire « rep1 » est
différent du fichier « Fich1» du répertoire « rep2 ».
 Le FS d'Unix étant hiérarchique, il décrit une arborescence.

/
Une Arborescence des rep1 rep2
fichiers sous
… Unix

commence par « / » qui Fich1


est la racine ou root
directory.
rep11 rep12 rep21

Fich1 rep22
Les Chemins

Le nom de chemin ou
/
path name d'un fichier est
la concaténation, depuis la
racine, de tous les
répertoires qu'il est rep1 rep2 …
nécessaire de traverser
pour y accéder, chacun
Fich1.txt
étant séparé par le rep22
caractère « / ».
rep11 rep12 rep21

C'est un chemin absolu.


Fich1.txt

Exemple: /rep2/rep22/Fich1.txt
Les Chemins

Chemin relatif:
Un nom de chemin peut aussi être relatif à
sa position courante dans le répertoire. /
Le système (ou le shell) mémorise la usr
position actuelle d'un utilisateur dans le
home
système de fichier, le répertoire actif. On peut
donc accéder à un autre répertoire de Emsig1
l'arborescence depuis l'emplacement actuel Linux
sans taper le chemin complet.
SQL
Le « .. » permet d'accéder au répertoire de
niveau supérieur.
ig2
Ems
Le « . » définit le répertoire actif (répertoire Linux
courant).
C++
Exemple: ../../Emsig1/Linux
Les Chemins

Le Répertoire personnel:

Lors de la création d'un utilisateur, l'administrateur lui alloue un


répertoire utilisateur.
Après une connexion, l'utilisateur arrive directement dans ce
répertoire, qui est son répertoire personnel.
C‘est dans ce répertoire que l'utilisateur pourra créer ses propres
fichiers et répertoires.

 Le caractère tilde « ~ » est une référence au répertoire


personnel de l‘utilisateur.
Commandes de Déplacement

PWD
PWD= Path of Working Directory
Affichage du nom du répertoire de
travail en cours.

CD
CD= Change Directory
Changement de répertoire courant.
Commandes de Déplacement

$ pwd /
/home/Emsig1 usr
$ cd projets/Java bin
$ pwd home
/home/Emsig1/projets/Java
$ cd .. Emsig1
$ pwd Linux
/home/Emsig1/projets
$ cd ../../Emsig2 SQL
$ pwd Projets
/home/Emsig2 Java
$ cd /usr/bin
$pwd Emsig2
/usr/bin Linux
$ cd .././../home/./Emsig1/./..
$ pwd C++
/home
Visualisation de l’arborescence

ls
La commande ls affiche tout d‘abord l‘ensemble de ses arguments
fichiers autres que des répertoires.
Puis ls affiche l‘ensemble des fichiers contenus dans chaque
répertoire
indiqué.

-R : Afficher récursivement le contenu des sous-répertoires.


-a : Afficher tous les fichiers des répertoires, y compris les
fichiers
commençant par un ‗.‘
-i : Afficher le numéro d‘index (i-noeud) de chaque fichier à
gauche de son nom.
-l : En plus du nom, afficher le type du fichier, les
permissions d‘accès, le nombre de liens physiques, le nom du
propriétaire et du groupe, la taille en octets, et l‘horodatage
Visualisation de l’arborescence

Information détaillée sur les fichiers : ls -ail


Visualisation de l’arborescence

Information détaillée sur les fichiers : ls -ail

2769 drwxr-xr-x 3 Emsiiirg1 Emsiiir 4087 2018-10-21 21:13 Linux


2896 -rwxr-xr-x 22 Emsiiirg1 Emsiiir 238 2018-10-20 08:13 Fich1
71452 drwxr-xr-x 4 Emsiiirg1 Emsiiir 6700 2018-10-20 08:13 SQL

Propriétaire La taille du Le nom


du Numéro Les Droits ficher ficher
d’inode
Nombre de Groupe du
liens physique propriétaire Date de
sur le fichier dernière
modification
Type du
Fichier
Visualisation de l’arborescence

Types et modes d’accès au fichier


Manipulation des noms de fichiers :
basename, dirname

basename
 La commande basename élimine les
répertoires en tête du chemin
d‘accès du fichier.

Exemple:
$ basename /usr/local/bin/lynx
lynx

dirname
 dirname ne conserve que les
répertoires en tête du chemin d‘accès
du fichier.

Exemple:
$ dirname /usr/local/bin/lynx
/usr/local/bin
Manipulation des noms de fichiers :
basename, dirname

file
 Tente de deviner le type du fichier
(répertoire, exécutable, binaire …)
Chapitre 3

Système
d’Exploitation UNIX
Gestions des Fichiers

BOUKRI KHAILL
Arborescence Standard

 Le système UNIX définit une organisation typique des


répertoires, 1'utilisateur peut créer d'autres répertoires mais un
certain nombre sont nécessaires au fonctionnement du système.

etc usr sbin bin


lib home dev
tmp

bin src lib

Emsig1 Emsig2
Arborescence Standard

/home Contient répertoires personnels des utilisateurs.


/etc Contient les fichiers d’administration
/bin Contient les exécutables essentiels pour le système,
directement utilisable par les utilisateurs. (Les fichiers
binaires des commandes)
/dev Contient les fichiers associés aux périphériques (=device).
/boot Contient les fichiers permettant à Linux de démarrer.
/lib Contient des bibliothèques partagées essentielles au
système lors du démarrage.
/tmp Contient les fichiers temporaires.

Arborescence Standard

Le répertoire /home:
Tous les utilisateurs ont un répertoire personnel (répertoire d'accueil, en
anglais home directory) dans le répertoire /home ou dans un de ses
répertoires subordonnés.

La variable d'environnement $HOME contient le chemin d'accès à


ce répertoire.
La commande cd, (change directory) sans paramètre, permettra
très simplement de revenir à ce répertoire après avoir activé un autre
répertoire de travail.
Création et suppression de e
répertoir

mkdir
Syntaxe: mkdir [OPTIONS]
nom_répertoire
 Création d‘un répertoire
correspondant au nom mentionné.

rmdir
Syntaxe: rmdir [OPTIONS]
nom_répertoire
 Suppression du répertoire vide
indiqué, pour supprimer
Création et suppression de e
répertoir
Exemples:

$ ls -al
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 13:15 .
drwxr-xr-x 37 Emsig1 Emsi 512 08 fév 13:04 ..
-rw-r--r-- 1 Emsig1 Emsi 642 15 jan 11:42
fich1
$ mkdir myrep
$ ls –al
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 13:15 .
drwxr-xr-x 37 Emsig1 Emsi 512 08 fév 13:04 ..
-rw-r--r-- 1 Emsig1 Emsi 642 15 jan 11:42
fich1
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 13:15
myrep
$ cd myrep
$ ls –al
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 03:15 .
drwxr-xr-x 37 Emsig1 Emsi 512 08 fév 13:15 ..
Création et suppression de e
répertoir
Exemples:

$ rmdir myrep
$ ls –al
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 13:15 .
drwxr-xr-x 37 Emsig1 Emsi 512 08 fév 13:04 ..
-rw-r--r-- 1 Emsig1 Emsi 642 15 jan 11:42 fich1

Suppression d‘un répertoire non vide:


$ mkdir myrep2
$ cd myrep2
$ mkdir rep21 rep22
$ cd ..
$ rmdir myrep2
rmdir: impossible de supprimer 'myrep1/': Directory not empty
$ rm –r myrep2
$ ls -al
Création de liens

ln
Syntaxe: ln [OPTIONS] nomfile1
nomfile2
 Création de lien entre fichiers.

Lorsqu‘on crée un lien physique de file1 vers file2, file2 pointe vers le
même numéro d‘inode que file1.
Si file1 est effacé, l’inode continue à exister et est encore accessible
au moins par file2.

Option : -s  lien symbolique


Lorsqu‘on crée un lien symbolique de file1 vers file2, file2 est une
référence de file1.
Si file1 est supprimé, file2 référencera un fichier qui n’existe plus
Création de lien physique: ln

Exemples:

$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
$ cat fich1
Bonjour
Au revoir
$ ln fich1 fichLP
$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLP

$ echo test>>fich1

$ cat fich1 $ cat fichLP


Bonjour Bonjour
Au revoir Au revoir
test test
Création de lien physique: ln

Exemples:

$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLP

$ rm fich1

$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLP

$ cat fichLP
Bonjour
Au revoir
test
Création de lien symbolique: ln -s

Exemples:

$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
$ cat fich1
Bonjour
Au revoir
$ ln -s fich1 fichLS
$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
65340 lrw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLS  fich1

$ echo test>>fich1

$ cat fich1 $ cat fichLS


Bonjour Bonjour
Au revoir Au revoir
test test
Création de lien symbolique: ln -s

Exemples:

$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
65340 lrw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLS  fich1

$ rm fich1

$ cat fichLS
cat: testt1ls: No such file or directory
Déplacement ou renommage des
fichiers

mv
Syntaxe: mv file1 file2
 Déplacement ou renommage des fichiers
En réalité, la commande mv n’effectue pas de copie de données
physique mais modifie le nom et transfère les informations d‘un
répertoire à l‘autre.
Déplacement ou renommage des
fichiers
Copie de fichiers : cp

cp
Syntaxe: cp OPTIONS file1... file2
 Duplique physiquement les données d‘un
fichier

Si file1 est le fichier existant à copier


si file2 n’existe pas, il est créé de
façon identique à file1 ;
si file2 existe et est un fichier, il
est écrasé par le contenu de file1 ;
si file2 est un répertoire, alors
file1 est dupliqué sous le même
nom dans le répertoire
file2.
Si file1 est un répertoire existant à copier, il
faut utiliser l’option –r
si file2 n’existe pas, il est créé de
façon identique à file1
(sous répertoires et sous-
Copie de fichiers : cp
Suppression de fichiers : rm

rm
Syntaxe: rm OPTIONS filename
 Supprime un fichier ou un répertoire.
Options :
-r Destruction récursive
-i Mode interactif
-f Force
Caractères spéciaux pour le Shell

$ ls *
achat bateau chat chateau cheval chien gateau rateau
$ ls ?ateau
bateau gateau rateau
$ ls *ateau
bateau chateau gateau rateau
$ ls [gr]ate*
gateau rateau
$ ls [^br]ateau
gateau
$ ls [a-c]*
achat bateau chat chateau cheval chien
Chapitre 4

Système
d’Exploitation UNIX
Les droits d’accès

BOUKRI KHALIL
Introduction

Un des rôles du système d‘exploitation est d‘assurer la sécurité et l‘accès


aux données, ce qui se fait grâce au mécanisme des
droits.
Chaque fichier se voit attribué des droits qui lui sont propres, des
autorisations d'accès individuelles. Lors d'un accès le système vérifie si celui-
ci est permis.

UID: User Identifier


A sa création par l'administrateur, un utilisateur se voit affecté un UID

User Identifier») unique.
Les utilisateurs sont définis dans le fichier /etc/passwd.
GID: Group Identifier
De même chaque utilisateur est rattaché à au moins un groupe (groupe
principal), chaque groupe possédant un identifiant unique, le GID (« Group
Identifier»).
Les groupes sont définis dans /etc/group.
Introduction

La commande: id

La commande id permet d'obtenir ces informations.

En interne, le système travaille uniquement avec les UID et GID, et pas


avec les noms par eux-mêmes.
Introduction

A chaque fichier (numéro d‘inode) sont associés un UID et un GID


définissant son propriétaire et son groupe d'appartenance.
On peut affecter des droits pour le propriétaire, pour le groupe d'appartenance
et pour le reste du monde. On distingue de ce fait trois cas de figure
1. UID de l'utilisateur identique à l'UID défini pour le fichier : cet utilisateur
est propriétaire du fichier.
2. Les UID sont différents : le système vérifie si le GID de l'utilisateur est
identique au GID du fichier : si oui l'utilisateur appartient au groupe
associé au fichier.
3. Dans les autres cas (aucune correspondance) : il s'agit du reste du monde
(others), ni les propriétaires, ni appartenant au groupe.

rwx r-x r--

Propriétaire Groupe Autres


Signification des droits

Droit Signification Général


r Readable (lecture)
w Writable (écriture)
x Executable (exécutable comme programme)

Droit Signification pour un fichier normal


r Le contenu du fichier peut être lu, chargé en mémoire, visualisé,
recopié.
w Le contenu du fichier peut être modifié, on peut écrire dedans. La
suppression n'est pas forcément liée à ce droit (voir
droits sur répertoire).
x Le fichier peut être exécuté depuis la ligne de commande, s'il s'agit soit
d'un programme binaire (compilé), soit d'un script (shell, ...)
Signification des droits

Droit Signification pour un répertoire

Les éléments du répertoire (catalogue) sont accessibles en lecture.


Sans cette autorisation, le ls et les critères de filtres sur le répertoire et son
r
contenu ne sont pas possibles.
Ce droit ne suffit pas pour entrer dans le catalogue.

Les éléments du répertoire (catalogue) sont modifiables et il est possible


de créer, renommer et supprimer des fichiers dans ce répertoire.
w
On voit donc que c'est ce droit qui contrôle l'autorisation de suppression
d'un fichier même si on est pas propriétaire des fichiers du répertoire.

Le catalogue peut être accédé par cd et listé.


Sans cette autorisation il est impossible d'accéder et d'agir sur son contenu
x qui devient verrouillé.
Avec uniquement ce droit les fichiers et répertoires inclus dans celui-
ci peuvent être accédés mais il faut alors obligatoirement connaître leur
nom.
Modification des droits

Lors de sa création, un fichier ou un répertoire dispose de droits par


défaut.
On utilise la commande chmod (change mode) pour modifier les droits
sur un fichier ou un répertoire.
Il existe deux méthodes pour modifier ces droits : par la forme
symbolique et par la base 8.
Seul le propriétaire d'un fichier peut en modifier les droits (sauf
l'administrateur système).
Le chmod sur un lien symbolique est possible comme sur tout autre
fichier, mais cela ne modifie pas les droits du lien par lui-même mais les
droits du fichier pointé.
Modification des droits

Modification par symboles:

La syntaxe est la suivante :


chmod modifications Fich1 [Fich2...]

S‘il faut modifier les droits de l’utilisateur, on utilisera le caractère « u


».
Pour les droits du groupe, le caractère « g », pour le reste du monde le
caractère « o », pour tous le caractère « a ».
Pour ajouter des droits, on utilise le caractère « + », pour en retirer le
caractère « - », et pour ne pas tenir compte des paramètres précédents le
caractère « = ».
Enfin, le droit d'accès par lui-même : « r », « w » ou « x
».
Modification des droits

Modification par symboles:

Exemple 1:
Modification des droits

Modification par symboles:

Exemple 2:
Modification des droits

Modification par base 8:

La syntaxe est identique à celle des symboles.


A chaque droit correspond une valeur octale c‘est à dire de zéro (0) à sept
(7), positionnelle et cumulable.

Propriétaire Groupe Autres


r w x r w x r w
x
400 200 100 40 20 10 4 2
1

Pour obtenir le droit final il suffit d‘additionner les valeurs. Par exemple si
on veut rwxrw-rw- alors on fera : 400+200+100+40+20+0+4+2+0 =766
et pour rw-r--r--: 400+200+0+40+0+0+4+0+0 = 644
Modification des droits

Modification par base 8:

Exemple:
Masque des droits

Les droits d'un fichier ou d'un répertoire après leur création sont:
rw-r—r-- (644) pour un fichier
rwxr-xr-x (755) pour un répertoire

Ces valeurs sont contrôlées par un masque, lui-même modifiable par la


commande umask.
La commande prend comme paramètre une valeur octale qui sera soustraite
aux droits d'accès maximum.
Par défaut, tous les fichiers sont créés avec les droits 666 (rw-rw-rw-) et les
répertoires avec les droits 777 (rwxrwxrwx), puis le masque est appliqué.
Sur la plupart des Unix, le masque par défaut est 022, soit ----w--w-. Pour
obtenir cette valeur, on tape umask sans paramètre.
Masque des droits

Pour un fichier : Pour un répertoire :


Maximum rw-rw-rw- (666) Maximum rwxrwxrwx (777)
Retirer ----w--w- (022) Retirer ----w--w- (022)
Reste rw-r--r-- (644) Reste rwxr-xr-x (755)

ATTENTION : le calcul des droits définitifs (effectifs) n'est pas une


simple soustraction de valeurs octales ! Le masque retire des droits
mais n'en ajoute pas.

Pour un fichier :
Maximum rw-rw-rw- (666)
Retirer ---r-xrw- (056)
Reste rw--w---- (620) et PAS
610 !
Changement de propriétaire et de
groupe

Il est possible de changer le propriétaire et le groupe d'un fichier à l'aide des


commandes chown (change owner) et chgrp (change group).
chown utilisateur fich1 [Fich2...]
chgrp groupe fich1 [Fich2...]

Sur les UNIX récents seul root peut utiliser


chown.
La commande chgrp peut être utilisée par n'importe qui à condition que
cet utilisateur fasse aussi partie du nouveau
groupe.

En précisant le nom d'utilisateur (ou de groupe), le système vérifie d'abord leur


existence.
On peut préciser un UID ou un GID, dans ce cas le système n'effectuera pas de
vérification.
Pour les deux commandes on peut préciser l'option -R, dans ce cas les droits
seront changés de manière récursive. Les droits précédents et l'emplacement
du fichier ne sont pas modifiés.
Changement de propriétaire et de
groupe

Exemples:
Changement de propriétaire et de
groupe

Exemples:
Exercices

Exercice 1:

Quelles sont les commandes (selon deux représentations base 8 et


symbolique) pour donner à chaque dossier les droits suivant (on suppose
qu‘après commande on remet le répertoire à 755):
Exercices

Exercice 2:

• 1/ Donnez les équivalences symboliques des droits d‘accès suivants :

•  744, 633, 755, 111, 722 et 700.

2/ Donnez les équivalences en base 8 des droits d‘accès suivant:

r-x --w- ---


rwx --x --x
r- - --- ---
rw- r-- ---
Chapitre 5
Système d’Exploitation
UNIX
Commandes d’observation
Recherche multicritères & du
système

BOUKRI KHALIL
La Recherche multicritères
La commande « Find »
Recherche de fichiers : find

find
Syntaxe: find dir [OPTIONS]
Rechercher des fichiers dans une
hiérarchie de répertoires.
-name : motif Fichier dont le nom de base (sans les répertoires du
chemin d‘accès), correspond au motif du shell
-perm mode : fichier dont les autorisations d‘accès sont fixées exactement
au mode indiqué
-type type : fichier du type donné (bloc b, caractère c, répertoire d, tube
nommé p, régulier f, liens symbolique l, socket s)
-links n : fichiers ayant n liens
-user utilisateur : fichier appartenant à l‘utilisateur indiqué
-size n : fichier utilisant n blocks
-inum n : fichier dont le numéro d‘i-node est n
Recherche de fichiers : find

find
Syntaxe: find dir [OPTIONS]
Rechercher des fichiers dans une
hiérarchie de répertoires.
-newer fichier : fichier modifié plus
récemment que le fichier indiqué
-atime n : dernier accès au fichier
il y a n*24 heures
-mtime n : fichier dont les données
ont été modifiées il y a n*24 heures
-ctime n : dernière modification du
statut du fichier il y a n*24 heures
-print: affiche le nom complet
du fichier sur la sortie standard
-ls: affiche le nom du fichier
en cours dans le format ‗ls –dils‘
-exec cmd : exécute la commande jusqu‘à ce qu‘on rencontre un ‗ ;‘,
Recherche de fichiers : find

Exemple 1: Chercher dans l‘arborescence /usr les répertoires dont le nom


commence par ‖local‖ :

$ find /usr -name "local*" -type d –print

Exemple 2: Chercher dans le répertoire courant les fichiers .c de plus de


40Ko:

$ find . –name " *.c " –type f -size +80 –print

Exemple 3: Chercher les liens symboliques qui se nomment local dans


/usr:

$ find /usr -name "local" -type l –print


Recherche de fichiers : find

Exemple 4: chercher dans le répertoire courant les fichiers exécutables


appartenant à l‘utilisateur emsig1:

$ find . -user emsig1 –perm +111 -type f –print

Exemple 5: Chercher les fichiers .c ayant le droit 644:

$ find . -name ’*.c’ –perm 644 –type f -print

Exemple 6: Supprimer dans votre répertoire d‘accueil les fichiers a.out ou .o


datant de plus de 7 jours:

$ find ~ \( -name a.out -o -name ’*.o’ \) \ -mtime +7 -exec rm \{\} \;


Les commandes
d’observation du système
Date et heure

La commande: date

La commande date permet d'obtenir les informations concernant la date


et l‘heure du système.
Nom de l’ordinateur

La commande: hostname

La commande hostname permet d'obtenir le nom de l‘ordinateur.


Nom du système d’exploitation

La commande: uname

La commande uname permet d'obtenir le nom du système d‘exploitation.


Informations sur l’utilisateur

La commande: who

La commande who affiche les information sur l‘utilisateur connecté.


Historique des connexions

La commande: last
La commande last affiche les dernières connexions au système.
Escape disque dur

La commande: du

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.
Escape disque dur

La commande: df

La commande df (disk free) permet d‘afficher à l‘écran la taille de


l‘espace disque occupée et la taille de l‘espace disque libre.
Nom du terminal utilisé

La commande: tty

La commande tty affiche le nom du terminal utilisé.


Exercices

1/ Comment chercher tous les fichiers dont les noms


commencent par un «a» majuscule ou une minuscule, suivi
d'éventuellement quelques lettres ou chiffres, et se terminent
par un chiffre entre 3 et 6 ?

2/ Chercher dans /usr les fichiers dont la taille dépasse 1Mo


(2000 blocs de 500octets) et dont les droits sont fixés à 755 (-
rwxr-xr-x).

3/ Trouver tous les fichiers « core » dans l'arborescence et


supprimez les après confirmation.
Chapitre 6
Système d’Exploitation
UNIX
Mécanismes d’interprétation du
Shell (Redirections & Tubes)

BOUKRI KHALIL
Types de Shell
Caractères spéciaux de Shell
Métacaractères: Quotation

’ " ` \ changent la façon dont le Shell interprète les caractères spéciaux.


Métacaractères: Quotation

Exemples
Flux: Redirections

1: Ecran
0: Clavier
Processus 2: Ecran

 L‘entrée standard (stdin : 0) : le flux d‘entrée du programme


(par
défaut, ce qui est tapé au
clavier)
 La sortie standard (stdout : 1) : le flux de sortie du programme
(par défaut, il sera affiché à
l‘écran)
 L‘erreur standard (stderr : 2) : le flux d‘erreur du programme (par
Métacaractères de redirection
Redirection de la sortie standard

Syntaxe: Exemple:

cmd > fichier


$ echo "Premier contenu ajouté" > file1
 redirige la sortie de la $ cat file1
commande dans le fichier Premier contenu ajouté
qui est créé s‘il n‘existait
$ echo "Deuxième contenu ajouté " >> file1
pas et dont le contenu est $ cat file1
écrasé sinon.
Premier contenu ajouté
cmd >> fichier Deuxième
contenu ajouté

 redirige la sortie de la $ echo


"Troisième contenu ajouté" > file1
commande à la suite du
exister). $ cat file1
contenu du fichier (qui doit Troisième
contenu ajouté
Redirection de la sortie d’erreur

Syntaxe: Exemple:

cmd 2> fichier $ ls abc file1 file2


 redirige la sortie d‘erreur ls : abc : No such file or directory
de la commande dans le file1 file2
fichier qui est créé s‘il $ ls abc file1 file2 > sortiestd
ls : abc : No such file or directory
n‘existait pas et dont le
$ cat sortiestd
contenu est écrasé sinon.
file1 file2
$ ls abc file1 file2 2> erreurstd
file1 file2
cmd 2>> fichier $ cat erreurstd
 redirige la sortie d‘erreur ls : abc : No
such
de lafile or directory
commande à la suite $ ls abc file1 file2 2> erreurstd >sortiestd

du
doitcontenu
exister). du fichier (qui ls : abc : No such file or directory
$ cat
erreurstd
Redirection de l’entrée standard

Syntaxe: Exemple:

cmd < fichier


 l‘entrée de la commande
provient du fichier

cmd <<
ETQ
 l‘entrée de la commande
provient des lignes de
commandes suivantes
jusqu‘à la ligne ne
contenant que l‘étiquette
Tube (Pipe) entre flux d’entrée et
flux de sortie

Syntaxe:
cmd 1 | cmd 2
 redirige la sortie de la commande1 vers l‘entrée de la commande 2

cmd1 > fictmp


cmd1 | cmd2 <==> cmd2 < fictmp
r
m fictmp
Tube (Pipe) entre flux d’entrée et
flux de sortie

Syntaxe:
cmd 1 | cmd 2
 redirige la sortie de la commande1 vers l‘entrée de la commande 2

La commande « xargs »
Certaines commandes ne savent pas lire leur entrée standard:
➔ ls , rm, cp, ln, mv

Exemple :
ls | rm aucun sens
➔ ls | xargs rm
Redirection vers un descripteur

Syntaxe:
c
m
d

>

&

d
e
s
c
 redirige la sortie de la commande vers le descripteur donné (0 :entrée std, 1 :
sortie std, 2 : erreur std)
Si l'on ne souhaite pas afficher et/ou enregistrer les erreurs retournées, il est
possible de rediriger le descripteur 2 vers un fichier spécial existant sur tous les
Travaux Pratiques

Exercice 1:

Les caractères: \ ' " annulent, tout ou en partie, les effets des méta-
caractères du shell.
Essayez les commandes:

echo
$USER
echo
"Bonjour
$USER"
echo
'Bonjour
$USER'
echo "* Bonjour $USER *"
echo '* Bonjour $USER *'
echo \* Bonjour $USER \*
Travaux Pratiques

Exercice 2:

Cherchez dans toute l'arborescence les fichiers dont le nom


commençant par X ou x et se terminant par .c, redirigez le résultat dans
le fichier « resultatFind » et les erreurs vers le fichier
poubelle /dev/null.
Travaux Pratiques

Exercice 3:

Le répertoire /usr/include contient les fichiers d‘entête standards en


langage C (stdlib.h, ...).

1. Créer un répertoire nommé « inc » dans votre répertoire de


personnel. En utilisant une seule commande, copier les fichiers du
répertoire /usr/include dont le nom commence par std.
2. Afficher la liste des fichiers de /usr/include dont le nom
commence par a, b ou c.
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é
"Abc.list" de votre répertoire personnel.
Chapitre 7
Système d’Exploitation
UNIX

Les Filtres et Utilitaires

BOUKRI KHALIL
Les filtres: Introduction

Un Filtre (ou une commande filtre) est un programme sachant écrire et


lire des données par les canaux standards d'entrée et de sortie. Il en
modifie ou traite éventuellement le contenu.

Filtre Filtres actifs

wc
sort
ore
m
Flux Entrant … Flux Sortant

cat
Filtre passif

Les filtres sont utilisés avec les pipes (les tubes).


Tous les processus formant un pipe tournent en même
temps.
Recherche de lignes dans un fichier

Grep
Syntaxe: grep [Options] exp
[Fichier1...]

Il s'agit d'extraire des lignes d'un


fichier selon divers critères.
La commande grep lit les données soit depuis un fichier d'entrée, soit
depuis le canal d'entrée standard.
Options principales:
-v : les lignes complémentaires
-i : sans tenir compte de la casse (majuscule=minuscule)
-n : en précédant les lignes sélectionnées par leur numéro de ligne
-l : n‘affiche que le nom du fichier
Expression régulières étendues

Expressions régulières par ligne:

. : (dot) un caractère quelconque


* : opérateur de répétition
[x y z] : x ou y ou z
[A-G] : intervalle
[^xyz] : sauf x, y ou z
^ : début de ligne
$ : fin de ligne
\{m,n\} : répétions entre m et n fois
\ : échappement
Expression régulières étendues

Exemples:

 ^$ : représente une ligne vide


 ^[A-Z] : une majuscule en début de ligne
 [a-z][a-z]$ : 2 minuscules en fin de ligne
 [ABCD]\ {2,10\}$ : entre 2 et 10 car. A,B,C ou D en fin de ligne
 .* : une séquence vide ou de plusieurs caractères
Recherche de lignes dans un fichier

Exemple 1:
$ cat file
Exemple 2:
il fait beau
il fait chaud $ grep "ˆ[A-Z].*[0-9]$" <<fin
beau temps n‘est ce pas ? > je teste la commande grep1
>La ligne 2
$ grep "ˆil" file >Au revoir
il fait beau >fin
il fait chaud
 La ligne
2
$ cat file | grep –v "ˆil"
beau temps n‘est ce pas ?
$
Remplacement de caractères: tr

Tr
Syntaxe: tr [OPTIONS] chaine1
chaine2
 Transposer ou éliminer des
caractères substitution ou
suppression de
caractères sélectionnés.
Un caractère appartenant à chaine1 est remplacé par le caractère de
même position dans chaine2.

Options principales:
-d : suppression des caractères sélectionnés
-s : "aaaaa" dans chaine1  "a" dans chaine2
Remplacement de caractères

Format des expression de chaîne:

 [a-z] = segment de 26 caractères allant de ‘a‘ à ‘z‘


 [a*n] = a. . . a (n fois)
 \xyz = désigne le caractère de code octal xyz
 ‘[: lower: ]’ = lettre minuscule
 ‘[ :upper:]’ = lettre majuscule

Exemples:
$ echo "coucou" | tr [a-z] [A-Z]
COUCOU
$ echo "BONJOUR EMSI" |tr
'[:upper:]' '[:lower:]'
bonjour emsi
$ echo "aaabbbaaa" | tr -s [a-z] [A-Z]
ABA
Compter les lignes: wc

Wc
Syntaxe: wc [Options] fichier

La commande wc (word count) permet de compter les lignes, mots


et caractères.
Options:
-l : compte le nombre de lignes
-c : compte le nombre d'octets
-w : compte le nombre de mots

$ wc liste
12 48 234 liste
Le fichier « liste » contient 12 lignes, 48 mots et 234 caractères.
Filtre Uniq

Uniq
Syntaxe: uniq OPTIONS fichier

Élimine les lignes dupliquées dans un


fichier trié par défaut.
Options principales:
-d : affiche seulement les lignes dupliquées
-u : affiche seulement les lignes non
dupliquées (par défaut)
-c : donne le nombre d‘exemplaires de
chaque ligne
Tri de lignes: sort

Sort
Syntaxe: sort [OPTIONS] fichier

Trie les lignes d‘un fichier texte


Options principales:
-n : dans l‘ordre numérique
-d : dans l‘ordre alphabétique
-t : le caractère séparateur de champs
-k : le champs considéré pour le tri
-o : le résultat est mis dans fichier
Colonnes et champs: cut

Cut
Syntaxe: cut [OPTIONS] fichier

Supprime une partie de chaque


ligne d‘un fichier par défaut
Options principales:
-d séparateur : le
séparateur des champs
-f listes de champs : les
champs séparés
-s (avec -f) : supprime
les lignes vides
Joindre deux fichiers: join

Join
Syntaxe: join [OPTIONS] fichier1
fichier2

Fusionner les lignes de deux fichiers


ayant un champ commun.
Options principales:
-j1 n: jointure sur nième champ du
premier fichier
-j2 n: jointure sur nième champ du
deuxième fichier
-t car: le caractère séparateur de
champs
Filtre: paste

Paste
Syntaxe: paste OPTIONS fichier...

Regrouper les lignes du même n° de


différents fichiers.
Autres Filtres

Head
Syntaxe: head OPTIONS fichier
Afficher les 10 premiers lignes du
fichier.
Option:
-n: Afficher les n premières lignes.

Tail
Syntaxe: tail OPTIONS fichier
Afficher les 10 dernières lignes du
fichier.
Option:
-n: Afficher les n premières lignes.
Comparaison de fichiers

Diff
Syntaxe: diff [Options] fich1 fich2
Comparer le contenu de deux fichiers.
indique les modifications à apporter aux deux fichiers en entrée pour que leur
contenu soit identique.
Option:
-b permet d'ignorer les espaces (blank)

Cmp
Syntaxe: cmp OPTIONS fich1 fich2
compare les fichiers caractère par caractère. Par défaut la commande s'arrête
dès la première différence rencontrée et indique la position de l'erreur.
Comparaison de fichiers

Exemple:

Vous aimerez peut-être aussi