Vous êtes sur la page 1sur 97

IUG-UFP

Administration des Systèmes d’exploitation


MIAGE 2

Dr. CAMARA
2016-2017
Objectifs du Cours
 Fournir aux étudiants:

 les notions de bases sur les logiciels libre Linux

 lesnotions fondamentales de l’administration


d’un système d’administration Linux

 lesnotions fondamentales de l’administration


d’un système d’administration Windows Server
Plan du cours
 Généralités sur les S.E
 Généralités
 Historique des S. E. Unix et Linux
 Quelques distributions linux
 La racine du système de fichiers
 Virtualisation, liveCD et Informatique en nuage
 Installation
Linux et paquetage
 Manipulation de la console et des fichiers
 Quelques commandes Linux
 Editeurs de texte
 Entrée, sortie, redirection
 Taches administratives
 Généralités
 Administration des Utilisateurs
 Administration sytème de fichier et Sécurité
 Scripts shell
 Configuration réseau
Chapitre 1

Généralités sur les Systèmes


d’exploitation
Généralités sur les S.E
 Généralités:
 Un système d’exploitation (SE) est un programme ou un
ensemble de programmes assurant la gestion de l’ordinateur et
des périphériques.
 Il sert d’interface entre le matériel (hardware) et le logiciel
(software).
 C’est un ensemble de programmes très complexes dont le but est
de rendre plus simples les programmes et l’utilisation de
l’ordinateur.
 Exemples
 Windows (Microsoft)
 Mac OS (Apple)
 Linux
 Unix
Généralités sur les S.E…
 Généralités:
o Les premiers ordinateurs étaient physiquement des machines très
volumineuses utilisées à partir d’une console.
o Les programmes étaient chargés manuellement en mémoire, à l’aide
de bandes perforées
o Systèmes simples de traitements par lots (batch processing ): les
premiers SE appelés SE rudimentaires ont permis l’enchaînement
automatique des travaux.
o Systèmes multiprogrammés : il maintient plusieurs jobs en mémoire à
la fois. Le SE choisit et commence à exécuter un des travaux en mémoire.
o Système en temps partagé : utilise le scheduling (ordonnaceur) de l’UC
et la multiprogrammation pour fournir à chaque utilisateur une petite
portion de temps.
Généralités sur les S.E…
 Généralités:
o Les systèmes parallèles : La création de processeurs multi-cœurs,
traitant plusieurs instructions en même temps au sein du même U C T.
Mise en commun de ressources pour exécuter simultanément une
application gourmande en calcul et/ou mémoire.
o Les Systèmes répartis : Ceux sont des systèmes composés de plusieurs

Systèmes calculatoires autonomes (sinon, non réparti) sans mémoire


