Vous êtes sur la page 1sur 192

GNU–LINUX

PLAN
I. Introduction
II. Linux graphiquement
1. Installation
2. Utilisation des Bureaux (GNOME et KDE)
3. Configuration de base
a. Configuration des services
b. Configuration du réseau
c. Installation – désinstallation des paquetages
d. Accès aux partitions Windows
III. Commandes Linux
1. Gestion du système de fichiers
2. Gestion des processus
3. Filtres
4. Mécanismes du Shell
IV. Programmation Shell

12/02/19 Linux © A. El Hadri 4


Introduction


Termes à définir

– UNIX
– GNU/LINUX
– Distributions GNU/LINUX

12/02/19 Linux © A. El Hadri 5


Unix

UNIX™ est le nom d'un système d'exploitation multitâche et
multiutilisateur créé en 1969, à usage principalement professionnel,
conceptuellement ouvert et fondé sur une approche par laquelle il
offre de nombreux petits outils chacun dotés d'une mission
spécifique.

Il a donné naissance à une famille de systèmes, dont les plus
populaires sont Linux, Mac OS X et Solaris.

On nomme famille Unix l'ensemble de ces systèmes. On dit encore
qu'ils sont de type Unix

Il existe aujourd'hui un ensemble de standards réunis sous la
norme POSIX qui vise à unifier certains aspects de leur
fonctionnement.
Wikipédia

12/02/19 Linux © A. El Hadri 6


Unix : caractéristiques 1

Écrit à 98% en langage C, portable.

Énormément de versions (HP/UX, XENIX, AIX,
SOLARIS, IRIX, LINUX) se rapprochant des 2 branches
SysV & BSD.

Multi-tâches

Multi-utilisateurs

multi-plateformes : Intel, Motorola (Apple MAC et
Amiga), Sun Sparc, DEC Alpha, ...

Plusieurs interfaces graphiques, aisées; plusieurs
systèmes d’interpréteurs de commandes (shell).

12/02/19 Linux © A. El Hadri 7


Unix : caractéristiques 2

Gestion hiérarchique des fichiers.

Sécurité par fichier (fonctions & appartenance),
info temporelles.

Indépendance des périphériques (son succès!).
Notion de device file.

Exécution en tâche de fond possible.

Redirection des I/O.

12/02/19 Linux © A. El Hadri 8


Unix : avantages & inconvénients

Avantages multiples :
– Très grande fiabilité.
– Multi plateformes (tout processeur),
– Patrimoine applicatif très riche (FTP, news, WWW,
messagerie, compilo, outils d’admin & sécurité, etc.).
– Enormément de logiciels free/shareware.

Inconvénients :
– Trop de standards : portage difficile.
– Administration pour les avertis

12/02/19 Linux © A. El Hadri 9


GNU

Acronyme récursif qui signifie en anglais "Gnu's Not
Unix"

