OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO Technology
En cette année 2024 qui s’annonce sous le signe de la complexité, avec :
- L’explosion de la Gen AI
-Un contexte socio-économique sous tensions
- De forts enjeux sur le Sustainable et la régulation IT
- Une archipélisation des lieux de travail post-Covid
Découvrez les Tech trends incontournables pour délivrer vos produits stratégiques.
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO Technology
En cette année 2024 qui s’annonce sous le signe de la complexité, avec :
- L’explosion de la Gen AI
-Un contexte socio-économique sous tensions
- De forts enjeux sur le Sustainable et la régulation IT
- Une archipélisation des lieux de travail post-Covid
Découvrez les Tech trends incontournables pour délivrer vos produits stratégiques.
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...OCTO Technology
par Claude Camus (Coach agile d'organisation @OCTO Technology) et Gilles Masy (Organizational Coach @OCTO Technology)
Les équipes infrastructure, sécurité, production, ou cloud, doivent consacrer du temps à la modernisation de leurs outils (automatisation, cloud, etc) et de leurs pratiques (DevOps, SRE, etc). Dans le même temps, elles doivent répondre à une avalanche croissante de demandes, tout en maintenant un niveau de qualité de service optimal.
Habitué des environnements développeurs, les transformations agiles négligent les particularités des équipes OPS. Lors de ce comptoir, nous vous partagerons notre proposition de valeur de l'agilité@OPS, qui embarquera vos équipes OPS en Classe Business (Agility), et leur fera dire : "nous ne reviendrons pas en arrière".
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
2. PLAN DE COURS
1. Introduction au système Unix - Linux
2. Caractéristiques Générales
3. Principes et Commandes de Base
4. Périphériques de Stockage et Systèmes de Fichiers
5. Processus
6. Utilisation du Shell bash (programmation)
7. Amorçage et Arrêt du Système
8. Commandes Avancées
9. Configuration des services Réseau
10. Gestion de performance
11. Configuration de services réseau (web Apache … )
3. Histoire de Unix
L'histoire d'UNIX débute dans les années 60:
-1966 : les laboratoires Bell (filiale d'AT&T) ont besoin pour leur
usage interne, d'un OS pour le traitement de textes et le
développement d'applications.
-1969 : apparition de la 1ère version d'UNIX. Le nom UNIX
provient de UNICS (UNiplexed Information and Computing
System)
-1973 : nécessité de rendre UNIX portable sur d'autres ordinateurs.
UNIX a été alors réécrit entièrement par Denis Ritchie en langage C
-1974 : AT&T propose les 1ères licences aux universités,
-1978 : AT&T présente à l'industrie les 1ères versions
commerciales.
4. Histoire de Unix
-Années 80 : AT&T autorise le clonage d'UNIX par d'autres
constructeurs. Ainsi, apparaissent ULTRIX sur DEC, BSD sur
SUN, AIX sur IBM, etc.
- En 1983, pour promouvoir les logiciels libres, Richard Stallman
lance le projet GNU qui fournit aujourd'hui plusieurs éléments
essentiels de système d'exploitations basés sur le Noyau Linux
- Le projet GNU avait pour objectif d'écrire un OS de type Unix
entièrement composé de logiciels libres.
5. - Au début des années 90, le projet GNU avait produit tous les
éléments essentiels à la construction d'un OS (un compilateur, un
éditeur de texte, un shell, des bibliothèques, et beaucoup d'autres
logiciels) à l'exception de l’élément central : le noyau.
- 1991 : Linus Thorvald voulait mettre au point son propre OS; il
avait pour intention de développer une version d'UNIX pouvant être
utilisée sur une architecture de type 80386.
Histoire de Unix
6. n Linux est le noyau d'un OS de type Unix, initié par
Linus Torvalds en 1991
n il désigne un OS comparable à Ms Windows ou Mac
OS composé de nombreux logiciels libres
développés en collaboration via Internet
n Il permet d’utiliser des serveurs comme Apache ou
Sendmail, des environnements de bureau comme
GNOME et KDE, des applications majeures comme
Mozilla Firefox
Linux: Définition
7. n Code source disponible (licence GPL)
n Système multitâches et multi-utilisateurs
n Multi-plateforme (intel x86,Sun Sparc,etc…)
n Gestion du multiprocesseur (option SMP: Symetric
MultiProcessor)
n Compatible POSIX (standard logiciel)
n Compatibilité de code avec les autres UNIX
n Gestion des consoles virtuelles
n Possibilité de cohabitation avec d’autres systèmes
n Support d’un grand nbre de systèmes de fichiers
Caractéristiques
8. n Implémentation complète de la pile TCP/IP
n Services réseau:PPP, NFS, etc…
n Interface graphique:X-Window
n Le Noyau Linux (kernel):
n Cœur du système
n Ensemble de routines appelées par des appels
systèmes
n Interface entre les programmes utilisateurs et le
matériel
n Gestion des processus et de la mémoire virtuelle
n Gestion des bibliothèques partagées
n Protection entre les processus
Caractéristiques
9. n Applications Disponibles:
n Bureautique:
•StarOffice, •Koffice (Kword,Kspreadsheet,Kpresenter)
•AbiWord (traitement de texte), •Gnumeric (tableur)
n Graphisme:
•The Gimp (retouche d’image), •Corel PhotoPaint
(retouche d’image), •Sketch (Dessin vectoriel)
n Internet:
•Netscape Communicator, •Konqueror, •Opera 5
•Instant Messaging:ICQ,AIM,etc…
n Serveurs
•HTTP,FTP,mail,news,DNS,etc…
Caractéristiques
10. n Architecture Globale: 3 couches
n Couche «physique »:périphériques +BIOS
n Couche «système »: kernel et processus
n Couche «interface »:shell +X-Window
n Communications entre couches sont très
réglementées par le kernel
Architecture d’un syst. Linux
11. Architecture d’un syst. Linux
Périphériques Physiques
BIOS
KERNEL
Shell
Système X-Window Interface Utilisateur
SYSTEME
MACHINE
Carte
Graphique
12. n Le Shell: interpréteur de commande, il est l’interface
entre l’utilisateur et l’OS
n Lit et exécute les commandes de l’utilisateur
n Propose un contrôle des processus
n Gère les redirections en entrée et en sortie
n Propose un véritable langage de programmation
n Plusieurs types de shell disponibles:
• Le plus utilisé:bash (sh)
• Autres: csh, ksh, zsh, … etc.
Le Shell
13. n Chaque utilisateur possède un shell par défaut, qui
sera lancé à l'ouverture d'une invite de commande.
n Le shell par défaut est précisé dans un fichier de
configuration (/etc/passwd)
n Il est possible de changer de shell dans une session
Le Shell
14. n Interface graphique standard des systèmes UNIX
n Repose sur un processus particulier «serveur X »
n Utilise un gestionnaire de fenêtres: plusieurs sont
disponibles (KDE2, Gnome, WindowMaker, etc…)
n L’une des principales caractéristiques: Possibilité
pour le user de déporter l’affichage à travers un
réseau
Le Système X-Window
19. n Le système possède une structure en arborescence
n la racine est notée « / ».
n Chacun des répertoires sous cette racine a un nom standardisé et
un contenu précis
Principes et Commandes de
base- Arborescence du Système:
20. / Racine du système, contient les répertoires principaux
/bin Commandes essentielles communes à tous les utilisateurs
/boot Fichiers de démarrage du système, contient le noyau
/dev Points d’entrée des périphériques
/etc Fichiers de configuration
/home Contient les répertoires personnels des différents utilisateurs
/root Répertoire personnel de l’administrateur
/usr Hiérarchie secondaire, applications, bibliothèques partagées
/var Fichiers trace du système (Logs)
/proc Système de fichier virtuel, informations en temps réel
Arborescence du système
21. Commandes de base
n Commandes: En très grand nombre
n Principe UNIX: une commande n’exécute qu’une
seule fonction, mais le fait de manière exhaustive
n Exécutées à l’invite du shell (ou d’un terminal dans
le cas de X-Window)
n De la forme:
nom_commande [-options] <cible1> <cible2>…
22. Commandes de base
n «ls »:lister le contenu d’un répertoire
n «rm »:supprimer un fichier
n «cp »: copier un fichier
n «ln »: créer un lien sur un fichier
n «man »: afficher l’aide d’une commande
n «mv »: déplacer un fichier
n «cd »: changer de répertoire
n «mkdir »: créer un répertoire
n «rmdir »: supprimer un répertoire vide
n «pwd »: afficher le répertoire courant
n «cat »: afficher le contenu d’un fichier
n «file »: afficher le type de contenu du fichier
n «locate »: localiser un fichier sur le disque
23. Gestion des utilisateurs
n Un utilisateur du système:
• Personne physique
• Droits d’accès au système
• Répertoire personnel
• Groupe d’utilisateur
n Un utilisateur particulier: «root »
• Administrateur du système
• Possède tous les droits sur le système, Les
utilisateurs et les fichiers
• A n’utiliser que pour la configuration et
l’installation
24. Gestion des utilisateurs
n Identification d’un utilisateur:
• Nom: « login »
• Mot de passe: « password »
n Référencement de tous les utilisateurs dans le fichier
« /etc/passwd » et/ou « /etc/shadow »
n Référence à un groupe: « /etc/group »
n Répertoire personnel: « /home/<login> »
25. Gestion des utilisateurs
n Commandes utilisables par root:
• « useradd »: ajouter un utilisateur
• « userdel »: supprimer un utilisateur
• « usermod »: changer les propriétés d’un compte
n Commande utilisable par tous les utilisateurs
• « passwd »: changer le mot de passe
26. Gestion des utilisateurs
n Le fichier « /etc/passwd »
• Contient toutes les informations sur les comptes
utilisateurs du système
• Seul root a le droit en écriture dessus
• Chaque utilisateur est référencé par une ligne
donnant:
Ø Son login
Ø Son numéro
d’identification sur le
système (uid)
Ø Son numéro de
groupe (gid)
Ø Un Commentaire (Nom
complet en général)
Ø Son répertoire
personnel de base
Ø Son shell par défaut
nEx: test:x :101:10:Compte test:/home/test:/bin/bash
28. Répertoires et noms de fichiers
n Chaque fichier possède un nom non ambiguë (noms du fichier + chemin dans
l’arborescence.
n Si le fichier temp se trouve dans le répertoire /home/etud1 , son nom est :
/home/ etud1/ temp
n La commande pwd donne le nom du répertoire courrant.
n La notion de répertoire courant permet d’éviter de taper des noms trop longs.
n Dans chaque répertoire, on trouve au moins deux fichiers, nommés:
n . (point) : permet de référencer le répertoire lui même
n .. (point point): permet d'accéder au répertoire parent (du dessus).
n La création d’un répertoire se fait au moyen de la commande mkdir . Le
changement de répertoire au moyen de la commande cd .
29. Répertoires
n Si le nom de fichier (ou de répertoire) n’est pas précédé de /, il s’agit
d’un nom relatif au répertoire courant.
n $cd etud1/ test n’est pas la même chose que $cd /etud1/
test .
On dit que le chemin du fichier est absolu parce qu'à la vue de son
chemin d'accès, en partant de la racine, on sait exactement où se
trouve le fichier.
n Un chemin est dit relatif, quand il n'est pas nécessaire, d'indiquer le
chemin complet, de l'endroit où on se trouve dans l'arborescence, il
suffit de rajouter le chemin par rapport à ce même endroit.
n En admettant qu'on se trouve sous /home/ formation/, si l'on veut
accéder à notre fichier toto.txt, le chemin relatif au répertoire courant
est ./toto.txt, le point représentant le répertoire courant comme on l'a vu
auparavant.
n La commande du donne l’espace disque utilisé par les fichiers et sous
répertoires (en nombre de blocs de 512 ou 1024 octets).
30. Répertoire de connexion
n A chaque utilisateur connu du système est associé un répertoire de connexion
(home directory).
n L'utilisateur y place ses fichiers personnels, et peut y créer autant de sous-
répertoires qu'il le désire. Ex : le répertoire de connexion de l’utilisateur etud1
est /home/etud1
n Après le login, l'interpréteur de commande a pour répertoire courant le
répertoire de connexion de l'utilisateur.
n Le répertoire de connexion contient aussi certains fichiers de configuration
permettant à l'utilisateur de personnaliser son environnement de travail. Ces
fichiers sont normalement invisibles (car leur nom commence par un point).
n A tout moment, on peut revenir au répertoire de connexion grâce à la commande
cd.
n On peut aussi spécifier un chemin à partir du répertoire de connexion d'un
utilisateur en utilisant le caractère ~. Par exemple, ~etud1/courrier désigne le
fichier /home/etud1/courrier
31. Utilisateurs connectés: Who
n La commande who affiche la liste des utilisateurs connectés sur la machine où
l'on travaille.
n Le nom d'utilisateur, le nom du terminal utilisé et la date de début de session de
travail sont fournis.
n Ex :
etud1@STATION1 > who
etud1 ttyp1 Mar 4 11:00:25 (pdt1)
etud2 ttyp3 Marc 4 10:01:06 (pdt2)
n Une utilisation pratique de la commande who est la commande « who am i »
qui permet de connaître le nom de l'utilisateur connecté à partir d'un terminal
et qui l'a quitté.
n Ex :
etud1@STATION1 >who am i
etud1 ttyp3 Mar 04 10:00:52 (STATION1)
32. Les permissions
n Chaque fichier possède des permission définissant qui peut faire quoi avec le
fichier. On peut ainsi garder des fichiers confidentiels.
n Les permissions sont définies pour chaque fichier (et donc pour chaque
répertoire)
n Le super utilisateur ( root ) peut accéder à tous les fichiers. La commande su
permet de s’attribuer les permissions du super utilisateur (il faut connaître son
mot de passe).
n Lors de la connexion on spécifie son nom, son passwd. Cela permet de spécifier
son uid (seule identification connue par le système), et son gid (groupe
d’utilisateur).
n L’ uid et le gid , ainsi que les permissions des fichiers définissent ce qu’il est
possible de faire avec les fichiers.
n Le fichier /etc/ passwd contient le mot de passe ainsi que les identification de
chacun des utilisateurs.
33. Les permissions
n Chaque fichier possède 3 types de droits pour 3 types d’utilisateurs :
n Droits en lecture, écriture, exécution
n Pour l’utilisateur, les utilisateur du groupe, les autres utilisateurs
n La commande ls –l donne ces droits:
n Première lettre : - si fichier normal, d si répertoire,
n les 3 caractères suivants représentent les droits du propriétaire du fichier
rwx ,
n idem pour groupe
n Idem pour autres.
34. Les permissions: exemple
-rwx r-x r-x nb etud1 mygrp 22234 Dec 15 16:00 fichier
n La signification des lettres rwx et la suivante :
n r (read) on peut lire le fichier
n w (write) on peut modifier le fichier
n x (exécutable) on peut exécuter le fichier (c'est donc un exécutable)
n - aucun droit autorisé
Nombre de liens
Droits des autres
Droits du groupe
Propriètaire
(owner)
Groupe du Owner
Date du dernier changement
Nom du fichier
• - pour un fichier ordinaire,
• d pour un répertoire,
• b pour un fichier spécial de type bloc (périphériques...),
• c pour un fichier spécial de type caractère (disque, streamer...),
• l pour un lien symbolique,
• s pour une socket.
d rép
Nom du rép.
Droits du propriétaire
Taille
35. Les permissions
n La permission d’effacer un fichier est indépendante du fichier,
mais dépend du répertoire du fichier qui le contient (répertoire
autorisé en écriture).
n La commande rm permet d’effacer un fichier, la commande rmdir
permet d’effacer un répertoire.
n La propriété x pour un répertoire ne signifie par qu’il est
exécutable, mais que la recherche est autorisé dans ce répertoire
(ouverture ou exécution d’un fichier). La droit en lecture pour un
répertoire signifie que la liste de ses fichiers peut être obtenue. Un
répertoire peut être autorisé en lecture sans que les fichiers soient
autorisés en lecture.
36. Droits d’accès sur les fichiers
Commandes pour la gestion des accès:
• « chown »: change le propriétaire
• « chgrp »: change le groupe
• « chmod »: change les droits d’accès:
• « chmod +r fichier »: positionne l’accès en lecture
• « chmod –r fichier »: enlève l’accès en lecture
• « chmod o-x fichier »: enlève l’accès en exécution
pour les autres
• « chmod go-x fichier »: enlève l’accès en
exécution pour les membres du groupe et les
autres
n Ex: « chmod 444 fichier » ó Droits r-- r-- r--
37. Les permissions de root
n Afin de permettre l'administration du système, un utilisateur
spécial, nommé super utilisateur (ou root), est toujours
considéré par le système comme propriétaire de tous les
fichiers (et des processus).
n La personne qui gère le système est normalement la seule à
connaître son mot de passe. Lui seul peut ajouter de
nouveaux utilisateurs au système.
38. Les éditeurs de fichiers : vi
n Vi est un des éditeurs de texte très populaires sous unix
n Vi est un éditeur entièrement en mode texte:
chacune des actions se fait à l'aide de commandes texte. Cet éditeur , bien que
peu pratique à première vue est très puissant et peut être très utile en cas de
non fonctionnement de l'interface graphique.
n La syntaxe pour lancer Vi est la suivante:
n vi nom_ du_ fichier,
Une fois le fichier ouvert, il est possible de se déplacer à l'aide des
curseurs, ainsi que des touches h, j, k et l (au cas où le clavier ne
possèderait pas de curseurs fléchés).
39. Les éditeurs de fichiers : vi
n Vi possède 3 modes de fonctionnement:
n Le mode normal : celui dans lequel on est à l'ouverture du fichier. Il permet
de taper des commandes
n Le mode insertion : Ce mode permet d'insérer les caractères qu’on saisit à
l'intérieur du document. Pour passer en mode insertion, il suffit d'appuyer
sur la touche Insert de votre clavier, ou à défaut de la touche i
n Le mode de remplacement : Ce mode permet de remplacer le texte
existant par le texte qu’on saisit. Il suffit d’appuyer sur « r » (ou R ) pour
passer du mode insertion au mode remplacement, et d'appuyer sur la
touche Echap pour revenir en mode normal
40. Vi: commandes de déplacement du
curseur
l : déplacement d'un caractère vers la droite ;
h : déplacement d'un caractère vers la gauche ;
k : déplacement d'un caractère vers le haut ;
j (ou ¬) : déplacement d'un caractère vers le bas ;
0 : déplacement sur le caractère de la colonne 1 de la ligne courante ;
$ : déplacement sur le dernier caractère de la ligne courante ;
/motRETURN: descendre sur la 1 ère ligne contenant motif ;
?motRETURN: remonter sur la 1 ère ligne contenant motif ;
n : répète la dernière opération /mot ou ?mot ;
CTRL-f (Forward) : page suivante ;
CTRL-b (Backward) : page précédente ;
w (Word) : déplacement sur le début du mot suivant ;
b (Back) : déplacement sur le début du mot précédent ;
e (End) : déplacement sur la fin du mot courant ;
41. Vi: commandes d’insertion
Toutes les commandes d'insertion de chaînes de caractères font passer en mode
insertion et doivent être terminées par le caractère ESC pour repasser en mode
commande.
n a chaîne : chaîne insérée immédiatement après le curseur (Append);
n A chaîne : chaîne insérée en fin de la ligne courante ;
n i chaîne : chaîne insérée devant le curseur (Insert) ;
n I chaîne : chaîne insérée au début de la ligne courante ;
n o chaîne : chaîne insérée après la ligne courante (Open) ;
n O chaîne : chaîne insérée avant la ligne courante.
42. Vi: commandes de suppression
n x : supprime le caractère pointé par le curseur ;
n X : supprime le caractère précédant le curseur ;
n dd : supprime la ligne courante ;
n D : supprime la fin de la ligne courante (y compris le caractère pointé) ;
43. Vi: Commandes générales
commande Action
:x
:wq
:w
:10,20 w
nom_fichier
:w%.new
:q
:sh
:! Commande
:n,m! commande
:r! commande
Sauve le fichier si modifié et quitte
Sauve le fichier et quitte
Sauve le fichier
Sauve les lignes de 10 à 20 dans le fichier nom_fichier
Sauve le tampon du fichier courant avec le même nom mais
avec une extension différente
Quitte
Appelle un shell
Exécute une commande UNIX
Envoie les lignes n à m à la commande UNIX
Lit la sortie de la commande dans le fichier édité
44. n Pour rechercher un mot dans un document, il suffit (en
mode normal) de taper / suivi de la chaîne à rechercher,
puis de valider par la touche entrée. Il est alors possible
d'aller d'occurrence en occurrence grâce à la touche n .
n Pour remplacer une chaîne de caractère par une autre sur
un ligne, il existe une commande très puissante sous Vi
utilisant les expressions régulières Voici sa syntaxe:
n :s/ chaine_a_remplacer/ chaine_remplacante/
Il est possible de la généraliser à tout le document grâce à
la syntaxe suivante:
n :% s/ chaine_a_remplacer/ chaine_remplacante /
Vi: commandes de recherche et
de remplacement
45. Commandes liées à
l’arborescence de fichiers
n La commande ls permet d’obtenir la liste des fichiers d’un répertoire
ou d’une arborescence de répertoires. Un certain nombre d’options
permettent d’afficher plus ou moins d’informations sur ces fichiers et
répertoires:
n -l : format détaillé ,
n -a : liste aussi les fichiers qui commencent par « . »
n -d : si l’argument est un répertoire, la commande liste seulement son nom
et pas les fichiers qu’il contient,
n -t : affiche en triant par date de dernière modification
n -R : listage récursif des sous- répertoires,
n -F : fait suivre le nom des répertoires par un « / », le nom des
exécutables par une «* » et le nom des liens symboliques par un « @ »...
n -g : pour afficher les informations sur le groupe...
46. Système de fichier : cd, pwd
n cd [répertoire] : permet de changer de répertoire courant.
n Cd: permet de se replacer dans le répertoire par défaut (la HOME
directory).
n cd .. : Remonte au répertoire supérieur
n Avec certains shell, la commande « cd – » permet de revenir au
répertoire où l’utilisateur se trouvait précédemment.
n pwd : permet à tout moment de connaître le répertoire dans lequel on
se trouve. Il est souvent intéressant de connaître à un moment donné
exactement le lieu où l’on se trouve (avant d’effectuer une suppression
par exemple).
47. Système de fichier : file, cat
n file nom_de_fichier : il est possible sous Unix de connaître aussi
le type de fichier sur lequel on travaille. En dehors de l’extension qui
peut être trompeuse, tous les fichiers ont une en-tête permettant de
déterminer leur type (répertoire, exécutable, texte ASCII, programme C,
document Postscript...). L’ensemble de ces en- têtes est défini dans le
fichier /etc/ magic.
n cat [- v] [fichier...] : affichage du contenu d’un fichier:
La commande: cat [- v] [fichier...] sert à afficher le contenu d’un fichier si
ce dernier est passé en paramètres. Sinon, c’est l’entrée standard qui
est prise par défaut (clavier ou résultat d’une autre commande).
cat fichier1 fichier2 > fichier3 : cette commande permet
de créer un fichier (fichier3) en concaténant les fichiers fichier1 et
fichier2.
48. Système de fichier : more
n more : la commande: more [fichier...] permet d’afficher le contenu d’un
fichier page à page. Le fichier par défaut est l’entrée standard (en général le
résultat de la commande située avant le «|»).
Utilisation:
$ ls -l | more (redirige la sortie de la commande ls -l vers le more)
$ more .profile (affiche page à page le fichier .profile )
En bas de chaque page de la commande more , un certain nombre d’action sont
possibles:
n h: permet d’afficher la liste des commandes disponibles à ce niveau,
n [espace]: permet de passer à la page suivante,
n [entrée]: permet de passer à la ligne suivante,
n b : permet de revenir à la page précédente,
n i[ espace]: permet d’afficher i lignes en plus,
n = : permet d’afficher le numéro de la dernière ligne affichée,
n /mot : permet de se positionner 2 lignes avant la prochaine occurrence du mot
«mot»,
n n: continue la recherche précédente (identique à /),
n :f: permet d’afficher le nom du fichier et le numéro de dernière ligne affichée,
n . : effectue de nouveau la commande précédente,
49. Création et consultation d’un
fichier
n Création de fichier: $ touch fichier
cette commande permet de créer un fichier vide portant le nom fichier
§ Commandes de base pour consulter le contenu d'un fichier de texte :
§ cat fich, more fich : affichage simple et page par page ;
§ head fich, head -n fich : affichage des n premières lignes ;
§ tail fich, tail -n fich ; affichage des n dernières lignes ;
§ wc [–option] fich : affichage du nombre de lignes, de mots, de caractères
§ Options:
§ -l : pour le nombre de lignes
§ -w : pour le nombre de mots
§ -c : pour le nombre de caractères.
50. n L'arborescence contient 3 types d'éléments : Un système de fichiers est structuré
en
- Des répertoires qui sont des sortes de 4 zones comme suit :
dossiers ou classeurs ;
- Des fichiers ordinaires contenant une
suite séquentielle d'octets ;
- Des fichiers spéciaux repérant les périphériques.
n Le système d'exploitation possède une
vision uniforme de ces entrées grâce au
concept d' Inode
n Un inode contient ces informations :
Type (fichier, répertoire...), Identité du
propriétaire et du groupe, Droits d'accès, Dates de modification…, Autres (taille,
liens, adresses...)
Concept de l’inode
51. n Le numéro de l’inode s’obtient avec la commande ls –i .
n Les répertoires ne contiennent pas les inodes des fichiers mais des références
(adresse) des inodes correspondant aux fichiers.
n La commande rm ne détruit pas l’inode du fichier mais uniquement la
référence dans le répertoire.
n Si aucune référence ne pointe sur l’inode, alors l’inode est détruite.
n Le même fichier peut appartenir à plusieurs répertoires (ne pas le copier car
sinon il serait dupliqué). La commande ln (link) permet cela
$ ln ancien-fichier nouveau-fichier
n Le numéro après les permissions représente le nombre de répertoires contenant
le fichier.
Concept de l’inode
52. n La copie d'une entrée de l'arborescence s'effectue avec la commande cp (copy).
$ cp exemple file
n Pour un fichier, un nouvel inode est créé et les blocs de données dupliqués.
$ cp -r répertoire_source répertoire_ destination
Toute l’arborescence du répertoire source est copiée dans le répertoire destination.
Commandes Liées aux répertoires : cp
53. n Le renommage et le déplacement d'une entrée de l'arborescence s'effectuent
avec la commande mv (move).
$ mv R1/exemple R2/nouveau
n Le renommage consiste simplement à modifier le nom de l'entrée dans le
contenu du répertoire.
n Le déplacement consiste à supprimer l'entrée du répertoire d'origine et à insérer
une nouvelle entrée dans le répertoire destination.
n Les blocs de données ne sont
en aucun cas déplacés.
Commandes Liées aux répertoires : mv
54. § Supprimer une entrée d'un répertoire correspond à la suppression d'un lien.
§ La suppression d'une entrée s'effectue avec la commande rm (remove)
$ rm file
§ Il reste un lien pour accéder à l'inode 1953, les blocs ne sont donc pas libérés.
$ rm ../R2/lien
§ La suppression du dernier lien provoque la libération du bloc inode et des blocs
de données.
Commandes Liées aux répertoires : rm
55. § Un lien dit physique est une relation entre un répertoire et un fichier : plusieurs
liens sur une entrée signifie donc plusieurs repérages dans l'arborescence du même
inode et du même contenu.
§ Il est possible de créer un nouveau lien sur une entrée déjà existante avec la
commande ln (link).
$ ln file ../R2/lien
Une nouvelle entrée dans le répertoire R2 est créée.
§ L'inode 1953 est accessible à partir de R1 et de R2 respectivement par les noms
file et lien.
Concept du lien physique
56. § Un lien physique utilisant un numéro d'inode, il se limite à la même partition.
§ Pour traverser les limites des partitions, Unix introduit des liens dits
symboliques.
§ La création d'un lien symbolique s'effectue avec l'option -s de la commande ln.
$ ln -s ../R2/nouveau ../R3/lien_symbolique
§ Un nouvel inode est créé dans la partition d'origine.
§ Cet inode contient le nom (absolu ou relatif) de l'élément pointé, au lieu d'un
numéro d'inode.
Concept du lien symbolique
57. Système de fichiers : chmod
chmod mode fichiers... : changement des droits
n Le paramètre mode indique quelles sont les autorisations données, il peut être
«symbolique» ou «absolu»:
n mode symbolique: le paramètre mode prend la forme suivante:
[ugo] [+-] [rwx].
n mode absolu: le paramètre mode est représenté par un nombre octal composé
de 3 chiffres:
n Le premier chiffre représente les autorisations du propriétaire,
n le second ceux du groupe
n le troisième correspond à tous les utilisateurs.
Pour calculer chacun des chiffres, on ajoute les valeurs des autorisations (4 pour
lecture, 2 pour écriture, 1 pour exécution).
n Exemple.:
$ chmod u+ rwx, go+ rx fichier : donne tous les droits au propriétaire, et
les droits en lecture et exécution aux autres utilisateurs.
n La commande précédente est équivalente à $ chmod 755 fichier
58. Système de fichiers : umask
Les droits par défaut à la création d'une entrée sont affichables avec la
commande
umask (user mask ).
§ umask affiche les droits à retirer dans un masque.
§ En standard, les entrées sont créés avec les droits rwx r-x r-x.
§ Dans ce cas, la commande umask donne la valeur 022 :
§ Le 0 indique qu'aucun droit pour l'utilisateur n'est retiré, donc rwx.
§ Le 2 indique que le droit w (2) est retiré pour le groupe et les autres, donc r-x.
n Par exemple: umask 026 est équivalent à un chmod 751 sur le nouveau
fichier créé.
59. Système de fichiers : chown,
chgrp
$ chown nouveau-propriétaire nom-fichier
n Changer le propriétaire et le groupe
n On peut donner un fichier à un autre utilisateur, c’est à dire qu'il
deviendra propriétaire du fichier.
n On peut changer le groupe.
$ chgrp nouveau-groupe nom-fichier
n chown et chgrp sont utilisables que si on est propriétaire du fichier.
60. Recherche de fichiers : find
$ find répertoires... [options...]
n où répertoires... permet d’indiquer le (ou les) répertoire( s) de départ de la
recherche et les options permettent de traiter et de récupérer les données.
n options permettent de rechercher des fichiers qui ont certaines caractéristiques:
n -name modèle_nom : les fichiers dont le nom répond au modèle modèle_nom,
n -size n : les fichiers dont la taille est n (en blocs de 512 octets),
n -mtime n : les fichiers dont le nombre de jours depuis la dernière modification est n,
n -atime n : les fichiers dont le nombre de jours depuis le dernier accès est n,
n -user nom: les fichiers dont le propriétaire est nom,
n -type t : les fichiers du type t (f pour un fichier ordinaire),
n -perm nombre: les fichiers dont les autorisations sont de la forme nombre,
n -perm -nombre: les fichiers dont les autorisations sont au moins de la forme nombre...
n D’autres options permettent de traiter les informations reçues:
n -print: pour afficher à l’écran le résultat de la commande
n -exec commande {} ; : permet d’exécuter une commande sur les fichiers qui
vérifient les critères de la commande find. Ces fichiers sont passés à la commande -
exec par les signes {}.
n -ok commande ;: effectue la même opération que ci-dessus mais demande une
confirmation de l’utilisateur avant l’exécution de la commande..
61. Exemples d’utilisation de find
n $ find / -name "* info*" –print
Affiche le nom de tous les fichiers de toute l’arborescence du système qui
contiennent le mot info,
n •$ find ~ -mtime -20 –print
Affiche les fichiers à partir du répertoire de l’utilisateur qui ont été modifiés dans
les vingt derniers jours,
n $ find /home/etud1 ! -user X -exec ls -ali {} ;
Affiche un listing détaillé de tous les fichiers qui n’appartiennent pas à
l’utilisateur X dans l’arborescence /home/etud1/
n $ find /home/etud1/X -perm -002 -exec ls -l {} ;
Affiche un listing détaillé des fichiers de l’arborescence /home/etud1/X qui ont
au moins l’autorisation d’écriture pour les autres,
n $ find . ( -name a.out -o -name core -o -name "*. o" ) -
ok rm {} ;
Supprime, après confirmation de l’utilisateur, tous les fichiers à partir du
répertoire courant (et dans tous les sous- répertoires) du type a.out, core et .o
...
62. Les entrées et les sorties
n Il y a trois sortes d'entrées sorties ou flux de données :
n L'entrée standard, c'est à dire ce que vous saisissez au clavier,
n La sortie standard, c'est à dire l'écran, plus précisément le shell,
n La sortie standard des messages d'erreurs consécutifs à une
commande, qui est, par défaut, l'écran.
n Chacun de ces flux de données est identifié par un numéro
descripteur:
n 0 pour l'entrée standard,
n 1 pour la sortie standard
n 2 pour la sortie standard des messages d'erreur.
63. § À la connexion, le shell dispose de trois flots de communication :
- Entrée standard : stdin (numéro 0)
- Sortie standard et erreur standard : stdout et stderr (numéros 1 et 2)
§ L'association par défaut de ces flots est l' écran pour stdout et stderr, et le
clavier pour stdin.
§ Une redirection est une modification de l'une ou de l'autre de ces associations.
Elle est valable uniquement le temps de la commande sur laquelle elle porte.
§ Ainsi, la redirection de la sortie standard permet de récupérer le résultat dans un
fichier : commande > nom_fich. Par exemple,
$ who > users è rien à l'écran
$ cat users è fichier qui créé
etud1 console Aug 2 09:45
etud2 ttyp2 Aug 2 12:17 (etud1)
etud3 ttyp3 Aug 3 11:52 (:0.0)
Redirection de la sortie standard
64. §Attention!!! Avec >, si le fichier de redirection existe, son contenu initial est
perdu. $ date > users
$ cat users
Sat Mar 11 11:00:00 MET DST 2006
§ La redirection double (commande >> nom_fich) permet de ne pas détruire le
fichier existant, mais ajoute le nouveau contenu en fin de fichier.
$ pwd >> users
$ cat users
Sat Mar 11 11:00:00 MET DST 2006
/export/home/etud1
§ Avec >> , si le fichier n'existe pas, il est créé, comme pour une redirection
simple.
Redirection double de la sortie
standard
65. § Moins utilisée que la redirection de la sortie standard, la redirection de l'entrée
standard (commande < nom_fich) permet à une commande d'utiliser comme
données le contenu d'un fichier à la place d'une lecture clavier.
§ Exemple avec la commande write :
- $ write etud1 ètexte lu au clavier
bonjour
touche CTRL-D è Message reçu par etud1 contenant « bonjour »
- Création d'un fichier contenant le message :
$ cat > message è texte lu au clavier
Re-bonjour
touche CTRL-D
$ write etud1 < message èredirection de l'entrée standard
èMessage reçu par etud1 contenant « Re-bonjour »
Redirection de l'entrée standard
66. Redirection de l'entrée standard
n Autre exemple:
$ sort < file
n On envoie le contenu du fichier file vers la commande sort (trie), celle- ci
va donc trier le contenu du fichier, par défaut le résultat sort sur la sortie
standard, c'est à dire à l'écran, plus précisément sur le shell.
n Avec : sort < file > file-trié
n sort < file : a pour effet de trier le fichier « file »
n >file-trié: a pour effet d'envoyer le résultat (le fichier trié) dans le
fichier « file-trié ».
Le résultat n'apparaît plus à l'écran, mais est sauvegardé dans un
fichier.
67. n Avec la redirection « << » la commande va lire les caractères jusqu'à la
rencontre d'une certaine chaîne de caractères.
Exemple: la commande cat (catalogue, permet d'éditer le contenu d'un
fichier).
n $cat << fin on tape du texte jusqu'à la chaîne de
caractère fin >
n En tapant la commande, on revient à la ligne, mais on perd le prompt:
n cat va lire (et éditer) les caractères qu’on saisit jusqu'à ce qu'il rencontre la
chaîne fin, à ce moment là, le prompt apparaît à nouveau.
n Si on veut créer un fichier avec un peu de texte à l'intérieur :
n $cat << fin > mon-fichier on tape du texte qui sera
sauvegardé dans mon- fichier, pour terminer le texte fin >
n Le texte qu’on vient de saisir, se trouve donc dans mon-fichier.
n Avec la commande : >fichierVide, on crée un fichier vide
fichierVide.
Redirection double de l'entrée
standard
68. Redirection des erreurs
n Par défaut les messages d'erreur s'affichent à l'écran (code 2),
n On peut modifier ce comportement.
n On peut sauvegarder dans un fichier ses messages d'erreur, pour analyse
ultérieure, en tapant : cat mon-fichier 2> fichier-erreur
n Si on rencontre une erreur pendant l'exécution de la commande d'édition cat
de mon-fichier (absence du fichier par exemple), le message d'erreur sera
sauvegardé dans le fichier fichier-erreur .
n En tapant : sort mon-fichier > file-trie
n On redirige le résultat de la commande sort mon-fichier vers le fichier
file-trie,
n la sortie standard n'est donc plus l'écran (plus précisément le shell ou terminal)
mais le fichier file-trie .
n Par défaut, les messages d'erreur s'affichent dans le shell, on peut faire en
sorte qu'ils s'affichent dans le fichier file-trie, en tapant :
sort mon-fichier > file-trie 2>& 1
n Avec la syntaxe >& on indique que les messages d'erreurs seront redirigés
vers la sortie standard qui est le fichier file-trie .
69. Les pipes
n Un pipe (tube de comm) permet de rediriger la sortie d'une commande
vers une autre.
n commande1 > sortie1
On redirige cette sortie vers une autre commande, ça devient donc une
entrée pour cette dernière commande, pour cela:
commande2 < sortie1
n La syntaxe commande1 | commande2 ( | étant le symbole de pipe) est
totalement équivalente aux deux commandes précédentes.
stdin0 stdin0
stdout1
stdout1
sterror2 sterror2
processus1 processus2
70. Les pipes : exemple
n Exemple : $ ls | grep Master
n ls permet la visualisation de fichiers, en tapant ls, on obtient :fichier1
fichier2 fichierMaster
n grep : permet la recherche d'une chaîne de caractère dans une liste
donnée,
n La première commande aura pour effet de lister le nom des fichiers se
trouvant à l'endroit où l'on a tapé la commande,
n La sortie standard (le résultat de la commande) est donc une liste de nom,
elle est redirigée vers la commande grep, qui va y chercher une chaîne de
caractère contenant Master.
n Le résultat est donc fichierMaster
71. Exécution séquentielle,
regroupement et imbrication de
commandes
n Exécution séquentielle : le séparateur « ; » permet d'enchaîner des
commandes sans relation entre elles.
$ ls ; who ; pwd è exécution en séquence de ls, who et pwd
n Regroupement : (...) permet de considérer les commandes incluses comme
une seule pour un tube ou une redirection.
$ (date ; who) > /tmp/users : redirection des 2 commandes
n Imbrication : entre $( et ) ou entre anti-quotes ` , la commande à
exécuter est remplacée par son résultat.
n Cela permet d'utiliser le résultat d'une commande comme argument d'une autre
$ echo Je suis sous $(pwd)
n 1. Exécution de la commande pwd
n 2. Exécution de la commande echo Je suis sous résultat de pwd
72. Désactivation de l'interprétation de
caractères spéciaux
n Entre simple quotes ( « ‘ » ) les caractères spéciaux ne sont pas interprétés par le
shell mais deviennent de simples caractères.
n Cela permet d'utiliser les caractères spéciaux dans les arguments.
$ echo 'deux > trois' èaffichage à l'écran
deux > trois
n Avec le caractère anti-slash « » le caractère (spécial) qui le suit n'est pas
interprété.
$ echo deux >> trois
deux >> trois
n Si on veut mélanger des caractères spéciaux, des variables, des commandes..., il faut
utiliser les guillemets ( " ).
n Seuls sont interprétés les méta-caractères $ (commandes et variables), « » (annulation)
et « ` » (commandes).
$ echo "Mon répertoire courant est $(pwd)"
Mon répertoire courant est /export/home/etud1
n Avec de simples quotes, $(pwd) ne serait pas interprété.
73. Variables
n Le nom d'une variable commence par une lettre ou le souligné ( _ ) suivi de lettres,
chiffres et _ .
n Affectation d'une variable par nom_var=valeur: $ mois=janvier
n Utilisation d'une variable par $nom_var : $ echo $mois
n Affichage de la liste des variables avec la commande set.
n Suppression d'une variable avec la commande unset : $ unset mois
n Quelques variables pré-définies :
n HOME : répertoire de connexion (cd et cd ~ sont égales à cd $HOME)
n PATH : liste des répertoires de recherche des commandes séparés par :
n L'ordre des répertoires est significatif, ce qui permet le choix de la version d'une commande.
n PS1 : invite de commande (par défaut $ )
n PS2 : invite de commande de continuation (par défaut > )
n IFS : séparateurs de mots (par défaut, espace, tabulation et NEWLINE)
n PWD : répertoire courant
74. Alias d’une commande
n Un alias sert à (re)définir le nom d'une commande.
n Cela sert à créer des mnémoniques, des noms abrégés...
$ alias ll="ls -l" ; ll è définition puis utilisation
-rw-r--r-- 1 etud1 171 Nov 10 09:40 users
$ ll > listefich è autre utilisation
$ alias ls="ls -a" è redéfinition de ls
$ alias è liste des alias
ll="ls -l"
ls="ls -a«
$ unalias ll ; ll èsuppression puis commande inexistante
ll : not found
75. Configuration du compte
n À la connexion, des shell-scripts particuliers sont exécutés pour paramétrer
la connexion.
n /etc/profile est un fichier maintenu par l' administrateur pour la
configuration par défaut des comptes sur une machine.
n ~/.bash_profile, ~/.bash_login, ~/.bashrc et ~/.profile sont des fichiers
maintenus par l' utilisateur pour paramétrer son compte.
n On y trouve des affectations de variables : PATH, MANPATH, PS1..., des
définitions d'alias, le positionnement de l'umask...
n Il est aussi possible de modifier les valeurs par défaut des options du shell
avec la commande set :
n set -o vi : choix de l'éditeur de la ligne de commande
n set -o ignoreeof : plus de déconnexion par CTRL-D, mais utiliser exit
n set -x : mode trace (affichage des commandes avant leur exécution)
n set +x : suppression du mode trace
77. Périphériques de stockage et
Système de fichiers
Rappel sur les disques durs:
n Un disque dur est composé de plateaux reliés à un moteur central et
l'on trouve des têtes de lecture de part et d'autre de chacun des
plateaux.
n Sur chaque plateau, on trouve des pistes cylindriques découpées en
secteurs
n L’adressage d'un secteur est une référence au cylindre, à la tête de
lecture utilisée, à la piste, et enfin au secteur
n Il existe un ensemble de secteurs particuliers appelé le MBR, très
petit en général et partagé en deux parties :
n Table des partitions (info sur l’emplacement et taille partition)
n Système d'amorçage (chargé de lancer l’OS)
78. Périphériques de stockage et
Système de fichiers
Les Partitions:
n A l’installation, un disque dur n’est ni partitionné ni
formaté
n Partitionner: définir des espaces réservés sur le
disque
n Formater: préparer la partition à recevoir des
informations
n Une partition est définie par:
• Son type
• Son emplacement de début de partition
• Sa taille (ou son emplacement de fin de partition
79. Périphériques de stockage et
Système de fichiers- Les Partitions
n Un partitionnement est réversible (non physique)
n Les informations de partionnement sont stockées par
le BIOS dans le MBR (Master Boot Record)
n Notion d’activation:
• Une seule partition peut être activée sur un
ordinateur
• Indique où il doit aller chercher le noyau du
système d’exploitation pour le démarrage
80. Périphériques de stockage et
Système de fichiers - Les Partitions
3 types de partitions:
• Partition Principale:
• Au maximum 4
• Pas de minimum
• Accepte tout type de système de fichiers
• Partition Étendue:
• Ne peut contenir que des partitions logiques
• Ne peut pas recevoir de système de fichiers
• Ne peut exister que s’il existe une partition principale
• Partition Logique:
• Contenue dans une partition étendue
• Pas de limitation en nombre
• Accepte tout type de système de fichiers
81. Périphériques de stockage et
Système de fichiers- Les Partitions
Les avantages:
n Évite la perte de place (DOS)
n Possibilité d’installer plusieurs OS sur une même
machine
n Sauvegarde des données en cas de réinstallation
n Sauvegarde des données en cas de plantage
n Séparation logique des répertoires (système,
utilisateur, fichiers de logs,…)
82. Périphériques de stockage et
Système de fichiers- Syst. Fich.
Les Systèmes de Fichiers:
n Système de fichiers: manière dont un système stocke
ses données sur un disque
n Pour Linux « ext2fs » est le plus répandu:
• Répertoires séparés par des «/»
• Sensible à la casse (« aaa » <> « Aaa »)
• Les fichiers cachés commencent par «. »
• Les espaces et les noms longs sont acceptés
• Défragmentation quasi-inutile
n Nouveaux systèmes de fichiers journalisés:
• Ext3fs; • ReiserFS; • JFS
83. Périphériques de stockage et
Système de fichiers- Syst. Fich.
n Autre type de système:
le système de fichiers « Swap »
• Dédié à l’utilisation de la mémoire virtuelle
• Sert de mémoire vive quand la RAM est saturée
• Utilisée intensivement par le système pour la
décharge des logiciels en mémoire
84. Périphériques de stockage et
Système de fichiers- Syst. Fich.
n Linux a une structure de partitions spécifique:
n Deux types au minimum
• Une ext2fs (ou autre) pour le système ou les
données
• Une swap pour la mémoire virtuelle (à peu près
la même taille que la RAM)
n On accède aux partitions par un pointeur stocké dans
« /dev »
85. Périphériques de stockage et
Système de fichiers- Syst. Fich.
n /dev est le répertoire des périphériques
n Sous UNIX, TOUT est fichier
n Pointeur de la forme: « /dev/PPLN » avec:
q PP: type de bus
• « hd » pour les disques dur IDE
• « sd » pour les disques SCSI
• « fd » pour les lecteurs de disquettes
q L: lettre du périphérique concerné
q N: numéro de partition concernée
• 1 à 4: partition principale ou étendue
• >4: partitions logiques
86. Périphériques de stockage et
Système de fichiers- Syst. Fich.
Exemples:
n /dev/hda:périphérique maître du bus primaire IDE
n/dev/hdd: périphérique esclave du bus secondaire
IDE
n /dev/hda1: partition primaire du périphérique
maître du bus primaire IDE
n /dev/hda7: 3ème partition logique du périphérique
maître du bus primaire IDE
87. Périphériques de stockage et
Système de fichiers- Syst. Fich.
Le Montage de Systèmes de Fichiers:
n Monter un système de fichiers ó l’associer à un
répertoire sur le système
n Par exemple, le système de fichiers racine est monté
sur «/»
n Un système de fichiers n’est pas accessible tant qu’il
n’est pas monté
n Commande « mount »:
mount –t <système de fichiers> <périphérique>
<répertoire>
Ex: « mount –t vfat /dev/hda1 /windows »
n Démonter un répertoire:
« umount <répertoire>»
88. Périphériques de stockage et
Système de fichiers- Syst. Fich.
Le Montage de Systèmes de Fichiers:
n Les points de montage sont décrits dans le fichier
«/etc/fstab »
n Notations pour les systèmes de fichiers:
• « ext2 »: Ext2fs
• « vfat »: FAT32
• «msdos»: FAT16
• « ntfs »: NTFS (lecture seulement)
• « iso9660 »: CD- ROM/ DVD- ROM
Ex: mount –t iso9660 /dev/hdc /cdrom
89. Périphériques de stockage et
Système de fichiers- Syst. Fich.
n Partitionnements conseillés pour un système
«propre»
• Une partition /
• Une partition /boot
• Une partition /home
• Une partition /var
• Une partition /usr
• Une partition swap
90. Périphériques de stockage et
Système de fichiers- Syst. Fich.
Le Système de Fichiers «/proc »:
n « /proc » est un répertoire de la racine
n Il n’existe pas physiquement sur le disque
n C’est un pseudo-système de fichiers tenu à jour par
le kernel
n Un sous-répertoire par processus
n Fichiers importants:
• « cpuinfo »: informations sur le processeur
• « filesystems »: liste des systèmes de fichiers
supportés par le système
• « kcore »: image de la mémoire physique du
système
• « meminfo »: informations sur la mémoire
92. Périphériques de stockage et
Système de fichiers- Syst. Fich.
Le Système de Fichiers «/proc »:
n Informations sur un processus particulier (donc dans
un sous-répertoire de /proc portant comme nom le PID
du processus)
• « cmdline »: ligne de commande par laquelle le
processus a été lancé
• « cwd »: le répertoire courant du processus
• « environ »: environnement du processus
• « exe »: pointeur vers le binaire exécuté
• « fd »: liens vers les fichiers ouverts par le
processus
• « maps »: plages mémoires allouées par le
processus
94. Caractéristiques d’un processus
n Un processus est un programme en cours d'exécution. Un processus a besoin
de ressources matérielles : l'unité centrale, la mémoire centrale et l'accès à des
périphériques d'entrées/sorties.
n Ses caractéristiques statiques, c'est-à-dire ne variant pas au cours de sa vie,
sont:
n Un numéro unique : PID (Process IDentifier ),
n Un propriétaire déterminant les droits d'accès du processus aux ressources :
ouverture de fichiers...
n Un processus parent dont il hérite la plupart des caractéristiques,
n Un terminal d'attache pour les entrées/sorties.
n Ses caractéristiques dynamiques sont :
n Priorité, environnement d'exécution...
n Quantité de ressources consommées (temps unité centrale utilisé...)
95. Arborescence des processus
n Un processus est toujours créé par un autre processus appelé processus
parent.
n Ainsi tous processus a un processus parent sauf le tout premier. Ce tout
premier processus est appelé init et son identifiant est égal à 1 (PID = 1).
n Deux types de processus existent :
n Les processus utilisateurs, tous issus du shell de connexion ;
n Les processus démons :
n Un démon est une traduction abusive de daemon.
n Ces processus daemon assurent un service et sont souvent lancés au
démarrage de la machine.
n Les principaux services assurés par des processus daemon sont l'impression, les
tâches périodiques, les communications, la comptabilité, le suivi de tâche.
96. Commande ps
n La commande ps affiche les caractéristiques des processus à un instant donné.
n Par défaut, ps affiche les processus de l'utilisateur.
n $ ps -l
F UID PID PPID C PRI NI SZ RSS WCHAN S TTY TIME COMMAND
20488000300 5179 5174 0 5 0 28 0 child S co 0:00 xinit
20488201300 5199 5187 0 15 0 60 156 kernel S po 0:01 sh
20000001300 5624 5199 21 30 0 192 432 R po 0:00 ps –l
| | | | | | | | | | | | | |
| | | | | | | | | | | | temps commande
| | | | | | | | | | | terminal
| | | | | | | | | | état
| | | | | | | | | événement attendu
| | | | | | | taille taille en mémoire réelle du process
| | | | | priorité
statut #user #proc #parent
97. Commande ps
n Affichage des processus en cours:
• « ps »: affiche les processus utilisateurs
• « ps -l »: affiche les processus utilisateurs en
détails
• « ps –aux »: affiche tous les processus d’un
système
98. Commandes pstree et top
n La commande pstree permet de visualiser l'arborescence des
processus.
n La commande top permet de visualiser dynamiquement les
caractéristiques des processus (l'affichage est actualisé
périodiquement).
n En plus des informations sur les processus, top donne des
indicateurs sur l'état du système : occupation de la mémoire, de
l'unité centrale...
n top: montre l'évolution de ces indicateurs en temps réel .
100. Processus en avant et en arrière
plan
n Par défaut, une commande s'exécute en avant-plan (en anglais foreground).
n Par exemple, l'utilisateur saisit la commande $ date.
n Le shell crée un processus enfant et attend qu'il se termine.
n Le processus enfant exécute la commande date.
è Les processus parent et enfant s'exécutent séquentiellement (l'un après
l'autre).
è Une seule commande est donc exécutée à la fois.
n Une commande peut aussi s'exécuter en arrière-plan (en anglais background).
n Par exemple, l'utilisateur saisit la commande: $date &
n Le shell crée un processus enfant et n'attend pas qu'il se termine.
n Le processus enfant exécute la commande date.
è Les deux processus, parent et enfant, s'exécutent alors simultanément .
101. Suspension et reprise d’un
process
n Sous Unix, il est possible de suspendre le processus en avant-plan en tapant
CTRL-Z.
n Le processus suspendu pourra reprendre ultérieurement.
n Il existe deux façons de reprendre un processus suspendu :
n En avant-plan par la commande fg (foreground),
n En arrière-plan par la commande bg (background).
n Par exemple :
n $ test èlancement de test en avant-plan
n CTRL-Z è édition suspendue
n $ bg è reprise de l'édition en arrière-plan
n Un job est défini comme un processus en arrière-plan ou suspendu.
n La commande « jobs » permet de lister ces processus.
102. Suppression d’un process
n Généralement un processus se termine à la fin de l'exécution de la dernière
instruction ; il est alors détruit par le système d'exploitation.
n Un utilisateur peut terminer un processus en avant-plan en tapant CTRL-C.
n Un utilisateur peut aussi terminer un processus avec la commande kill
envoyant un signal à un processus.
n Par défaut, la commande kill envoie le signal 15 de terminaison (SIGTERM).
$ kill PID
n La commande kill peut aussi forcer la terminaison d'un processus en envoyant le
signal 9 de destruction (SIGKILL).
$ kill -9 PID_processus
n Notez que le droit de détruire un processus est réservé à son propriétaire.
103. Etat d’un process
n Pour un utilisateur, un processus peut se trouver dans trois états:
n en exécution (exécution de la commande), suspendu (CTRL-Z) ou terminé.
Le schéma suivant récapitule les transitions permettant de passer d'un état à un
autre.
104. Processus: Gestion des Signaux
n Un processus peut émettre et recevoir des signaux
POSIX
n 64 signaux différents (liste complète par « kill –l »)
n Les 3 plus importants:
• SIGHUP –valeur 1 – Fin du processus de contrôle
(terminal par exemple)
• SIGINT – valeur 2 – Interruption du processus
• SIGKILL –valeur 9 – Interruption brutale du
processus
n Émission d’un signal par « kill -<n°> « processus »
Ex: kill –9 sshd
106. Exécution d’un script
n On appelle ShellScript un fichier qui contient des noms de commandes et des
instructions internes au shell.
n L’utilisateur peut lancer un shellscript commandes en une commande.
n Les commandes contenues dans le shellscript sont alors lancées comme si
l’utilisateur les tapait sur la ligne de commande.
n La 1ère ligne d’un script shell peut être lue comme une instruction du shell pour
exécuter le script dans un nouveau type de shell spécifié
n Dans un script shell, le « # » permet de placer tous les commentaires désirés
n #!/bin/sh : en 1ère ligne, assure que le script est toujours exécuté en bourn
shell
n On peut lancer l’exécution d’un shellscript de trois manières différentes:
n Lancement par le nom du shellscript: $script (ou $./script)
n Lancement par appel explicite du shell: $ /bin/sh script
n Lancement par appel de la commande interne «.»: $ . script
107. Exécution d’un script
n Lancement par le nom du shellscript: $ script (ou $./script)
Si script est exécutable, la commande exécute un nouveau shell
n Lancement par appel explicite du shell: $ /bin/sh script
Exécute script dans un nouveau shell
n Lancement par appel de la commande interne « . »: $ . Script
Exécute script dans l’environnement du shell courant
n $ exec script : exécute un nouveau shell en écrasant le shell courant
sh
sh
Shell en attente
ksh script
sh Shell interrompu
sh script
108. Exécution de commandes
n Exécution séquentielle:
« commande1; commande2; commande3 »
n Exécution en tâche de fond:
«commande1 &»
109. Fichiers (Scripts) de configuration
exécutés après le login
n Lecture et exécution de « /etc/profile »
n Lecture et exécution de «.bash_profile » dans le
répertoire personnel
n Lecture et exécution de «.bashrc » dans le
répertoire personnel
n Lecture et exécution de « /etc/bashrc »
110. Facilités de saisie des commandes
n Historique des commandes: flèches haut et bas
n Copie dans un terminal: sélection d’un texte, copie
par clic-droit
n L’opérateur «~» renvoie au répertoire personnel
n La commande « cd – » renvoie au répertoire
précédent
n Complétion des commandes: touche « TAB »
112. Redirections d’entrées-sorties
n En général, trois descripteurs pour le shell (sur 10
possibles):
• 0: entrée standard
• 1: sortie standard
• 2: sortie d’erreur
n Les différentes redirections:
• « commande >fichier »:redirection de sortie vers
fichier avec écrasement
• « commande >> fichier »: idem mais ajout des
données à la fin
• « commande <fichier »: la lecture du descripteur
0 se fera sur ce fichier
• « commande << mot »: lecture de l’entrée
standard jusqu’à la première occurrence de « mot »
114. Exécutions conditionnelles
n « commande1 && commande2 »:
commande2 n’est exécutée que si
commande1 n’a pas renvoyé d’erreur
n « commande1 || commande2 »:
commande2 n’est exécutée que si commande1 a
renvoyé une erreur
115. Les Variables d’environnement
n Le shell permet le stockage de variables
d’environnement (en majuscules):
• Définies pour l’ensemble du système
• Définition par « VARIABLE= valeur
export VARIABLE»
• Exemples: HOME, PATH, SHELL, USER
• On accède à leur valeur en les faisant précéder
d’un « $ »
n Pour visualiser toutes les variables d’environnement:
« env »
117. Les Expressions rationnelles
n Servent de « joker » dans les noms de fichiers:
• «*»: n’importe quelle chaîne de caractères
• «? »: n’importe quel caractère
• « [a-z] »: correspond à {a,b,c,…,z}
• « [A-Z] »: correspond à {A,B,C,…,Z}
• « [0-9] »: correspond à {0,1,2,…,9}
n Exemples:
• « *[0-9]* »: toute chaîne qui contient au moins
un chiffre
• « [c-fAX-Z] »: correspond à {c,d,e,f,A,X,Y,Z}
118. Variables
n Nous appellerons variable simple toute variable définie par l’utilisateur pour ses
propres besoins.
n Mécanismes d’affectation:
n On peut affecter une chaîne de caractères aux variables, et par extension, toute
affectation répond à la syntaxe suivante: $ variable= valeur
n Attention!!! il n’y a pas d’espace de part et d’autre du signe «=». De plus, la
commande: (variable= ) affecte la chaîne vide à variable.
n Désignation de la variable:
n Pour désigner une variable, il suffit d’utiliser la syntaxe suivante: $variable
n Cette notation servira pour tous les types de variables que nous verrons par la suite.
n Si la variable doit être suivie d’une valeur autorisée (exemple de nom de variable
auquel on ajoute séquentiellement un nombre), la notation est alors la suivante:
${ variable} caractère
n Affichage d’une variable:
n La commande: echo [- n] [texte] $variable permet d’afficher la valeur de la
variable. On peut aussi l’intégrer dans du texte.
L’option -n permet d’éviter le passage à la ligne après l’affichage.
119. Variables
Exemples:
n Affectation une valeur à une variable: var=valeur
$var1=Vendre
n Référencer une variable: $
$echo $var1 => Vendre
n Séparer une référence de variable du reste du texte: ${}
$echo Le cours se termine $var1di => Le cours se termine
$ echo Le cours se termine ${var1}di =>Le cours se termine Vendredi
n Obtenir la longueur d’une variable: ${#}
$ echo La longueur de var1 est ${#var1}
120. Variables
n Saisie au clavier: read
n Il est parfois utile de laisser l’utilisateur entrer la valeur de ses variables. La
commande: read variable... lit les valeurs sur l’entrée standard. Le premier mot est
affecté à la première variable et ainsi de suite. Si il y a plus de variables que de mot
saisis, le shell affecte aux dernières variables la chaîne vide.
n Exportation des variables: export
n D’ordinaire, une variable n’est utilisée que dans le shell-script où elle reçoit son
affectation. Si on souhaite l’utiliser pour les programmes appelés ultérieurement, on
doit l’exporter. La commande:
$ export variable...
recopie la valeur des variables en paramètre dans l’environnement qui sera passé aux
shell-scripts ultérieurs.
n Visualisation des variables disponibles: env
n La commande: $ env
affiche les valeurs des variables de l’environnement du processus en cours, c’est à
dire celles qu’il a reçues et celles qu’il a envoyées.
121. Variables
n La commande: $ set
affiche les valeurs des variables disponibles, c’est à dire toutes les variables même celles
qui ne seront pas transmises.
n Supprimer une variable: $ unset
n La commande: $ unset variable
supprime la variable de la liste des variables disponibles.
n Substitutions:
n Au niveau de l’affichage, il est parfois utile de pouvoir effectuer un certain
nombre de substitutions:
$paramètre : affiche la valeur courante de paramètre,
${paramètre}: affiche la valeur courante de paramètre et autorise la concaténation,
${paramètre:-valeur}: affiche la valeur courante de paramètre si elle est non nulle,
sinon affiche valeur,
${ paramètre:= valeur}: affiche la valeur courante de paramètre si elle est non
nulle, sinon affiche valeur et affecte « valeur » à paramètre
122. Substitution de commande
n Pour affecter une variable avec le résultat d’une
commande:
var=$( commande ) ou var=`commande`
n Exemple:
n Whoami
etud1
n var=$(whoami)
n echo Mon nom est $var
Mon nom est etud1
n echo Il y a `ls | wc –l`fichiers dans `pwd`
Affichera le nombre de fichiers dans le répertoire courant
123. Paramètres positionnels
n Des paramètres peuvent être transférés aux scripts shells comme
arguments sur la ligne de commande:
n $script1 arg1 arg2
n Arg1: paramètre positionnel numéro 1
n Arg2: paramètre positionnel numéro 2
n Ils sont désignés dans le script par:
n $1 à $9 : pour les neuf premiers
n ${10} à ${n} : pour le ksh uniquement
n Le nbre total de paramètres positionnels est donné par $#
n $ cat script1
n echo $1 $2 $3 $#
n $ script arg1 arg2 arg3
n arg1 arg2 arg3 3
124. Paramètres positionnels
n Dans un script shell, la commande set peut:
n Changer les valeurs des paramètres positionnels
n Désactiver les valeurs (unset) des param. positionnels précédemment
définies
n Exemple:
$ cat script
echo $1 $2 $3
set valeur1 valeur2
echo $1 $2 $3
$ script a b c
a b c
valeur1 valeur2
125. Décalage d’arguments
La commande shift [n] déplace les arguments vers « la gauche »
n Annulation du premier argument ou de l’argument « le plus à gauche »
n Réduction des paramètres positionnels
Exemple:
$ cat decal
echo $1 $2 $3 et $#
shift
echo $1 $2 $3 et $#
$ decal arg1 arg2 arg3 è
arg1 arg2 arg3 et 3
arg2 arg3 et 2
126. Variables spéciales
n Un certain nombre de variables sont utilisées dans les
shellscripts afin de déterminer et de séparer les paramètres:
n $#: donne le nombre d’arguments passés au script,
n $*: donne la liste des paramètres passés au script: $1, $2, …, $n
n " $*" = " $1, $2, …, $n"
n $@: équivalent à $*, mais "$@" signifie: "$1", "$2",..., "$n"
n $n: valeur du n- ième argument du script,
n $$: le numéro de processus (PID) du script,
n $!: le numéro de processus du dernier programme lancé en
background,
n $?: le code de retour du dernier programme lancé.
n $0: Le nom utilisé pour appeler le script shell
127. Variables spéciales
n Exemples:
$ cat param2 $ param2 1 "2 et texte "
echo p1=$1 p2=$2 p3=$3 p1=1 p2=2 et texte p3=
set "$@"
echo ‘set avec "$@" ‘ set avec "$@"
echo p1=$1 p2=$2 p3=$3 p1=1 p2=2 et texte p3=
set $*
echo ‘set avec $*’ set avec $*
echo p1=$1 p2=$2 p3=$3 p1=1 p2=2 p3=et
set "$*"
echo ‘set avec "$*" ’ set avec "$*"
print p1=$1 p2=$2 p3=$3 p1=1 2 et texte p2= p3=
128. Sortie du script
n Au moyen de la fonction exit n le code de retour est alors n.
n Si le shellscript ne se termine pas par un exit, il renvoie le code de retour de la
dernière commande exécutée.
129. Le shell et le shell suivant
n Que se passe-t-il au niveau des variables lorsqu’on lance un sous-shell ou un
script?
n Les variables ne sont pas transférées, sauf si on les exporte !!!
n Set : pour dresser la liste de toutes les variables et leurs valeurs
n export var : exporte la variable var afin que les sous shells en héritent
n export : pour dresser la liste des variables qui sont exportées
sh
sh
Shell en attente
130. Le shell et le shell suivant
n Exemple d’héritage:
$ var=un
$ echo "var=$var"
var=un
$ sh
$ echo "var=$var"
var=
$ Ctrl-D
$ echo "var=$var’ "
$ var=un
$ export var
$ sh
$ echo "var=$var"
var=un
$ var=modif
$ Ctrl-d
$ echo "var=$var"
var=un
131. Script shell: Arithmétique
La commande (( )) :
n La commande (( )) effectue de longs calculs sans faire appel à un nouveau
processus
n Chaque argument est évalué comme une expression arithmétique
n A l’intérieure des (( )) les caractères spéciaux et les arguments contenant des
espaces n’ont pas besoin d’être placés entre simples quotes ou d’être protégés
par l’antislash
n Les variables n’ont pas besoin de $
n Le code retour de ((x)) est:
n 0 lorsque x est vrai (1)
n 1 lorsque x est fausse (#0)
Utilitaire bc :
n L’utilitaire bc est fourni par le système d’exploitation
n bc fonctionne en pipeline ou interactif
132. Script shell: Arithmétique
Exemples d’application de (( )) (calcul simple et opérateurs logiques:
Calcul simple:
n $ var=4
n $ (( var=var+1 ))
n $ echo $var è 5
n $ (( v=4))
n $ (( v=4*var+3 ))
n $ echo $v è 23
Opérateurs logiques :
!, <, <, >, >=, = =, !=, &&, | |
n $ (( exp1 && exp2 ))
Retourne 0 si exp1 et exp2 sont vrais
n $ (( exp1 | | exp2 ))
Retourne 0 si exp1 ou exp2 sont vrais
n $ (( n=10 ))
n $ (( (n=n-1) >= 0 )) ; echo $? è 0
bc:
$ bc
3*5 ; 7+3 : exécuté en interactif
15
10 Ctrl-d
133. Les Scripts Shell: Les Tests
n Existent sous deux formes: commande
« test condition» ou entre crochets [_condition_]
ou [[_condition_] ]
n Tests possibles sur les fichiers:
n [ -d fichier ]: vrai si fichier est un répertoire (et si il existe),
n [ -e fichier ]: vrai si le fichier existe,
n [ -f fichier ]: vrai si fichier est un fichier ordinaire (et si il existe),
n [ -r fichier ]: vrai si l’utilisateur a le droit d’accès en lecture sur fichier (s’il existe),
n [ -w fichier ]: vrai si l’utilisateur a le droit d’accès en écriture sur fichier (s’il existe),
n [ -x fichier ]: vrai si l’utilisateur a le droit d’accès en exécution sur le fichier (s’il existe),
n [ -c fichier ]: vrai si le fichier est un fichier caractère spécial (et si il existe),
n [ -b fichier ]: vrai si le fichier est un fichier bloc (et si il existe),
n [ -s fichier ]: vrai si fichier n’est pas vide,
n [ -L fichier ]: vrai si fichier est un lien symbolique,
n [ fichier1 -nt fichier2 ]: si fichier1 a été modifié plus récemment que fichier2,
134. Les Scripts Shell: Les Tests
n Tests binaires:
n [ -n chaîne ]: vrai si chaîne n’est pas vide,
n [ -z chaîne ]: vrai si chaîne est vide,
n [ nb1 -eq nb2 ] : vrai si les deux nombres entiers nb1 et nb2 sont égaux, on peut
remplacer eq par ne (différent), gt (supérieur), ge (supérieur ou égal), lt (inférieur), le
(inférieur ou égal).
n [ chaine1 = chaine2 ]: vrai si les deux chaînes sont identiques,
n [ chaine1 != chaine2 ]: vrai si les deux chaînes ne sont pas identiques,
n -a: opérateur logique et,
n -o: opérateur logique ou,
n !: négation logique
135. Structures de contrôle:
if … then ..else …fi
n La commande:
if test
then liste_ de_ commandes
else liste_ de_ commandes
fi
teste la valeur renvoyée par le test après le mot if et en fonction de ce code,
lance la liste de commande appropriée
n Si le code= 0 alors on exécute les commandes après le mot then sinon les
commandes après le mot else.
n Exemple d’utilisation: programme qui supprime interactivement selon la réponse
$ echo "Suppression interactive [oui/non]?"
read reponse
if [ $reponse = oui ]
then rm -i $@
else rm –f $@
fi
136. § Structure permettant de faire des chois multiples:
case $mot in
modèle 1) liste_ commande;;
modèle n) liste_ commande;;
*) liste_ commande;;
esac
§ Le premier modèle rencontré qui répond à la valeur de mot indique la liste de
commandes à exécuter. Si mot ne correspond à aucun modèle, l’instruction se
poursuit jusqu’à la condition *) et si celle- ci n’existe pas, jusqu’au esac .
§ Les modèles sont de la forme: valeur1 | valeur2 | ... | valeurn
§ Dans les modèles, on peut utiliser les caractères spéciaux *, ?, [] comme dans
le cas de la recherche d’un fichier.
Structures de contrôle: case
137. Structures de contrôle: case
§ Exemple d’utilisation: programme qui supprime interactivement selon
la réponse:
$ echo -n "Suppression interactive ? "
read reponse
case $reponse in
o| O| oui| OUI) rm -i $@;;
n| N| non| NON) rm –f $@;;
*) echo "Réponse non valide ";;
esac
138. while expression
do
Liste_de_commandes
Done
Boucle conditionnelle:
while do; until do
Until expression
do
Liste_de_commandes
done
§ La boucle while sera exécutée uniquement si expression est vraie.
§ La boucle until suit la logique inverse. Elle est exécutée uniquement si
expression est fausse.
§ Si expression est une commande ou un groupe de commandes, plutôt qu’un
test logique, on pourra rediriger l’entrée d’un fichier dans la
liste_de_commandes
Optionnel: < fichier Optionnel: < fichier
139. § Exemple1 d’utilisation:
§ Script: affichage
while [[ $# -gt 0 ]]
do
echo $1
shift
done
§ Exécution du script: $ affichage arg1 arg2
arg3 è arg1
arg2
arg3
Boucle conditionnelle:
while do; until do
140. § Exemple2 d’utilisation:
§ Script: etudiant
while read ligne
do
set - $ligne
echo "Le prenom de $1 est $2"
done < etudiants
§ Exécution du script: $ etudiant
è Le prenom de etudiant1 est
prenom1
Le prenom de etudiant2 est
prenom2
Le prenom de etudiant3 est
prenom3
Boucle conditionnelle:
while do; until do
141. § Exemple3 d’utilisation:
§ Script: user
Until who | grep etud1
do
echo " etud1 non connecte "
sleep 3
done
Boucle conditionnelle:
while do; until do
142. Boucle for
n for identificateur in mot1 mot2 …
do
Commandes utilisant $identificateur
Autres commandes
done
n for identificateur in *(métacaractères)
do
Commandes utilisant $identificateur
Autres commandes
done
n for identificateur
do
Commandes utilisant $identificateur
qui prendra les valeurs des paramètres positionnels
comme dans " $@ "
done
143. Boucle for
n Exemple d’utilisation de "for"
for fichier in *.sh
do
mv $fichier $fichier.script
done
145. Les Chargeurs de Boot
n Servent à démarrer un système d’exploitation
n Permettent le choix au démarrage
n Chargeurs:
• Windows NT: NTLoader
• OS/2: Boot Manager OS/2
• Linux: LILO (LInux LOader)
n GRUB: GRand Unified Boot loader
n S’installent le plus souvent dans le MBR du disque
146. Séquence de Boot de Linux
n Démarrage Hardware de la machine
n Chargement du BIOS: initialisation des périphériques
n Lecture du MBR (Master Boot Record);
n Lancement de LILO
n Choix du système;
n Chargement du noyau
n Chargement des pilotes de périphériques
n Lancement du fichier « init »
• Lecture de « /etc/inittab »
• Lancement du script « /etc/rc.d/rc.sysinit »
• Lancement des services (démons) contenus dans
le répertoire «/etc/rc.d/rc<n>»
• Lancement du script «/etc/rc.d/rc.local »
147. Mise en place d’un double-boot
n Windows 9X/Me/2000: LILO sur le MBR (en général,
configuration automatique à l’installation avec les
nouvelles distributions)
n Windows NT4: LILO sur la partition de démarrage
(/boot ou /).
ATTENTION: penser à activer cette partition de
démarrage
n Configuration ultérieure par la modification du fichier
«/etc/lilo.conf »
148. Niveau d’exécution (runlevel)
n Sert à définir l’état du système
n Sert à définir quels services seront lancés
n 7 états prédéfinis (possibilité d’en définir plus):
• 0: hors service
• 1: mono-utilisateur
• 2: multi-utilisateur sans réseau
• 3: multi-utilisateur avec réseau
• 4: indisponible
• 5: login graphique (X-Window doit être configuré)
• 6: redémarrage
n Défini dans le fichier «/etc/inittab »
n Pour changer de runlevel: « init <n> » (n: runlevel)
149. Arrêt & Redémarrage
n Arrêt du Système:3 Méthodes
• « shutdown –h now »
• «halt »
• « init 0 »
n Variantes:
• « shutdown –h 10 »: arrêt dans 10 minutes
• « shutdown –h 18:30 »: arrêt à 18h30
n Redémarrage: «shutdown –r now »
• <Ctrl><Alt><Del>: variable et défini dans
«/etc/inittab » (en général, redémarrage)
150. Lancement des commandes en
différé
n La commande « at » : exécute une commande ou un script à un
moment donnée.
$ at –f /export/home/etud1/script 8 pm Saturday
job xxxx at Sun March 26 20:00:00 2006
$ at –l
user = root xxxx Sat March 26 20:00:00 2006
$ at –r xxxx
n La commande « cron » :
n /usr/sbin/cron est un démon qui consulte régulièrement les fichiers du
répertoire /var/spool/cron
n Ces fichiers montrent le temps d’exécution de programmes ou scripts par
les users
n Format du fichier cron:
minute heure jour_du_moi moi_de_l’an jour_de_la_semaine
15 18 1 * * /script
151. Lancement des commandes en
différé
Configuration du « cron » :
n /etc/cron.d/cron.allow : Contient les utilisateurs autorisés à utiliser la
commande crontab
n /etc/cron.d/cron.deny : si le fichier cron.allow n’existe pas, les
utilisateurs du
fichier cron.deny ne sont pas autorisés à utiliser la commande crontab
n crontab –e : édite le fichier /var/spool/cron/ « user »
n crontab –l : affiche le fichier /var/spool/cron/« user »
n crontab « fichier » : remplace le fichier crontab actuel par fichier
152. Le service « syslog »
n Le démon syslogd reçoit des messages d’erreur émis par le noyau ou
les démons de certaines services
n Le fichier /etc/syslog.conf permet à l’administrateur de décider de la
destination des messages pour chaque sous-système
n $ more /etc/syslog.conf
*.err;auth.notice /dev/console
*.err;daemon,auth.notice
/usr/adm/messages
lpr.debug root
*.emerg *
sous-système Niveau Destinataire
(kernel, mail, (emerg, (fichier, périphérique, email,
Lpr, daemon, alert, crit, *: tous les utilisateurs connectés)
Auth, *: tous les sous err, warn,
Systèmes) notice, info, debug, none)
154. Archivage et Compactage
Le compacteur « gzip »
n Rapide et très efficace
n Compacte le fichier, sauvegarde le nouveau fichier
en rajoutant l’extension « .gz » et efface l’original
n Ne compacte qu’un seul fichier à la fois
n « gzip –l » donne des informations sur le fichier
Compacté
n Pour décompacter: « gunzip <fichier> »
156. Archivage et Compactage
L’archiveur « tar »
n Assemble plusieurs fichiers en un seul
n tar = « Tape Archiver »
n Syntaxe: « tar <fonction><options> <fichiers…> »
n Paramètre <fonction>:
n « c »: créer une nouvelle archive
n « x »: extraire les fichiers d’une archive
n « t »: afficher les fichiers d’une archive
n « r »: ajouter des fichiers à l’archive
n Options:
n « z »: utiliser le compacteur gzip (extension .tar.gz ou .tgz)
n « f »: spécifier le nom du fichier à lire ou écrire
158. Archivage et Compactage
n « tar » conserve l’arborescence et les propriétés de
chaque fichier
n En résumé:
n Créer une archive de plusieurs fichiers compactée:
tar czf dest.tar.gz src1 src2 …
n Décompacter une archive:
tar xzf fichier.tar.gz
n Visualiser une archive:
tar tzf fichier.tar.gz
159. L’Outil RPM
n RPM: Red Hat Package Manager
n Package: logiciel compilé+informations diverses
(source, dépendances,…)
n Outil d’installation de logiciels
n Gestion des dépendances :
grâce à l’utilisation d’une base de données
n Package: fichier de la forme
nom-version-architecture.rpm
n Lister tous les packages installés
« rpm –qa »
160. L’Outil RPM
n Installation d’un package:
« rpm –i package.rpm »
n Mise à jour d’un package:
« rpm –U package.rpm »
n Suppression d’un package:
« rpm –e package.rpm »
n Afficher des informations sur un package:
« rpm –qi package.rpm »
n Lister les fichiers d’un package:
« rpm –qpl package.rpm »
162. Commandes réseau
n Réseau TCP/IP: la carte Ethernet est désignée par
«eth0 »
n Préliminaire: donner un nom de machine par la
commande «hostname » (ou à l’installation)
n Fichiers de configuration:
n « /etc/hosts »: liste d’adresses IP et les noms des machines
associées
Ex: 127.0.0.1 localhost (adresse de Loopback)
n « /etc/networks »: liste d’adresse et de noms de réseaux
n « /etc/hosts »: spécifie la manière dont les noms de
machine seront traduits en adresses IP
n « /etc/resolv.conf »: adresses des serveurs de noms et des
domaines à utiliser
163. Commandes réseau
n « ping »: permet de vérifier si une mahine est
présente sur le réseau.
n Un « ping 127.0.0.1 » permet de vérifier que la
carte réseau fonctionne normalement
164. Commandes réseau
n « ifconfig »: permet de connaître la configuration
réseau de la machine, mais aussi de la changer
165. Commandes réseau
n « arp »: permet de mettre en correspondance les
adresses IP et les adresses MAC
n « route »: permet de voir, d’ajouter ou de
supprimer les routes déclarées sur la machine.
166. Commandes réseau
n « netstat »: permet de connaître les ports en
écoute sur la machine, les connexions actives et
d’autres choses
n « traceroute »: permet de déterminer la route prise
par les paquets
n « telnet »: permet de se connecter à distance sur
une machine
n « nslookup »: permet d’interroger un serveur de
noms
n « who »: permet de connaître les utilisateurs
connectés sur la machine
168. Commandes réseau
n « finger »: permet d’obtenir des informations sur
les utilisateurs d’une machine
n « tcpdump »: permet la capture de paquets sur le
réseau
n « nmap »: permet de scanner les ports d’une
machine
170. n L’administrateur se doit de surveiller l’utilisation des principales
ressources du système: processeur, mémoire centrale, pagination et
« swapping et les entrées/sorties
n Il doit être capable de remédier à leur mauvaise utilisation ou à leur
insuffisance
n Après diagnostic:
n Augmenter des ressources:
n Changer de machine - Augmenter la mémoire/le swap - Ajouter de l’espace
disque - Augmenter la taille des tables système
n Diminuer l’utilisation des ressources:
n Exécuter certains programmes la nuit – installer des quotas par user – diminuer
la taille de certaines tables pour augmenter d’autres
Ressources à surveiller
Mémoire CPU Entrées/
Sorties (I/O)
171. n iostat : affiche des statistiques sur utilisation des disques
n uptime : affiche les statistiques sur la charge générale du système
n swap : affiche les informations concernant l’utilisation du swap
n ps : information sur les processus
n time: temps CPU consommé par un processus
n netstat : utilisation du réseau
n vmstat : utilisation de la mémoire
n sar : outil général de surveillance
Cmdes de surveillance du système
172. n La commande vmstat affiche les statistiques sur les processus, la
pagination, l’activité du CPU et les interruptions.
n Syntaxe: # vmstat [options] [<n>] [<m>]
n Par défaut, la commande vmstat affiche les informations depuis le
démarrage du système, ou sinon, dans les <n> dernières secondes,
<m> fois, à l ’infini si <m> n’est pas précisé
n Exemple:
n # vmstat –s
n # vmstat –s 10 1
Surveiller le système: vmstat
173. n La commande netstat affiche les informations sur l’utilisation du réseau
n Syntaxe: # netstat [options]
n Options:
n -a: affiche l’état du socket -i: état des interfaces configurés sur le système
n -r: affiche table de routage -n: numéro de port, de réseau et les adresses
n -s: affiche les statistique sur les protocoles
n -m: affiche les informations sur les ressources mémoire utilisée par les
protocoles réseau
Surveiller le système: netstat
174. n La commande sar permet de surveiller toutes les ressources du
système:
n Surveiller l’usage du CPU:
n # sar -u : pourcentage d’utilisation du CPU
n # sar -q : nombre de processus en attente
n Surveiller l’usage de la mémoire:
n # sar -r : utilisation de la mémoire centrale et du swap
n # sar -w : surveille du swapping
n # sar -p : surveille le paging
n Surveiller les entrées/sorties:
n # sar -b : utilisation des tampons
n # sar -d : utilisation des disques
Surveiller le système: sar
175. n Le service de surveillance des processus doit être activé ainsi que celui
des données produites qui seront exploitées par la commande « sar »
n L’activation et la production des données sont réalisées par la commde
« sadc ». Les scriptes «sa1» et «sa2» collectent et sauvegardent les
données du système
n La commande « sadc » permet de collecter données <n> fois à
intervalle de <t> secondes et de stocker les données dans un fichier
journalier (/usr/adm/sa/sa<jj> où jj désigne le jour du mois)
n «sa1» et «sa2» sont activé via «cron» et produisent les données
quotidiennes respectivement pour les comptes « sys » et « root »
n Ex. de cron de sys: 0 * * * 0-6 /usr/lib/sa/sa1
20,40 8-17 * * 1-5 /usr/lib/sa/sa1
n Ex. de cron de root: 5 8 * * 1-5 /usr/lib/sa/sa2 –s 8:00 –e
Surveiller le système: sar
176. n Syntaxe:
n # sar [-abBcdghmOpqrRSuvwy] [-A] [-o fichier] t [n]
n # sar [-abBcdghmOpqrRSuvwy] [-A] [-s heure][-e heure] [-i seconde][-f
fichier]
-abBcdghmOpqrRSuvwy : désigne les ressources à surveiller
-A: equivalent à –abBcdghmOpqrRSuvwy
n,t: nombre de rapports espacés de « t » secondes
Surveiller le système: sar
ou
177. n -u: utilisation du CPU -a: opération d’accès au fichier
n -b: utilisation du cache -B: utilisation des buffers
n -c: utilisation des primitives -d: utilisation des périph. de type bloc
n -g: utilisation des I/O série -h: statistique sur les I/O physiques
n -m: utilisation des IPC -O: requêtes d’I/O asynchrones
n -p: statistiques de la pagination -y: activité des terminaux
n -q: pourcentage moyen des processus prêts à s’exécuter en mémoire en swap
n -r: pages de la mémoire et blocs de disque de swap inutilisés
n -R: stat. sur l’ordonnancement -S: stat. sur les requêtes SCSI
n -v: etat des tables du noyau -w: état de la pagination et du swapping
n Exemples: # sar –u 5 3 # sar -q 5 3 # sar -r 5 3 # sar -w 5
3
Surveiller le système: sar
179. Installation du serveur httpd
Deux méthodes :
n Package rpm
n Compilation des sources (www.apache.org)
n Conseillé pour bénéficier d’une arborescence standard et de
la dernière version
n Créer un répertoire temporaire: « mkdir temp »
n Décompacter l’archive: « tar xzf apache.X.Y.tar.gz »
n Lire les fichiers d’installation
180. Installation du serveur httpd
n Compilation des sources :
n Compiler les sources (vérifier la présence de « gcc » et de « make
»):
« # ./configure --prefix=/usr/local/apache
# make
# make install »
n Vérifier que tout s’est bien passé:
« # /usr/local/apache/sbin/apachectl start »
n Édition des fichiers de configuration:
n Access.conf: instructions permettant de gérer les accès au serveur
n Srm.conf: instructions sur les noms et les types accessibles aux
utilisateurs
n Httpd.conf: instructions sur le fonctionnement du serveur
181. Serveur http Apache
n Démarrer le serveur: « apachectl start »
n Arrêter le serveur : « apachectl stop »
n Configuration de httpd.conf:
n Changer l’utilisateur: champ « User »
n Changer le port: champ « Port »
n Configuration de srm.conf:
n Changer le répertoire racine: champ « DirectoryIndex »
n Changer les messages d’erreur: champs « ErrorDocument »
182. Serveur http Apache
Test du serveur :
n Utilisation d’un navigateur (http://localhost)
n Utilisation de telnet:
n « telnet localhost <Port du serveur> »
n en général: « telnet localhost 8080 »
183. Serveur http Apache
Options courantes:
n « KeepAlive »: indique si les navigateurs sont
autorisés à ordonner aux connexions de rester
actives (httpd.conf)
n « FollowSymLinks »: indique si les liens symboliques
sont autorisés (access.conf)
n « FancyIndenxing »: indique si les fichiers sont
accompagnées d’icônes
185. n « Initiation à Unix », D. Bouillet, D. Conan, F. Silber-Chaussumier,
TélécomINT/UX11, Sept. 2005
n « Présentation Unix », Matthieu Herrb, LAAS-CNRS
n « Cours de Systèmes d'Exploitation (Unix) », H.Bourzoufi
n « Advanced Programming in the UNIX Environment Addison »- Wesley, ISBN
0- 201- 56317- 7, W. R. Stevens
n « Introduction au système UNIX », GTR 2001-02, Emmanuel Viennet, IUT de
Villetaneuse
n « Unix administration », J-F Bouchaudy & G. Goubet
n « Unix: langage de programmation Korn shell », IBM
n « Installation et administration sous SUN- Guide étudiant »
bibliographie