SlideShare une entreprise Scribd logo

Cours SE linux

I
Idriss22

Cours de Linux, destiné au profit des Etudiants de La Deuxième Année de la filière GI inscrits en semestre S2

1  sur  201
Télécharger pour lire hors ligne
1
Filière (DUT) : Génie Informatique-S2
Année Universitaire : 2018– 2019
Diaporamas du cours :
Systèmed’Exploitation(Linux)
Préparé par : Idriss CHANA
Enseignant chercheur au Département Génie Informatique, EST-UMI Meknès
Email : i.chana@umi.ac.ma
Au Profit des Etudiants de La Deuxième Année de la filière GI inscrits en
semestre S2
Système d’exploitation « Linux »
2
Professeur : Chana Idriss
E-mail: idrisschana@gmail.com
Informations Générales
3
Introduire les notions de base des systèmes d'exploitation.
Différence entre un Système Open Source (Libre) et un système
propriétaire
Se familiariser avec le système Open Source de type linux (Ubuntu)
Maitriser la manipulation en mode commande des systèmes Linux
Manipulation des commandes de gestion des fichiers Linux
La programmation sous les système Linux
Objectifs du Module
4
Le contenu
0- Introduction à l’informatique
1- Introduction au Système d’exploitation (OS)
- Pourquoi un OS ?
- Qu'est ce que un OS?
2- Système d’exploitation open source
3. Système de fichiers et Gestion de fichiers et répertoires
- Manipulation des fichiers et répertoires - les liens –recherche des fichiers(find ,-exec) -
- Compression et archivage
4. Gestion des droits d’accès aux fichiers et répertoires (chmod) et l’éditeur vi
5. Extraire , trie et filtres et d’autre opération sur les fichiers :
‘’wc, grep, cat, sort,uniq,cut,sed,split comm,diff ’’
6. Mécanismes de redirection et les Tubes(’ <’ , ‘<<‘, ‘>,’>>, ’|’’ pipe et double pipe ‘||’).
7- Gestion de processus
8. Automatisation des taches,
- date, at , crontab
9- le Shell et les Scriptes ( programmation sous linux)
- Commandes d’entée et sortie ( echo , read)
- Variables
- alternatifs contrôle(if) commande (test), boucles (for …, while ….,until) et expression
- Paramètres de scriptes ( $0, $#,$? ) ,($1, $2 ….$n)
5
6

Recommandé

Les Logiciels Libres et Open Sources
Les Logiciels Libres et Open SourcesLes Logiciels Libres et Open Sources
Les Logiciels Libres et Open SourcesJibril Touzi
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxBruno Cornec
 
Présentation Logiciels Libres et Open Source - Philosophie et Concepts.pdf
Présentation Logiciels Libres et Open Source - Philosophie et Concepts.pdfPrésentation Logiciels Libres et Open Source - Philosophie et Concepts.pdf
Présentation Logiciels Libres et Open Source - Philosophie et Concepts.pdfLaurent Destailleur
 
1 les logicielslibres
1 les logicielslibres1 les logicielslibres
1 les logicielslibresSylvain DENIS
 
Chapitre i généralités et notions de base
Chapitre i généralités et notions de base Chapitre i généralités et notions de base
Chapitre i généralités et notions de base Wajdi Ben Helal
 
Introduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).pptIntroduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).pptMahdiHERMASSI1
 

Contenu connexe

Similaire à Cours SE linux

Introduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresIntroduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresBruno Cornec
 
Logiciellibre
LogiciellibreLogiciellibre
Logiciellibrem4rylin
 
Comparatif Windows/Linux
Comparatif Windows/LinuxComparatif Windows/Linux
Comparatif Windows/LinuxJibril Touzi
 
La valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseLa valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseRobert Viseur
 
La valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseLa valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseRobert Viseur
 
intro-linux-v4.pdf
intro-linux-v4.pdfintro-linux-v4.pdf
intro-linux-v4.pdfBruno Cornec
 
Logiciels Libres, quelles opportunités pour nos entreprises?
Logiciels Libres, quelles opportunités pour nos entreprises?Logiciels Libres, quelles opportunités pour nos entreprises?
Logiciels Libres, quelles opportunités pour nos entreprises?Fdiwa
 
2011 09-23-logiciels-libres
2011 09-23-logiciels-libres2011 09-23-logiciels-libres
2011 09-23-logiciels-libresSylvain DENIS
 
Logiciels libres
Logiciels libresLogiciels libres
Logiciels libresj_lipaz
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Faycel Chaoua
 
Logiciels Libres, quelles opportunités pour nos entreprises ?
Logiciels Libres, quelles opportunités pour nos entreprises ?Logiciels Libres, quelles opportunités pour nos entreprises ?
Logiciels Libres, quelles opportunités pour nos entreprises ?Ahmed Chergaoui
 
srep_cours_01.pdf
srep_cours_01.pdfsrep_cours_01.pdf
srep_cours_01.pdfSamirAwad14
 
Les Logiciels Libres
Les Logiciels LibresLes Logiciels Libres
Les Logiciels LibresSylvain DENIS
 

Similaire à Cours SE linux (20)

Introduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresIntroduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libres
 
Logiciellibre
LogiciellibreLogiciellibre
Logiciellibre
 
logiciel libre
logiciel librelogiciel libre
logiciel libre
 
Linux_Cours.ppt
Linux_Cours.pptLinux_Cours.ppt
Linux_Cours.ppt
 
Comparatif Windows/Linux
Comparatif Windows/LinuxComparatif Windows/Linux
Comparatif Windows/Linux
 
La valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseLa valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entreprise
 
La valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseLa valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entreprise
 
intro-linux-v4.pdf
intro-linux-v4.pdfintro-linux-v4.pdf
intro-linux-v4.pdf
 
Opensource
Opensource Opensource
Opensource
 
Logiciels Libres, quelles opportunités pour nos entreprises?
Logiciels Libres, quelles opportunités pour nos entreprises?Logiciels Libres, quelles opportunités pour nos entreprises?
Logiciels Libres, quelles opportunités pour nos entreprises?
 
2011 09-23-logiciels-libres
2011 09-23-logiciels-libres2011 09-23-logiciels-libres
2011 09-23-logiciels-libres
 
Logiciels libres
Logiciels libresLogiciels libres
Logiciels libres
 
Dee eday 17-mars2011
Dee eday 17-mars2011Dee eday 17-mars2011
Dee eday 17-mars2011
 
Licences libres
Licences libresLicences libres
Licences libres
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2
 
Matinée7 logiciel libre
Matinée7   logiciel libreMatinée7   logiciel libre
Matinée7 logiciel libre
 
chapitre0.pptx
chapitre0.pptxchapitre0.pptx
chapitre0.pptx
 
Logiciels Libres, quelles opportunités pour nos entreprises ?
Logiciels Libres, quelles opportunités pour nos entreprises ?Logiciels Libres, quelles opportunités pour nos entreprises ?
Logiciels Libres, quelles opportunités pour nos entreprises ?
 
srep_cours_01.pdf
srep_cours_01.pdfsrep_cours_01.pdf
srep_cours_01.pdf
 
Les Logiciels Libres
Les Logiciels LibresLes Logiciels Libres
Les Logiciels Libres
 

Plus de Idriss22

Ecosystème Big Data
Ecosystème Big DataEcosystème Big Data
Ecosystème Big DataIdriss22
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.pptIdriss22
 
Base de donnees Avancees et Intro à NoSQL.ppt
Base de donnees Avancees et Intro à  NoSQL.pptBase de donnees Avancees et Intro à  NoSQL.ppt
Base de donnees Avancees et Intro à NoSQL.pptIdriss22
 
Cours_théorie_de_jeux
Cours_théorie_de_jeuxCours_théorie_de_jeux
Cours_théorie_de_jeuxIdriss22
 
Bases de la Théorie des graphes
Bases de la Théorie des graphes Bases de la Théorie des graphes
Bases de la Théorie des graphes Idriss22
 
Intro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.pptIntro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.pptIdriss22
 

Plus de Idriss22 (6)

Ecosystème Big Data
Ecosystème Big DataEcosystème Big Data
Ecosystème Big Data
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
 
Base de donnees Avancees et Intro à NoSQL.ppt
Base de donnees Avancees et Intro à  NoSQL.pptBase de donnees Avancees et Intro à  NoSQL.ppt
Base de donnees Avancees et Intro à NoSQL.ppt
 
Cours_théorie_de_jeux
Cours_théorie_de_jeuxCours_théorie_de_jeux
Cours_théorie_de_jeux
 
Bases de la Théorie des graphes
Bases de la Théorie des graphes Bases de la Théorie des graphes
Bases de la Théorie des graphes
 
Intro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.pptIntro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.ppt
 

Dernier

Fabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie DarrieussecqFabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie DarrieussecqTxaruka
 
Activités mercredis cycle 3 - año 2020.pdf
Activités mercredis cycle 3 - año 2020.pdfActivités mercredis cycle 3 - año 2020.pdf
Activités mercredis cycle 3 - año 2020.pdfLallaJamilaFtaich1
 
Modulation Fm Tp presentation avancée USTHB
Modulation Fm Tp presentation avancée USTHBModulation Fm Tp presentation avancée USTHB
Modulation Fm Tp presentation avancée USTHBUsaPlay2
 
Calendrier de la semaine du 19 au 23 février 2024
Calendrier de la semaine du 19 au 23 février 2024Calendrier de la semaine du 19 au 23 février 2024
Calendrier de la semaine du 19 au 23 février 2024frizzole
 
Français langue étrangère: Le but et l'obligation 2024
Français langue étrangère: Le but et l'obligation 2024Français langue étrangère: Le but et l'obligation 2024
Français langue étrangère: Le but et l'obligation 2024Paulo Marques
 
Offres d'emploi (Mise à Jour le 19/02).pptx
Offres d'emploi (Mise à Jour le 19/02).pptxOffres d'emploi (Mise à Jour le 19/02).pptx
Offres d'emploi (Mise à Jour le 19/02).pptxMissionLocale
 
Français langue étrangère: L'impératif présent 2024
Français langue étrangère: L'impératif présent 2024Français langue étrangère: L'impératif présent 2024
Français langue étrangère: L'impératif présent 2024Paulo Marques
 
Le langage n'est-il qu'un instrument de communication ? (V2)
Le langage n'est-il qu'un instrument de communication ? (V2)Le langage n'est-il qu'un instrument de communication ? (V2)
Le langage n'est-il qu'un instrument de communication ? (V2)Gabriel Gay-Para
 
Marseille XIXe fiche de travail 2024.pdf
Marseille XIXe fiche de travail 2024.pdfMarseille XIXe fiche de travail 2024.pdf
Marseille XIXe fiche de travail 2024.pdfNadineHG
 
antigone de jean Anouilh la tragédie moderne
antigone de jean Anouilh la tragédie moderneantigone de jean Anouilh la tragédie moderne
antigone de jean Anouilh la tragédie moderneayoubrhammadi2
 

Dernier (10)

Fabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie DarrieussecqFabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie Darrieussecq
 
Activités mercredis cycle 3 - año 2020.pdf
Activités mercredis cycle 3 - año 2020.pdfActivités mercredis cycle 3 - año 2020.pdf
Activités mercredis cycle 3 - año 2020.pdf
 
Modulation Fm Tp presentation avancée USTHB
Modulation Fm Tp presentation avancée USTHBModulation Fm Tp presentation avancée USTHB
Modulation Fm Tp presentation avancée USTHB
 
Calendrier de la semaine du 19 au 23 février 2024
Calendrier de la semaine du 19 au 23 février 2024Calendrier de la semaine du 19 au 23 février 2024
Calendrier de la semaine du 19 au 23 février 2024
 
Français langue étrangère: Le but et l'obligation 2024
Français langue étrangère: Le but et l'obligation 2024Français langue étrangère: Le but et l'obligation 2024
Français langue étrangère: Le but et l'obligation 2024
 
Offres d'emploi (Mise à Jour le 19/02).pptx
Offres d'emploi (Mise à Jour le 19/02).pptxOffres d'emploi (Mise à Jour le 19/02).pptx
Offres d'emploi (Mise à Jour le 19/02).pptx
 