physique commune (sinon c'est un système parallèle, cas dégénéré).
o Les systèmes à temps réel : il est utilisé quand il existe des exigences
impérieuses de temps de réponse pour le fonctionnement d’un processeur
ou pour le jeu de données. Il est souvent employé comme dispositif de
contrôle dans une application dédiée.
o Un serveur est un programme informatique qui "rend service" à
plusieurs ordinateurs en réseau par le stockage ou le partage de dossiers,
de données, d’imprimantes ou encore de fax par exemple.
Ex: serveurs de fichiers; Proxy…
Généralités sur les S.E…
 Généralités:
 le rôle du système d’exploitation est de gérer :
la mémoire, les accès aux périphériques, les données sur les disques,
les programmes et les utilisateurs, la sécurité, la collecte des informations.
 La conception d’un SE est basée sur une structure à couches:
la couche inférieure (couche 0) est le matériel
la couche supérieure (couche N) est l’interface utilisateur.
 Appel système :
Un appel système (appel superviseur, appel noyau) est un appel d’une
des fonctions du noyau du système d’exploitation (implémenté au niveau
d’une des couches) et peuvent être classé comme suit:
o Contrôle de processus (arrêter, charger, exécuter un processus, …).
o Manipulation de fichiers (ouvrir, fermer, …).
o Manipulation de périphériques (demander, libérer, …).
o Manipulation de l’information (modifier l’heure, …).
o Communications (créer, supprimer des connexions, …).
Généralités sur les S.E…
 Généralités:
 La cache est une zone mémoire tampon où sont placées
certaines données avant leur écriture sur le disque grâce à sa
rapidité d’accès aux données.
 Les pilotes ont pour rôle de gérer au plus bas niveau le matériel
 Les systèmes d’exploitations modernes possèdent les composants
suivants :
o Gestionnaire de processeurs.
o Gestionnaire mémoire principale.
o Gestionnaire mémoire auxiliaire.
o Gestionnaire du système d’entrée/sortie.
o Gestionnaire des fichiers.
o Système de protection.
o Gestionnaire de réseaux.
o Système interpréteur de commande.
Généralités sur les S.E
 Généralités:
 Gestion des processus
Programme :suite de différentes instructions
Processeur : agent qui exécute les instructions d’un programme
Processus : programme qui s’exécute. Il fournit l’image et l’état
d’avancement de l’exécution d’un programme.
Threads / Tâches : flux d’exécution qui se déroule au sein d’un processeur.
o attribution de la mémoire à chaque processus ordonnancement des
processus: (répartition du temps d’exécution sur le ou les processeurs)
o synchronisation et communication entre processus: (services de
synchronisation, d’échange de messages, mise en commun de segments de
mémoire, etc.)
Généralités sur les S.E
 Généralités:
 Rôles de l’ordonnanceur est :
o Détermine quelle tâche doit s'exécuter en priorité et sur quel processeur
o Gère l'ordre dans lequel les instructions de différentes tâches sont
exécutées
o Est responsable de la commutation de contexte : sauvegarde et

restauration du contexte des tâches, ce contexte est constitué des registres


processeurs
 Types d’ordonnancement
o Coopératif : chaque processus doit suspendre de lui-même son exécution
pour permettre aux autres de s’exécute.
o Préemptif : l'ordonnanceur a la responsabilité de l'interruption des tâches
et du choix de la prochaine à exécuter.
Généralités sur les S.E
 Généralités:
 Diagramme d’état d’un processus
Généralités sur les S.E
 Généralités:
 Interfaces graphiques
o Historiquement l’interface graphique ne fait pas partie du système
d’exploitation.
o Dans Microsoft Windows l’interface graphique est incluse au sein même
du système d’exploitation.
o Linux propose des interfaces, mais ce sont des programmes comme les

autres. L’interface graphique n’est pas un composant du système


d’exploitation Linux qui n’en a pas besoin pour son bon fonctionnement.
o Linux est un SE de type Unix, ils sont un système d’exploitation de la

famille des systèmes multitâches et multiutilisateurs :


 Multitâche : le système gère l’exécution simultanée de plusieurs

programmes appelés des processus.


 Multiutilisateurs : le système permet l’existence de plusieurs utilisateurs
différents sur une même machine, connectés ou non.
Généralités sur les S.E
 Généralités:
 Architecture logique d’un système UNIX

 La cache est une zone mémoire temporaire avec un accès rapide des
données.
 Les pilotes ont pour rôle de gérer au plus bas niveau le matériel .
Généralités sur les S.E
 Historique des S. E. Unix et Linux

 En 1964 débute le développement du projet expérimental MULTICS


(Multiplexed Information and Computing Service) par le Massachusetts
Institute of Technology (MIT), le laboratoire Bell et le General Electric.

 Multics était développé sur un gros système GE-645 de General Electric


(2 CPU, 1 Mo de RAM, 128 Mo de stockage).

 Multics a fonctionné jusqu’en 1988 au MIT.

 En octobre 2000 débute la désactivation de la dernière installation de


Multics utilisée par la défense canadienne.
Généralités sur les S.E
 Historique des S. E. Unix et Linux
 Ordinateurs Centraux GE-645 de General Electric en 1968.
Généralités sur les S.E
 Historique des S. E. Unix et Linux
 En 1969 les Bell Labs se retire du projet pour se tourner vers le
développement d’un autre système appelé GECOS.
 Ken Thompson, développeur chez Bell, continue à travailler sur le
GE-645 et écrit le jeu (très lent et couteux sur Multics) Space Travel,
aidé par Dennis Ritchie (aussi de Bell), Ken réécrit le jeu en
assembleur pour le mini ordinateur DEC PDP-7.
 Les deux s’associent à Rudd Canaday (encore de Bell) pour
développer un système nommé UNICS (Uniplexed Information and
Computing System)
 UNICS améliore MULTIC, le CS est remplacé par X d’où: UNIX
 1973: UNIX est réécrit en langage C (problème de portabilité) par Ken
et Ritchie
Généralités sur les S.E
 Historique des S. E. Unix et Linux
 Logiciel libre
o En 1974, AT&T, n’ayant pas le droit de commercialiser UNIX
(décret de 1956), diffuse sous une licence peu restrictive le code source
auprès des universités (seul le code du noyau en assembleur
n’est pas diffusé)
o En 1978, AT&T obtient le droit de vendre UNIX (changement de licence

donc!), la communauté se focalise le projet BSD (Berkeley


Software Distribution) développé à partir de la version UNIX de 1977,
UNIX commercial est délaissé.
o En 1983, Richard Stallman, chercheur au MIT décide de créer un

nouveau SE entièrement libre d’accès, d’utilisation, de modification et de


redistribution : GNU (GNU’s Not Unix)
Généralités sur les S.E
 Historique des S. E. Unix et Linux
 Logiciel libre
o En 1985, Stallman crée la FSF (Free Software Foundation) pour
diffuser les idées du logiciel libre.
o Stallman rédige (avec l’aide d’avocats) une licence spéciale pour
les logiciels libres: GPL (General Public License).
Généralités sur les S.E
 Historique des S. E. Unix et Linux
 Logiciel libre…
Un logiciel libre garantit 4 libertés:
o Liberté 0: la liberté d’utiliser un logiciel quel que soit
l’usage que vous en faites
o Liberté 1: la liberté d’étudier le fonctionnement du programme
et de l’adapter à vos besoins
o Liberté 2: la liberté de redistribuer des copies afin
d’aider votre voisin (au sens large du terme)
o Liberté 3: la liberté d’améliorer le programme et de diffuser les
améliorations au public afin d’en faire bénéficier l’ensemble de la
communauté
Remarque
o Libre (free) ≠ Gratuit (free), mais, Libre Gratuit
o Un logiciel libre est aussi souvent qualifié de " Open Source "
Généralités sur les S.E
 Historique des S. E. Unix et Linux
 Logiciel libre Naissance de Linux
o En 1991, Linus Torvalds, étudiant finlandais de 21 ans, créé son propre
SE: Linux (contraction de Linus et Unix)
o En 1992 Fusion (GNU, Linux) est pleinement fonctionnelle: GNU/Linux
o Entre 1994 et1997, apparition des grandes distributions: Red Hat, Debian,
Suse et Slackware.
o En 1996, création de la mascotte de Linux: Tux
o A partir de 1998: l’explosion!

Linus Torvalds et Tux


Généralités sur les S.E
 Quelques distribution Linux

 Les principales distributions sont:


o Debian
o Red Hat et Fedora
o Mandriva (ex Mandrake)
o SUSE
o  Ubuntu
o Slackware.

 Avant de choisir une distribution Linux, il faut des objectifs:


o PC vsServer
o Usage ( jeux, grandes compagnies, célèbre (beaucoup aides)…)

 Les
principales versions commercial Unix sont:
SunOS, Solaris, SCO UNIX, AIX, HP/UX, and ULTRIX.

 Les versions libre sont: Linux and FreeBSD


Généralités sur les S.E
Quelques distribution Linux
Debian
Fondé en 1993 par Ian Murdock
Debian est un acronyme de Debra (femme de Murdock) et Ian
o Avantages
 Des milliers de packages
 Un logiciel d’installation appelé APT très pratique et performant
100% open source
 Une stabilité à toute épreuve pour un environnement de production
o Inconvénients
 Des packages souvent anciens
 Des mises à jour irrégulières et trop espacées
 Des risques liées à la multiplication des paquets et des dépendances
 Une installation et une configuration compliquée
o idéale pour les ingénieurs et administrateurs systèmes et réseau, et
l’entreprise
Généralités sur les S.E
 Quelques distribution Linux
 Red Hat et Fedora
Société fondée en 1995 par Robert Young et Mark Ewing,
mais la première version officielle date de 1994.
o Pendant 10 ans, Red Hat est resté la référence .
o 2003: la version 9.0 est la dernière destinée officiellement au grand
public.
Les versions suivantes ont été confiées au projet communautaire
Fedora qui continue à sortir une nouvelle version tous les 6 mois.
o Red Hat se concentre sur le monde de l’entreprise avec
des distributions commerciales appelées RHEL (Red Hat Enterprise Linux)
o Caractéristiques
 Des versions commerciales destinées aux entreprises
 Des solutions du poste de travail au plus gros serveur
 Des architectures matérielles nombreuses
 Un support commercial
 Des mises à jour assurées pendant 7 ans
o 100% libre
Généralités sur les S.E
 Quelques distribution Linux
 Mandriva (ex Mandrake)

o Ex-Mandrake, éditée par une société française (Connectiva), c’est


une dérivée de Red Hat créée par Gael Duval
o Pendant des années, Mandrake était la principale concurrente de Red Hat
o Mandrake devient Mandriva suite au rachat de Connectiva, mais la
distribution est en perte d’audience depuis quelques temps.
o Mandriva continue cependant d’innover fortement, notamment dans le
poste de travail nomade avec des versions clé en main bootables depuis
des clés USB
Généralités sur les S.E
Quelques distribution Linux
 openSUSE

o Distribution allemande créée en 1992


o Le nom de la société est un hommage à Konrad Zuse

l’inventeur des ordinateurs "modernes".


o La distribution est originellement basée sur Slackware (une

très ancienne distribution de Linux).


o En 1996, SuSE se rapproche de Jurix, une distribution française,

utilisée comme base à la place de Slackware.


o 2004: Novell rachète SuSE
o Le développement devient désormais communautaire et Novell

s’engage à fournir à la communauté tous les 6 à 8 mois une version stable,


libre et gratuite.
Généralités sur les S.E
Quelques
 distribution Linux
 Ubuntu

oDérivé de Debian, fondé en 2005 par le milliardaire sud africain


Mark Shuttleworth avec un budget initial de 10 millions de
dollars pour rémunérer les développeurs
oUbuntu est un mot en langage bantou signifiant "humanité aux autres " ou encore "je
suis ce que je suis grâce à ce que nous sommes tous".
oBut: fournir des logiciels plus récents et très fortement axés sur
la convivialité et l’ergonomie à l’aide du support du plus grand nombre.
oCaractéristiques:
Une distribution issue de Debian
Une compatibilité avec les package de Debian
Un système d’installation simple
Une sortie tous les 6 à 8 mois
Un environnement graphique agréable
oDistribution idéale pour les étudiants
Généralités sur les S.E
 Quelques distribution Linux

 Slackware

Créer par Patrick J. Volkerding, la première version, la 1.00, est


sortie le 16 juillet 1993.
o Elle a été historiquement une des premières permettant de faire tourner
Linux depuis un CD-ROM, dès 1995.
o Slackware est la plus ancienne distribution Linux encore active. Elle a vu
le jour avant Debian et Red Hat.
o  L'installateur Slackware, les composants de base du système et la
collection d'outils d'administration basiques ont fait leurs preuves depuis
belle lurette et sont toujours livrés avec la distribution.
o Slackware publie soigneusement l'intégralité de ses sources, et la
configuration s'effectue invariablement par le biais de fichiers texte.
o Slackware publie une nouvelle version à peu près une fois tous les deux
ans. 
Généralités sur les S.E
 La racine du système de fichiers
Contrairement au système de fichiers Windows, il n'existe pas de
lecteurs A:, C:, .. L'entrée du système de fichiers se situe à la racine, notée /

L'arborescence d'un système Linux


L'arborescence d'un système Linux
Structure du système de fichiers Linux
Généralités sur les S.E
 LiveCD, Virtualisation et Informatique en nuage

 LiveCD
o C’est un système d’exploitation exécutable sans installation
à l’aide de USB ou CD-ROM
o En 1992 Yggdrasil Linux; 2003 Knoppix, plusieurs
versions de nos jours.
o Le but: tests, démonstration, installer un système
d’exploitation, démarrer un système d’exploitation non
présent sur le PC, utiliser des outils spécifiques (multimédia),
utiliser un PC sans disque dur,..
o Fonctionne en redémarrent la machine sur usb ou CD
Généralités sur les S.E
 LiveCD, Virtualisation et Informatique en nuage

 LiveCD
o Avantages
 Système d’exploitation complet
 Support léger amovible
 Configuration du PC hôte sans modification
 Simplicité d’utilisation (sans installation)
 Permet de tester les systèmes
 Permet d’accéder au disque dur d’une machine plantée
o Inconvénients
 Pas de sauvegarde
 Débit de lecture lent
Généralités sur les S.E
LiveCD, Virtualisation et Informatique en nuage

La Virtualisation

oCette technique permet de faire des installations d'autres systèmes sur


une seule et même machine. De ce fait, il est possible de lancer plusieurs
systèmes en même temps mais il faut que les capacités matérielles soient
importantes (en processeur et mémoire notamment).

oLes premiers travaux de virtualisation date de 1974.

oLa virtualisation consiste à simuler, au sein d’un serveur physique,


l’existence de plusieurs systèmes d’exploitation cloisonnés et mutualisés.

oLa virtualisation permet le fonctionnement de plusieurs PC virtuels


indépendants les uns des autres sur une même ressource physique
centralisée et sécurisée en salle informatique.
Généralités sur les S.E
LiveCD, Virtualisation et Informatique en nuage

La Virtualisation…
NB:
oIl existe 3 familles de virtualisation:
 L’isolation ou cloisonnement: séparation du système en plusieurs

contextes: les contextes ne sont capables de communiquer qu'avec les


processus et les ressources associées à leur propre contexte,
 la para-virtualisation: gestion totalement de l’interface avec les

ressources, matérielles
virtualisation complète: utilise le logiciel hyperviseur qui va permettre

l’exécution de plusieurs machines virtuelles sur la machine physique.


oDe nos jours on virtualise sur: fichier, serveurs, réseau, PC, les

applications,…
Généralités sur les S.E
 LiveCD, Virtualisation et Informatique en nuage

 Le Cloud computing ou Informatique en nuage

o Le Cloud Computing, littéralement l’informatique en nuage, est un


concept qui consiste à déporter sur des ordinateurs distants des
traitements informatiques traditionnellement localisés sur des serveur
locaux ou sur les postes clients des utilisateurs.

o Le Cloud offre des ressources offrant des capacités de stockage et de


calcul, des logiciels de gestion de messagerie, et d'autres services sont mises
à disposition par des sociétés tierces et accessibles, grâce à un système
d'identification, via un PC et une connexion à Internet.
Généralités sur les S.E
 LiveCD, Virtualisation et Informatique en nuage
 Le Cloud computing ou Informatique en nuage…

o Les différents types de Cloud 


 Software as a Service (SaaS) : Concept consistant à proposer un
abonnement à un logiciel plutôt que l'achat d'une licence. On oublie donc le
modèle client-serveur et aucune application n'est installée sur l'ordinateur,
elles sont directement utilisables via le navigateur Web. L’utilisation reste
transparente pour les utilisateurs, qui ne se soucient ni de la plateforme, ni
du matériel, qui sont mutualisés avec d’autres entreprises.
 Data as a Service (DaaS) : les données sont disponibles sur le réseau.
 Platform as a Service (PaaS) : la plate-forme est granulaire; (offre
solutions de développement logiciel qui répondent aux exigences
spécifiques du client)
Généralités sur les S.E
 LiveCD, Virtualisation et Informatique en nuage

 Le Cloud computing ou Informatique en nuage


o Avantages
 Les utilisateurs ou les entreprises ne sont plus gérants de leurs serveurs
informatiques mais peuvent ainsi accéder à de nombreux services en ligne
sans avoir à gérer l'infrastructure sous-jacentet souvent complexe.
 Les applications et les données ne se trouvent plus sur l'ordinateur local,
mais dans un nuage (cloud) (!!!) composé d'un certain nombre de serveurs
distants interconnectés au moyen d'une bande.
 L'accès au service se fait par une application standard facilement
disponible.
 réponde aux exigences de continuité et de qualité du service
Généralités sur les S.E
 LiveCD, Virtualisation et Informatique en nuage

 Le Cloud computing ou Informatique en nuage


o Inconvenient
 l'impact écologique négatifs du secteur informatique en nuage
(Greenpeace 2010)
 La sécurisation de l'accès à l'application, entre le client et le serveur
distant.
 Dépendance total pour les utilisateurs de la qualité du réseau pour
accéder à ce service. Aucun fournisseur de service cloud ne peut garantir
une disponibilité de 100 %
 Nécessité de se connecter à Internet et ainsi de exposer les donnés à un
risque d'attaque ou a des violations de confidentialité.
 La bande passante peut faire exploser le budget pour un Cloud
gigantesque, et les coûts pourraient être importants qu'il serait plus
avantageux d'acheter le stockage nous-mêmes plutôt que de payer
quelqu'un d'autre pour s'en charger.
Généralités sur les S.E
 LiveCD, Virtualisation et Informatique en nuage

 Le Cloud computing ou Informatique en nuage


o Architecture:
 les clouds privés internes, gérés en interne par une entreprise
pour ses besoins (traditionnelle forme de hosting du server )
o les clouds privés externes, dédiés aux besoins propres d'une
seule entreprise, mais dont la gestion est externalisée chez un
prestataire
o les clouds publics, gérés par des entreprises spécialisées qui
louent leurs services à de nombreuses entreprises. (représente une
infrastructure de propriété d'un fournisseur spécialisé dans la
distribution de services, qui met à disposition d'usagers, d'entreprises
ou d'administrations, ses systèmes à travers le partage et distribution
par Internet d'applications informatiques, de capacité d’élaboration et
de ‘stockage’ des donnés)
Chapitre 2

Installation de Linux et
paquetage
Installation de Linux et paquetage
 Installation de Linux

o Installation sur un PC sans système d’exploitation


o Installation sur un PC ayant Windows déjà installé
(dual boot)
o Installation sur une machine virtuelle (VirtualBox ou
Vmware)

 En TP
Installation de Linux et paquetage
 Installation de Linux
o Conseils
Il est important de verifier les compatibiltés materielles avant
une installation Linux. Il peut avoir des incompatibilités par
rapport a la version choisie.
o Plan de partition de disque
Installation de Linux et paquetage
 Paquetage linux:
o Un package est une archive contenant des données et/ou des
programmes ainsi que les informations nécessaires à une
installation correcte de ceux-ci sur le système. Un package est
constitué d'un et un seul fichier, ce n'est pas un exécutable, il est
pris en charge par un programme dédié, le gestionnaire de
package.
o 3 types
 Redhat Package Manager (RPM) c'est le type de package le
plus utilisé sous Linux, ces packages gèrent les dépendances et les
scripts d'installation/désinstallation.
 Advanced Package Tools (APT) utilisé par la distribution Debian et ses
dérivés, dont Unbuntu il gère les scripts et les dépendances de façon plus
fine que RPM.
 TAR.GZ utilisé par les distributions du type slackware, il s'agit d'une
simple archive contenant également les scripts d'installation.
Installation de Linux et paquetage
 Paquetage linux:
o Les dépendances
 Lors de l'installation et la désinstallation, le gestionnaire de packages va
vérifier que toutes les dépendances sont vérifiées et que l'installation du
nouveau package ne va pas écraser des fichiers d'autres packages, sinon il
refusera d'installer, il reste possible de forcer l'installation à ses risques et
périls.
o Installation
Fichier rpm télechargeable sur: https://www.rpmfind.net/
rpm [opération] [options] [paquetage]
 i ( installation)
 u (mise à jour)
 g (demande d’information)
 e (désinstallation)
Exemple: rpm –ivh nompaquetage.rpm
Installation de Linux et paquetage
 Paquetage linux:
o Installation…
Debian paquetage /
dpkg
 i ( installation)
 P (désinstallation)
 p (demande d’information par rapport à l’installation de dpkg)
 e (démande par rapport à la désinstallation de dpkg)
apt – get
 update

 Install
Exemple:
 $ sudo apt-get install grep         #Debian/Ubuntu
 $ sudo yum install grep             #RHEL/CentOS/Fedora
Installation de Linux et paquetage
 Paquetage linux:
o Installation…
Chapitre 3

Manipulation de la console et des


fichiers
Manipulation de la console
 Quelques Commandes de bases

o date affiche la date et l’heure système


o  who affiche la liste user connectés
o who am i affiche mon compte connecté
o cal affiche le calendrier
o id affiche l’identité de l’utilisateur
o users
o mkdir
o touch
Manipulation de la console
 Quelques Commandes de bases

o su permet de changer d’identité

o  sudo  exécute une commande avec les privilèges (root)

o passwd change le mot de passe de l’utilisateur

o cat, more, less affiche le contenu d’un fichier

o file affiche le type d’un fichier

o sort tri d’un fichier


Manipulation de la console
 Quelques Commandes de bases

wc affiche le nombre de ligne de mots et des caractères d’un


fichier
o pwd (print working directory ): affiche le nom du repertoire
courant
o  which:  affiche le chemin complet des commandes

$ which ls
/bin/ls
o cd (change directory ): permet de naviguer dans
l’arborescence
o uname –a affiche la version du noyau
Manipulation de la console
 Commandes de bases
o cd …
o Ex:
 cd mondossier / images va dans le répertoire images de
mondossier lequel se trouve à l’endroit ou on se situe déjà.
 cd /var/log va dans le dossier des logs, quelque soit l’endroit
où l’on se trouve puisqu’on a mis le slash de début
o cd .. : permet de revenir au dossier parent(précédent)
o cd, cd ~ : permet de revenir directement au
répertoire home
NB:
La touche Tab permet de faire l’auto complétion de chemin.
Manipulation de la console
 Commandes de bases

o ls (list directory contents ): liste les fichiers d’un dossier.


o ls –a: affiche tous les dossiers et fichiers cachés
o ls –F: indique le type d’élément
o ls –l: affiche une liste détaillant chaque élément du dossier
o ls –h: affiche la taille des fichiers en Ko, Mo, Go
NB: ls –l: affiche la taille en octet
souvent pas très lisible
h: human readable
o ls- t: trier par date de dernière modification
Manipulation de la console
 Commandes de bases

o du (disk usage) donne des informations sur la taille


qu’occupent les dossiers sur le disque
Exemple:
o du: taille de chacun des sous-dossier du dossier courant
o du /bin/: taille du dossier /bin
o du –h : taille pour les humains (Ko, Mo)
o du –a: taille des fichiers des dossiers (octets)
o du –ah: taille des fichiers des dossiers (Ko, Mo)
o du –s: espace total occupé par le dossier
o du –sh: espace total en Mo.
Manipulation de la console
 Manipulation de fichiers
o cat: afficher tout le fichier
Exemple:
cd /var/log
cat anaconda.syslog
o less: afficher le fichier page par page
Exemple
less syslog
Utiliser la touche "espace" pour afficher la suite du fichier
Taper q pour arrêter la lecture
Taper b pour retourner à l’écran précédent
La touche "entrée " permet d’afficher la ligne suivante
Manipulation de la console
 Manipulation de fichiers
o head (tete): afficher le début d’un fichier
Affiche juste les premières lignes du fichier . Ne permet pas de se
déplacer dans le fichier comme less
o Exemple
head syslog
head –n 5 syslog : affiche les 5 premières ligne du fichier
tail: affiche la fin d’un fichier
Exemple
tail syslog
tail –n 5 syslog
tail –f syslog : follow, suivre la fin du fichier au fur et à

mesure de son évolution


Manipulation de la console
 Manipulation de fichiers

o touch: créer un fichier


Exemples
touch monfichier: créer un fichier sans extention
touch monficher2.txt : créer un fichier texte
touch "mon fichier" (fichier avec espace)

o mkdir: créer un dossier


Exemples
mkdir mondossier :un seul dossier est crée
mkdir mondossier1 mondossier2: 2 dossiers sont crées
Manipulation de la console
 Manipulation de fichiers
o cp (CoPy): copier un fichier
o Exemples
cp monfichier1 monfichier2 : duplique monfichier
cp monfichier mondossier: copier dans le répertoire
mondossier
cp monfichier /var/log: copie dans un répertoire relatif
cp –R dossier1 dossier2: copie d’un dossier avec tous les
sous-dossiers et fichiers qu’il contient.
o cp *.jpg mondossier: copier tous les fichiers images
dans un dossier; *: jocker ou wildcard)
cp so* mondossier: copier tous les fichiers commençant
par so
Manipulation de la console
 Manipulation de fichiers