Système libre conçu pour être compatible avec Unix
mais complètement nouveau (par l'absence de tout
code source d'origine Unix).

Le projet GNU est lancé par Richard Stallman en 1984
afin de créer un système d'exploitation libre et complet.

En 1985, Stallman crée la Free Software Foundation
(FSF), structure logistique, légale et financière du projet
GNU

12/02/19 Linux © A. El Hadri 10


G N U - Linux

À partir de 1990, le système GNU dispose d'un ensemble
important d'applications: éditeurs, compilateurs,
bibliothèques système...etc. Le principal composant encore
manquant étant le noyau.

Le projet GNU avait prévu le développement du noyau Hurd
pour compléter le système, mais au début des années 1990,
Hurd ne fonctionnait pas encore et son développement
rencontrait encore des difficultés

L'arrivée du noyau Linux (fin 1991) compléta le projet GNU

En janvier 2004, l'Unesco a inscrit comme "Trésor du monde"
le projet GNU.

12/02/19 Linux © A. El Hadri 11


Linux

Au sens strict, Linux est le nom du noyau de système
d'exploitation libre, multitâche, multiplate-forme et multi-
utilisateur de type UNIX créé par Linus Torvalds.

Par extension, Linux désigne couramment le système
d'exploitation libre combinant le noyau et un ensemble
d'utilitaires GNU (emacs, gcc, ...) et d'applications libres
(Xwindow, LaTeX, ...)

Pour désigner cet ensemble, la Free Software Foundation
(FSF) soutient la désignation GNU/Linux afin de rappeler que
le noyau Linux est généralement distribué avec de nombreux
logiciels ainsi que l'infrastructure du projet GNU.

12/02/19 Linux © A. El Hadri 12


Distribution Linux

Pour l'utilisateur final, Linux se présente sous la forme d'une
distribution Linux.

Une distribution Linux (ou distribution GNU/ Linux) est un ensemble
cohérent de logiciels rassemblant un noyau Linux, des logiciels
issus du projet GNU, et des logiciels supplémentaires, le plus
souvent libres.

Les distributions comprennent le plus souvent un logiciel
d'installation et des outils de configuration.

Il existe de nombreuses distributions, chacune ayant ses
particularités : certaines sont dédiées à un usage spécifique (pare-
feu, routeur, grappe de calcul...), d'autres à un matériel spécifique,
par contre les grandes distributions restent à usage générale.

12/02/19 Linux © A. El Hadri 13


Distributions Linux
Liste non exhaustive des distributions :
– RedHat - Fedora
– Ubuntu
– Mandriva
– Debian
– Suse
– Slackware
– Caldera
– Gentoo
– …
+ mini-distributions: Trinux, DosLinux, …
12/02/19 Linux © A. El Hadri 14
GNU / Linux : le présent

Support de plusieurs architectures (x86, ppc, ...)

Multiples interfaces graphiques utilisateur,

Gestion multiprocesseurs

Facilité (modularité) d’installation,

Réactivité et adaptation au matériel récent et aux
besoins spéciaux (temps réel, sécurité, etc),

Existence de centres de services

Outils dédiés à ce système.

12/02/19 Linux © A. El Hadri 15


Installation
Redhat - Fedora

12/02/19 Linux © A. El Hadri 16


Installation: Préparatifs

• Quel type de hardware avez-vous ?


• Sont-ils supportés ?
• Avez-vous les ressources physiques (espace disque,
mémoire, ...) nécessaires?
• Créez un support d'installation (CD, mémoire Flash, ...)
si nécessaire

12/02/19 Linux © A. El Hadri 17


Installation: Préparatifs

Obtenir les informations sur votre hardware
– CPU, mémoire, clavier, sourie
– Disques, lecteurs CD, DVD
– Carte graphique, moniteur
– Interfaces réseaux, adresses IP
– Imprimantes
– ….


à partir de :
– La documentation technique
– Windows Control Panel

12/02/19 Linux © A. El Hadri 18


Installation: Préparatifs

Si vous voulez disposer d'un système « dual-boot »
partitionnez, au préalable, votre disque pour réserver un
espace disque à Linux.

Outils (Defragmentation + Partionnement)
– fdisk,
– Partition Magic,
– Parted, gtarted,
– fips,
– ….

Quelque distributions vous proposent (pendant
l'installation) de redimensionner les partitions existantes

12/02/19 Linux © A. El Hadri 19


Installation: Plan

Démarrer le système à partir d’une unité "bootable" :
mémoire flash, CD-ROM

Le système chargé en mémoire crée un Ramdisk et démarre
l'installation qui vous demande de :
– Choisir le langage et le type du clavier
– Créer les partitions
– Choisir et configurer le chargeur GRUB
– Configurer le time_zone
– Choisir le mot de passe pour le compte de l’administrateur.
– Configurer le réseau
– Choisir les paquetages à installer

L'ordre des questions posées dépend de la version

12/02/19 Linux © A. El Hadri 20


Installation:
Partitionnement
En général :
• Au maximum On peut créer 4 partitions primaires
• L’une d’elle peut être une partition étendue
• Une partition étendue peut abriter un ensemble de partitions logiques

MBR + Table des partitions


Windows

Linux : partition 1

Linux : partition 2

Linux : partition 3

12/02/19 Linux © A. El Hadri 21


Partitions requises (1)
Pour l’installation de Gnu/Linux, il est vivement conseillé
de créer au minimum les trois partitions suivantes :
/boot d’une taille de 20Mo à 100Mo, elle abritera tout ce qui est
nécessaire au démarrage de la machine: le(s) chargeur(s) et
le(s) noyau(x) Linux. Pour les machine relativement
anciennes elle doit résider en deçà du cylindre 1023 du
disque.
/ à partir de 500Mo : elle contient le système de fichiers racine
de Linux « / ». Dans cette configuration, tous les fichiers
(sauf ceux stockés dans /boot/) se trouvent sur la partition
root.

12/02/19 Linux © A. El Hadri 22


Partitions requises (2)
swap (d'au moins 256 Mo) — les partitions swap sont utilisées
pour prendre en charge la mémoire virtuelle. En d'autres
termes, les données transférées sur une partition swap
lorsqu'il n'y a pas assez de RAM pour continuer à exécuter
les applications.
L'espace swap devrait être égal à deux fois la quantité de
RAM physique jusqu'à 2 Go de RAM physique et une fois et
demi à une fois la quantité de RAM physique pour toute
quantité au-dessus de 2 Go, mais jamais moins de 32 Mo.
La quantité d'espace swap varie selon les critères suivants :
- Les applications devront tourner sur le système.
- La quantité de RAM physique installée sur la machine.
- La version du noyau.

12/02/19 Linux © A. El Hadri 23


Autres Partitions (1)
Les principales autres partitions qu’ont peut ajouter pour une
installation professionnelle sont :
/usr contient la partie applicatif du système. On y trouves la
plupart des commandes et services pour administrateur et
utilisateurs.
/home sa taille dépend du nombre d'utilisateurs et de leur
consommation d'espace disque.
/var à partir de 100Mo : Elle contient les fichiers et répertoires
variables. En particulier les files d'attente (spool) et fichiers
de journalisation (logs).

12/02/19 Linux © A. El Hadri 24


Autres Partitions (2)

/tmp sa taille dépend du nombre de services installés. On


peut l'estimer à environ 50Mo. Elle contient des
fichiers temporaires créés par ces services. La
création spécifique d'une partition pour /tmp évite
la saturation de la partition racine.
/usr/src sa taille est d'au moins 600 Mo. Elle contient les
sources du noyau et des paquetages. Ce répertoire
est indispensable pour régénérer un noyau
personnalisé.

12/02/19 Linux © A. El Hadri 25


Partitionnement
• Les deux partitions « / » et « swap » sont indispensables
pour toute installation de Gnu/Linux
• En fonction d’usage et d’espace disque disponible, Il est
parfois souhaitable de créer les autres partitions : /boot, /home,
• Avantage :
– Structuration
– Fiabilité
– Partage
– Sécurité
• L’utilitaire de partitionnement utilisé est: Disk Druid
• Pour chaque partition à créer on doit spécifier :
– Le type (swap, ext2, ext3, ….)
– Le répertoire de montage (pour les partitions non swap)
– La taille

12/02/19 Linux © A. El Hadri 26


Boot Loader : Configuration
• Le Boot Loader est le premier programme exécuté au démarrage
de la machine
• Deux Boot loader sont disponibles sous Linux :
– LILO (LInux Loder) est l'ancien chargeur de Linux
– GRUB (GRand Unified Bootloader) est plus récent et plus
flexible. Il est proposé par défaut par la plupart des distributions
récentes.
• On peut ne pas installer le Boot loader si on envisage une autre
manière de démarrer le système, comme utiliser le boot loader
de Windows par exemple.
• On peut aussi spécifier un password de démarrage.

12/02/19 Linux © A. El Hadri 27


Configuration du réseau
• Demandé lorsque le processus d’installation
détecte la présence d’une interface réseau
• On peut choisir entre :
– Une configuration automatique via DHCP (cela
suppose avoir un serveur DHCP)
– Entrer manuellement les paramètres réseaux :
• Adresse IP et masque
• Hostname
• Adresse de la passerelle par défaut
• Les adresses des serveurs DNS utilisés

12/02/19 Linux © A. El Hadri 28


Sélection des paquetages
• Tous les paquetages disponibles sont rassemblés par groupe (X
Window, Éditeurs, serveur FTP, …)
• Les groupes de paquetages sont rassemblés par fonction (Desktop,
Application, serveurs, …)
• La sélection des paquetages peut s’effectuer par groupe ou
individuellement.
• Le bouton détail devant chaque groupe peut aider à raffiner la
sélection dans le groupe en question
• La fenêtre de contrôle de dépendance apparaît lorsqu’un paquetage
sélectionné nécessite un autre non sélectionné. Elle vous permet de
choisir entres les actions suivantes:
– Sélectionner les paquetages manquants
– Ne pas installer les paquetages sources du problème
– Ignorer le système de dépendance

12/02/19 Linux © A. El Hadri 29


Post Installation

• Exécuté après le premier redémarrage du système


• Vous demande de :
– Déclarer les utilisateurs : en effet, seul l’administrateur
(root) est créé lors de l’installation
– Configurer de la date
– Envoyer votre profile matériel aux développeurs

12/02/19 Linux © A. El Hadri 30


Utilisation

12/02/19 Linux © A. El Hadri 31


Démarrage

Analyse la configuration
matérielle de l'ordinateur:
Bios Recensement des
périphériques + Test

Charge et démarre le
Chargeur (Grub) chargeur se trouvant dans le
premier secteur de l'unité
d'amorçage

Configurable en appuyant
Système sur une touche comme
<Ins> <F2> ... juste après le
démarrage de la machine

12/02/19 Linux © A. El Hadri 32


Démarrage

Situé sur le premier secteur
Bios de l'unité de démarrage

Offre généralement un menu
présentant les systèmes
amorçables
Chargeur (Grub) ●
Plusieurs chargeurs sont
possibles. Grub est le
chargeur récent de Linux
Système ●
Son fichier de configuration
est : /boot/grub/grub.conf

12/02/19 Linux © A. El Hadri 33


Démarrage

Invoqué par le chargeur
Bios

Commence par initialiser
les différents paramètres

Charges les drivers et
modules utilisés
Chargeur (Grub) ●
Vérifie les systèmes de
fichiers

Démarre les différents
services
Système ●
Démarre l'interface
graphique si sollicité

12/02/19 Linux © A. El Hadri 34


Connexion

Étape obligatoire dont le but est d'authentifier les
utilisateurs

Chaque utilisateur est identifié par un nom de
connexion (username) et possède un mot de passe
(password)

Une fois connecté chaque utilisateur retrouve son
propre environnement de travail.

L'administrateur a comme username : root

12/02/19 Linux © A. El Hadri 35


Connexion graphique

L'écran de connexion graphique apparaît en dernier
dans le processus de démarrage et réapparaît après
chaque déconnexion de la console graphique

Permet aux utilisateurs de saisir leurs noms et mots
de passe et aussi quelques autres paramètres :
– Langue
– Gestionnaire de bureau

Offre aussi la possibilité d'arrêter ou de redémarrer
le système
12/02/19 Linux © A. El Hadri 36
Connexion à partir d'une
console texte

En plus de la console graphique Linux offre 6 terminaux
virtuels accessibles via les touches :
<CTL><ALT><F1> ... <CTL><ALT><F6>

Dans chaque terminal virtuel on peut se connecter et ouvrir
une session indépendantes des autres

<CTL><ALT><F7> pour revenir à l'interface graphique si
disponible

Les consoles textes sont généralement utilisés pour lancer
des sessions parallèles et aussi pour régénérer l'interface
graphique en cas de crash de ce dernier.
12/02/19 Linux © A. El Hadri 37
Interface graphique

menu Barre d'outils et d'indicateurs

Bureaux virtuels
Iconnifie l'ensemble des fenêtres
Classeur des fenêtres
actives

12/02/19 Linux © A. El Hadri 38


Fenêtre Shell

Peut être lancée à partir du menu :
Applications → Outils Système → Terminal

En haut de la fenêtre un menu présente l'essentiel des
fonctionnalités :
– Ouvrir d'autres fenêtres ou onglets
– Modification de l'aspect visuel (couleur, police, ...)
– Zoom
– Copier / Coller
– Définition des raccourcis claviers

12/02/19 Linux © A. El Hadri 39


Fenêtre Shell

Exemple de raccourcis clavier « standards » :
– Nouvelle fenêtre <Shift><Control>n
– Nouvel onglet <Shift><Control>t
– Copier <Shift><Control>c
– Coller <Shift><Control>v
– Zoom avant <Control>+
– Zoom arrière <Control>-
– Taille normale <Control>=
– Aller à l'onglet numéro n <Alt>n
– Aide <F1>

12/02/19 Linux © A. El Hadri 40


Déconnexion / Arrêt

Déconnexion graphique est accessible à partir du menu Action


A partir des consoles textes: logout ou <Control>d pour se déconnecter
halt ou poweroff pour arrêter le
système
12/02/19 Linux © A. El Hadri 41
Personnalisation de bureau

Pour personnaliser son bureau un utilisateur peut :
– Ajouter / Supprimer les outils au tableau de bord
– Modifier les dispositions et caractéristiques des
différents tableaux de bord présents dans le bureau
– Ajouter d'autres tableaux de bord
– Ajouter des icônes (représentant des applications,
dossiers ou documents) au bureau
– Modifier les différentes caractéristiques du bureau :
thème, image d'arrière plan, écran de veille, effet 3D, ...

12/02/19 Linux © A. El Hadri 42


Ajout/Suppression des outils

Pour ajouter des icônes et applets au tableau de bord :
– Cliquez avec le bouton droit de la souris sur une zone
non-utilisée du tableau de bord, sélectionnez Ajouter au
tableau de bord, puis choisissez entre les différents
types d'outils et applets présents.
– On peut aussi glisser une application directement à
partir du menu

Pour supprimer un icône il suffit de cliquer avec le bouton
droit sur ce dernier et choisir Enlever du tableau de bord

12/02/19 Linux © A. El Hadri 43


Configuration du TB

Pour modifier la disposition et caractéristiques d'un tableau
de bord :
– Cliquez avec le bouton droit de la souris sur une zone
non-utilisée du tableau de bord, sélectionnez Propriété

Pour modifier la disposition des icônes présents :
– Cliquez avec le bouton droit de la souris sur l'icône en
question et choisir : Déplacer

Pour ajouter un autre tableau de bord :
– Cliquez avec le bouton droit sur une zone non-utilisée
d'un tb, et sélectionner : Nouveau tableau de bord

12/02/19 Linux © A. El Hadri 44


Thèmes et autres
caractéristiques

Pour modifier le thèmes de votre bureau :
Menu Système → Préférences → Apparence → Thèmes

Plusieurs thèmes sont disponibles en « standard », d'autres
peuvent être téléchargés à partir d'Internet.
http://www.gnome-look.org/ , http://art.gnome.org/ ...

L'écran de modification de l'image d'arrière plan est
accessible soit en cliquant avec le bouton droit sur le fond
du bureau, soit en choisissant :
Menu Système → Préférences → Apparence → Apparence

Le même menu Préférences présente d'autres options de
personnalisation : Polices, Raccourcis clavier, Effet 3D, ...

12/02/19 Linux © A. El Hadri 45


Personnalisation de bureau 2

Pour un restilage en profondeur du bureau on peut installer
et utiliser les outils suivants :
– Compiz-Fusion : pour un bureau 3D avec une multitude
de thèmes, d'effets et d'animations 3D
– Avant-Window-Navigator : pour une barre de tache
style MacOS-X
– Screenlet : pour placer des indicateurs et applets dans le
bureau (charge, température, horloge, ...)
– Conky : permet d'afficher un tableau de bord complet
présentant différents indicateurs et paramètres

12/02/19 Linux © A. El Hadri 46


Applications

Liste très variée et très complète

Disposée par thème
– Accessoires
– Bureautique
– Graphisme
– Internet
– Outils Système
– Programmation
– Son et Vidéo
– Jeux

Le « panneau de configuration » est disponible sous le
menu: Système → Administration
12/02/19 Linux © A. El Hadri 47
Accessoires

Contient des applications du genre :
– Kcalc Calculatrice
– Kdict Dictionnaire
– Gedit Éditeur de texte graphique
– KHexEdit Éditeur hexadécimal
– Kalarm Alarme personnelle et scheduler de mail
– Ark Gestionnaire d'archive de divers formats
– Kandy Terminal de contrôle des téléphones
portable grâce aux commandes AT.
– ....

12/02/19 Linux © A. El Hadri 48


Bureautique

Contient des applications du genre :
– KaddressBook Carnet d'adresses
– KOrganizer Organizer de bureau
– OppenOffice.org Suite bureautique contenant

Writer Traitement de texte

Impress Éditeur de présentation

Calc Tableur

Base Interface Dase de données

...
– ...

12/02/19 Linux © A. El Hadri 49


Réseaux et Internet

La liste est très longue. Parmi les plus important :
– FireFox Excellent navigateur Web
– Mozilla Suite Internet contenant: navigateur,
client mail et news, éditeur html, ...
– Evolution Client mail très complet
– Wireshark Analyseur de réseaux (sniffer)
– Gftp Client FTP
– Pidgin Messagerie instantanée (supporte
différents protocoles)
– Network Manager Configuration et gestion des réseaux
KwifiManager Eternet, WiFi, ADSL, ...

12/02/19 Linux © A. El Hadri 50


Multimédias
– aRts Système pour la synchronisation du son
– KMid Lecteur multimédia midi/karaoké de KDE
– KMix Programme de mixage son de KDE
– RhythmBox, Audio Player
– Xmms Audio Player
– Sound-Juicer Etrait et joue les CD audio
– Grip CD-Player et CD-Ripper
– Helix Player Vidéo un peu comme le RealPlayer
– VideoLan Multimedia player. Multi-plateforme et complet
– Totem-Xine Movie Player
– ...
12/02/19 Linux © A. El Hadri 51
programmation

Plusieurs langage sont implémentés: C/C++, Java, delphi, C#,
Fortran, ...

Plusieurs langage de script: Shell, tcl/tk, perl, python, ...

Outils et environnements proposés :
– Cervisia Interface graphique pour CVS
– Glade Générateur d'interface multi-langages
– DDD Debugger
– Cachegring Outil de Profilage
– Différents éditeurs Emacs, Xemacs, vi, Xvi, ...
– KXSLdbg Debugger de feuilles de style xslt
– Quanta Environnement de développement web
– Umbrello Générateur de diagrammes UML
– BugBuddy Outil de rapport de Bugs
– Kdevelop Environnement de développement C/C++
12/02/19 Linux © A. El Hadri 52
Images
– Gimp Logiciel complet de traitement et de retouche
d'images un peu équivalent à PhotoShop
– KcolorEdit Editeur de fichiers de palettes.
– KGhostView Affiche et imprime des fichiers PostScript
– KoulorPaint Éditeur de graphiques et d'images
– Kooka Gestion des scanners
– Gpdf Visualiseur des fichiers pdf
– KSnapshot Captures d'écran
– KuickShow Navigateur/afficheur d'images confortable
– ...

12/02/19 Linux © A. El Hadri 53


Outils système

La liste des outils proposés dans cette rubrique et très riche et variée
– K3b, X-CD-Roast, Graveurs CD/DVD
– UserMount, Outil de gestion des disques
– Up2Date, Yum Outils de mis à jour
– File Roler Gestionnaire d'archives
– Gestionnaire des journaux système
– Kdat Archivage sur Bande
– Nautilus, Konqueror: Navigateurs des systèmes de fichiers
– keyring_manager Outil de gestion de clés
– KSysguard Gestionnaire de tâches et surveillant
des performances

12/02/19 Linux © A. El Hadri 54


Configuration de base


Configuration des services

Configuration réseau

Installation et dés-installation des
paquetages

Accès aux partitions Windows

12/02/19 Linux © A. El Hadri 55


Configuration des services

Pour optimiser le démarrage ainsi que le
fonctionnement du système il est préférable de
redéfinir la liste des services activés.

Peut se faire à l'aide de l'application graphique system-
config-services, accessible à partir du menu :
Système → Administration → Services

Deux actions sont alors disponibles pour chaque service
installés:
– Activer ou désactiver au démarrage
– Démarrer ou arrêter le service

12/02/19 Linux © 2008 A. El Hadri 56


Configuration des services

12/02/19 Linux © 2008 A. El Hadri 57


Configuration Réseau

En général, Trois niveaux d'action sont, selon les cas,
nécessaires :
1. Physique : pour régler les problèmes liés aux
pilotes
2. Connexion : revient à fournir les paramètres
d'authentification, clés d'accès, ...
3. TCP/IP : fournir l'adresse IP, masque,
passerelle, ...

12/02/19 Linux © A. El Hadri 58


Configuration Ethernet

Actuellement le support des cartes Ethernet sous Linux est
quasi-complet: rarement où le problème de pilote se pose.

On peut choisir entre :
– Une configuration automatique (dite aussi dynamique) via
DHCP (cela suppose avoir un serveur DHCP )
– Une configuration statique où l'on fournit manuellement les
paramètres réseaux :
• Adresse IP et masque
• Adresse de la passerelle par défaut
• Les adresses des serveurs DNS utilisés
• Outils : Interface graphique ou lignes de commandes

12/02/19 Linux © A. El Hadri 59


Interface graphique

12/02/19 Linux © A. El Hadri 60


Interface Graphique

Permet entre autre:
– La saisie des paramètres usuelles de configuration des
interfaces réseaux (Ethernet, Wifi, Adsl, ...)
– L'activation ou non de ces interfaces au démarrage
– L'activation de Ipv6
– La définition et la gestion des profils. Chaque profile
correspond à une configuration différente
– La saisie des adresses IPs des machines fréquemment
sollicitées (fichier /etc/hosts)

La plupart de ces paramètres sont enregistrés dans des
fichiers sous /etc/sysconfig

12/02/19 Linux © A. El Hadri 61


Commandes de configuration

Pour une configuration dynamique par dhcp
Commande: # dhclient <interface>
Exemple : # dhclient eth0

Pour une configuration manuelle (statique) :
– Commande ifconfig: pour configurer l'adresse IP et
masque
– Commande route: pour configurer la passerelle
– Fichier /etc/resolv.conf: pour fixer les serveurs
DNS

Les paramètres de configuration (@ip, masque et passerelle)
mis en place par commandes ne sont pas enregistrés sur
12/02/19
disque. Linux © A. El Hadri 62
Commande ifconfig

Permet, entre autre, de :
– Afficher les paramètres de configuration réseau :
# ifconfig -a de toutes les intrefaces
# ifconfig <int> uniquement de l' interface passé en argument
– Activer et désactiver les interfaces
# ifconfig <int> up pour activer l'interface passé en argument
# ifconfig <int> down pour désactiver
– Configurer l'adresse IP et masque d'une interface
# ifconfig <int> <@ip>/<nb_bits_masque> ou
# ifconfig <int> <@ip> netmask <masque>
Exemple :
# ifconfig eth0 10.3.0.1/16 ou
# ifconfig eth0 10.3.0.1 netmask 255.255.0.0

12/02/19 Linux © A. El Hadri 63


Commande route

Permet, entre autre, de :
– Afficher la table de routage du système :
# route -n l'option -n pour afficher en format numérique
(sans résolution DNS inverse)
– Fixer la passerelle par défaut :
# route add default gw <@paserelle>
Exemple :
# route add default gw 10.3.0.250

– Supprimer la passerelle par défaut (pour la modifier peut être) :


# route del default

12/02/19 Linux © A. El Hadri 64


Fichier /etc/resolv.conf

Contient principalement la liste des serveurs DNS utilisés par le
resolver

Sa structure est la suivante :
search <votre.non.de.domaine>
nameserver <DNS1>
nameserver <DNS2>
● La première ligne (search) est non nécessaire et permet de
spécifier le nom du domaine à utiliser par le resolver pour
compléter les noms non entièrement qualifiés pour essayer d'obtenir
une réponse positive.

Ce fichier peut être modifié manuellement

12/02/19 Linux © A. El Hadri 65


Commandes ifup et ifdown

La commande :
# ifup <int>
permet d'activer l'interface passée en argument selon les
paramètres de configuration enregistrés au niveau de
l'interface graphique


La commande :
# ifdown <int>
désactive l'interface passée en argument et purge ses
paramètres de configuration (@ip, masque, ...)

12/02/19 Linux © A. El Hadri 66


Configuration WiFi

Actuellement (2007) le support WiFi des distributions n'est pas
très complet: souvent on est amené à installer des pilotes et/ou des
firmware pour faire fonctionner nos cartes WiFi.

La commande :
# iwconfig
permet de savoir si votre interface WiFi est reconnue ou non

Pour Fedora, les pilotes des cartes WiFi peuvent être trouvés sous
forme de module : kmod-nom-version.rpm et/ou source à compiler
et installer (voir la procédure d'installation au chapitre suivant).

À défaut d'un pilote Linux, il existe des wrapper: ndiswrapper en
l'occurrence, permettant de faire fonctionner des parties de pilotes
Windows (les fichiers inf) sous Linux

12/02/19 Linux © A. El Hadri 67


Configuration WiFi

Comme pour Ethernet, la configuration des interfaces WiFi
peut s'effectuer sous interface graphique ou par lignes de
commandes

Dans les deux cas, la configuration s'effectue en deux étapes:
– Configurer la liaison WiFi: fournir éventuellement les
paramètres de connexion WiFi (mode, essid, canal, clé
WEP, ...)
– Configurer le réseau: fournir éventuellement les
paramètres de connexion réseau (@ip, masque, passerelle
et DNS) par la même procédure/commandes que celle
utilisée pour une interface Ethernet.

12/02/19 Linux © A. El Hadri 68


Commandes: iwlist et iwconfig

La commande:
# iwlist scan
permet particulièrement d'afficher la liste des réseaux WiFi à
proximité.

La commande
# iwconfig wlan0 any
initialise une connexion au premier réseau Wifi non sécurisé
rencontré.

La commande
# iwconfig wlan0 essid ESSID key [1] XXXXXXXX
initialise une connexion au réseau Wifi sécurisé dont le nom est
ESSID. XXXXXXXXX étant la clé WEP utilisée (10 ou 26 chiffres
hexadécimaux)
12/02/19 Linux © A. El Hadri 69
Configuration Modem ADSL

Consiste à :
– Régler les problèmes liés au pilote du modem
– Fournir les paramètres de connexions ADSL. Ces
paramètres dépendent particulièrement du protocole de
connexion et de la méthode d'authentification utilisés.
Elles sont fixés par le fournisseur d'accès.

Voir:
http://remi.collet.free.fr/index.php?
2006/02/24/113-configuration-du-pilote-ueagle-atm
Pour la configuration du modem SAGEM 800 sous Fedora

12/02/19 Linux © A. El Hadri 70


Installation des paquetages

Au début de l'histoire de Linux, l'installation des applications :
– s'effectuait à l'aide des fichiers tar.
– Était manuelle (par lignes de commandes) et difficile : passe
souvent par une compilation des sources.

Actuellement :
– Des formats spécifiques ont vu le jour (deb, rpm)
– La procédure d'installation est prise en charge par l'interface
graphique: sous Fedora, il suffit de cliquer sur un fichier rpm
pour que l'IG demande l'autorisation de l'installer
automatiquement.
– Des outils graphiques d'installation/des-installation sont
maintenant disponibles (synaptic, yumex, yast, ...)
– La plupart des distributions mettent à disposition de la
12/02/19 communauté des dépôts complets
Linux de paquetages.
© A. El Hadri 71
Format d'installation

Sous Linux, les fichiers d'installation peuvent avoir être de
différents formats :
– tar : Le format le plus ancien et le plus répandu mais aussi le
plus difficilement maniable. Les fichiers tar contiennent
généralement des sources et peuvent contenir aussi des
binaires. Ils s'installent sur toutes les distributions.
– rpm : Format d'installation conçu par RedHat et utilisé
particulièrement sous RedHat, Fedora, Mandriva et SuSe.
– deb : Conçu à l'origine par Debian et utilisé par les
distribution à base de Debian (Ubuntu, Mepis, Knoppix, ...)
– Ont peut rencontrer aussi d'autres formats comme : zip, bin,
jar, ...

12/02/19 Linux © A. El Hadri 72


Installation des fichiers tar

La procédure d'installation des fichiers tar dépend du type de contenu
de ces fichiers (sources, binaires, ...) :
– Extraire l'archive : par interface graphique ou par commande tar
– Chercher et lire un fichier de l'archive décrivant la procédure
d'installation (INSTALL, REDME, install.txt, ...)

La procédure d'installation des sources passe généralement par les trois
commandes:
./configure cherche les dépendances et génère le Makefile (fichier
utilisé par make et contenant le schéma de compilation
et d'installation)
make compile les sources
make install installe l'application (doit être lancé en administrateur)
12/02/19 Linux © A. El Hadri 73
Installation des fichiers rpm
• Les noms des fichiers rpm ont tous la forme suivante :
nom_du_paquetage-version.plateforme.rpm
Ex: gcc-4.1.2-33.fc8.i386.rpm
gzip-1.3.12-4.fc8.x86_64.rpm

Il suffit de cliquer sur un fichier rpm pour que l'interface graphique
demande l'autorisation de l'installer.
● L'installation peut se faire aussi à l'aide de la commande rpm

Le système maintient une base de donnée (/var/lib/rpm) des
paquetages installés.

Les fichiers rpms contiennent généralement une signature
DSA/SHA1 pour la vérification d'intégrité et d'authenticité.

12/02/19 Linux © A. El Hadri 74


rpm : Options d'installation
• Quelques options d'installation :
-v verbose
--force Forcer l’opération en dépit des problèmes rencontrés
-h, --hash Afficher 50 marques de hachage quand l'archive est
déballée. A utiliser avec -v pour un bel affichage.
--nodeps Ne pas effectuer de vérification de dépendances.
--test Ne pas installer, rapporter les conflits potentiels.
• Exemple :
rpm -ivh gzip-1.3.12-4.fc8.x86_64.rpm
installe gzip-1.3.12-4.fc8.x86_64.rpm se trouvant dans le
répertoire courant.
rpm -e gzip des-installe gzip

12/02/19 Linux © A. El Hadri 75


rpm : Options d'interrogation
• Exemples d'interrogation:
rpm -qa affiche la liste intégrale des paquetages installés
rpm -qa | grep gcc ou rpm –q gcc
recherche la version installée d’un paquetage
rpm -qi firefox
Pour obtenir des informations sur un paquetage installé
rpm -qip zsh-4.3.4-4.fc8.i386.rpm
obtenir des informations sur un paquetage non installé
rpm -qf /bin/ls
Pour savoir le nom du paquetage auquel appartient un
fichier
rpm -ql gzip Pour avoir la liste des fichiers installés par un paquetage

12/02/19 Linux © A. El Hadri 76


Dépôts de paquetages
• Redhat maintient officiellement des sites web/ftp (appelés dépôts)
contenant des paquetages pour Fedora.
• Les adresses de ces dépôts sont mise dans des fichiers (ayant
l'extension .repo) se trouvant sous /etc/yum.repos.d/
• Ces dépôts peuvent être consultés manuellement par n'importe quel
navigateur web
• Leur principal intérêt est qu'ils sont consultables automatiquement par
les interfaces graphiques d'installation/des-installation ou par la
commande yum

12/02/19 Linux © A. El Hadri 77


Dépôts de paquetages
• À l'installation de Fedora seuls les dépôts officiels suivant sont
reconnus:
– Fedora dépôt de base contenant l'ensemble des paquetages
sélectionnés par RedHat
– Update dépôt des mises à jour
• D'autres dépôts peuvent être rajoutés, en particulier : livna
Le détail concernant ce dépôt ainsi que la procédure d'ajout se trouve
à l'adresse : http://rpm.livna.org
• La liste des dépôts pour Fedora est disponible dans le wiki officiel de
la distribution :
http://doc.fedora-fr.org/wiki/Accueil

12/02/19 Linux © A. El Hadri 78


Interfaces graphiques

Sous Fedora 8, Trois applications graphiques étaient disponibles par
défaut :
– pirut : se charge des installations/dés-installations en utilisant les
dépôts. Elle est accessible via le menu :
Applications → Ajouter/Enlever des logiciels
– Pup : permet de lancer uniquement les opérations de mise à jour.
Il est accessible via le menu :
Applications → Outils Système → Mise à jour des logiciel
– Yum-updatesd : un service de notification des mise à jour.


D'autre interfaces graphiques étaient également disponibles, yumex
en l'occurrence.

12/02/19 Linux © A. El Hadri 79


Interfaces graphiques

Avec Fedora 9, les trois outils de la précédente version sont
remplacés par un seul: PackageKit. Avantage :
– Indépendance vis à vis les gestionnaires de paquetages utilisés:
yum, apt, ... PackageKit tente ainsi d'unifier les interfaces des
gestionnaires de paquetages
– intégration avec PolicyKit : un mot de passe en moins à saisir
pour installer les paquets
– La transparence d'utilisation : avec l'icône dans la zone de
notification, pouvant aller jusqu'à travailler tout seul dans son
coin sans avoir de fenêtre ouverte sur le bureau

yumex est toujours disponible pour assurer la continuité

12/02/19 Linux © A. El Hadri 80


PackageKit

12/02/19 Linux © A. El Hadri 81


pirut

12/02/19 Linux © A. El Hadri 82


yumex

12/02/19 Linux © A. El Hadri 83


Commande yum

Utilise les dépôts pour installer, des-installer, mettre à jour et
rechercher des paquetages

Usage :
yum list all liste tous les paquetages disponibles dans les dépôts
yum info p1 affiche les informations concernant les paquetages
passés en argument
Yum search mot_clé recherche dans les dépôts les paquetages concernant
le mot_clé cité
yum install p1 installe les paquetages spécifiés
yum check-update affiche la liste des mises à jours disponibles
yum update [p1...] met à jour les paquetages spécifiés (à défaut,
applique toutes les mises à jour disponibles)
yum remove p1 ... dés-installe les paquetages passés en argument
yum repolist liste les dépôts disponibles
yum clean all vide les caches

12/02/19 Linux © A. El Hadri 84


Accès aux partitions Windows: Généralités


Sous Unix un système de fichiers (sur une partition ou unité externe)
n'est accessible que s'il est monter sur un répertoire

Monter = Raccorder un système de fichiers à un répertoire. Le
répertoire en question initialement vide devient alors un lien vers la
racine du système de fichiers.

Le montage est soit :
– automatique : assuré par le système lorsqu'on clique sur l'icône
correspondant dans le poste de travail, ou lorsqu'on insère une
unité externe
– Manuel : réalisé à l'aide de la commande mount.

● La commande: umount permet de démonter (déconnecter) la


partition passée en argument
12/02/19 Linux © A. El Hadri 85
Montage manuel des partitions Windows:
procédure
1. Repérer les partition Windows à l'aide de la commande fdisk par
exemple :
# fdisk -l
2. Créer sous /mnt un répertoire de montage pour chaque partition
Windows que l'on veut intégrer, le nom choisi pour ce répertoire n'a
pas d'importance :
# mkdir /mnt/winc
3. Monter la partition en question (repérée à l'étape 1) sous ce répertoire:
# mount /dev/sda1 /mnt/winc
À l'aide de l'option -o de la commande mount on peut appliquer
quelques restrictions nécessaires à la sécurité du système Linux :
# mount -o rw,noexec,nodev /dev/sda1 /mnt/winc

12/02/19 Linux © A. El Hadri 86


Options du montage


Parmi les options de montage qu'on peut indiquer à la commande
mount à l'aide de -o, on trouve :
nodev Ne pas interpréter les fichiers spéciaux de périphériques
présents sur le système de fichiers.
noexec Ne pas permettre l’exécution de fichiers binaires sur le
système de fichiers monté.
nosuid Ne pas tenir compte des bits Set-UID ou Set-GID.
ro Montage du système en lecture seule.
rw Montage du système en lecture/écriture.
user Autoriser les utilisateurs ordinaires (non root) à monter le
système de fichiers. Ceci entraîne l’utilisation des options
noexec, nosuid, et nodev

12/02/19 Linux © A. El Hadri 87


Options du montage (2)


Les options suivantes sont particulièrement appliquées pour les
partitions Windows :

uid=valeur et gid=valeur
Fixer le propriétaire, et le groupe, de tous les fichiers
(par défaut : l’uid et le gid du processus appelant).
umask=valeur
Fixer l’umask (c’est à dire le masque de bit des permissions
qui ne sont pas fournies). Par défaut il s’agit de l’umask du
processus en cours. La valeur est donnée en octal.

12/02/19 Linux © A. El Hadri 88


/etc/fstab
● La ligne suivante ajoutée au fichier /etc/fstab permet d'activer
le montage de la partition Windows /dev/sda1 (partition C:) à
chaque démarrage du système :

La partition ne doit être ni archivée sous Linux


(le 1ier 0) ni vérifiée au démarrage (2ieme 0)

/dev/sda1 /mnt/winc ntfs-3g rw,user 0 0

La partition Le point de Le type ntfs ou


Les options du
Windows montage vfat (pour
montage
FAT32)

12/02/19 Linux © A. El Hadri 89


Hiérarchie des
répertoires
LINUX

12/02/19 Linux © A. El Hadri 90


Hiérarchie des
répertoires

bin dev lib mnt root var boot …

etc opt sbin usr proc tmp home Lost+found

12/02/19 Linux © A. El Hadri 91


/bin , /sbin , /lib
• /bin, /sbin et /lib contient des outils indispensables qui
doivent être disponibles dans les pires conditions
• Il doivent toujours loger dans le système de fichier racine.
/bin exécutables pour tous les utilisateurs (ls, cp, mv,
vi, ….)
/sbin exécutable pour administration (shutdown, ifconfig,
arp, dump, fsck, …)
/lib contient les bibliothèques partagées (shared
libraries)

12/02/19 Linux © A. El Hadri 92


/dev, /etc, /usr
• /dev contient des fichiers spéciaux (device files)
correspondant aux périphériques. En effet la plupart des
périphériques sont représentés par des fichiers spéciaux se
trouvant sous /dev
Ex: /dev/hda → Disque
/dev/null → Poubelle des messages
• /etc contient les fichiers et scripts de configuration des
différents services du système.
• /usr : Unix System Resources
Contient les programmes, utilitaires et librairies non
indispensables au fonctionnement du système

12/02/19 Linux © A. El Hadri 93


/var
/var contient :
• les fichiers dont la taille peut croître considérablement
(logfiles)
• les fichier de verrouillage des ressources (lockfiles)
• les répertoires dont le contenu varie considérablement
– Les boites aux lettres
– Les spools d’impression
– …
• Les fichiers temporaires sauvegardés plus longuement

12/02/19 Linux © A. El Hadri 94


/proc, /boot, /tmp
/proc est un pseudo-système de fichiers utilisé comme
interface avec les structures de données du noyau.
Il contient par exemple:
• des répertoires contenant toutes les informations possibles
sur les processus
• Le fichier: cpuinfo contenant les caractéristiques du CPU
• Le fichier: meminfo contenant l'état d'occupation de la RAM

/boot : contient les fichiers utiles pour le chargeur (les
chargeurs eux mêmes + noyaux Linux)
/tmp : contient les fichiers temporaires.

12/02/19 Linux © A. El Hadri 95


Autres répertoires

/home les espaces privés des utilisateurs.


/mnt contient des répertoires utilisés comme points de
montage des autres systèmes de fichiers :
partition non Linux, ...
/media contient des répertoires créés automatiquement
pour monter les périphériques amovibles :
disquette, CD_ROM, clé USB, ...
/root l’espace de travail privé de l’administrateur (root)
/lost+found existe dans toutes les partitions contenant un
système de fichier. Utile pour fsck.

12/02/19 Linux © A. El Hadri 96


Commandes
Utilisateur

12/02/19 Linux © A. El Hadri 97


Commandes Unix
• Après son authentification (avec nom et mot de passe)
un utilisateur peut taper les commandes Linux
– Directement s'il est connecté en mode Texte
– Via l'application Terminal s'il est connecté en mode
graphique
• Exemple de commandes :
passwd permet le modifier le mot de passe
write X permet d'envoyer un message texte à l'utilisateur X
pourvu qu'il soit connecté
date affiche la date et l'heure
cal 3000 affiche le calendrier de l'an 3000
whoami affiche le nom de l'utilisateur qui a ouvert la session

12/02/19 Linux © A. El Hadri 98


Interpréteur de commandes
• L'application qui affiche l'invite des commandes pour vous
permettre de lancer des commandes est appelé : Shell
• Shell = Interface utilisateur pour lancer des commandes
• Fonctionnement de base :
– Affiche un prompt (invite) personnalisable
– Lit la ligne de commande à exécuter (comme chaîne de caractères)
– Interprète les caractères spéciaux (* ? ! < > & |~ ...)
– Lance l'exécution de la commande
• Le shell a aussi des fonctionnalités évoluées comme :
– L'accès à l'historique des commandes
– La complétion automatique des commandes et des noms de
fichiers
– ...
12/02/19 Linux © A. El Hadri 99
Interpréteur de commandes
• Deux types de commande Unix
– Internes : exécutés par le Shell lui même.
Ex: cd, exit, alias, ...
– Externes : correspondent à des exécutables que le Shell se contente de
chercher et lancer en leur passant les arguments.
• La commande type permet d'afficher le type des commandes passées en
argument
• La quasi-totalité des commandes Linux sont externes
• Le Shell cherche les exécutables dans des répertoires comme : /bin, /usr/bin,
/usr/X11R6/bin, /usr/local/bin, ...
• La liste des répertoires où le Shell cherche les exécutables est stockée dans la
variable d'environnement PATH

12/02/19 Linux © A. El Hadri 100


PATH
• Contient une liste de répertoires séparés par « : » où le Shell
cherche les exécutables évoqués dans la ligne de commandes
• La commande: echo $PATH permet d'afficher cette liste
echo $PATH
/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:
/usr/X11R6/bin
• La commande
PATH=$PATH:/sbin
permet d'ajouter le répertoire /sbin à la liste

12/02/19 Linux © A. El Hadri 101


Shells
• Différents Shells sont disponibles sous Linux:
– Bourne Shell (sh) de AT&T
– BASH (bash) de Linux
– C-Shell (csh) de BSD
– Korn Shell (ksh) la version la plus récente de AT&T
– Z-shell
• Différences
– Les commandes internes, Mécanisme de fonctionnement et mots clés
– Les fonctionnalités évoluées
• Chaque utilisateur peut choisir son shell de préférence. La
commande chsh permet de changer ce Shell de préférence.

12/02/19 Linux © A. El Hadri 102


Syntaxe d'une commande
• nom [-options] [arguments]...
• Premier mot : nom de la commande
• Puis les options (-...)
-la  -l -a
• Et enfin les arguments
• Exemple
$ echo hello world
$ ls –F file
$ rm -i file
$ cp file1 file2

12/02/19 Linux © A. El Hadri 103


Documentation
• Manuel en ligne : man [section] command
• Sections :
1 : users commands (man 1 ls)
2 : system calls (man 2 chmod)
3 : subroutines (man 3 fprintf)
4 : devices (man 4 NFS)
5 : file formats (man 5 passwd)
6 : games (man 6 chess)
7 : miscellaneous (man 7 man)
8 : syst adm (man 8 reboot)
9 : Foncions du noyaux (man 9 free_irq)
0 : fichiers .h (header files) (man 0p stdio.h)

12/02/19 Linux © A. El Hadri 104


Documentation
• D'autres commandes liées :
whatis Recherche de mots clés dans la base de
données whatis.
apropos Recherche de chaînes de caractères dans la
base de données whatis
makewhatis Crée la base de données whatis
whereis Recherche les fichiers exécutables, les sources
et les pages de manuel d’une commande.
which Affiche le chemin d’accès des commandes.

12/02/19 Linux © A. El Hadri 105


Documentation
• D'autres formats :
info Format de documentation très utilisé sous
Unix. Consultable via la commande:
info

html De plus en plus complète. Couvre aujourd'hui


une grande partie des applications sous Linux.
Généralement accessible à partir du menu
Application ou directement dans les menus
relatifs aux applications concernées

12/02/19 Linux © A. El Hadri 106


Commandes
système de fichiers

12/02/19 Linux © A. El Hadri 107


Structure générique d’un SF

Boot Sector
Super Bloc

Table des
inodes

Blocs

12/02/19 Linux © A. El Hadri 108


Caractéristiques des fichiers et
répertoires
• Nom
• Type (fichier, répertoire, lien...)
• Droits d'accès
• Propriétaire
• Groupe
• taille
• Dates (dernière modification, dernier accès, dernière
modification d’attributs)
• Nombre de références
• Et éventuellement un Contenu

12/02/19 Linux © A. El Hadri 109


Manipulation des répertoires

• pwd : Affiche le nom du répertoire courant


• cd : Change le répertoire courant
• ls : Liste le contenu d’un répertoire
• mkdir [-p] dir : Crée un répertoire
• rmdir dir : Supprime un répertoire
• rm –r dir : Supprime une
arborescence complète
12/02/19 Linux © A. El Hadri 110
pwd, cd

• pwd : Affiche le nom du répertoire courant


Ex: $ pwd
/home/ali
• cd permet de modifier le répertoire courant
Ex:
$ cd /var/log se connecter au répertoire
/var/log
$ cd .. remonter au répertoire parent
$ cd revenir au Home Directory

12/02/19 Linux © A. El Hadri 111
Chemins absolus et relatifs
• Les répertoires sont exprimés à l'aide de leur chemin absolu
ou relatif
• Chemin absolu = chemin qui prend origine à la racine du
système de fichier
– Ex : cd /bin
cd /home/ali/prog
• Chemin relatif = chemin prenant comme origine le répertoire
courant
– Ex : cd prog
cd ./prog
cd ..

12/02/19 Linux © A. El Hadri 112


ls
• Affiche le contenu des répertoires passés en argument (le
répertoire courant à défaut)
• Quelque options
-l fomat long: affiche les attributs de chaque entrée
-a all : affiche aussi les entrées cachées (dont le nom
commence par un point)
-t trie la liste selon la date
-S trie la liste selon la taille
-d affiche les répertoires avec la même présentation
que les fichiers, sans lister leur contenu.
• Ex: $ ls /bin liste le contenu du répertoire /bin
$ ls -la liste le contenu du répertoire courant. La
liste est au format long et comprend aussi les fichiers cachées
12/02/19 Linux © A. El Hadri 113
Caractères spéciaux
• 6 caractères servent à générer les noms de fichiers ou de
répertoires :
. qui désigne le répertoire courant.
.. qui désigne le répertoire père, c'est à dire celui qui se trouve
immédiatement au-dessus du répertoire courant dans la
hiérarchie.
~ qui désigne le répertoire d'accueil (Home Directory).
? remplace un caractère quelconque.
* remplace une chaîne de caractères quelconque (y compris
une chaîne vide ).
[...] remplace les caractères entre crochets, définis par
énumération ou par intervalle.

12/02/19 Linux © A. El Hadri 114


Caractères spéciaux: Exemples
cd ~ revenir au Home Directory
cd ../rep cd au répertoire rep se trouvant sous le répertoire
parent
ls a* lister toutes les entrées du répertoire courant qui
commence par la lettre a
ls prog/*.c lister tous les fichiers du répertoire prog (du répertoire
courant) qui se terminent par .c
ls /bin/?n* lister tous les noms de fichiers du répertoire /bin dont la
deuxième lettre est n
ls *[aAbB] lister toutes les entrées du répertoire courant qui se
terminent par la lettre a ou b majuscule ou minuscule
ls [^0-9]* lister toutes les entrées du répertoire courant qui ne
commence pas par un chiffre

12/02/19 Linux © A. El Hadri 115


Manipulations des fichiers
• mv déplace et renomme des fichiers et répertoires
• cp copie les fichiers et répertoires
• rm supprime les fichiers et répertoires
• cat concatène et visualise les fichiers textes
• more visualise les fichiers textes page/page
• less plus de fonctionnalités que more
• touch horodate et crée les fichiers vides
• file renseigne sur la nature des entrées
• head affiche les lignes au début d’un fichier
• tail affiche les dernières lignes d’un fichier
• ln crée les liens symboliques et physiques
• wc compte le nombre de lignes, de mots et de caractères
• tac affiche le fichier passé en argument à l'envers
• nl affiche le fichier argument en numérotant les lignes

12/02/19 Linux © A. El Hadri 116


mv
• Sert pour déplacer ou renommer un fichier ou répertoire
• Syntaxe : mv [-options] sources destination
• Quelque options
-v active le mode verbeux :affichage des msg d'information
-i mode interactif : une confirmation est demandée si
l'opération risque d'écraser un fichier existant
-f avec force: aucune confirmation n'est exigée
• Ex: $ mv a.c a.cpp renomme a.c en a.cpp
$ mv *.c prog déplace tous les fichiers .c vers le
répertoire prog (du répertoire courant)
Si prog n'existe pas un message
d'erreur est éventuellement affiché
12/02/19 Linux © A. El Hadri 117
cp
• Sert pour copier un fichier ou répertoire
• Syntaxe : cp [-options] sources destination
• Quelque options
-v active le mode verbeux :affichage des msg d'information
-i mode interactif : une confirmation est demandée si
l'opération risque d'écraser un fichier existant
-f avec force: aucune confirmation n'est exigée
-R mode Récursif : nécessaire pour copier les répertoires
• Ex: $ cp a.c a.cpp copie a.c dans a.cpp
$ cp -Rfv ~/Bureau/* /media/disk
copie tout de contenu du bureau (fichiers et répertoires) vers
l'unité externe (clé USB) accessible sous /media/disk
12/02/19 Linux © A. El Hadri 118
rm
• Permet de supprimer les fichiers et répertoires
• Syntaxe : rm [-options] liste-des-entrées-a-sup
• Quelque options
-v active le mode verbeux :affichage des msg d'information
-i mode interactif : une confirmation est demandée pour fichier

et répertoire à supprimer
-f avec force: aucune confirmation n'est exigée
-r mode Récursif : nécessaire pour supprimer les répertoires
• Ex: $ rm a.c a.cpp supprime a.c et a.cpp
$ rm -rfv ~/Bureau/*
supprime tout de contenu du bureau (fichiers et répertoires)
et sans demande de confirmation
12/02/19 Linux © A. El Hadri 119
ln
• Permet de créer des liens entre fichiers
• Sous Unix, il existe deux types de liens: liens physiques (ou directs) et
liens symboliques (ou logiques).
• Syntaxe : ln [-options] source lien
• Quelque options
-v Afficher le nom de chaque fichier avant de le lier.
-s Créer des liens symboliques à la place des liens physiques.
-f Forcer l’écrasement du fichier destination s’il existe.
• Ex: $ ln a.c a.cpp crée le lien physique a.cpp vers a.c
$ ln -sf /etc/passwd ~/Desktop/passwd
crée dans le bureau le lien symbolique passwd vers le fichier
des utilisateurs /etc/passwd

12/02/19 Linux © A. El Hadri 120


Liens physiques
• Un lien physique (ou direct) est simplement une manière de nommer
un fichier. Un fichier peut donc avoir plusieurs noms.
• Un fichier n’est effacé réellement que lorsque son dernier nom est
supprimé. Le nombre de noms d’un fichier est indiqué par la
commande ls -l.
• Il n’y a pas de notion de nom ‘original’ : tous les noms d’un fichier
ont exactement la même importance.
Création du lien: a.c et a.cpp sont mnt
$ ln a.c a.cpp deux noms référençant un même fichier
$ ls -l a.c*
-rw-rw-r-- 2 ali ginf 300 jun 3 16:24 a.c
-rw-rw-r-- 2 ali ginf 300 jun 3 16:24 a.cpp
• Le nombre de a.c et a.cpp ont les
références mêmes attributs
12/02/19 Linux © A. El Hadri 121
Liens symboliques
• Un lien symbolique est d’un tout autre genre. Il s’agit d’un petit
fichier spécial, qui contient le chemin d’accès du fichier source
• Lorsque l’on accède à un lien symbolique le nom du lien
symbolique est remplacé, par le noyau Unix, par une référence
au fichier vers lequel le lien pointe.
• Toutefois, l'appel rm supprime le lien lui-même, et non pas le
fichier pointé. Création du lien symbolique la.c vers
a.c (ici, le lien se trouve sur le même
$ ln -s a.c la.c
$ ls -l a.c la.c répertoire que la source)
-rw-rw-r-- 1 ali ginf 300 jun 3 16:24 a.c
lrwxrwxrwx 1 ali ginf 3 jun 3 20:14 la.c -> a.c

Le type est l Le lien la.c est un fichier spécial qui
• comme link contient le nom du fichier source - a.c
12/02/19 Linux © A. El Hadri 122
Autres commandes
• du disk usage : taille occupée
• df affiche le taux d’occupation des partition accessibles
• id uid, gid et groupes secondaires
• users les utilisateurs connectés
• who les utilisateurs connectés
• uname Unix name
• tar archive les fichiers
• gzip, bzip2 compressent et décompressent
• echo affiche ses arguments
• cal calendrier
• wget outils très puissant de téléchargement
• pdf2text convertisseur pdf / texte
• poweroff arrêt de la machine
• reboot redémarrage

12/02/19 Linux © A. El Hadri 123


du et df
• La commande du affiche la quantité d’espace disque (en Ko)
utilisée par chacun des arguments
• Ex : $ du -s ~ Affiche la taille (en Ko) de la Home Directory.
L'option -s indique l'affichage seulement du total
(sinon le détail par sous-répertoire est affiché)

• La commande df indique les quantités d’espaces disques utilisées et


disponibles sur tous les systèmes de fichiers accessibles
• $ df -h
Sys.fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/hda7 1,2G 560M 587M 49% /
/dev/hda6 101M 13M 83M 14% /boot
/dev/hda10 8,4G 6,5G 1,6G 82% /home
/dev/hda5 102M 93M 9,1M 92% /mnt/winc

12/02/19 Linux © A. El Hadri 124


tar

Permet principalement de créer, lire et extraire les archives au
format tar.

Exemple d'utilisation:
$ tar cvf tetris.tar Tetris

Les options: Le nom du fichier Le chemin du répertoire à


c : créer à créer (il sera inclure dans l'archive (on
v : mode verbeux placer dans le peut spécifier une liste de
f : fichier répertoire courant fichiers et répertoires)


L'archive contiendra le répertoire Tetris et tout son contenu

Aucune compression n'est appliquée.

12/02/19 Linux © A. El Hadri 125


tar

tar permet de compresser les archives créés
$ tar cvzf tetris.tar.gz Tetris

L'option z permet d'activer la compression automatique


par GnuZip. Conventionnellement l'archive créé doit
porter l'extension .tar.gz ou .tgz


L'option j peut être utilisée (à la place de z) pour activer la
compression bzip2
$ tar cvjf tetris.tar.bz2 Tetris

12/02/19 Linux © A. El Hadri 126


tar

L'option t peut être utilisée pour lire les fichiers archives
(compressés ou non)
$ tar tf tetris.tar

Et pour extraire un archive :
$ tar xvf tetris.tar.gz [-C rep-où-extraire]

La décompression est activée automatiquement en cas d'un fichier
archive compressé

L'extraction est effectuée par défaut dans le répertoire courant.
L'option -C permet de spécifier un autre

12/02/19 Linux © A. El Hadri 127


gzip et bzip2

gzip et bzip2 sont les deux outils de compression les plus utilisés
sous GNU/Linux

gzip fichier
fichier fichier.gz
gunzip fichier.gz

bzip2 fichier
fichier fichier.bz2
bunzip2 fichier.bz2

12/02/19 Linux © A. El Hadri 128


Editeurs
Traditionnels
– ed
– vi
– emacs
– pico
– joe

Graphiques
– Nedit
– Gedit
– Xemacs
– Vim-X11

12/02/19 Linux © A. El Hadri 129


Les permissions

Tous les fichiers et répertoires sont protégés par des droits
d’accès

Trois types d'utilisateurs potentiels :(User, Group, Other)

Trois opérations fondamentales : (r, w, x)

r → pour un fichier c'est le droit de lecture.
pour un répertoire c'est le droit de lister son contenu

w → pour un fichier c'est le droit de modifier.
pour un répertoire c'est le droit d'ajouter/supp des entrées

x → pour un fichier c'est le droit de l'exécuter.
pour un répertoire c'est le droit d'entrer et de traverser

12/02/19 Linux © A. El Hadri 130


Les permissions

Les permissions sont affichées par la commande: ls -l
$ ls -l
drwxr-xr-x 4 ali users 4096 fév 14 09:43 pfe
drwxrwxr-x 10 ali users 4096 fév 14 10:02 photos
-rw-r--r-- 1 ali users 496968 mar 15 22:20 poem.mp3
-rwx------ 1 ali users 10179 nov 20 2006 klip

Le premier caractère est Les 9 caractères suivants représentent les


un indicateur de type : droits d'accès .
- pour fichier régulier Le fichier poem.mp3 par exemple est lisible
d pour répertoire à tout le monde, mais modifiable
uniquement par son propriétaire (ali)

12/02/19 Linux © A. El Hadri 131


Les permissions


Les modes d’accès sont représentés dans l'inode
par une suite de 12 bits

r w x r w x r w x
Set-uid bit
Set-gid bit

Stiky bit

user group others

• Trois bits spéciaux


– Suid bit concerne uniquement les exécutables
– Sgid bit concerne uniquement les exécutables
– Sttiky bit pour les exécutable et les répertoires
12/02/19 Linux © A. El Hadri 132
Changement des permissions
• La commande chmod permet de modifier les modes d’accès
• Syntaxe: chmod [-options] mode fichiers-et-reps
• Quelque options
-v active le mode verbeux :affichage des msg d'information
-R Modifier récursivement les autorisations des répertoires.
-f Ne pas afficher de messages d’erreurs concernant les fichiers
dont les autorisations n’ont pas pu être modifiées.
• Le mode peut être exprimé
– en octal: un nombre représentant le motif binaire des nouvelles
autorisations.
– ou en symbolique dont le format est : [ugoa][[+-=][rwx]

12/02/19 Linux © A. El Hadri 133


chmod

Exemples d'utilisation :
$ chmod 750 ~ Applique le mode 750 = 111 101 000
= rwx r-x ---
au Home Directory

$ chmod a+x sc* Ajoute le droit d'exécution à tout le


monde (propriétaire, groupe et autres)
pour tous les fichiers commençant par sc

$ chmod -R g-w,o= ~
Pour le Home Directory ainsi que
récursivement pour tout son contenu,
enlève le droit w au groupe, et fixe 000
comme droit des autres
12/02/19 Linux © A. El Hadri 134
Recherche de fichiers
find dir critères action

Critères:
-name
-type
-size
-mtime , -mmin, -atime, -amin, -ctime, -cmin
-newer, -anewer, -cnewer
-user, -nouser, -group, -nogroup
-perm
-empty

12/02/19 Linux © A. El Hadri 135


Recherche de fichiers
Opérateurs:
( expr ) Force la précédence.
! expr Vrai si expr est fausse.
expr1 expr2 ET (implicite); expr2 n'est pas évaluée si
expr1 est fausse.
expr1 -a expr2 Comme expr1 expr2.
expr1 -o expr2 OU; expr2 n'est pas évaluée si expr1 est
vraie.
Actions
- print affiche le chemin
- ls affiche le chemin format ls -ldis
- exec cmd \; exécute la commande en remplaçant les {}
mises dans les arguments par le chemin
trouvé

12/02/19 Linux © A. El Hadri 136


Groupement de commandes
• Les opétareurs
; exécution séquentielle
&& exécution conditionnelle :
cmd1 && cmd2
cmd2 ne s’exécute que si cmd1 ne s’est exécutée sans
erreur
|| exécution conditionnelle :
cmd1 || cmd2
cmd2 ne s’exécute que si cmd1 s’est terminée par une
erreur
{} groupe les commandes
() groupe et exécute les commandes dans un Shell fils

12/02/19 Linux © A. El Hadri 137


Exécution conditionnelle

• Exécution d'une commande si et seulement si une commande


précédente
– s'est terminée par un succès
– ou par un échec
• Deux opérateurs && (et) || (ou)
• cmd1 && cmd2
• cmd1 || cmd2
• Ex:
test -d /proc/acpi || echo "acpi non supporté"
mkdir rep && cd rep || echo "impossible de créer rep"

12/02/19 Linux © A. El Hadri 138


Groupement de commandes
• L’ordre d’évaluation des opérateurs (&& et ||) est de gauche à droite
• Les accolades peuvent être utilisées pour imposer un ordre quelconque
d’évaluation
cmd1 && { cmd2 || cmd3 ; }
• En générale, les accolades servent pour grouper les commandes à fin
appliquer un traitement d’ensemble
{ cmd2 ; cmd3 ; . . . ; cmdn ; } > f
• Les parenthèses jouent le même rôle à une différence : les commandes mises
entre parenthèses sont exécutées par un Shell fils
• Ex: ( a=0; while [ $a –le 10 ]; do ... done; )
a est déclarée localement au Shell fils et par conséquent n’altère pas
l’environnement du Shell courant

12/02/19 Linux © A. El Hadri 139


Redirection des entrées/sorties
• Chaque commande ouvre 3 descripteurs
de fichiers

Entrée Sortie
Standard Standard
commande
0 1

Sortie erreurs
2
Standard

12/02/19 Linux © A. El Hadri 140


Redirection des entrées/sorties
< redirige l'entrée standard
> redirige la sortie standard
2> redirige la sortie des erreurs
>& redirige la sortie standard et la sortie d'erreur
>> concatène la sortie standard
2>> concatène la sortie des erreurs
>>& concatène la sortie standard et la sortie
d'erreur

12/02/19 Linux © A. El Hadri 141


Redirection des entrées/sorties
Ex
ls –l > /mnt/floppy/myls
gcc –o myprog myproc.c 2> myprog.err
find ~ -size +100k >> f 2> /dev/null
if grep "^ali:" /etc/passwd >& /dev/null
then . . .; fi
echo "fichier introuvable" >&2
mail –s "votre offre" tata@titi.ma < f
cat >> f << FIN
. . .
FIN

12/02/19 Linux © A. El Hadri 142


Les pipes (tubes)

stdin stdout stdout


Commande 1 stdin
Commande 2
stderr

12/02/19 Linux © A. El Hadri stderr 143


Les pipes nommés

Il est possible de créer un pipe.

Les commandes :
mknod mon_pipe p
com1 > mon_pipe &
com2 < mon_pipe
sont identiques à com1 | com2… à part que
mon_pipe résiste à la fin de com1 et com2.

Cette technique permet d’utiliser plusieurs
producteurs/consommateurs sur un même pipe.

12/02/19 Linux © A. El Hadri 144


Commandes en argument

Mécanisme du shell permettant de récupérer le résultat d'une
commande comme argument dans une autre commande. Il
en existe deux formes :
$(commande)
ou `commande`

Bash effectue la substitution en exécutant la commande et
en la remplaçant par sa sortie standard, dont les derniers
sauts de lignes sont supprimés.

Les substitutions de commandes peuvent être imbriquées.

Exemples :
echo "on est le $(date)"
find ~ ! -user $(whoami)

12/02/19 Linux © A. El Hadri 145


Les Processus

Espace
d’adressage
P2 virtuel du
processus P2
P1

... Table des Structure de


processus données du Kernel

12/02/19 Linux © A. El Hadri 146


Les Processus
• Processus  Instance d’un programme en exécution
• Image D’un processus en mémoire :

Code de Code
l’exécutable

Données initialisées
Données statiques
Les Données non initialisées
données
Heap (Tas) Données dynamiques

La pile de pile
l’exécution
12/02/19 Linux © A. El Hadri 147
Les processus

Chaque processus est identifié par son PID

Et a:
– Un père
– Un espace d’adressage
– Un propriétaire réel et effectif
– Un groupe réel et effectif
– Un état
– Un terminal de contrôle
– Une priorité
– Un comportement
– …

12/02/19 Linux © A. El Hadri 148


Etat d’un processus

Exécution

Prêt Zombi

stoppé endormi

12/02/19 Linux © A. El Hadri 149


Etat d’un processus
Exécution le processus a le processeur et s’exécute normalement
Prêt le processus a tout ce qu’il faut pour continuer son
exécution et attend son rôle pour occuper le processeur
Endormi le processeur attend un événement, (une E/S, un signal,
…)
Stoppé le processus a été volontairement interrompu et ne peut
reprendre son exécution que sur une autre action
délibérée.
Zombi état avant terminaison. Le processus positionne sont état
de sortie dans la table des processus et attend que le
père traite sa terminaison.

12/02/19 Linux © A. El Hadri 150


Lancement d’un processus
• Lancement interactif, au prompt :
$ commande [arguments]
– Interruption par ^Z
– Terminaison par ^C
• Lancement en tâche de fond (background):
$ commande [arguments] &
24000 [1]
Le shell répond par afficher le PID du processus
(24000) ainsi qu’un numéro de tâche (job)

12/02/19 Linux © A. El Hadri 151


Lancement d’un processus
• Les processus lancés en back-ground ne doivent pas
être interactives
– L’affichage (résultat, erreurs, …) des tâches en arrière
plan s’effectue sur le terminal de contrôle et perturbe
ainsi l’avant plan occupé par un autre processus
– Les demandes de lecture de données mettent
instantanément les processus demandeurs à l’état
stoppé.
• Un processus lancé en back-ground est identifié soit par
son PID soit par son numéro de job

12/02/19 Linux © A. El Hadri 152


Commandes de gestion des
processus
• ps
– Permet d’afficher la liste des processus
– Par défaut, affiche uniquement les processus attachés au
terminal utilisé pour lancer la commande
– Les option suivante peuvent être utilisées
-l affichage long contenant des attributs supplémentaires pour
chaque processus
-A liste intégrale
-u user processus de l'utilisateur user
• Jobs
– Affiche la liste des tâche lancées en arrière plan
– Aussi les processus interrompus

12/02/19 Linux © A. El Hadri 153


Commandes de gestion des
processus
• kill
– Permet d’envoyer un signal à un processus
– Syntaxe : kill –signal pid
– L’option –l peut être utilisée pour afficher la liste des signaux
disponibles
– Les signaux SIGKILL (9) et SIGSTP (18) sont particulièrement
utilisés respectivement pour terminer et stopper un processus
• bg [processus]
– Permet de lancer un processus en back-ground
• fg [processus]
– Permet de relancer en avant plan un processus en back-ground

12/02/19 Linux © A. El Hadri 154


Les Filtres
cat unique
tac sort
tail comm
head diff
less tee
wc grep
nl expr
tr sed
cut awk
paste

12/02/19 Linux © A. El Hadri 155


cat
cat : Affiche le contenu des fichiers textes passés en
argument sur la sortie standard.
cat [-benstuvAET] [fichier ...]
Options couramment utilisées :
-b Numéroter en sortie les lignes non blanches, en commençant
à1
-n Numéroter les lignes en sortie, en commençant à 1.
-s Remplacer les lignes blanches consécutives par une seule ligne
blanche.
-v Afficher les caractères de contrôles, sauf les sauts de ligne et
les tabulations

Utilisée pour concaténer : cat f1 f2 >f3


12/02/19 Linux © A. El Hadri 156
tac
tac : Concatène et affiche des fichiers à l’envers.
tac [fichier ...]

Exemple d'utilisation
tac f1
tac f1 f2 >f3

12/02/19 Linux © A. El Hadri 157


head
head : affiche le début (10 lignes par défaut) de chacun
des fichiers mentionnés. La lecture se fait sur
l’entrée standard si aucun fichier n’est fourni.
head [-nombre_de_lignes ][fichier ...]

Exemple d'utilisation
head f1
head -5 f1

12/02/19 Linux © A. El Hadri 158


tail
tail affiche les dernières lignes (par défaut : 10) de chacun
des fichiers passés en argument. Si aucun fichier n’est
fourni, ou le nom ‘-’ est mentionné, la lecture se fera
depuis l’entrée standard.

tail -<n> [fichier]


tail +<n> [fichier]

Avec -, affiche les n dernières lignes (ou les 10


dernières si n n'est pas spécifié).
Avec +, affiche à partir de la nième ligne.

12/02/19 Linux © A. El Hadri 159


less
less Permet de visualiser un fichier texte page par page. Sa fonction
est similaire à la commande more, mais permet en plus de
revenir en arrière ou de rechercher une chaîne. Contrairement à
vi, less n'a pas besoin de charger entièrement le fichier en
mémoire et s'ouvre donc très rapidement même pour consulter
de gros fichiers.
Sa syntaxe est :
less [options] <fichier>
Exemples
less -M readme.txt # Afficher "readme.txt" avec les informations de position
file * | less # affichage plus pratique du résultat de la commne 'file'
grep -rin void *.c | less -SI -p void # recherche améliorée de la chaîne "void"
less file.tar # équivalent à `tar tvf file.tar | less`
less repertoire # équivalent à `ls -la repertoire | less`

12/02/19 Linux © A. El Hadri 160


Commandes less
Quelques commandes disponibles à l'intérieur de less
Flèches, PgUp, PgDn: Défilement
R Rafraîchir l’écran. en éliminant toute entrée mise en mémoire
tampon. Utile si le fichier a été modifié pendant sa visualisation.
g ou < Aller à la ligne N du fichier, par défaut 1 (début du fichier).
G ou > Aller à la ligne N du fichier, par défaut la fin du fichier.
p ou % Aller à la position située à N % à l’intérieur du fichier. 0<=N<=100.
/motif Rechercher en avant dans le fichier la 1ière ligne contenant le motif.
Le motif est une expression rationnelle comme celles reconnues
par ed
?motif Rechercher en arrière dans le fichier la ligne contenant le motif.
n Répéter la recherche précédente pour trouver l'occurrence suivante
N Répéter la recherche précédente, mais dans le sens inverse.
q ou Q ou :q ou :Q ou ZZ Quitter less.
v Invoque un éditeur de texte pour éditer le fichier en cours de
visualisation.

12/02/19 Linux © A. El Hadri 161


wc
wc : compte et affiche le nombre d’octets, de mots, et de
lignes dans chacun des fichiers passés en argument. Si
aucun fichier n’est fourni la lecture se fait depuis l’entrée
standard. Si plusieurs fichiers sont mentionnés, wc
ajoute une ligne finale de statistiques, contenant le
cumul des valeurs, précédé du nom ‘total’.
Syntaxe : wc [-clw] [fichier...]
Options couramment utilisées
-c Afficher uniquement le nombre d’octets.
-w Afficher uniquement le nombre de mots
-l Afficher uniquement le nombre de sauts de lignes

12/02/19 Linux © A. El Hadri 162


tr
tr : Copie son entrée standard sur sa sortie standard
en transposant ou en éliminant des caractères
syntaxe: tr [-cds] [s1 [s2]]
s1 est l'ensemble des caractères à substituer ou éliminer
s2 est l'ensemble des caractères de remplacement.
Sans option tr affiche le texte lu sur l'entrée standard en remplaçant
tous les caractères cités dans s1 par leurs correspondant dans s2
-c Complément de s1 (dans l'ensemble des caractères ascii)
-d Efface dans l'entrée les caractères de s1
-s Toute séquence dans s1 est remplacée par un caractère
unique dans s2
Intervalles : a-z, 0-9, C-G, [:lower:], [:uper:], [:space:], ...

12/02/19 Linux © A. El Hadri 163


tr : Exemples
tr aaffiche le texte lu sur l'entrée standard en remplaçant la
A
lettre 'a' par 'A'
tr a-z A-Z affiche le texte lu sur l'entrée standard en remplaçant
les minuscules par majuscules. La même cmd peut
s'écrire :
tr ’[:lower:]’ ’[:upper:]’
tr -s ' ' '\t'
remplace les suites d'espaces pat une tabulation
tr -d '[:punct:]'
Supprime tous les caractères de ponctuation
tr -cs 'a-zA-Z0-9' '\n'
Afficher chaque mot sur une ligne indépendante
tr -s '\n' supprime les lignes blanches

12/02/19 Linux © A. El Hadri 164


cut
selectionne les colonnes de chaque ligne d'un fichier
cut [-clist] [filename ]
cut [-flist [-dc] [-s]] [filename]
Notion de champs, délimiteur
-clist Position des caractères à garder
-flist Liste des champs à garder
-dc Délimiteur de champs c (tabulation par
défaut)
-s Suppression des lignes sans délimiteur

12/02/19 Linux © A. El Hadri 165


paste
• paste [-d list_delimit][-s] file1 file2 ...
• Affiche des lignes regroupant les lignes correspondantes
de chaque fichier, séparées par des Tabulations, et
terminées par un Saut de Ligne (NewLine).
-d Spécifie les séparateurs à utiliser successivement à la
place des tabulation
-s Regroupe toutes les lignes d’un seul fichier à la fois,
plutôt qu’une ligne de chaque fichier.

12/02/19 Linux © A. El Hadri 166


uniq
uniq [-cdu] [inputfile [outputfile]]
Détruit les lignes adjacentes dupliquées, ou
Identifie ces lignes
Options
-c Compte les lignes identiques
-d Ne garde que les lignes dupliquées et en un
exemplaire
-u Ne garde que les lignes uniques dans inputfile

12/02/19 Linux © A. El Hadri 167


sort
Usage: sort [OPTION]... [FICHIER]...
Afficher la concaténation triée de tous les FICHIERS sur la sortie
standard.
Options de tri:
-b, --ignore-leading-blanks ignorer les blancs de tête
-f, --ignore-case suivre les caractères minuscules et
majuscules
-i, --ignore-nonprinting considérer seulement les
caractères imprimables
-M, --month-sort comparer (inconnu) < « JAN » < ... < « DÉC »
-n, --numeric-sort comparer selon la valeur numérique
-r, --reverse afficher le résultat dans l'ordre inverse

12/02/19 Linux © A. El Hadri 168


sort
Autres Options de tri:
-c, --check vérifier seulement si l'entrée est triée ou pas
-k, --key=POS1[,POS2] débuter avec la clé à la POS1,
terminer à POS2 (origine : 1)
-m, --merge faire la fusion des fichiers déjà triés
-o, --output=FICHIER écrire le résultat dans le FICHIER
au lieu de la sortie standard
-t, --field-separator=SEP utiliser le SÉParateur au lieu
de l'espace
--help afficher l'aide-mémoire

12/02/19 Linux © A. El Hadri 169


sort
POS peut s'écrire sous la forme F[.C][OPTS], où F est le numéro du
champ et C le caractère de la position dans le champ. OPTS se
compose d'une ou plusieurs options de tri à appliquer spécifiquement
sur ce champ.
Si aucune clé n'est donnée, la ligne entière est utilisée comme clé.
Sans FICHIER, ou quand FICHIER est -, sort trie l'entrée standard.
Exemples :
sort fich1 -o fich3
trie les lignes de fich1 en mettant le résultat dans fich3
sort -nr -k 2 f1 fich2
tri numérique décroissant selon le champ 2
ls -l | sort -f -k 5nr -k 9
tri la sortie de ls -l selon le champ 2 (numérique décroissant) et le
champ 9 (alphabétique, sans distinction entre maj et min)

12/02/19 Linux © A. El Hadri 170


comm
• comm [-123] filename1 filename2
• Sélection de lignes entre 2 fichiers (triés) 3 types
de lignes:
–1 Lignes de filename1 ( filename2)
–2 Lignes de filename2 ( filename1)
–3 Lignes communes

12/02/19 Linux © A. El Hadri 171


diff
diff [options] filename1 filename2
Compare les deux fichiers filename1 et filename2 et
affiche les différences.
Quelques options:
-c produit un fichier exploitable par la commande patch
-b Ne pas tenir compte des différences concernant des espaces
blancs.
-i Ignore les différences entre majuscules et minuscules.
-q Indiquer seulement si les fichiers différent.
-r Lorsque l’on compare des répertoires, comparer également
tous les sous-répertoires récursivement.

12/02/19 Linux © A. El Hadri 172


expand
Usage: expand [OPTION]... [FICHIER]...
expand écrit le contenu de chaque fichier indiqué sur la sortie
standard, en remplaçant les caractères Tabulations par le
nombre approprié d’espaces.
Si aucun fichier d’entrée n’est fourni, expand lit l’entrée
standard.
Les Options :
-t N placer le taquet de tabulation toutes les N tab1
colonnes à la place des 8 habituelles.
-i Convertir en espace uniquement la tabulation
initiale (celle qui précède tout caractère non blanc)
sur chaque ligne.
12/02/19--help Afficher un message
Linux © A. Eld’aide
Hadri sur la sortie standard 173
Les expressions régulières

Historiquement, CP/M (puis DOS) ont utilisés des
symboles spéciaux, les wild cards (jokers), pour
remplacer une suite de symboles :
– « ? » remplace un et un seul caractère sauf l’espace,
– « * » remplace une suite de caractères ; cette suite pouvant
être nulle.

Cette technique permettait le « matching » :
ls *.jp? liste les fichiers du répertoire courant ayant les 2
lettres « jp » comme premier et second caractères de
leur extension de nom.

12/02/19 Linux © A. El Hadri 174


Les expressions régulières

Mécanisme permettant de spécifier un motif à
chercher à l’intérieur d’un texte.

Utilisées par différentes commandes:
– fgrep, grep, egrep : recherche dans un fichier.
– expr : recherche et remplacement dans une chaîne.
– Les etiteurs: ed, sed, vi, …
– awk : un langage complet de type reconnaissance /
traitement.

Deux types d’expressions régulières : simple
(standard) et étendues.
12/02/19 Linux © A. El Hadri 175
Les expressions régulières

Sous Linux, il n’y a pas de différence de
fonctionnalités entre les expressions
simples et étendues

Question de syntaxe

Une expression régulière est formée d’un
ensemble d’expressions atomiques.

Et peut contenir des caractères spéciaux

12/02/19 Linux © A. El Hadri 176


Les expressions régulières

Exemples

– fgrep "include" myprog.c


– ls –l | grep "^d"
– grep –c "^ *$" accesslog
– egrep "GET /.+/cours001\.html"
accesslog
– expr $file : '\(.*\)\.rpm‘
– awk ‘/^037[0-9]{6}\b/
{ print $2 * 0.60 }' fact
– ...
12/02/19 Linux © A. El Hadri 177
Les caractères spéciaux

Un ensemble de caractères ont une interprétation
spéciale à l’intérieur des expressions régulières
. Un caractère quelconque
[ début de définition d’un ensemble
] fin de définition d’un ensemble
* indicateur d’itération
- marque un intervalle dans la définition d’un ensemble
^ début de ligne s’il est le premier caractère de l’expression ou
complément ensembliste lorsqu’il suit immédiatement un [ de
début de définition d’ensemble
$ fin de ligne lorsqu’il est le dernier caractère d’une expression
{} délimitent un nombre d’itérations
\ masque l’effet d’un caractère spécial

12/02/19 Linux © A. El Hadri 178


Expression régulière atomique

Mise en correspondance avec un seul caractère. Elle peut
être de la forme
c le caractère c si c n’est pas un caractère spécial.
\c le caractère c si c est un caractère spécial.
^ et $ respectivement le début et la fin de la ligne.
\< et \> respect. début et fin de mot
\b extrémité d’un mot
\B milieu d’un mot
. 1 et 1 seul caractère (sauf le retour chariot).
[C] 1 caractère se trouvant dans C, où C est non vide et est
une suite de caractères (ex : [aeiouy]) ou un intervalle de
caractères (ex : [a-z]). Les caractères ., *, [ et / perdent
leurs effets spéciaux dans C.
[^C] 1 caractère ne se trouvant pas dans C non vide.
12/02/19 Linux © A. El Hadri 179
Expression régulière atomique
[:class:] définit de manière symbolique et portable une classe de
caractères. Les classes possibles sont:
[:digit:] les chiffres décimaux
[:xdigit:] les chiffres héxadécimaux
[:alpha:] les lettres
[:upper:] les lettres majuscules
[:lower:] les lettres minuscules
[:almun:] les caractères alphanumériques
[:space:] les caractères d’espacement
[:print:] les caractères impimables
[:cntrl:] les caractères de contrôle’espacement
[:punct:] les caractères de ponctuation
Valables uniquement à l’intérieur des ensembles

12/02/19 Linux © A. El Hadri 180


Expression régulière

Une expression régulière peut être :
– Une expression régulière atomique
– Une expression régulière atomique r suivie de :
* r est mise en correspondance 0 ou plusieurs fois
+ r est mise en correspondance 1 ou plusieurs fois
? r est mise en correspondance au plus une seule fois
{n} r est mis en correspondance exactement n fois
{n,m} r est mis en correspondance entre n et m fois
{n,} r est mis en correspondance au moins n fois
– Une concaténation d’expressions
– expr1 | expr2 : correspond à l’une ou l’autre
– ( expr ) : sous expression groupée pour appliquer un facteur de
répétition ou pour repérage.
– /n la nième sous expression
12/02/19 Linux © A. El Hadri 181
Expression régulière: Exemples

• [^ ][Dd]arwich[ ]
• ^ *[1-9]{3}/[0-9]*[02468]
• ^ *([A-Za-z])\1* *([^ ]*).*$
• .*([^/]*)est-il identique à .*/(.*)
• [.?!][ ]*([a-z])
• ^[a-zA-Z0-9/+=]{0,72}$

Pas vraiment évident tout ça!

12/02/19 Linux © A. El Hadri 182


expr : sélection d’une sous-chaîne.

Ex : vous voulez remplacer l’extension .mpeg par .mpg dans les
fichiers du directory courant.
for i in *.mpeg; do
mv $i `expr "$i" : ’\(.*\).mpeg’`.mpg
done
• expr chaîne : r.e. rend la sous-chaîne sélectionnée par \
(\) dans la r.e. Sans sélection, cela rend le nombre de caractères
équivalents… moins utile!

Pourquoi expr est entouré par ` ?
Pourquoi $i par "" ? En quoi est-ce plus sûr ?
Pourquoi la r.e. est-elle entourée par ’ ?

Que fait expr "/$a" : ’.*/\(..*\)’ ?
Pourquoi est-il mieux que expr "$a" : ’.*/\(.*\)’ ?

12/02/19 Linux © A. El Hadri 183


fgrep, grep, egrep

fgrep recherche une chaîne simple sans
joker. C’est la commande la plus rapide
des trois.

grep recherche une r.e. simple.

egrep recherche une r.e. étendue

12/02/19 Linux © A. El Hadri 184


Les grep : usages & options

Sans options, les grep se contentent d’afficher les lignes comprenant le
motif recherché :

cmd 5 Shems > fgrep seul chapitre_facettes.tex


r\'egion. Pour cela, nous consid\'erons qu'il n'existe qu'une seule
seule image sont d\'ecompos\'es en une s\'erie de modules, sans v\'eritable
...

Toutefois, souvent, c’est plutôt le nombre des lignes présentant au moins
une occurrence du motif qui est recherché :
cmd 10 Shems > fgrep -c seul chapitre_facettes.tex
9

Il peut être interessant de ne pas séparer les majuscules et les
minuscules :
cmd 10 Shems > fgrep -ci seul chapitre_facettes.tex
10

12/02/19 Linux © A. El Hadri 185


Les grep : usages & options

Ou à l’inverse, trouver les lignes n’ayant PAS le motif cherché :
cmd 14 Shems > fgrep -civ seul chapitre_facettes.tex
1165
cmd 15 Shems > wc -l chapitre_facettes.tex
1175 chapitre_facettes.tex
cmd 16 Shems >


Plus difficilement utilisable mais très utile, les numéros de lignes :
cmd 17 Shems > fgrep -n seul chapitre_facettes.tex
415: r\'egion. Pour cela, nous consid\'erons qu'il n'existe qu'une seule
586: les \'etapes avec $t_i>20$ sont peu int\'eressantes, mais une seule
794:Cette dualit\'e provient de la nature de la cr\^ete, qui est le seul
796: provenant d'une cr\^ete est-il toujours inscrit dans une seule r\'egion
979: seuls les segments se trouvant sur la bordure de la facette courante
Etc…

12/02/19 Linux © A. El Hadri 186


Les grep : usages & options

Comment faire apparaître uniquement le nom des
fichiers contenant au moins une fois le motif recherché :

cmd 25 Shems > ls | wc –l


38
cmd 26 Shems > fgrep -l seul *
annexe_implantation.tex
chapitre_3d.tex
chapitre_conclusion.tex
chapitre_contours.tex
chapitre_facettes.tex
conclusion_bas_niveau.tex
introduction_bas_niveau.tex
these.lof
cmd 27 Shems >

12/02/19 Linux © A. El Hadri 187


Les grep : usages & options

Quelques Options
-i Ignorer les différences majuscules/minuscules aussi bien dans le
motif que dans les fichiers d’entrée.
-c Afficher uniquement le nombre des lignes correspondantes pour
chaque fichier d’entrée.
-h Ne pas afficher le nom des fichiers dans les résultats lorsque
plusieurs fichiers sont parcourus.
-L Indiquer uniquement les noms des fichiers pour lesquels aucun
résultat n’aurait été affiché.
-l Indiquer uniquement les noms des fichiers pour lesquels des
résultats auraient été affichés.
-n Ajouter à chaque ligne de sortie son numéro d'ordre dans le fichier
-q Silence. Ne pas afficher les résultats normaux.
-v Inverser la mise en correspondance, pour sélectionner les
lignes ne correspondant pas au motif.
12/02/19 Linux © A. El Hadri 188
grep & expr : limites.

Un processus utilisateur peut être « endormi » (mis en
état d’attente) par la commande kill –STOP pid.

La commande ps –ef affiche :
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 07:38 ? 00:00:01 init
salim 5041 5033 0 07:44 pts/1 00:00:00 bash
salim 5581 5041 0 08:09 pts/1 00:00:00 ps -ef


Écrire une ligne de commande avec grep et/ou expr qui
stop toutes les tâches de l’utilisateur dont le nom est
mis dans la variable shell user.

12/02/19 Linux © A. El Hadri 189


grep & expr : limites.

La commande ps –ef | grep "^ *$user" isole les lignes
intéressantes. Mais après :
– expr ne travaille que sur des variables,
– l’instruction shell for i in `commande` met mot après mot dans la
variable i, pas la ligne entière…
Quelques solutions :
– Utilisez un compteur sur le nombre de ligne et les isoler 1 par 1
while [ $i -le $n ]; do
ligne=`head -$i fichier | tail -1`
...
done
– Parcourir la liste par
ps ... | while read ligne]; do
...
done

Pas vraiment de solution pratique : utilisez sed ou awk
12/02/19 Linux © A. El Hadri 190
Sed : éditeur non interactif.

Sed est la version non interactif de l’éditeur ligne ed, lui même d’inspiration
edlin, le très vieil éditeur dos…

Le dernier usage courant de sed est la recherche d’une chaîne et/ou son
remplacement.
Syntaxe : sed ’s/r.e./ch/flags’ où :
– s est la syntaxe d’appel du remplacement pour sed,
– la r.e. recherche une chaîne dans la ligne courante,
– si elle existe, elle est remplacée par ch.
– si le flag g est précisé, toutes les occurrences de la chaîne sont remplacées;
par défaut, seulement la 1ère.
● sed ’s/yo!/bonjour/g’ remplace tous les yo! par bonjour.
sed ’s/.*titi *\([a-z]*\).*/\1/g’ écrit les mots après le
premier mot titi trouvé dans chaque ligne.

A noter que sed est extrêmement puissante : ce n’est là qu’une seule de
ses possibilités.

12/02/19 Linux © A. El Hadri 191


Regexp, grep, sed : exemples.

Endormir tous les processus d’un utilisateur :
ps –ef | grep "^ *$utilisateur" | \
sed 's/^ *[^ ]* *\([^ ]*\).*$/\1/g' | xargs kill –STOP

Ressortir le 2ème argument est complexe par sed. Il y a
plus simple :
ps –ef | grep "^ *$utilisateur" | awk ’{print $2}’ |\
xargs kill –STOP

Mieux ? Facile…
ps –ef | awk ’/^ *’$utilisateur’ /{print $2}’ |\
xargs kill –STOP

Evidemment, en connaissant bien ps…
ps –u $utilisateur –o pid | xargs kill –STOP

12/02/19 Linux © A. El Hadri 192