Français langue étrangère: L'impératif présent 2024
Français langue étrangère: L'impératif présent 2024Français langue étrangère: L'impératif présent 2024
Français langue étrangère: L'impératif présent 2024
 
Le langage n'est-il qu'un instrument de communication ? (V2)
Le langage n'est-il qu'un instrument de communication ? (V2)Le langage n'est-il qu'un instrument de communication ? (V2)
Le langage n'est-il qu'un instrument de communication ? (V2)
 
Marseille XIXe fiche de travail 2024.pdf
Marseille XIXe fiche de travail 2024.pdfMarseille XIXe fiche de travail 2024.pdf
Marseille XIXe fiche de travail 2024.pdf
 
antigone de jean Anouilh la tragédie moderne
antigone de jean Anouilh la tragédie moderneantigone de jean Anouilh la tragédie moderne
antigone de jean Anouilh la tragédie moderne
 

Cours SE linux

  • 1. 1 Filière (DUT) : Génie Informatique-S2 Année Universitaire : 2018– 2019 Diaporamas du cours : Systèmed’Exploitation(Linux) Préparé par : Idriss CHANA Enseignant chercheur au Département Génie Informatique, EST-UMI Meknès Email : i.chana@umi.ac.ma Au Profit des Etudiants de La Deuxième Année de la filière GI inscrits en semestre S2
  • 3. Professeur : Chana Idriss E-mail: idrisschana@gmail.com Informations Générales 3
  • 4. Introduire les notions de base des systèmes d'exploitation. Différence entre un Système Open Source (Libre) et un système propriétaire Se familiariser avec le système Open Source de type linux (Ubuntu) Maitriser la manipulation en mode commande des systèmes Linux Manipulation des commandes de gestion des fichiers Linux La programmation sous les système Linux Objectifs du Module 4
  • 5. Le contenu 0- Introduction à l’informatique 1- Introduction au Système d’exploitation (OS) - Pourquoi un OS ? - Qu'est ce que un OS? 2- Système d’exploitation open source 3. Système de fichiers et Gestion de fichiers et répertoires - Manipulation des fichiers et répertoires - les liens –recherche des fichiers(find ,-exec) - - Compression et archivage 4. Gestion des droits d’accès aux fichiers et répertoires (chmod) et l’éditeur vi 5. Extraire , trie et filtres et d’autre opération sur les fichiers : ‘’wc, grep, cat, sort,uniq,cut,sed,split comm,diff ’’ 6. Mécanismes de redirection et les Tubes(’ <’ , ‘<<‘, ‘>,’>>, ’|’’ pipe et double pipe ‘||’). 7- Gestion de processus 8. Automatisation des taches, - date, at , crontab 9- le Shell et les Scriptes ( programmation sous linux) - Commandes d’entée et sortie ( echo , read) - Variables - alternatifs contrôle(if) commande (test), boucles (for …, while ….,until) et expression - Paramètres de scriptes ( $0, $#,$? ) ,($1, $2 ….$n) 5
  • 6. 6
  • 7. Technicien Spécialisé et Système D’exploitation Linux 7
  • 8. Évaluation • Cours & TD 50% - Participation pendant des séances de TD et de cours - DS théorique • TP 50% 8
  • 9. INTRODUCTION : • On peut dire qu’un System d’exploitation : est Une interface qui sert d’intermédiaire entre l’utilisateur et l’ordinateur Système d’exploitation 9
  • 10. Composantes internes d’un ordinateur INTRODUCTION : 10
  • 11. Composantes Externes/ Périphériques d’un ordinateur INTRODUCTION : 11 Un SE joue également le rôle de la Coordination et du contrôle de l’ensemble des composantes (matériels) de l’ordinateur et les périphériques qui lui sont rattachés
  • 12. Ordinateurs et Logiciels Un S.E est aussi Une interface qui sert d’intermédiaire entre les logiciels et l’ordinateur MicrosoftWord Open Office Dev Cpp Etc …. Paint Internet Explorer Application de paie INTRODUCTION : 12
  • 13. INTRODUCTION : 13 Le SE assure un rôle de partage des ressources ( RAM , Micro-process)
  • 16. millisecondes temps 100% microprocesseur Log. A Log. B Log. C Log. D _ INTRODUCTION : 16 • Le SE assure un rôle de partage de temps du calcul de microprocesseur et l’utilisation de l’espace mémoire de la RAM
  • 17. millisecondes temps % microprocesseur Log. A Log. B Log. C Log. D 100%_ Log. B Log. C Log. D Log. A Log. A 70% _ 50% _ Le S.E Assure un partage optimale du microprocesseur et de la RAM. INTRODUCTION : 17
  • 18. Le S.E assure également la Gestion Efficace des conflits Matériels et logiciels et des erreurs :  Occupation excessive (trop) de microprocesseurarrêt du programme et signale  Deux application concurrentes RAM  Allocation de la mémoire pour chacune  Matériel mal branché  signale à l’utilisateur  Manipulation non autorisé par l’utilisateur signale à l’utilisateur INTRODUCTION : Touts ces conflits pourraient générer un arrêts totale de la machine, mais le S.E assure la continuité de fonctionnement de l’ordinateur en arrêtant juste le programme en erreur 18
  • 19. INTRODUCTION : Récapitulatif ? Un Système d’Exploitation est: Intermédiaire entre l’utilisateur/Ordinateur  Intermédiaire entre logiciels(applications) /Ordinateur Contrôle et coordonne tout le matériels Partage optimale du microprocesseur et RAM Gestion des conflits Matériels et logiciels) 19
  • 20. Définition d’un système d’exploitation: Un système d’exploitation est un ensemble de programmes qui coordonnent le fonctionnement des différents composants matériels et logiciels d’un système informatique. INTRODUCTION Rappel Système D’exploitation On peut donc tirer la définition Suivante 20
  • 21. Apparition des S.E INTRODUCTION Avant les années 80 1955-1970 : Premiers systèmes : traitement par lots (batch) 1970-1980 : Unix et ces versions , Par Dennis Ritchie et Ken Thompson au Laboratoires Bell ATT de New Jersey. Après les années 80 Microsoft Appele Groupe de volontaire 21
  • 22. 1er S.E : MS-DOS : fonctionne en mode commandes INTRODUCTION 22
  • 30. Il y a aussi les S.E MAC OS ( MACINTOSH) INTRODUCTION 30
  • 31. INTRODUCTION Il y a aussi les S.E Libre (Open source ) 31
  • 34. INTRODUCTION Un programme informatique: Que ce soit un noyau ou un logiciel, il est constitué de nombreuses lignes de code, écrites dans un langage de programmation (le langage C dans le cas du noyau Linux). Ce code n'est généralement pas utilisable en tant que tel. Il faut passer par la phase de compilation qui transforme le code source en programme exécutable, souvent appelé binaire. Il suffit d'avoir le binaire pour utiliser le programme. Quand on achète un logiciel (Microsoft Office par exemple) ou un système d'exploitation on a un CD qui contient le binaire, mais pas les sources. Il est donc impossible de savoir comment le programme est conçu. Par conséquent, on ne peut pas modifier le programme. On peut seulement l'utiliser et éventuellement le copier à l'identique. 34
  • 35. Système Open sources logiciel Libre / logiciel propriétaire Les logiciels propriétaires sont donc les logiciels dont une licence, souvent payante, ne donne qu'un droit limité d'utilisation. On n'a la plupart du temps accès qu'aux binaires de ces logiciels. Certains logiciels propriétaires sont gratuits, on les appelle alors des freewares. (Windows est un OS propriétaire dont le code source est jalousement gardé par Microsoft. Imaginez que c'est un peu comme le Coca-Cola : personne ne connaît la recette de fabrication . On ne peut donc pas le modifier ou regarder comment il fonctionne à l'intérieur.) 35
  • 36. L’accès libre au code source accélère le progrès en matière d'informatique car l'innovation dépend de la diffusion du code source. les quatre libertés fondamentales pour dire qu’un Système est open source: • Liberté d'exécution : tout le monde a le droit de lancer le programme, quel que soit le but ; • Liberté de modification : tout le monde a le droit d'étudier le programme et de le modifier, ce qui implique un accès au code source ; • Liberté de redistribution : tout le monde a le droit de rediffuser le programme ; • Liberté d‘amélioration : tout le monde a le droit de redistribuer une version modifiée du programme ; Logiciel Libre / Logiciel Propriétaire Système Open sources 36
  • 37. Avantages et inconvénients des logiciels libres La qualité : Le fait que tout le monde peut y travailler (révision , correction …) , il n y aura plus de bug , ni Verus La réactivité: correction des Bug très rapidement car il y a de nombreuse personne qui travaillent dessus. Le coût : cout faible( généralement gratuit) car il est fait par des passionnés L’autonomie : MAJ de votre logiciel vous-même, sans attendre l’avis ou l’accord de la boit qui vous a vendu le programme Système Open sources Avantages (1/2) 37
  • 38. 38 La libre-concurrence : Grace au logiciel libre, il ne reste plus place au monopole ! Cela favorise donc la concurrence entre entreprise, permet le développement de nombreuses PME. Plus besoin de prendre le logiciel X parce que c’est le seul disponible (prix élevé) puisque des alternatives libres existent La maintenance: la continuité et la maintenance d’un logiciel propriétaire dépends de la volonté de l’entreprise et de sa stratégie L’entre-aide : Vous trouvez toujours quelqu’un à vous aider pour débloquer vos problème car c’est la vocation des volontaires. Avantages et inconvénients des logiciels libres Système Open sources Avantages (2/2)
  • 39. Avantages et inconvénients des logiciels libres Système Open sources inconvénients : • Trop de choix : L'utilisateur peut avoir à choisir entre plusieurs logiciels, ce qui ne simplifie pas forcément l'apprentissage ou la communication entre les différents utilisateurs de logiciels libres . • Difficultés d’intégration : Il est très difficile en ce qui concerne les logiciels libres de les intégrer dans une solution logicielle, à moins que la solution entière ait été développée en libre par une équipe • Incompatibilités : Les logiciels libres sont rarement compatibles avec les logiciels propriétaires. Vous avez déjà essayé d’ouvrir un fichier .doc créé avec Microsoft Office dans Open Office ? • Manque de documentation : C’est bien connu, la plupart des codeurs préfèrent coder qu’écrire de la documentation • Modèles économiques compliqués : Enfin, les modèles économiques permettant le développement du logiciel libre sont complexes… très complexes… Il est beaucoup plus difficile de gagner de l’argent et de vivre de la production de logiciels libres par rapport aux logiciels propriétaires. 39
  • 40. Historique UNIX est un système d'exploitation, créé en 1969 par Ken Thompson et Dennis Ritchie. Sa conception a été particulièrement soignée, et apportait plusieurs innovations, notamment le choix d'utiliser plusieurs outils simples et spécialisés. Il est l'un des systèmes d'exploitation les plus populaires au monde, en raison du grand nombre d'architectures qu'il supporte . Project GNU: Est un projet lancé par Richard Stallman, un chercheur du MIT. Le but est de dévellopper un OS complet, libre et qui se base sur Unix afin de contrer le développement croissant des logiciels propriétaires( le prix Unix devenait de plus en plus payant). Cependant, en 1991, le projet GNU n'avait toujours pas de noyau et tournait sur des Unix propriétaires.(Stallman avait créer les programmes de base:(programme de copie de fichier, suppression de fichier, éditeur de texte). Système Open sources Linux 40
  • 41. Historique (suite) En 1991, Linus Torvalds, un étudiant de l’université de Helsinki, développe un noyau en s'inspirant des principes du système d'exploitation UNIX. Le OS prend le nom de Linux ( en référence à son créateur). Project GNU Le projet GNU (programmes libres) et Linux (noyau d'OS) ont fusionné pour créer GNU/Linux. Project LINUX GNU/LINUX Système Open sources Linux 41
  • 42. Les distributions de Linux Il existe une très grande variété de distributions, ayant chacune des objectifs et une philosophie particulière. Les éléments différenciant principalement les distributions sont :  la convivialité (facilité de mise en œuvre).  l'intégration (taille du parc de logiciels validés distribués). La notoriété (communauté informative pour résoudre les problèmes), l'environnement de bureau (Gnome, KDE, ...). Le point commun est le noyau ( kernel) et un certain nombre de commandes. Système Open sources Linux 42
  • 43. Les distributions Commerciales Il Red Hat: http://www.redhat.com/ La plus populaire. Fiable, sûre, conviviale et facile à installer, prise en charge par tous les fournisseurs de logiciel et de matériel. Suse (Novell): http://www.suse.com/ L'alternative principale. Facile à installer, conviviale et stable. Obtiens le support des fournisseurs de logiciel et de matériel. Mandriva (anciennement Mandrake): http://mandrivalinux.com/ Conviviale, facile à installer, plus innovante, mais moins stable. Cible principalement les utilisateurs individuels. Peu pris en charge par les fournisseurs de logiciel et de Système Open sources 43
  • 44. Les distributions Commerciales Fedora Core: http://fedora.redhat.com/ Stable, sûre, conviviale, facile à installer. Sortie fréquente de nouvelles versions complètes. Debian: http://debian.org/ Très stable et sûre, mais plus difficile à configurer et à installer. Conviviale pour les développeurs mais pas encore pour les utilisateurs. Version stables pas assez fréquentes (tous les 2 ou 3 ans). La meilleure pour les serveurs, mais pas pour les débutants. Ubuntu Linux: http://ubuntulinux.org/ La distribution communautaire qui progresse le plus. Basé sur Debian mais avec une version stable tout les 6 mois. Conviviale pour les utilisateurs. Bonne pour les débutants. Mandriva Community: http://mandrivalinux.com/ Facile à installer, sûre, conviviale, sortie fréquente de versions complètes, mais moins stable (pas assez de tests et de prise en compte des retours des utilisateurs et testeurs).. Système Open sources 44
  • 46. • Le système de fichiers d'un système d'exploitation est un ensemble de principes et de règles selon lesquels les fichiers sont organisés et manipulés. Chaque système d'exploitation possède son système de fichier privilégié, même s'il peut en utiliser d'autres Systèmes de fichiers PARTITIONEMENT DISQUE DURE Gestion de fichiers et répertoires 46
  • 47. Systèmes de fichiers Systèmes de fichiers: c’est une « subdivision du disque » dur selon un certain format. Gestion de fichiers et répertoires 47
  • 48. Systèmes de fichiers Linux • Ext2 : c'est le système de fichiers qui a longtemps été utilisé sous Linux. Il a été développé par un français (Rémy Card) et présente la particularité de ne pas se fragmenter. Ainsi, sous Linux et depuis longtemps, il n'y a pas besoin de faire de défragmentation. • Ext3 : est très proche de l'ext2, à une différence majeure près, la journalisation. En effet, ext2 n'était pas journalisé, et en cas de crash disque on risquait plus facilement une perte de données. Ce n'est plus le cas avec l'ext3. Concrètement, un système de fichiers journalisé enregistre dans un journal (une sorte de mémoire tampon) ce qui doit être écrit sur le disque dur. Au cas d’un crash disque , il va vérifier le contenu du journal, si celui ci est plein, il va le transférer dans le disque dur- donc évite la perte de données. A noter que l'ext2 et l'ext3 sont parfaitement compatibles entre eux, dans un sens comme dans l'autre. Gestion de fichiers et répertoires 48
  • 49. PARTITIONEMENT DISQUE DURE Appellation des disques Dures L’appellation "à la Linux" est un peu plus complexe que celle de Windows. Windows Linux C: D: E: … hda hdb hdc sda … Gestion de fichiers et répertoires 49
  • 50. Appellation des disques Dures L’appellation "à la Linux" est un peu plus complexe que celle de Windows. La première lettre indique si le disque est de type IDE ou SCSI (un typede connexion différent à la carte mère). Si c'est une IDE, la lettre est un h, si c'est un SCSI (ou un S-ATA), la lettre est un s. d :cette lettre ne change pas ( drive). [a-d] :indique les differents disques durs ,c’est a,b,c ou d. hda: 1er disque dur/ hdb: 2ème disque dur/hdc le 3ème …. # :est un numéro qui permet de numéroter les partition. exemple: hda1 : 1er partition de disque dur hda hdb10: 10ème partition de disque dur hdb hd[a-d] # PARTITIONEMENT DISQUE DURE Gestion de fichiers et répertoires 50
  • 51. Organisation des dossiers •La racine un "gros dossier de base qui contient tous les autres dossiers et fichiers". Sous Windows, il y a en fait plusieurs racines. "C:" est la racine de votre disque dur Sous Linux, il n'y a qu'une et une seule racine : "/". Architecture des dossiers Sous Windows, un dossier peut être représenté comme ceci : "C:Program FilesWinzip". Sous Linux : Il n'y a pas de "C:", la racine (le début) s'appelant juste "/". Gestion de fichiers et répertoires 51
  • 52. ARBORESCENCES DES FICHIERS Le système de fichiers sur Linux est similaire à ce que l'on retrouve dans Windows, i.e. une structure hiérarchique dont une racine et des répertoires qui s'y rattachent. Contrairement au système MS-DOS, qui contient plusieurs racine :A: ,C: ,D: ,… Sous Linux, il y a une seule racine (root) :le slash "/" . Par exemple, Le CD-ROM est atteint par le répertoire /cdrom. Chaque Utilisateur possède un répertoire, dit de connexion (home directory),ou il peut agir en toute liberté et y créer sa propre arborescence, par exemple: /home/khalil/ Gestion de fichiers et répertoires 52
  • 53. ARBORESCENCES DES FICHIERS / ( root) bin dev home root lib var tmp pippo khalil Plusieurs répertoire sont rattaché à la racine. Gestion de fichiers et répertoires 53
  • 54. ARBORESCENCES DES FICHIERS / : Répertoire Racine: contient les répertoires principaux. /bin : (Commande de base du système) (contient des éxecutables essentiels au système, employés par tous les utilisateurs ( par exemple, les commandes ls,rm,cp,chmod,mount,… ).  /etc :(contient les commandes et les fichiers nécessaires à l’administrateur du sytème (fichiers passwd,group,inittab,ld.so.conf,lilo.conf…)/ fichiers de configuration de l’ordinateur. / boot: (Images, fichiers de configuration du noyau ….) ( contient les fichires permettant à Linux de démarrer). /dev : (contient les points d’entrée des périphériques)  /lib: (contient des bibliothèques partagées essentielles au système lors du démarrage)/bibliotèques de base du systèmes ( partagées) 54
  • 55. ARBORESCENCES DES FICHIERS  /mnt : (contient les points de montage des partitions temporaires(cd- rom,disquette…): /mnt/usbdisk/, /mnt/windows/… /opt: (contient des pakages d’applications supplémentaires)/ ( outils spécifiques installés par l’administrateur. /root: (répertoire de l’administrateur root) /tmp: (contient les fichiers temporaires) /usr: (Hiérarchie secondaire)/ programmes utilisateurs ordinaires, non essentiels au systèmes: /usr/lib, /usr/bin… /sbin: (contient les binaires système essentiels (par exemple la commande adduser)/programmes d’administration du système./ commandes réservées à l’administarteur. /home: (dossiers de travail des utilisateurs. Ex:/home/pippo)/ Répertoire utilisateur /var: (données variables( dynamiques) 55
  • 56. NOTIONS DE SHELL Le shell est un programme qui va faire le lien entre le noyau Linux et l'utilisateur = interpréteur de commandes interactif invite ("prompt") le shell est prêt à recevoir des commandes rentrées au clavier Le shell est un interpréteur de commandes qui invite l’utilisateur à saisir une commande et la fait ensuite exécuter 56
  • 57. L’INVITE DE COMMANDES P pippo : le premier élément est votre pseudonyme. localhost : ça c'est le nom de l'ordinateur sur lequel vous êtes en train de travailler. La ligne d'invite de commandes se lit donc ’pippo’ chez ‘localhost : : c'est un séparateur. ~ :c'est le dossier dans lequel vous vous trouvez actuellement., le symbole ~ signifie que vous êtes dans votre dossier personnel, ce qu'on appelle le "Home" sous Linux. C'est l'équivalent du dossier "Mes documents" de Windows. $ : ce dernier symbole est très important, il indique votre niveau d'autorisation sur la machine. Il peut prendre 2 formes différentes : $ : signifie que vous êtes en train d'utiliser un compte utilisateur "normal", # : signifie que vous êtes en mode super-utilisateur, pippo@localhost :~$ 57
  • 58. L’INVITE DE COMMANDES pippo@localhost :~$ ls Desktop Examples Images Invite de commande suivie de la commande que j’ai tapée ls Réponse de l’ordinateur à cette commande Cela signifie que le répertoire actuel est constitué de 3 dossiers : Desktop , Examples et Images. En général, le système colore les éléments pour que l'on puisse distinguer facilement les dossiers des fichiers. Si vous n'avez aucune réponse, c'est que vous êtes dans un dossier qui ne contient aucun fichier ou dossier. 58
  • 59. LES PARAMETRES P Les paramètres sont des options que l'on écrit à la suite de la commande. pippo@localhost :~$ Commande Paramètre pippo@localhost :~$ ls -a Exemples de paramètres: 59
  • 60. HISTORIQUE DES COMMANDES P Pour retrouver les commandes qu’on a déjà tapé, sans devoir les réécrire à nouveau, on utilise les flèches haut ( ) ou ( ) de notre clavier. Si on désire remonter à des commandes qui remontent à très longtemps, inutile de se forcer à taper sur la flèche haut pour arriver à la commande souhaiter. Dans ce cas, on utilise la commande « history ». 60
  • 61. Raccourcis Utiles P : Effacer le contenu de la console . :Message EOF( fin de fichier) à la console( possède la même fonction que la commande « exit ». :Ramène le curseur au début de la commande. :Supprime tout ce qui est à gauche du curseur. :Supprime tout ce qui est à droite du curseur. :Supprime le dernier mots situé à gauche du curseur. 61
  • 62. ARRET ET REDEMARRAGE DU SYSTEME halt : permet d’arrêter le système. Reboot : permet de redémarrer le système. L’arrêt du système est une opération qui est du ressort de l’administrateur. On peut la realiser uniquement sur le compte root. Il est égalment possible que votre gestionnaire de bureau vous donne le moyen d’arrêter l’ordinateur par l’intermediare de l’interface graphique. 62
  • 63. COMMANDES DE BASES : Répértoires La commande ls ( list): Affiche la liste des fichiers dans le répertoire courant, en ordre alphanumérique, sauf ceux qui commencent par le caractère “.” ( sauf les fichiers cachés) « pour cacher un fichier sous linux, on le précède d’un « . ») ls [options] [noms] Exemple : ls -l /home/pippo Commande –options noms Commande ls noms du ficher qu’on veut lister. Si ce paramètre est absent, ls affichera les fichiers du répertoire courant. 63
  • 64. COMMANDES DE BASES : Répertoires  ls a («all»: tous) Affiche tous les fichiers (y compris les fichiers .*)  ls l (long) Affichage en format long (type, date, taille, propriétaire, permissions)  ls t (temps) Affiche les fichiers les plus récents en premier.  ls d (directory) Affiche du nom du répertoire et non de son contenu. Commande ls Les principales options: ls S (“size”: taille) Affiche les fichiers les gros en premier.  ls r («reverse»: inversé) Affiche en ordre inverse.  ls ltr (les options peuvent être combinées) Format long, les fichiers les plus récents à la fin. 64
  • 65. COMMANDES DE BASES : Répertoires La commande cd( change directory) permet de changer le répertoire de travail . ( permet de naviguer dans les répertoires) cd [réperoire] Exemple : Si on veut se positionner dans le répertoire /etc, on fera ceci: pippo@localhost :~$ cd /etc pippo@localhost : /etc$ Commande cd Si répertoire n’est pas précisé, alors le nouveau répertoire sera le répertoire de connexion ($ home)( home c’est votre dossier personnel). 65
  • 66. COMMANDES DE BASES : Répértoires  cd : Permet de se placer dans le répertoire personnel de l’utilisateur (home)  cd.. : Ramène dans le répertoire parent.( remonter d’un répertoire dans l’arborescence)  cd rep : va dans le répertoire rep à partir du répertoire où vous êtes. Commande cd cd /usr/bin: A va dans le répertoire bin en écrivant tout l’arboresence.  cd : une bonne astuce pour revenir dans le répertoire d’où vous veniez précédemment. 66
  • 67. COMMANDES DE BASES : Répértoires Remarque: La commande cd, comme toutes les commandes utilisant des répertoires, permet de spécifier deux types de chemins: • Les chemins Relatifs: dépendent du dossier auquel vous vous trouvez, et utilisent notamment le répertoire '..' (répertoire père). Exemple:cd ../. • Les chemins Absolus: ils faut spécifier toute l’arborescence depuis la racine . Exemple: cd /home/rep1 Les chemins absolus commençent toujours par la racine (/). Vous devez faire ensuite la liste des dossiers dans lequels vous voulez entrer. Commande cd 67
  • 68. Opérations de base sur les répertoires • Les chemins relatifs :Un chemin relatif est un chemin qui dépend du dossier dans lequel vous vous trouvez. Supposant que je suis dans la racine / et je veux me déplacer au répertoire « games » 68
  • 69. Opérations de base sur les répertoires 69
  • 70. Opérations de base sur les répertoires 70
  • 71. • Les chemins absolus : les chemins absolus fonctionnent quel que soit le dossier dans lequel on se trouve. Un chemin absolu est facile à reconnaître : il commence toujours par la racine (/). Vous devez faire ensuite la liste des dossiers dans lesquels vous voulez entrer. Par exemple, supposons que je suis dans /home/chana et que je souhaite aller dans /usr/games. Avec un chemin absolu : cd /usr/games Opérations de base sur les répertoires 71
  • 72. Opérations de base sur les répertoires • Les chemins absolus : 72
  • 73. • Les chemins absolus et chemins Relatifs: Ici, comme c'est un chemin relatif, on part du dossier dans lequel on se trouve (/home/mateo21) et on indique à la machine le chemin à suivre à partir de là pour aller dans le dossier qu'on veut. Opérations de base sur les répertoires 73
  • 74. • Retour au Repertoire home: Si vous voulez retourner dans votre répertoire home personnel, plusieurs solutions s'offrent à vous : il suffit d'écrire le chemin absolu en entier. Opérations de base sur les répertoires 74
  • 75. COMMANDES DE BASES : Répertoires La commande pwd (print working directory): Affiche le répertoire courant ("répertoire de travail ») pwd Exemple : pippo@localhost :~$ pwd /usr/lib/news/bin pippo@localhost :~$cd .. pwd /usr/lib/news La commande pwd): peut etre utilisée lorsqu’on désire obtenir un chemin absolu sur le répertoire courant. Cette commande est également utilisée par les scripts pour déterminer le répertoire à partir duquel ils sont exécutés. Commande pwd La commande pwd n’accepte pas d’option. 75
  • 76. COMMANDES DE BASES : Répertoires La commande du (disk usage « utilisation du disque ») : Affiche les informations sur la taille qu’occupe les dossiers sur votre disque. Exemple : pippo@localhost :~$ cd /usr/news pippo@localhost : /usr/news$ du Commande du  du -h :Affiche la taille en Ko, Mo, Go,To.(pour human-readeable) )  du –a : (du –ah) Affiche la taille des dossiers et des fichiers et des sous-dossier  toute l’arborescence.  du -s : Affiche juste l’espace total occupé par le dossier, et donc n’affiche pas l’espace des sous-dossiers. ( pour plus de lisibilité du –sh, on la combine à –h) 76
  • 77. COMMANDES DE BASES : Répertoires La commande mkdir ( make directory )( permet de créer un répertoire s’il n’existe pas. On peut aussi utiliser l’option -p pour créer un répertoire même si son répertoire parent n’éxiste pas. Si l’un des répertoires intermedaires n’existe pas, la commande mkdir retourne un code d’erreur (exit status) sans créer le status ( sauf si l’option –p est spécifiée) mkdir [-p] nouveau_répertoire Exemple : Si on veut créer le répertoire /tmp/ESTM/GI mais le répertoire /tmp/ESTM/GI n’existe pas, on devrait normalement faire ceci: pippo@localhost :~$ mkdir /tmp/ESTM/ pippo@localhost :~$ mkdir /tmp/ESTM/GI Si on essaie de le créer, on reçoit le message suivant: mkdir: cannot create directory ‘/tmp/ESTM/GI ’: No such file or directory. On devra faire:~$ mkdir -p /tmp/ESTM/GI Commande mkdir 77
  • 78. COMMANDES DE BASES : Répertoires La commande rmdir (remove directory) permet de supprimer le répertoire spécifié sur la ligne de commande (répertoire). Si il existe des fichiers ou des sous répertoires, la commande retournera un code d’erreur (exit status). (Pour supprimer un répertoire, il faut qu’il soit vide) rmdir [-p] répertoire -p : permet de détruire tous les sous –répertoires vides. répertoire : représente le nom du répertoire à détruire. C’est un argument obligatoire. Exemple: ~$ rmdir /tmp/ESTM/GI ~$ cd /tmp ~$ rmdir –p /tmp/ESTM/GI rmdir: ESTM/GI : Whole path removed ~$ cd ESTM ESTM : does not exist ~$ Commande rmdir Nota: voir aussi la commande: rm –r: pour supprimer des répertoires contenants des fichiers. 78
  • 79. COMMANDES DE BASES : Gestions de Fichiers La commande cp ( copy) permet de copier le contenu d’un fichier dans un autre. cp [-i] [-p] fichier1 fichier2 cp [-i] [-p] [-r] source1 [source2...] répertoire Si destination est un fichier cp fichier1 fichier2 : Effectue une copie de fichier1 en un nouveau fichier appelé fichier2.  Si destination est un répertoire. cp fichier1 repertoire : Effectue une copie de fichier1 dans le répertoire appelé repertoire. cp fichier1 fichier2 fichier3… repertoire : Copie ces 3 fichiers vers le répertoire de destination appelé repertoire.  cp -i : (i:interactif) Demande de confirmation à l’utilisateur dans le cas où le fichier de destination existe déjà.  cp –r rep_orig rep_dest: (r:récursive) copie du répertoire tout entier« copier de manière récursive un répertoire et tout ce qu’il contient. Si cp -p fichier1 fichier2 : (p : preserve) Copier le fichier1 en préservant tous les attributs du fichier initial. Commande cp 79
  • 80. COMMANDES DE BASES : Gestions de Fichiers La commande mv( move) : déplace ou renomme les fichiers. mv [-i] source1 [source2...] destination mv déplace les fichiers fichiers 1,fichiers 2, etc dans destination.  Si destination est un fichier -> alors mv a pour action de renommer fichier1 en destination. mv fichier1 fichier2  Si destination est un répertoire -> alors mv déplace fichier1 dans ce répertoire. mv fichier1 repertoire.  mv -i : (i:interactif) Demande de confirmation avant l’écrasement du fichier. Commande mv 80
  • 81. COMMANDES DE BASES : Gestions de Fichiers La commande rm (remove) : Efface les fichiers ou les répertoires . rm [-i] source1 [source2...] rm : supprime les fichiers ou répertoires spécifiés sur la ligne de commande. Exemple  rm fichier1 : destruction du fichier fichier1  rm fichier1 fichier2 : destruction des fichiers fichier1 et fichier2.  rm fic* :Suppression de tous les fichiers qui commencent par fic . Option [-i] : demande de confirmation avant écrasement Commande rm 81
  • 82. COMMANDES DE CONSULTATIONS : Fichiers La commande cat (concatenate « concaténer »: joindre des ficiers séquentiellement) : Affiche des fichiers et /ou concatène les fichiers spécifiés sur la ligne de commande. cat [fichier...] Quand elle est appelée sans options sans nom de fichier, la commande cat répète sur la sortie standard ce qui est saisi sur l’entrée standard. Exemples: ~$ cat fichier1 fichier2 : Concaténation des deux fichiers fichier1 et fichier2 ~$ cat Fruits : Affichage de contenu de fichier Fruits banane Cerise Orange Commande cat 82
  • 83. COMMANDES DE CONSULTATIONS : Fichiers La commande more : Affiche des fichiers page par page . more [fichier...] La commande less : Sa fonction est similaire à la commande more « Affiche des fichiers page par page », mais elle permet en plus : 1- de revenir en arrière avec une page de moins en tapant « b » 2- de se déplacer vers le haut ou vers le bas avec les flèches de directions less [fichier...] Commandes more / less 83
  • 84. Commandes de consultation de fichiers • cat nom_fichier : afficher le contenu d'un fichier texte à l'écran (sans pouvoir arrêter le défilement) • more nom_fichier : afficher le contenu d'un fichier texte à l'écran en arrêtant le défilement à chaque page (espace pour descendre d'une page, entrée pour descendre d'une ligne, q pour quitter) • less nom_fichier : pareil que more, mais dispose d'un peu plus d'options (entre autre peut revenir en arrière : b pour revenir d'une page, y pour revenir d'une ligne, il est aussi possible de se déplacer vers le haut ou vers le bas avec les flèches de direction) 84
  • 85. COMMANDES DE CONSULTATIONS : La commande head : Affiche les n premières lignes d’un fichier, alors que tail affiche les dernières lignes d’un fichier et sort trie le fichier par ordre Si n n’est pas précisé, il prend par défaut la valeur 10. head [-n] [fichier...] tail [-n] [fichier...] Commandes head / tail et sort  -n :Nombre de lignes à afficher depuis le début de fichier .( -n suivi du nombre de lignes, par exemple –n 3 ou -3) 85
  • 86. Commandes de consultation de fichiers • head nom_fichier : afficher uniquement le début du fichier. -n suivi d'un nombre: permet d'afficher le nombre de lignes que vous voulez. Par exemple, si vous ne voulez que les 3 premières lignes, tapez : head –3 nom fichier ou head –n 3 nom fichier • tail nom_fichier : afficher uniquement la fin du fichier • tail nom_fichier : afficher uniquement la fin du fichier 86
  • 87. COMMANDES DE CONSULTATIONS : Fichiers 2 La commande touch : est utilisée pour changer les dates d’accès et de modifications d’un fichier ( d’où le « on touche »le fichier pour faire croire à l’ordinateur qu’on vient de le modifier alors qu’on n’a rien changé. Commande touch 87
  • 88. Système de fichiers Chaque contenu de fichier se voit attribuer un numéro d'identification appelé inode. Sous les systèmes LINUX tout élément est représenté sous forme de fichier. (Un périphérique, un écran, une imprimante, un répertoire…. TOUT EST FICHIER) Un répertoire est un fichier qui contient la liste des fichiers sensés être stockés dans ce répertoire. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/». La liste des noms de fichiers est stockée dans un endroit différent de leur contenu. 88
  • 89. COMMANDES Gestions de Fichiers Inodes A tout fichier est associé une structure de données ( sur le disque) appellée Inode ( Information node). Dans chaque inode se trouvent différentes informations: Type de fichier ( fichier standard, lien symbolique, répertoire…) Les droits d’accès ( utilisateurs, groupes, …) Le proprietaire (UID) Le groupe proprietaire ( GID) Taille du fichiers en octets Dates Pour connaître le numéro d'inode d'un fichier, vous devez taper la commande suivante : ls –i nom_du fichier • ls –li :permet d’afficher, pour chaque fichier, le numéro d’inode. • ls –ali :permet de voir en plus des fichiers ( et les fichiers cachés) 89
  • 90. COMMANDES Gestions de Fichiers Inodes Un fichier est repéré de manière unique par:  le système de fichier auquel il est attaché Son inode 90
  • 91. COMMANDES DE GESTIONS DE FICHIERS Liens Physiques/ Liens Symboliques/ Liens Physiques ( hard link) Liens Symboliques ( soft link) •Création d’un nouveau nom pour le même inode. •Impossible de faire un lien physique vers un répertoire •Impossible de faire un lien physique vers un autre volume (partition) • c’est des fichiers spécial contenant le chemin d’accès à un autre fichier ( correspond aux « raccourcis » de Windows). • Création d’un nouvel inode de type lien symbolique.( -> possède son propre inode) •Le bloc de données contient une chaine de caractères représentant le chemin (relatif ou absolu) vers un fichier. Un lien est un couple ( nom_de_fichier, numéro d’inode). On peut créer 2 type de liens: 91
  • 92. COMMANDES DE GESTIONS DE FICHIERS La commande ln : permet de créer des entrées multiples dans l’arborescence d’un système de fichiers pour un même fichier. ( permet de créer des liens entre fichiers). Sans option, elle permet de créer des liens physiques. ln Nom-fichier Nom_du_lien_hard Avec l’option –s elle permet de créer des liens symboliques ln -s Nom-fichier Nom_du_lien_soft . Commandes ln Rappel: Pour supprimer un lien rm Nom_du_lien 92
  • 93. Exemple : (différence entre liens physique et liens symboliques 1. Création d’un Répertoire TEST 2. .Une fois dans le dossier tests, créer un fichier « fichier » vide de 0bytes 3. Créer un lien physique « lien_pyh», qui partagera le même inode (le même contenu) que « fichier» 4. Créer un lien symbolique « lien_sym », en pointant vers le nom du « fichier »( et non vers l’inode). 1ère colonne de la commande ls indique : numéro inode. 3 ème colonne: le nombre de liens dures( nombre de fichiers partageant le même inode) 6 éme colonne: dimension du fichier ( on remarque que le lien symbolique est un fichier sur le disque occupant 7 bytes. 93
  • 94. COMMANDES DE GESTIONS DE FICHIERS Exemple : (différence entre liens physique et liens symboliques Le fichier d’origine et le lien ont le même type de fichier « fichier régulier » indiqué par le tiret en tête des permissions, alors que le liens symbolique a un type différent (l: « lien »). Le fichier d’origine et le lien physique ont le même horodatage( alors que le lien symbolique affiche l’heure et la date de sa création. Enfin on remarque, à la fin de la ligne du lien symbolique, une flèche en direction du chemin du fichier vers le lien dur. 94
  • 95. COMMANDES DE GESTIONS DE FICHIERS Liens Physiques/ Liens Symboliques/ Schéma qui permet de comprendre les liens symboliques et les liens physiques. 95
  • 96. COMMANDES DE GESTIONS DE FICHIERS Liens Physiques/ Liens Symboliques/ Liens physiques:  Bien qu’ils économisent toujours de la place, les liens physiques sont indiscernables des fichiers d’origine. Si vous supprimer le fichier d’origine, cela n’affecte pas le contenu du lien physique. Le contenu est supprimé quand il n’y a plus aucun fichier ( lien physique) qui y fait référence. Liens Symboliques  La suppression du fichier, ne supprime pas le fichier référencé par le lien ! 96
  • 97. Commandes de gestion de fichiers • ln fichier_existant lien : créer un lien dur entre les deux fichiers (ln pour link) • ln -ds répertoire_existant lien : créer un lien symbolique entre les deux répertoires (d pour directory) • ln -s fichier_existant lien : créer un lien symbolique entre deux fichiers (s pour symbolic) 97
  • 98. COMMANDES DE RECHERCHE: Fichiers 3 La commande find : Permet de rechercher des fichiers dans l’arborescence à partir du point spécifié.( recherche des fichiers dans une hiérarchie de répertoires. ) Commandes find 98
  • 99. Commandes de recherche find recherche les fichiers actuellement présents La commande find s'utilise de la façon suivante : find "où" "quoi" "que faire avec« (seul le paramètre "quoi" est obligatoire) • Où : c'est le nom du dossier dans lequel la commande va faire la recherche. Tous les sous-dossiers seront analysés. • Quoi : c'est le fichier à rechercher. On peut rechercher un fichier par son nom, mais aussi en fonction de sa date de dernière création, de sa taille, etc. • Que faire avec : il est possible d'effectuer des actions automatiquement sur chacun des fichiers trouvés . Par défaut, la commande find affiche les résultats trouvés et ne fait rien d'autre avec. 99
  • 100. Commandes de recherche • Par nom • Par taille les fichiers qui font plus de 10 Mo -type d : pour rechercher uniquement des répertoires (directories). • Supprimer les fichiers trouvés • Par Type 100
  • 101. Recherche de fichiers et de répertoires • Options des sélection des fichiers et répertoires ▫ name : recherche par nom de fichier ▫ type : recherche par type de fichier ▫ user : recherche par propriétaire ▫ group : recherche par l’appartenance à un groupe ▫ size : recherche par taille de fichier ▫ atime : recherche par date de dernier accès ▫ mtime : recherche par date de dernière modification ▫ ctime : recherche par date de création ▫ perm : recherche par autorisations d’accès ▫ links : recherche par nombre de références (links) aux fichiers 101
  • 102. Recherche de fichiers et de répertoires • Option de commande ▫ Les options de commande seront traitées pour chaque fichier trouvé. En dehors de l’option –print qui montre le chemin d’accès au fichier, on peut mettre en place l’option -exec ▫ Les commandes dont il est fait état derrière –exec seront exécutées sans aucune demande de confirmation ▫ L’option –ok demande à l’utilisateur si la commande doit effectivement être exécutée. 102
  • 103. Recherche de fichiers et de répertoires • Traitement sans confirmation avec –exec • La spécification d’une commande derrière –exec est soumise à certaines règles: ▫ L’option –exec doit être la dernière de la commande find ▫ La commande placée derrière –exec doit être terminée par le paramètre « ; ». Comme c’est un caractère spécial, il doit être masqué par un 103
  • 104. Recherche de fichiers et de répertoires suivi de –exec • Pour accéder à un des fichiers trouvés, dans le cadre de la commande placée derrière –exec, utilisez le raccourci {}  Exemple • find . –user student –exec ls –l {}; ( affiche le format long de la commande ls pour les fichiers trouvés) • find . –type f –atime +13 –exec rm {} ; (supprime les fichiers auxquels vous n’avez plus accédé depuis 13 jours) 104
  • 105. Recherche de fichiers et de répertoires • Traitement après confirmation avec –ok ▫ Les mêmes explications s’appliquent également à l’option –ok, mais celle-ci, demande une confirmation d’exécution de la commande pour chaque fichier trouvé. Ce n’est qu’en cas de réponse affirmative (avec y), que la commande placée derrière –ok sera exécutée. ▫ Exemple :  find . –ok rm {} ; 105
  • 106. Critères de recherche de noms de fichiers • Modèles de noms de fichier ▫ * : remplace une chaîne vide ou de longueur variable ▫ ? : remplace un caractère unique quelconque ▫ [] : représente une série ou une plage de caractère ▫ [!…] : inverse la recherche • Exemples ▫ a* : les fichiers dont le nom commence par a ▫ a?? : fichiers en trois lettres, commençant par a ▫ [aA]* : fichiers dont le nom commence par un a minuscule ou A majuscule. ▫ [a-m]* : fichiers dont le nom commence par une lettre de la plage a-m. ▫ *[1-5] : fichiers dont le nom se termine par un chiffre de la plage 1 à 5. 106
  • 108. Compression avec gzip et bzip2 • La compression d'un fichier se fait de manière suivante: gzip fichier • gzip renomme le fichier compressé en « fichier.gz ». • La compression d'un fichier avec bzip2 utilise la même syntaxe : bzip2 fichier • bzip2 renomme le fichier compressé en « fichier.bz2 ». • La décompression d'un fichier se fait à l'aide de la commande suivante : • gunzip fichier.gz ou • bunzip2 fichier.bz2 108
  • 109. tar : assembler des fichiers dans une archive • tar : permet d'assembler des fichiers dans un seul fichier avant de les compresser. 1. Pour réunir les fichiers dans un seul gros fichier appelé archive.  On utilise pour cela le programme tar. 2. Compresser le gros fichier ainsi obtenu à l'aide de gzip ou de bzip2. • La syntaxe de tar est très simple : tar options archive [fichiers]  cvf pour créer une archive ;  tvf pour lister le contenu d'une archive ; (comme ls pour les répertoire)  xvf pour restaurer le contenu d'une archive Pour archiver le contenu du répertoire courant dans le fichier : archive.tar tar cvf archive.tar * : 109
  • 110. tar : assembler des fichiers dans une archive • La commande tar ne compresse pas automatiquement les fichiers. Vous pouvez compresser les fichiers tar avec : ▫ tar -czvf foo.tar  Les fichiers tar compressés se voient attribuer l'extension .tgz et sont compressés avec gzip. • Pour décompresser un fichier tar, entrez : ▫ tar -xzvf foo.tar.gz 110
  • 111. Gestion de Droits des fichiers et répertoires 111
  • 112. Exemple d'affichage de droits Affichage des caractéristiques: ls -l Type : ‘d’ pour les repertoire ‘-’ pour les fichiers 112
  • 113. Permissions d'accès aux fichiers • Les droits d'accès sont scindés en trois catégories d'utilisateurs:  les droits du propriétaire (user)  les droits des membres du groupe (group)  les droits de tous les autres (other) Pour chaque catégorie, on peut attribuer les droits suivants: ▫ la lecture ("read", r); ▫ l'écriture ("write", w); ▫ l'exécution ("execute", x). • Si à la place d'un des caractères nous ne voyons qu'un tiret "-", c'est que le droit n'est pas autorisé. 113
  • 114. Permissions d'accès aux fichiers 114
  • 115. Le changement des droits • chmod : changer les droits d'accès d'un fichier (il faut être root ou propriétaire du fichier) • On utilise les signes (+ et -): + pour ajouter un droit, - pour en enlever un, Suivi des lettres r, w, x (lecture, écriture, exécution): Exemple : chmod -w nom_fichier : enlever les droits d'accès en écriture sur le fichier pour tout le monde 115
  • 116. Pour appliquer les changements seulement à certains "niveaux d'appartenance", il faut utiliser : -u pour user (propriétaire du fichier), - g pour group - o pour other (tous les autres) -Exemple : chmod ug +wx nom_fichier : ajouter, pour le propriétaire et les membres du groupe, les droits en écriture et en exécution sur le fichier Le changement des droits (suite) 116
  • 117. Modification des droits d’accès • Vous pouvez utiliser des +, - ou = pour ajouter, supprimer ou fixer des droits à l'une ou l'autre des catégories u, g, o ou a tous (a) en précisant le type de droit d'accès, r, w ou x. ▫ chmod g+w fic1 ▫ chmod o-x rep ▫ chmod u+rx,g-w fic2 ▫ chmod u=rwx,g=rx fic ▫ chmod a+r fic 117
  • 118. Modification des droits d’accès * Si le changement de droits s'applique à un répertoire, vous pouvez changer tous les droits des fichiers et répertoires inclus dans ce répertoire via l'option -R. Exemple: * Si nous souhaitons définir d'un seul mouvement toutes les permissions d'un fichier : chmod u=rwx,g=rw,o=r linux-test 118
  • 119. Le changement des droits Il existe une autre façon d'indiquer les permissions : • On utilise un nombre de 3 chiffres en octale ie compris entre 0 et 7 : ▫ le 1er pour le-la propriétaire ▫ le 2e pour les membres du groupes, et ▫ le 3e pour tous les autres). Les chiffes veulent dire : 119
  • 120. Le changement des droits 120
  • 121. Modification des droits d’accès chmod nombre_en_base_8 fichier1 [fichier2 …] • chmod utilise le codage binaire, fondé sur l'association de valeurs numériques aux différentes permissions : ▫ lecture : 4, ▫ écriture : 2, ▫ exécution : 1, ▫ pas de permission : 0. 121
  • 122. Modification des droits d’accès • Chaque triplet se code par l'addition de 4, 2, 1, ou 0. ▫ Pour un rwx il faudra ajouter 4+2+1=7, ▫ pour r-x il faudra 4+0+1=5 etc. • La commande chmod permettant de positionner rwxr-x--- sur fic1 par la commande suivante : chmod 750 fic1 122
  • 123. • Les droits Max des fichier et répertoire ▫ Répertoire 777 (rwxrwxrwx) ▫ Fichier normal 666 (rw-rw-rw-) • Les droits effectifs : Max - umask ▫ pour les droits des Répertoire = 777 -umask ▫ pour les droits des Fichiers = 666 -umask • La valeur de umask est fixer par la commande umask nombre_en_base_8 La commande umask •Exemple 2 ▫Si on souhaite un accès en lecture er écriture pour le propriétaire et en lecture seule pour le groupe et le reste de monde, ▫ umask 022 Exemple 1 : avec umask 006 ▫Les droits effectifs sont: pour les Répertoire = 777-006=771 pour les Fichiers =666 -006=660 123
  • 124. Calcule des droits à partir de Umask 124 Umask Droits Fichiers Droits Repertoires 000 666 (rw-rw-rw-) 777 (rwxrwxrwx) 002 664 (rw-rw-r--) 775 (rwxrwxr-x) 022 644 (rw-r--r--) 755 (rwxr-xr-x) 027 640 (rw-r-----) 750 (rwxr-x---) 077 600 (rw-------) 700 (rwx------) 277 400 (r--------) 500 (r-x------) 135 642(-rw-r---w-) 642(rw-r---w-) Le dernier cas ne respecte pas la règle de calcule, car Linux interdit de créer un fichier en exécution par défaut
  • 125. TD2: Exercices sur les droit d’accés : Soient les fichiers fich1 , fich2, fich3 et le répertoire REP1 qui contient deux autre fichiers f_rep1 et f_rep2 1- en utilisant (r,w,x) et { -, +,= } : 1.a- Attribuer les droits en lecture/ écriture pour le propriétaire et en lecture seule pour le groupe et le reste de monde sur les fichiers fich1 et fich2 1.b- Attribuer les droits d’exécution sur fich3 pour le groupe seul 1. c- Attribuer les droits en lecture/ execution pour le propriétaire et en écriture seule pour le groupe sur REP1 et ses fichiers 2 – Refaire les questions ( 1.a , 1.b et 1.c ) en utilisant les chiffres en base octale 3- à quoi sert la commande umask 4- donner la commande qui fixe la valeur de umask à 202 5- Que serait les droits des fichier et répertoire créés après l’execution de la commande de la question 4 , faite le calcul 125
  • 126. L'éditeur vi • Lançons Vi : [root@mistra /root]# vi • vi comprend deux modes : un mode "commande" et un mode "insertion", après le lancement de vi nous sommes en mode commande : appuyez sur la touche "Echap" puis sur "a". Vous voyez en bas de l'écran apparaître la ligne "-- INSERT --". Nous pouvons commencer notre texte : • Nous sortons du mode texte en appuyant à nouveau sur la touche "Echap". La mention "-- INSERT --" disparaît, nous sommes en mode commande • Tapez maintenant " :w linux-test" • Si vous souhaitez quitter sans enregistrez les dernières modifications, passer en mode commande et taper " : q!". • Si vous souhaitez quitter sans enregistrez les dernières modifications, passer en mode commande et taper " :w q!". 126
  • 127. L'éditeur vi D'autres commandes vi. A permet d'ajouter du texte à la fin de la ligne. i permet d'ajouter du texte avant le curseur. o permet d'ajouter une ligne en dessous du curseur. O permet d'ajouter une ligne au dessus du curseur. le retour chariot permet d'aller à la ligne suivante. dd permet de supprimer la ligne courante. x permet de supprimer le caractère avant le curseur. u permet d'annuler la dernière commande effectuée 127
  • 128. Extraire, trier et filtrer des données 128
  • 129. grep : filtrer des données rechercher dans un fichier texte le mot voulu et affiche la ligne où il se trouve • Syntaxe : grep [option] modèle_de_critères [fichier1 …] • Les options du grep les plus utiles sont : ▫ i : pour ne pas tenir compte des majuscules/minuscules, ▫ v : toutes les lignes ne contenant pas le critère, ▫ n : pour avoir les numéros de ligne, ▫ m NUM: permet de s’arrêter après NUM solutions trouvées. ▫ E : pour les expressions régulières plus compliquées, ▫ c : la commande ne retourne que le nombre de lignes trouvées ▫ r : rechercher dans tous les fichiers et sous-dossier 129
  • 130. grep : filtrer des données • Le modèle de critères peut contenir les caractères spéciaux suivants : ▫ […] : Plage de caractères permis à cet emplacement ▫ [^…] : Plage de caractères interdits à cet emplacement ▫ . : Un caractère quelconque (y compris un espace) ▫ * : Signe de répétition. Agit sur le caractère placé devant le * ▫ $ : Matérialise une fin de ligne ▫ | : ou ▫ ^ : début de ligne ▫ {…} : Caractère de répétition, entre les accolades  {nombre} nombre exacte  {nombre,} nombre minimum  {nombre1,nombre2} de nombre1 à nombre2 130
  • 131. Commandes de recherche • grep mot nom_fichier : rechercher dans un fichier texte le mot voulu et affiche la ligne où il se trouve • grep -l mot nom_fichier : rechercher dans un ou plusieurs fichiers texte le mot voulu et affiche le nom des fichiers qui contiennent le mot (utile pour une recherche sur plusieurs fichiers) • grep -c mot nom_fichier : donne le nombre de fois où le mot voulu a été rencontrée dans le fichier. • grep -v mot nom_fichier : renvoie dans la sortie standard le contenue de ‘‘nom_fichier’’ excepté des ligne où se trouve la chaine de caractère ‘’mot’’ • grep -n mot nom_fichier : renvoie dans la sortie standard les numéro des ligne où se trouve la chaine de caractère ‘’mot’’ dans le fichiers ‘‘nom_fichier’’ • grep -m 20 mot nom_fichier permet de s’arrêter après 20 solutions trouvées. • grep –i text fichiers : rechercher sans distinguer entre le majuscule et le minuscule 131
  • 132. ▫ liste des lignes commençant par LE Dans le fichier fichier1 : ( ^: debut de ligne) grep "^LE" fichier1 ▫ liste des lignes se terminat par ing Dans le fichier fichier1 : ( $: fin de ligne) grep " ing$" fichier1 ▫ recherche de STOP ou stop avec le numéro de la ligne : grep -n -i stop fichier1 ▫ liste des lignes contenant "image" ou "son" dans tous les fichiers du répertoire courant : grep -E "(image|son)" * ▫ Liste des lignes contenant "alias" ou "Alias" : grep -E [^Aa] lias fichier1 Commandes de recherche (suite) 132
  • 133. La commande sort : Trie les lignes du fichier par ordre alphabétique. sort [fichier...] Mais les options suivantes modifient les critères:  sort –r Fichier : (« reverse »:inverse) trie les lignes du fichier en ordre inverse. sort –n Fichier : Effectue un trie numérique. On peut combiner les deux options -nr Commande de trie des lignes Sort 133
  • 134. sort : trier les lignes • sort nom_fichier : Tri par ordre alphabétique des lignes d'un fichier texte. • -o : écrire le résultat dans un fichier • -r : trier en ordre inverse • -n : trier des nombres • -t :définit le caractère séparateur • -u :n'affiche qu'une seule ligne quand plusieurs lignes sont identiques • -k :indique la position de la clé de tri (numéro à partir de 1) Exemple: sort -n -t":" -k 3 /etc/passwd 134
  • 135. Exemple : différence entre sort –n et sort 135 3) Le trie de fichier uu2 par sort -n Idriss@Idriss-PC ~ $ sort -n uu2 0 5 8 9 12 8888 1) Le contenu de fichier uu2 Idriss@Idriss-PC ~ $ cat uu2 5 8888 8 9 0 12 2) Le trie de fichier uu2 par sort Idriss@Idriss-PC ~$ sort uu2 0 12 5 8 8888 9
  • 136. wc : compter le nombre de lignes • Affiche le nombre de lignes, de mots et d’octets d’un fichier • -l : compter le nombre de lignes • -w : compter le nombre de mots • -c : compter le nombre d'octets • -m : compter le nombre de caractères 136
  • 137. uniq : supprimer les doublons • Supprimer les lignes en double dans un fichier.(nous devons travailler sur un fichier trié ) • -c : compter le nombre d'occurrences • -d : afficher uniquement les lignes présentes en double 137
  • 138. cut : couper une partie du fichier • Couper selon le nombre de caractères Soit le fichier noms.txt contenant 1. Pour conserver uniquement les caractères 2 à 5 de 2. Pour conserver du 1er au 3ème caractère : 3. pour conserver du 3ème au dernier caractère : 138
  • 139. cut : couper une partie du fichier • Couper selon un délimiteur Ces colonnes contiennent, dans l'ordre : Le prénom La note Un commentaire nous souhaitons extraire de ce fichier la liste des prénoms. Soit le fichier notes.csv suivant : -d : indique quel est le délimiteur dans le fichier -f : indique le numéro du ou des champs à couper Pour avoir les champs n°1 et n°3 (le prénom et commentaire) : 139
  • 140. La commande split - split –n ( n entier positif) - split –b n ( n entier positif) La commande split permet de découper un fichier en plusieurs morceaux.  Option –n : découpe le fichier en plusieurs fichiers de n ligne • Syntaxe: split -n fichier • Exemple: decouper le fichier grand_ficher en des petit fichiers xaa, xab, xac ….., 10 ligne chacun… split -10 grand_fichier  Option –b n : découpe le fichier en plusieurs fichiers de n ko Syntaxe: split –b 1024 grand_ficher Exemple: découper le fichier grand_ficher en des petit fichiers xaa, xab, xac ….., de 1024ko chacun split –b 1024 grand_ficher 140
  • 141. La commande comm La commande comm permet d'extraire les lignes communes et les lignes uniques de 2 fichiers préalablement triés. 􀂄 Syntaxe: comm [-123] fichier1 fichier2 􀂄 Exemple: $ comm -12 carnet1 carnet2 marcel:13:0466342233:Marseille  Les ligne commune entre le fichier 1 et le fichier 2 -13 les lignes uniques 141
  • 142. La commande diff Cette commande permet de rechercher des différences entre 2 fichiers. Syntaxe: diff -options fichier1 fichier2 - Exemples d'options: -b ne pas tenir compte des différences concernant des espaces blancs -B ne pas tenir compte des différences concernant des lignes blanches 􀂄 Exemple: $ diff carnet1 carnet2 < maurice:29:0298334432:Crozon < robert:75:0144234452:Paris --- > myriam:30:0434214452:Nimes > olivier:29:0298333242:Brest 142
  • 143. sed est éditeur ligne non interactif, il lit les lignes d’un fichier une à une (ou provenant de l’entrée standard) leur appliquer un certain nombre de commandes d’édition et renvoie les lignes résultantes sur la sortie standard. Il ne modifie pas le fichier traité, il écrit tout sur la sortie standard. Syntax : sed -e ‘’programme sed’’ fichier-a-traiter ou sed -f fichier-programme fichier-a-traiter L’option -e n’est pas nécessaire quand on a une seule fonction d’édition. sed est une commande très riche (pour plus de détails man sed) La commande de sed 143
  • 144. La fonction de substitution : s • s permet de changer la 1re ou toutes les occurrences d’une chaîne par une autre. • Syntaxe : • sed "s/toto/TOTO/" fichier va changer la 1re occurrence de la chaîne toto par TOTO • sed "s/toto/TOTO/3" fichier va changer la 3 me occurence de la chaîne toto par TOTO • sed "s/toto/TOTO/g" fichier va changer toutes les occurences de la chaîne toto par TOTO • sed "s/toto/TOTO/p" fichier en cas de remplacement imprime les lignes concernées • sed "s/toto/TOTO/w resultat" fichier en cas de substitution , la ligne en entrée est inscrite dans un fichier résultat La commande de sed 144
  • 145. • La fonction de substitution peut être utilisée avec une expression régulière. sed -e "s/[Ff]raise/FRAISE/g" fichier substitue toutes les chaînes Fraise ou fraise par FRAISE La commande de sed 145
  • 146. La fonction de suppression : d • La fonction de suppression d supprime les lignes comprises dans un intervalle donné. • Syntaxe : sed "20,30d" fichier : Cette commande va supprimer les lignes 20 à 30 du fichier fichier. On peut utiliser les expressions régulières : ▫ sed "/toto/d" fichier : supprime les lignes contenant la chaîne toto ▫ sed "/toto/!d" fichier : supprime toutes les lignes ne contenant pas la chaîne toto • En fait les lignes du fichier d’entrée ne sont pas supprimées, elles le sont au niveau de la sortie standard. La commande de sed 146
  • 147. Les Alias  les alias ( commande alias) Syntaxe : $ alias nom_alias=‘commande’ Exemples : 1- alias liste=" ls –lrt" 2- alias beep="echo $'a‘” (sígnale sonore) Pour supprimer l’alias : unalias Syntaxe : $ unalias nom_alis  le type de fichiers ( commande file ) Syntaxe : file nom_fichier 147
  • 148. Mécanismes de redirection et de Tube(’ <’ , ‘<<‘, ‘>,’>>, ’|’’ pipe et double pipe ‘||’). 148
  • 149. > et >> : rediriger le résultat dans un fichier • > : rediriger le résultat de la commande dans le fichier de votre choix « > » (appelé chevron) redirige la sortie de la commande dans un fichier appelé "eleves.txt" qui vient d'être créé • Le double chevron >> sert lui aussi à rediriger le résultat dans un fichier, mais cette fois à la fin de ce fichier. Attention : si le fichier existait déjà il sera écrasé sans demande de confirmation ! 149
  • 150. 2>, 2>> et 2>&1 : rediriger les erreurs • les commandes produisent 2 flux de données différents : La sortie standard : pour tous les messages (sauf les erreurs). La sortie d'erreurs : pour toutes les erreurs. 150
  • 151. • Il est aussi possible d'utiliser 2>> pour ajouter les erreurs à la fin du fichier 2>&1 : redirige les erreurs au même endroit et de la même façon que la sortie standard. il n'est pas possible d'écrire : 2>>&1 Exemple : cut –d , -f 1 fichiers_inexistant.csv>>eleves 2>&1 2>, 2>> et 2>&1 : rediriger les erreurs 151
  • 152. < et << : lire depuis un fichier ou le clavier La console vous propose alors de taper du texte. écrire des nombres, un par ligne (en appuyant sur la touche Entrée à chaque fois Lorsque vous avez fini, tapez FIN pour arrêter la saisie. Le mot FIN est-il obligatoire ? vous pouvez utiliser le mot que vous voulez. Par exemple : 152
  • 153. Un tube (pipe) | : chaîner les commandes • Un tube permet d’établir une liaison directe entre la sortie d'une commande et l'entrée d'une autre commande. On peut écrire cette liste triée dans un fichier : 153
  • 154. Un tube (pipe) | : chaîner les commandes (2) Exemple : intérêt des | cd source tar cvf archive.tar * cd destination tar xvf source/archive.tar rm source/archive.tar Malheureusement, cette technique nécessite beaucoup de place disque, puisque l'archive temporaire est stockée directement sur disque. De plus, elle est assez lente, car toutes les données à copier sont recopiées sur le disque dur, et relues ensuite, pour finalement être détruites.. La solution est de réaliser un tube entre les deux processus tar invoqués. Dans ce cas, le transfert se fait simplement via la mémoire vive : cd source tar cvf * | (cd destination ; tar xvf -) Cette commande est un peu plus compliquée, car la commande d'extraction des fichiers nécessite un changement de répertoire. Il faut donc utiliser une commande multiple du shell. Ces commandes sont constituées de plusieurs autres commandes séparées par des points virgules. La première commande effectuée ici est le changement de répertoire, et la deuxième est l'extraction par tar de l'archive qui lui est transférée par le flux d'entrée standard (représenté ici par '-'). Ces deux commandes sont mises entre parenthèses, car l'opérateur '|' du tube est prioritaire sur l'opérateur ';' de concaténation des commandes du shell. , la commande qui utilise le tube consomme deux fois moins d'espace disque et est deux fois plus rapide que la commande qui n'en utilise pas. 154
  • 155. Double tube ( double pipe) || : C’est le OU Syntaxe: Commande 1 || commande 2 Si commande 1 est erroné on passe à commande 2 Exemple ls fichier1 || rm fichier2 Si fichier1 n’existe pas on supprime fichier2 155
  • 156. La commande tee • La commande tee permet de rediriger la sortie standard d’une commande vers un fichier et vers la sortie standard. Exemple : ls /bin | grep " etci" | tee fich.log | wc –l * met dans le fichier fich.log les noms des fichiers dont le nom contient la chaîne "etci" dans le répertoire /bin * Ensuite compte le nombre de fichiers dont le nom contient la chaîne "etci" dans le même répertoire 156
  • 158. date : régler l'heure Personnaliser l'affichage de la date Modifier la date Attention, il faudra être root pour modifier la date 158
  • 159. Automatisation de tâches • Effectuer de tâches à des temps différés: De manière répétitive (commande crontab) Ponctuellement (commande at) Ces tâches peuvent êtres de toute nature (sauvegarde, opérations sur les données ...) et sont souvent décrites dans des scripts shell. 159
  • 160. La commande at •La commande at exécute une commande à un moment donnée. • Exemple: La création du répertoire « docs » dans votre répertoire à 15h30 $ at 1530 //le moment d’exécution at> mkdir /home/<moncompte>/docs // la commande à executer at> <Ctrl^D> // pour finir •Pour exécuter la commande demain à 14h17 •Pour exécuter la commande le 18 novembre 2015 à 10h30 $ at 10:30 11/18/15 160
  • 161. Exécuter une commande après un certain délai • pour exécuter la commande dans 5 minutes : ce qui signifie "Dans maintenant (now) + 5 minutes". Les mots-clés utilisables sont les suivants : • minutes • hours (heures) • days (jours) • weeks (semaines) • months (mois) • years (années) exécutera les commandes dans 2 semaines 161
  • 162. atq et atrm : lister et supprimer les jobs en attente 􀂄 atq Visualisation de ses tâches en attente ou de toutes les tâches en attente pour l'administrateur. 􀂄 atrm num Destruction d'une tâche en attente (num est le numéro de la tâche à supprimer obtenu grâce à la commande atq). 162
  • 163. Ecriture d'une crontab 1/2  L'utilisateur doit écrire une "crontab" pour décrire les tâches qu'il souhaite automatiser.  Le format d'une "crontab" est une commande par ligne; une ligne est composée de: minute heure jour_mois mois jour_semaine commande minute: 0-59 heure: 0-23 jour_mois: 1-31 mois: 1-12 jour_semaine: 0-6 (0 = dimanche) RQ: en cas de plusieurs moment on les sépare par une virgule(,) , ou par un tiret (-) s’il s’agit d’une plage ( voir l’exemple dans le slide qui suit )  Pour visualiser sans écrire dans le contab on tape : crontab –l  Pour éditer et écrire dans le contab on tape : crontab –e 163
  • 164. Tous les jours à 23h30 : 30 23 * * * df >> /tmp/df.log Toutes les heures, passées de 5 minutes : 5 * * * * df >> /tmp/df.log chaque 5 minutes : */10 * * * * df >> /tmp/df.log Tous les premiers et le 15 de chaque mois à 23h30 : 30 23 1,15 * * df >> /tmp/df.log Tous les lundis à 10h28 et à 21h28 : 28 10,21 * * 1 df >> /tmp/df.log Tous du lundi au vendredis n'importe quel mois à 11h22 : : 22 11 * * 1-5 df >> /tmp/df.log Exemples Chacun des exemples enregistre l'espace disque libre (commande df) dans le fichier /tmp/df.log à des horaires différents. Afin de conserver l'historique, ces exemples utilisent la redirection >> qui permet d'ajouter les nouvelles données à la fin du fichier (si celui-ci existe déjà). Ecriture d'une crontab (2/2) 164
  • 165. Définition : Un processus est un programme en cours d’exécution. On distingue deux types de processus: - Le processus système (daemons) : assure des services généraux accessibles à tous les utilisateurs du système. Le propriétaire est le root et il n’est sous le contrôle d’aucun terminal. - Le processus utilisateur : dédié à l’exécution d’une tâche particulière. Le propriétaire est l’utilisateur qui l’exécute et il est sous le contrôle du terminal à partir duquel il a été lancé. important : dans les système Linux l’identifiant de processus est le PID Processus : Définitions 165
  • 166. Processus : Cycle de vie Création: Toute exécution d’un programme déclenche la création d’un processus dont la durée de vie = la durée d’exécution du programme. Le système alloue à chaque processus un numéro d’identification unique : PID (Process IDentifier). Tout processus est créé par un autre processus : son processus père (PPID) Exemples : Lorsqu’un utilisateur lance une commande, un processus est créé dont le père est le processus correspondant à l’exécution du shell. 166
  • 167. Voici une liste des données d'identification d'un processus : Un numéro de processus unique PID (Process ID) : chaque processus Unix est numéroté afin de pouvoir être différencié des autres Un numéro de processus parent PPID (Parent Process ID) : chaque processus peut lui-même lancer d'autres processus, des processus enfants (child process). Chaque enfant reçoit parmi les informations le PID du processus père qui l'a lancé Un numéro d'utilisateur et un numéro de groupe : correspond à l'UID et au GID de l'utilisateur qui a lancé le processus. C'est nécessaire pour que le système sache si le processus à le droit d'accéder à certaines ressources ou non. Les processus enfants héritent de ces informations. Durée de traitement et priorité : la durée de traitement correspond au temps d'exécution écoulé depuis le dernier réveil du processus Répertoire de travail actif : A son lancement, le répertoire courant (celui depuis lequel le processus a été lancé) est transmis au processus. C'est ce répertoire qui servira de base pour les chemins relatifs. 167
  • 168. 168 Processus : Cycle de vie 1.Un processus est crée. Son code est chargé. Les données sont initialisées pour l’ordonnanceur. 2. le quantum de temps a expiré, l’ordonnanceur choisit un nouveau processus. 3. L’ordonnanceur choisit ce processus. 4. Le processus est en attente d’une ressource. 5. La ressource ou les données deviennent disponible. 6. Le processus sort des files d’attente de l’ordonnanceur.
  • 169. Les Etats d’un processus (suite) • Durant sa vie (temps entre le lancement et la sortie) un processus peut passer par divers états : • actif : processus qui en train de réaliser des actions à un instant donné. • exécutable : processus qui pourrait tout à fait être en train de s'exécuter, mais il doit attendre que le processus actif laisse sa place. • endormi : processus qui ne fait rien. Il attend une condition pour redevenir exécutable ou actif. Il peut se mettre lui-même en sommeil. Mais il peut aussi être mis en sommeil par le noyau en attendant ce qu'il demande soit disponible. • zombie : processus en réalité terminé. Il a fini son exécution et n'a donc plus de raisons d'exister. Seulement pour diverses raisons possibles, son père n'a pas été informé de ceci. 169
  • 170. ps : liste des processus statique • ps :permet d'obtenir la liste des processus qui tournent au moment où vous lancez la commande • PID : c'est le numéro d'identification du processus. Chaque processus a un numéro unique qui permet de l'identifier. • TTY : c'est le nom de la console depuis laquelle a été lancé le processus. • TIME : la durée d'exécution du processus. • CMD : le programme qui a généré ce processus. ps sans arguments affiche seulement les processus lancés par le même utilisateur 170
  • 171. ps : liste des processus  ps –ef :permet d’obtenir la liste de tous les processus lancés par tous les utilisateurs sur toutes les consoles Exemple $ ps –ef UID PID PPID C STIME TTY TIME CMD Chana 2145 187 0 Aug 11 pts/2 0:01.87 /sbin/init -a root 3 1 0 Aug 11 ?? 0:00.27 /sbin/kloadsrv  ps -u User : lister les processus lancés par un utilisateur 171
  • 172. Les processus :Notion de signal Numéro de signal Signification 15 Signal de terminaison de processus. 9 Signal de destruction inconditionnelle de processus. 19 Signal de suspension de processus. 18 Signal de reprise d'exécution d'un processus suspendu. Dans un système Unix, tous les processus peuvent recevoir des messages, envoyés soit par l'utilisateur, soit par un autre processus, soit par le système. Ces messages sont appelés signaux L'envoi d'un signal se fait avec la commande kill, avec la syntaxe suivante : kill [-signal] PID 172
  • 173. ctrl+c et kill : arrêter un processus • Ctrl + C : arrêter un processus lancé en console • kill : tuer un processus • kill -9 : vous demandez à Linux de tuer le processus sans lui laisser le temps de s'arrêter proprement 173
  • 174. Lancement d’un programme ( pour crée un processus) 1. Lancement en arriere plan (commande nohup) $ nohup nom_programme 2. Lancement et retour au mode console ( &) $ nom_programme & 3. combinaison de 1 et 2: $ nohup nom_programme & 174
  • 176. Les shells sous unix •Au démarrage d'une session, un utilisateur peut taper et faire exécuter des commandes lignes grâce à un shell. Les shells standards : 􀂄 Bourne Shell (/bin/sh) Il s'agit du shell UNIX d'origine. Le nom du programme est (sh) et il est connu comme étant le shell bash des systèmes Linux. 􀂄 C-Shell (/bin/csh) Ce shell est rarement utilisé car il est assez complexe. 􀂄 Korn Shell (/bin/ksh) Ce shell a été écrit par David Korn. Il combine les fonctions interactives qui ont fait le succès du shell C avec la syntaxe de programmation conviviale du shell Bourne. 􀂄 Bourne Again Shell (/bin/bash) ce shell est une extension améliorée du shell Bourne •On peut trouver une liste des shells autorisés sur une machine dans le fichier /etc/shells 176
  • 177. Les scripts shells  Le shell peut être utilisé pour exécuter des commandes contenues dans un fichier texte.  Les scripts peuvent être créés avec un éditeur de texte.  Il est conseillé de positionner le droit d'exécution sur les fichiers scripts.  Il est également conseillé de préciser sur la 1ère ligne du script sous quel shell (Shebang ) les commandes doivent être exécutées. Syntaxe: #!/bin/sh ou #!/bin/bash  (Shebang )  L'exécution d'un shell script se fait: ▫ en tapant son nom (si le script dispose du droit x); exemple: script ▫ en préfixant par le nom du shell; exemple: sh script ou bash script ▫ en préfixant par ./ ; exemple: ./Script 177
  • 178. Les commandes d'entrée/sortie • La commande echo permet d'afficher une chaîne de caractères ou le contenu de variables sur la sortie standard. Exemple: echo "La variable vaut $nom" • La commande read permet de lire une ligne de caractères à partir de l'entrée standard et place les différents mots dans les variables transmises en argument. Exemple: #!/bin/bash echo entrez deux nombres: read nombre1 nombre2 echo La somme vaut $(($nombre1 + $nombre2)) 178
  • 179. Les variables • On peut créer des variables V par affectation et les utiliser avec $V Exemple: #!/bin/bash pays=Maroc echo La variable pays vaut $pays • Il existe aussi des variables définies automatiquement. Ce sont les paramètres entrés au lancement du script Exemple: #!/bin/bash pays=$1 #$1 est le premier paramètre, $2 le deuxième etc... echo La variable pays vaut $pays • Il existe d’ autres variables automatiques: • $# qui est le nombre de paramètres • $0 qui est le nom du programme. • $* OU $@ : la liste des paramètres 179
  • 180. Le shell peut évaluer des expressions arithmétiques délimitees par $(( )) ou par $( echo a+b|bc) ou encore par la commande expr Expressions arithmétiques ◮ Exemple avec: $(( )) $ n=10 $ echo $(( $n + 1 )) $ p = $(( $n * 5 / 2 )) $ echo $p ◮ Exemple avec: $( |bc ) $ n=10 $q= $( echo $n + 1 |bc ) $p=$(echo $n*5/2 |bc ) $echo q $echo $p Attention : - les (( et les )) ne sont pas séparés par les espaces - Dans expr il faut respecter les espace entre les opérandes et les opération arithmétique (+, - = / * %, ) ◮ Exemple avec: expr $ n=10 $ expr $n + 25 ……………….. 35 180
  • 181. La commande test ou [ ] • Cette commande permet de tester l'existence et le statut d'un fichier. • Test de fichier ou répertoire: If [ –e fiche_rep ] vrais si le fiche_rep existe If [ ! –e fiche_rep ] vrais si le fiche_rep n’existe pas 181
  • 182. La commande test ou [] • test de chaînes de caractères • Ces tests peuvent être combinés: ! négation logique -a (&&) et logique -o (||)ou logique Exemple 1: test -r essai -a -s essai Exemple2 if [ $A -lt 20 -a $B -lt 20 ] || [ $A -gt 10 -a $B -gt 10 ] = si A et B sont >10 ou A et B sont <20 182
  • 183. La commande test ou [] Exemple: #!/bin/bash if (test $1 -gt $2) then echo $1 est plus grand que $2 elif [ $1 -lt $2 ] then echo $1 est plus petit que $2 else echo $1 égale $2 fi structure if : syntaxe : if ( condition) then instruction1 elif ( condition2) then instruction1 else dernière instruction fi Les différents opérateurs de comparaisons numérique sont: 183
  • 184. Substutution d’une commande: • On peut passer le résultat d’une commande dans des variables • Exemples: $ a=`ls F*|wc` ( a contient le nombre des fichiers qui commence par F $ b=`wc –l file` ( b contient le nombre des ligne contenue dans le fichier ) $ en_fic=`find. –type f –name *.java` ( en_fic contient la liste des fichiers d’extenssion java ) syntaxe : variable= ` commande` 184
  • 185. Commande echo –n La commande echo –n permet d’afficher sans effectuer un retour chariot Exemple : ------------echo seule ----------------------- $ echo "bonjour " ; echo " tout le monde " bonjour tout le monde ------------echo –n ----------------------- $ echo -n "bonjour "; echo " tout le monde " bonjour tout le monde 185
  • 186. Exercice 1 • Ecrire un scripte bash qui : admet deux paramètre en entrée - Teste le nombre de paramètre . - Si <2 affiche le message suivante« Attention paramètre insuffisants ! » - Si >2 : affiche le message suivante « trop de paramètre! » - Si =2 : réalise et affiche la somme Indication : utiliser le $# pour retourner le nombre de paramètre Solution : faite dans la classe il faut la noté 186
  • 187. Exercice sur ( expression arithmétiques) • Soient a= 6 , b=21 et c=9 à l’aides des expressions arithmétiques : • Calculer et afficher la somme de a et b. • Calculer et afficher la moyenne de de a , b et c. • Calculer et afficher la moyenne de de a , b et c. • Calculer et afficher le reste de la division de b / c. Exercice 2 ( IF avec les ou et les et logiques ) a- Ecrire un scripte qui lit 2 valeurs et affiche si leur produit est positif ou négatif sans le calculer b- la même chose mais cette fois ci les 2 valeurs son passées en paramètre du scripte 187
  • 188. 2.a #!/bin/sh echo " dooner 2 nombre" read A B if [ $A -lt 0 -a $B -lt 0 ] || [ $A -gt 0 -a $B -gt 0 ] then echo " produit positif" else echo " produit negatif" fi 2.b #!/bin/sh echo " dooner 2 nombre" if [ $1 -lt 0 -a $2 -lt 0 ] || [ $1 -gt 0 -a $2 -gt 0 ] then echo " produit positif" else echo " produit negatif" fi Solution Exercice 2 ( IF avec les ou et les et logiques ) 188
  • 189. Choix multiples : case • La commande case … esac permet de vérifier le contenu d'une variable ou d'un résultat de manière multiple. • Syntaxe : case Valeur in Modele1) Commandes ;; Modele2) Commandes ;; *) action_defaut ;; esac L’option case sert à réaliser les menus 189
  • 190. La structure while Syntaxe: while (conditions) do liste de commandes ou d’instruction done Exemple #!/bin/bash i=0 while [ $i -lt 100 ] do i=$(($i+1)) echo $i done 190
  • 191. La structure for Syntaxe: for nom in liste do liste de commandes Done Exemple 1 : test si un fichier existe parmi une liste de fichiers f1 à fn #!/bin/bash for fichier in f1 f2 f3 f4 ….fn do if [ -f $fichier ]; then echo "$fichier est un fichier ordinaire" fi done Exemple 2 :suppression des fichiers d’extension jpg png et txt #!/bin/bash for ext in jpg png txt do rm *.$ext done 191
  • 192. La structure for La commande seq La commande seq permet de parcourir une suite de chiffre successive Exemple : affichage d’une suite de 1 à 4 $ for i in $(seq 1 4) > do > echo $i > done Résultat est : 1 2 3 4 192
  • 193. until (condition) do Suite d’instructions done La structure until La structure while est utilisée dans les situation ou on veut executer une suite d’instruction tant qu’une condition est vrai Des fois on a besion d’executer des instruction jusu’a ce qu’un condition soit satisfaite (vrai)  la on utililse la boucle until Syntaxe Exemple a=0 until [ ! $a -lt 10 ] do echo $a a=`expr $a + 1` done 0 1 2 3 4 5 6 7 8 9 Résultat 193
  • 194. Étiquette (fonction): Nommer une suite d’instruction • On peut rassembler une suite d’instructions dans une fonction nommée , et appeler cette fonction là ou on veut • Exemple: #!/bin/bash ajouter () { echo "------AJOUT -----" echo "Nom ?" read nom echo "Tel ?" read tel echo "$nom,$tel" >> agenda.txt } ajouter ; L’étiquette ajouter permet d’ajouter une ligne dans le fichier agenda.txt 194
  • 195. L’instruction exit L’instruction exit permet de forcer la fin de l’ exécution de scripte en cours Valeurs de exit: •$0 : retourne la valeur de exit • 0 : si le scripte ou la commande s’est terminer correctement • >0 : si le scripte ou la commande s’est terminer en erreur •On peut aussi forcer la valeur de exit par exit valeur Exemple: test de l’existence d’un fichier ou répertoire If [ ! –e fic_rep ] then exit 3 fi 195
  • 196. Exercice 3 ( case … esac) • En utilisant case ..esac Ecrire un programme appeler « jour.bash » qui admet comme paramètre un chiffre de 1 à 7 et qui affiche le jour de la semaine correspondant • Exemple d’execution: jour.bash 2 c’est Mardi! Exercice 4 ( while) • Ecrire un scripte shell qui permet de lire une suite de nombre saisis à partir de clavier. • Dés fin de la saisi marquée par le chiffre 999 . Afficher les nombre en ordre croissant 196
  • 197. Exercice 6 (until) écrire un script shell qui prend en argument un nombre et renvoie son inverse sinon renvoie une erreur si le nombre d'arguments est différent de 1. exemple : 123 ---> 321 Exercice 7 (while) écrire un script shell avec des boucles qui affiche : 1 22 333 4444 55555 Exercice 5 (for) Ecrire un scripte shell qui permet de trouver tous les fichiers d’extention java dans l'arborescence courante qui contiennent la chaine de caractères passée en paramètre 197
  • 198. Solution ( case … esac) Ecercices 3 #!/bin/sh case $1 in 1 ) echo "c'est lundi" ;; 2 ) echo "c'est mardi" ;; 3 ) echo "c'est mercredi" ;; 4 ) echo "c'est jeudi" ;; 5 ) echo "c'est vendredi" ;; 6 ) echo "c'est samedi" ;; 7 ) echo "c'est dimanche" ;; *) echo " le numéro entrer ne correspond a auncun jour ";; esac 198
  • 199. Ecercices 4 #!/bin/bash if (test -f fich_num ) then rm fich_num fi i=0 while (test $i -ne 99) do read num i=$num echo $num >> fich_num done sort -n fich_num Solution( while) 199
  • 200. Solution (for) Ecercices 5 #!/bin/sh for file in `find . –type f -name "*.java ’’` do res=` grep $1 $file | wc –l ` if [ $res –ge 1 ] then echo $file fi done 200
  • 201. Solution Exercice 6 #!/bin/bash a=$1 b=0 if [ $# -ne 1 ] then echo "ereur" else until [ $a -eq 0 ] do b=$(( $a % 10 )) a=$(($a/10)) echo -n "$b" done fi Solution Exercice 7 #!/bin/bash i=1 nbr=5 while [ $i -le $nbr ] do j=1 while [ $j -le $i ] do echo -n "$i" j=$(($j+1)) done i=$(($i+1)) echo done 201

Notes de l'éditeur

  1. Agit comme un véritable arbitre entre les logiciels et les ressources ordinateur ( RAM , Micro-process)