mv (move): permet de:
Déplacer un fichier ou un dossier
Renommer un fichier ou un dossier
Déplacer un fichier ou un dossier
o mv monfichier mondossier/ :déplacer un fichier vers un
dossier
o mv dossier1/ dossier2/ (déplacer dossier1 dans dossier2)
o mv *.jpg mondossier/: déplacer tous les fichiers jpg dans
mondossier
o Renommer un fichier ou un dossier
mv fichier1 fichier2: fichier1 est renommé fichier2
Manipulation de la console
 Manipulation de fichiers

o more: affiche un fichier page par page


-s : regroupe les lignes vides consécutives en une seule
-f : ne coupe pas les lignes longues

Exemple:
more –sf monFichier: affiche monFichier page par page en
concaténant les lignes vides sans compter les lignes longues.
Manipulation de la console
 Manipulation de fichiers

o rm (remove): suppression sans possibilité de recupération


(pas de corbeille dans la console)
Exemples
rm monfichier: supprime monfichier
rm fichier1 fichier2: supprime fichier1 et fichier2
rm –i monfichier :demande confirmation avant la suppression
rm –f fichierinutile: force la suppression
rm –v fichierinutile: v(verbose); la commande informe de ce
qu’elle fait.
rm –r mondossier: r(recursif); supprime un dossier et son
contenu
rm –rf /* (très dangereux)
Manipulation de la console
 Manipulation de fichiers

o rmdir (remove Directory): supprimer un répertoire

Option fréquente
-p: supprime les répertoires parents s’il deviennent vides

Exemple
rmdir mondossier: supprime mondossier
Manipulation de la console
 Manipulation de fichiers
o find: permet de chercher récursivement des fichiers ;
Options les plus fréquentes :
-name : Recherche d'un fichier par son nom
-iname : Même chose que name mais insensible à la casse
-type : Recherche de fichier d'un certain type
Exemples:
find monfichier* :Recherche un fichier commençant par "monfichier"
find *monfichier*.ogg :Recherche un fichier contenant "monfichier"
et ayant pour extention ".ogg"
find /home/ -name monfichier: Recherche le fichier monfichier
dans toute la descendance de /home/
find -name "*.c": Recherche tous les fichiers ayant une extension .c
NB:
Vérifiez que vous vous trouvez bien dans le répertoire à partir duquel la
recherche récursive doit être effectuée.
Manipulation de la console
 Manipulation de fichiers

o grep: global regular expression print


Recherche une chaîne de caractères dans des fichiers (ou
depuis la console si aucun fichier n'est indiqué) ; Souvent
utilisé en filtre avec d'autres commandes.;
Options les plus fréquentes :
-c : Retourne le nombre de lignes au lieu des lignes elles mêmes
-n : Retourne les lignes préfixées par leur numéro
-i : Insensible à la casse
-r : Recherche récursivement dans tous les sous-répertoires ; On
peut utiliser la commande
Exemples:
grep -n montexte monfichier (Retourne toutes les lignes ainsi que
leur numéro ou montexte apparait dans monfichier)
Manipulation de la console
 Editeur de texte traditionellement disponibles sous Linux
Editeur de texte: programme qui permet de modifier des fichiers
de texte brut, sans mise en forme (gras, italique, souligné, …)
inode vs donnees
Exemple
Bloc-note (sous Windows)
nano, vi, emacs et gedit
Editeur de texte ≠ Traitement de texte
En TP:
Exemple
MS Word (sous Windows)
LibreOffice Writer (sous Linux)
Manipulation de la console
 Sous Linux, deux puissants éditeurs de texte en console sont
à connaître.
Vim : il s'agit d'une version améliorée de l'un des plus anciens
éditeurs en console : « Vi » (prononcez les lettres en anglais
« Vi aille »).
disponible par défaut sur la plupart des OS basés sur Unix,
comme Linux
Emacs : développé par Richard Stallman, le fondateur du
projet GNU.
il est rarement installé par défaut sur les OS Linux.
NB: Dans la pratique, on prend l'habitude d'en choisir un et de
s'y tenir : il est donc rare de voir quelqu'un naviguer entre les
deux.
Manipulation de fichiers
 Installer et lancer Vim
Dans ce cours nous allons utilisé Vim
On peut l’installer en tapant:
sudo apt-get install vim
Vim possède trois modes de travail différents:
Mode interactif : c'est le mode par défaut, on peut pas saisir
Mode insertion : On peut tapez du texte. On l’accède en
appuyant sur la touche i (insertion) et pour en sortir, on
appuyer sur la touche Echap.
Mode commande : ce mode permet de lancer des
commandes telles que « quitter », « enregistrer »
Manipulation de fichiers …
 modes de travail sous Vim
Manipulation de fichiers …
 Ouverture de Vim
En tapant vim , il s'ouvre sur un nouveau fichier vide
Manipulation de fichiers
 Ouverture de Vim
On ouvre ouvrir un fichier en ajoutant son nom en
Paramètre: vim nomdufichier
Si le fichier n'existe pas, il sera créé.
i : insérer du texte
En appuyant sur i, on bascule alors en mode insertion et on
commence par entrer du texte
NB: le message -- INSERT -- en bas de l'écran, qui vous
confirme que vous êtes en mode insertion.
Manipulation de fichiers
 Le déplacement
En mode interactif, il est possible de déplacer le curseur au
sein du texte.
 h, j, k, l : se déplacer dans tous les sens
h : aller à gauche ;
j : aller en bas ;
k : aller en haut ;
l : aller à droite.

 0 et $ : se déplacer en début et fin de ligne


Manipulation de fichiers
 Le déplacement …
w : se déplacer de mot en mot.
:w : enregistrer le fichier ( pour enregistrer un fichier on doit
être en mode interactif)
Manipulation de fichiers
 Quelque commandes…
:q :quitter
Pour quitter Vim on tape :q.

:wq : enregistrer puis quitter


C'est la combinaison des deux commandes que nous venons
de voir.

x : effacer des lettres


En plaçant le curseur sur une lettre en mode interactif puis en
appuyant sur x on efface la lettre.
Manipulation de fichiers
 Quelque commandes…
d : effacer des mots, des lignes…
De la même manière, on utilise la touche d pour supprimer
des mots et des lignes.

dd : supprimer une ligne


En plaçant le curseur sur la première lettre d'un mot. En tapez
ensuite dw (delete word) : cela supprime le mot complet !

d0 et d$ : supprimer le début ou la fin de la ligne


Manipulation de fichiers
Quelque commandes…

yy : copier une ligne en mémoire.

p : coller

r : remplacer une lettre


En plaçant le curseur sur la lettre à remplacer et en tapant
« r » suivi de la lettre qu’on veut mettre à la place. Par
exemple, rs remplace la lettre actuelle par un « s ».

u : annuler les modifications


Pour répéter un changement (= annuler une annulation), appuyez sur
Ctrl + R.
Manipulation de fichiers
 Quelque commandes…

:!  lancer une commande externe


Il est possible d'écrire des commandes traditionnelles du shell
directement dans Vim. Pour cela, commencez par taper :! suivi
du nom de la commande.
En tapant :! ls s’affichera alors le contenu du dossier dans
lequel on se trouve.
Chapitre 4

Entrée, Sortie, Redirection


Entrée et sortie
 Sortie standard et sortie d'erreur

Un programme consiste à traiter des données, et à renvoyer


des données transformées : il transforme des informations, et
c'est pourquoi l'on parle d'informatique.

Les messages renvoyés par l’ordinateur sont de deux ordres : il


y a les messages normaux relevant de la transformation
d'informations mais il y a aussi des messages d'erreur.
Entrée et sortie
 Sortie standard et sortie d'erreur

Le principe peut être résumé dans le schéma de la figure suivante.


Entrée et sortie
 Comportement par défaut

Pour résumer, chaque commande a donc :


 une entrée standard,
 une sortie standard et
 une sortie d'erreur.

Par défaut, l'entrée standard est le clavier, la sortie standard est


l'écran, et la sortie d'erreur est aussi l'écran.

C'est sur le clavier que vous tapez ; ce que vous tapez et ce que
renvoient les programmes s'inscrit à l'écran ; les messages d'erreur
renvoyés par les programmes s'affichent à l'écran.
Entrée et sortie
Les
 redirections
Ici il ne s'agit pas du comportement par défaut, non encore d'un
comportement obligatoire. On peut tout à fait orienter
différemment nos programmes.

Nous allons étudier successivement :


comment rediriger la sortie d'une commande vers un fichier;
comment ajouter la sortie d'une commande à la fin d'un fichier;
comment utiliser un fichier comme entrée d'une commande;
comment utiliser la sortie d'une commande comme entrée d'une autre.

En résumé:
On verra comment brancher un fichier sur l'entrée ou sur la sortie d'une
commande, et comment brancher la sortie d'une commande sur l'entrée
d'une autre commande.
Entrée et sortie
 Rediriger la sortie dans un fichier : >

On peut rediriger la sortie standard d'une commande vers un fichier en


utilisant le (caractère « > »). Le résultat de la commande sera placé dans le
fichier au lieu de s'afficher sur l'écran.

Exemple1 :
ls -l > nomfichier

Le résultat de ls -l ne s'affiche pas à l'écran, mais il est placé dans le fichier


nomfichier.
On peut alors taper:
less nomfichier
Entrée et sortie
 Rediriger la sortie dans un fichier : > …
Exemple2 :
Saisissez les notes des élèves d'une classe à un contrôle dans un éditeur de
texte suivant et enregistrez le sous le nom (notes.txt)
Fané , 18 / 20 , Excellent travail
Marico , 3 / 20 , Nul comme d'hab
Sidibé , 14 / 20 , En nette progression
Maïga, 9 / 20 , Allez presque la moyenne !
Coulibaly , 11 / 20 , Pas mal mais peut mieux faire
Ag , 20 / 20 ,Toujours parfait
Bengaly , 5 / 20 , En grave chute
Tapez la commande:
cut -d , -f  1 notes.txt ( que remarquez vous?)
Tapez ensuite: cut -d , -f 2 notes.txt > etudiants.txt
NB: (1 represente le chiffre 1)
Entrée et sortie
 Rediriger la sortie dans un fichier : > …

Exemple3 :
Parfois, on ne souhaite ni voir le résultat d'une commande ni le
stocker dans un fichier. Dans ce cas, l'astuce consiste à
rediriger le résultat dans /dev/null. C'est un peu le « trou noir » de
Linux : tout ce qui va là-dedans disparaît immédiatement.

Par exemple: ls -l > /dev/null


Entrée et sortie
 Ajouter la sortie à un fichier : >>

On veut parfois ajouter la sortie d'un programme à un fichier, sans effacer


ce qui précède. Or, par défaut ;
si l'on tape plusieurs fois ls -l > nomfichier à chaque fois, le contenu
antérieur du fichier nomfichier est écrasé par le contenu ultérieur.

Pour éviter cela, il existe l'outil de redirection >>. Ainsi, on tape plusieurs
fois ls -l >> nomfichier ;
le fichier nomfichier contiendra à la suite tout ce qu’on a renvoyé la
commande.
Entrée et sortie
 Récapitulatif entre >> et >
Entrée et sortie
 Rediriger l'entrée : <

On peut aussi rediriger l'entrée standard d'une commande avec le


(caractère « < »). La commande lira alors le fichier au lieu du clavier.
Exemple :
chpasswd < fichierpwd
envoie a la commande chpasswd le contenu du fichier fichierpwd.

On peut aussi taper more < nomfichier qui est équivalent à:


more nomfichier car more sans argument lit son entrée standard et
l'affiche page par page sur le terminal
Entrée et sortie
 Connecter la sortie d'une commande sur l'entrée d'une autre : |

Il est souvent ennuyant de taper plusieurs commandes :


ls -l > nomfichier
less < nomfichier
rm nomfichier

On peut se passer du fichier intermédiaire (nomfichier dans notre


exemple) grâce à un pipe (caractère « | »). Un pipe connecte
directement la sortie standard d'une commande sur l'entrée
standard d'une autre commande.
Exemple : pour afficher page par page la liste des fichiers du
répertoire courant, faire ls -l | less

Le pipe, ou tube, est d'un usage très courant, et rend beaucoup de


services.
Entrée et sortie
 Succès et erreur

On a parfois besoin de savoir si une commande a réussi ou non


avant d'en lancer une autre. Les indicateurs && et || permettent,
respectivement, de lancer une commande si (et seulement si) la
précédente a réussi ou échoué.

Par exemple, si j'ai un fichier nomfichier, j'obtiens :


cat nomfichier && echo "J'ai un fichier nomfichier."
nomfichier
J'ai un fichier nomfichier.

Si je n'ai pas de fichier nomfichier, le message ne s'affiche pas. En revanche, si


je tape alors :
ls nomfichier || echo " Je n'ai pas de fichier monfichier. "
ls: nomfichier : No such file or directory
Je n'ai pas de fichier nomfichier.
Entrée et sortie
 Redirection des sorties standard et d'erreur
Toutes les commandes produisent deux flux de données différents:
 la sortie standard : pour tous les messages (sauf les erreurs) ;
 la sortie d'erreurs : pour toutes les erreurs.

Supposons que vous fassiez un cat du fichier notes.csv pour afficher son
contenu. Il y a deux possibilités :
 si tout va bien, le résultat (le contenu du fichier) s'affiche sur la sortie
standard ;
 s'il y a une erreur, celle-ci s'affiche dans la sortie d'erreurs.
Par défaut, tout s'affiche dans la console : la sortie standard comme la
sortie d'erreurs. Cela explique pourquoi on ne fait pas la différence entre
ces deux sorties jusqu'ici : elles avaient l'air identiques.
Entrée et sortie
 Redirection des sorties standard et d'erreur

Il est parfois utile de rediriger la sortie standard et la sortie d'erreur


vers un même endroit. Pour cela, on utilise le motif 2>&1 avant la
redirection.
Rediriger la sortie d'erreur (2) et la sortie standard (1) sur
l'entrée de la commande suivante: 2>&1 |
Exemple:
Redirige la sortie d'erreur et la sortie standard vers fichier
> fichier 2>&1 redirige la sortie d'erreur et la sortie standard à la
fin de fichier
>> fichier 2>&1
Entrée et sortie
 Rediriger les erreurs dans un fichier à part

Pour cela, on utilise l'opérateur 2> (c'est le chiffre 2 collé au chevron).

Exemple: de l’exemple sur les notes des étudiants on peut écrire:


cut -d , -f 1 notes.txt  > etudiants.txt 2>  erreurs.log

Il y a deux redirections ici :


> étudiants.txt : redirige le résultat de la commande (sauf les erreurs) dans
le fichier étudiants.txt. C'est la sortie standard ;
2> erreurs.log : redirige les erreurs éventuelles dans le fichier erreurs.log,
c'est la sortie d'erreurs.
NB: Il est aussi possible d'utiliser 2>> pour ajouter les erreurs à la fin
du fichier.
Entrée et sortie
 Fusionner les sorties

Si on n'a pas envie de séparer les informations dans deux fichiers différents.
On utilise le code suivant : 2>&1.

Exemple:
cut -d , -f 1 notes.txt  > etudiants.txt 2>&1.
Tout ira désormais dans etudiants.txt : le résultat (si cela a fonctionné), de
même que les erreurs (s'il y a eu un problème).
NB : il n'est pas possible d'écrire 2>>&1 , ça ne marchera pas.
Entrée et sortie
 En résumé

 2> : redirige les erreurs dans un fichier (s'il existe déjà, il sera écrasé) ;
 2>> : redirige les erreurs à la fin d'un fichier (s'il n'existe pas, il sera
créé) ;
 2>&1 : redirige les erreurs au même endroit et de la même façon que la
sortie standard.
Entrée et sortie
 lire depuis le clavier progressivement: << 
Le double chevron ouvrant << fait quelque chose d'assez différent : il vous
permet d'envoyer un contenu à une commande avec votre clavier.
Exemple1: Taper ceci:
sort -n  <<  FIN , La console vous propose alors de taper du texte.
Comme sort -n sert à trier des nombres, on va justement écrire des
nombres, un par ligne (en appuyant sur la touche Entrée à chaque fois).
sort -n << FIN
> 13
> 132
> 10
> 131 Continuez ainsi jusqu'à ce que vous ayez terminé.
Lorsque vous avez fini, tapez FIN pour arrêter la saisie.
La commande sort nous trie et affiche les nombres saisis au clavier.
Entrée et sortie
 lire depuis le clavier progressivement: << 

Exemple2:
Vous pouvez faire la même chose avec une autre commande, comme par
exemple wc pour compter le nombre de mots ou de caractères.

wc -m << FIN
> Combien de caractères dans cette phrase ?
> FIN
42

NB: Une question : ce mot FIN est-il obligatoire ? C’est juste un nom
attribué au fichier.
Liens symboliques
La commande "ln" permet de créer des liens des liens symbolique
(raccourci) d’un fichier. Il permet de synchroniser le contenu de deux
fichiers, comme si c'était une copie du fichier source en temps réel
Syntaxe:
ln [Options] fichier_source fichier_destination
Options "-s" => Créé un lien "symbolique" (raccourci)
Exemple3:
 $ cat fichier1.txt (supposons que le fichier1 existe deja) faire un $ ls -l
Pour créer un lien du fichier1.txt vers fichier2.txt, on procède coe suit:
 $ ln fichier-1.txt fichier-2.txt faire un $ ls -l
Que constatez vous? En ajoutez l’option "–s" à ln, que remarque t’on en
exécutant la commande ls.
 $ echo Aurevoir tout le monde. Merci >> fichier2.txt
Lire le contenu de fichier1 et fichier2. Que constatez vous?
De plus en faisant: $ rm fichier-1.txt faire un $ ls –l , Que constatez vous?

Vous aimerez peut-être aussi