29
Interpréteurs de commandes SIO Programmation Web

Interpréteurs de commandes SIO Programmation Web

  • Upload
    truman

  • View
    24

  • Download
    0

Embed Size (px)

DESCRIPTION

Interpréteurs de commandes SIO Programmation Web. Composantes d’un Système d’exploitation. - PowerPoint PPT Presentation

Citation preview

Page 1: Interpréteurs de commandes SIO  Programmation Web

Interpréteurs de commandes

SIO

Programmation Web

Page 2: Interpréteurs de commandes SIO  Programmation Web

Le noyau (en anglais kernel) représentant les fonctions fondamentales du système d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des entrées-sorties principales, et des fonctionnalités de communication.

L'interpréteur de commande (en anglais shell) permettant la communication avec le système d'exploitation par l'intermédiaire d'un langage de commandes,

Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les fichiers dans une arborescence.

L'utilisateur pilote les périphériques en ignorant tout des caractéristiques du matériel qu'il utilise, de la gestion des adresses physiques, etc.

Composantes d’un Système d’exploitation

Page 3: Interpréteurs de commandes SIO  Programmation Web

Le rôle du DOS est d'interpréter les commandes saisies au clavier par l'utilisateur.

Les commandes permettent d'effectuer les tâches suivantes : gestion des fichiers et des répertoires mise à jour des disques configuration du matériel exécution des programmes

MS-Dos

Page 4: Interpréteurs de commandes SIO  Programmation Web

Les principales versions

Microsoft Windows 1.0 (1985) Il s'agit d'une interface graphique de plusieurs fenêtres

Windows NT 4.0 TSE (Terminal Server Emulation) (1998)possibilité de brancher des terminaux (des clients légers) pour accéder à une session ouverte sur le serveur.

Windows Me (2000) apporte des fonctionnalités multimédia et réseau supplémentaires.

Windows XP (2001) Il s'agit de la convergence des systèmes précédents Windows Vista (2007) noyau NT 6.0.Windows 7 (2009) noyau NT 6.1Windows 8 (2012) disponible en version 32 bits, 64 bits et sur architecture mobile ARM. Windows Runtime (C++, Visual Basic, C#, JavaScript).

Windows

Page 5: Interpréteurs de commandes SIO  Programmation Web

Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs utilisateurs.

Il possède un ou plusieurs interpréteurs de commandes (shell) ainsi qu'un grand nombre de commandes et de nombreux utilitaires (assembleur, compilateurs pour de nombreux langages, traitements de texte, messagerie électronique, ...).

Il possède une grande portabilité, ce qui signifie qu'il est possible de mettre en oeuvre un système Unix sur la quasi-totalité des plates-formes matérielles.

Sécurité élevé et le respect des grands standards, notamment en matière de réseau.

Unix

Page 6: Interpréteurs de commandes SIO  Programmation Web

Linus Torvald en 1991

Plusieurs distribution (l'assemblage d'un ensemble de logiciels autour d'un noyau Linux afin de fournir un système clé en main):

RedHat ; Debian (Ubuntu, etc..); SuSe ; Knoppix ; Slackware ; Mandriva.

Linux

Page 7: Interpréteurs de commandes SIO  Programmation Web

Gestion des données Accès aux unités de stockage (mémoire, disques durs, CD, etc.)

Communication entre utilisateurs Courrier électronique, transferts de fichiers (ftp)

Environnement de programmation Compilateurs C, éditeurs de textes (emacs, vi), …

Gestion des ressources de l'ordinateur Multi-tâches Multi-utilisateurs

Linux : Fonctionnalités

Page 8: Interpréteurs de commandes SIO  Programmation Web

La racine : Symbolisée par un "/", est la base de la hiérarchie des répertoires (Arborescence)

La structure de l'arborescence est standard avec d'éventuelles extensions (définies par les distributions)

Organisation des fichiers

Page 9: Interpréteurs de commandes SIO  Programmation Web

Nom du dossier

Commentaires

/bin Regroupe les fichiers exécutables pour l'initialisation du système et les commandes « essentielles » 

/boot Contient le noyau et des fichiers nécessaires au démarrage

/dev Contient les fichiers spéciaux servant pour communiquer avec les périphériques (disques, adaptateur réseau, cartes son etc...)

/etc Contient les fichiers de configuration du système

/home Contient l'ensemble des répertoires personnels des utilisateurs du système (le nom du répertoire correspondant au login de l'utilisateur)

/lib Contient les bibliothèques (souvent des parties de programmes qui peuvent être commune à plusieurs programmes)

Organisation des fichiers

Page 10: Interpréteurs de commandes SIO  Programmation Web

/mnt Contient généralement l'ensemble des points de montage des périphériques (cd, disquette...) Cependant sous Debian on trouve souvent pour la disquette

/floppy et pour le CD /cdrom au lieu de /mnt/floppy et /mnt/cdrom/optContient des applications supplémentaires

/root Est le répertoire personnel de l'administrateur

/sbin Contient les exécutables uniquement accessibles à l'administrateur

/tmp Contient les fichiers temporaires du système

/usr répertoire personnel des utilisateurs, Contient les programmes accessibles à l'ensemble des utilisateurs

/var Contient les données de cache pour certaines applications (apt, cups...) ou encore les fichiers enregistrant les messages du système

Organisation des fichiers

Page 11: Interpréteurs de commandes SIO  Programmation Web

Classes d'utilisateurs

User (l’utilisateur) le propriétaire du fichier (User) il est désigné par la lettre u

Group (groupe) le groupe dans lequel appartient le propriétaire (Group) il est désigné par la lettre g

Others (autres)regroupe tous les utilisateurs qui ne sont ni le propriétaire ni faisant partir du même groupe que le propriétaireils sont désignés par la lettre o

Droits d’accès

Page 12: Interpréteurs de commandes SIO  Programmation Web

Types d'accès

Pour chaque classe d'utilisateurs, il y a 3 types d'accès à un fichier donné : • Read (r) : en lecture• Write (w): en écriture• eXecute (x) : en exécution

Au niveau répertoire, ces droits signifient :• Read : droit de lister les fichiers présents dans ce répertoire• Write : droit de créer ou de détruire un fichier qui s'y trouve• eXecute : droit de traverser ce répertoire

3 types d'accès et les 3 classes d'utilisateurs, il y a donc 9 droits d'accès différents

Droits d’accès

Page 13: Interpréteurs de commandes SIO  Programmation Web

Exemple : ls : Liste le contenu du répertoire courant {ou le(s) fichier(s) ou répertoire(s) spécifiés}

ugo

Droits d’accès

ULR
ULR08/09/2005-F = identifie les fichiers en ajoutant "/" aux noms de dir., "*" aux exécutables, "@" aux lienssymboliques-g = indique le groupe auquel le fichier est rattaché-l = listage long : droits d’accès (voir commande chmod), liens, propriétaire, taille [bytes], dateet heure de modification
Page 14: Interpréteurs de commandes SIO  Programmation Web

Modification des droits d'accès : La commande : chmod mode nom_fichier

mode indique de quelle façon les droits d'accès doivent être modifiés son syntaxe est : [qui] op accès

[qui] Indique les classes concernées par la commande (u, g et o). Si aucune classe n'est spécifiée, toutes les classes sont concernées

op peut être :+ pour ajouter des droits d'accès - pour enlever des droits d'accès

Accès : spécifie les types d'accès (r, w et x)

Droits d’accès

Page 15: Interpréteurs de commandes SIO  Programmation Web

Exemple : perrot@von-neumann>ls -la rep3total 3drwx------ 2 perrot 512 Sep 21 21:30 .drwxr--r-x 8 perrot 512 Sep 21 21:30 ..-rw------- 1 perrot 50 Sep 21 21:30 fic1

perrot@von-neumann> chmod u-r rep3

perrot@von-neumann>ls -la rep3rep3 unreadable

Droits d’accès

Page 16: Interpréteurs de commandes SIO  Programmation Web

Interpréteur de commandes (shell) Le Shell est un programme qui permet l'exécution de commandes qui affichent en générale un résultat à l'écran.

Syntaxe des commandes : $nom_commande [options] [arguments] nom_commande : ls, chmod options : commencent habituellement par le caractère - arguments : spécifient les objets (fichiers ou variables)

Exemple : $ cd, pwd $ ls -l (l comme long, donne tous les attributs des fichiers) $ cat fic1 (visualisation d'un ou plusieurs fichiers)

Manuel des commandes (man) commande : $ man nom_commande

Exemple : $ man ls

Commandes

Page 17: Interpréteurs de commandes SIO  Programmation Web

Redirection des entrées/sorties : commande : nom_commande [options] [arguments] > fichier_sortie

Exemple : $ ls -l > poub $ date > poub

$ ls -l > poub et date >> poub

nom_commande [options] [arguments] < fichier_entrée

Exemple $ wc (imprime le nombre de lignes, de mots et de caractères fournis à l'entrée standard) $ wc < poub

Commandes

Page 18: Interpréteurs de commandes SIO  Programmation Web

Tube (<<pipe>>) ‘|’ permet de prendre la sortie standard d'une première commande et de la rediriger sur l'entrée standard d'une 2ème commande.

La syntaxe : nom_commande1 [options] [arguments] | nom_commande2 [options] [arguments]

Exemple : $ ls -l fic? | wc (raccourci de la série de redirections vu précédemment) $ ls /etc | more (permet de se déplacer dans un texte écran par écran)

Scripts Un script correspond à une suite de commandes écrite dans un fichier. Les variables spéciales les plus utilisées dans l’écriture des scripts :

# : nombre d’arguments de la ligne de commande (entre 0 et 9)* : liste contenant tous les arguments du programme shell? : contient le code retour de la dernière commande exécutée (0 si erreur, 1 sinon)

Commandes

Page 19: Interpréteurs de commandes SIO  Programmation Web

Commandes

Exemple 1:

$ cat > script1

echo argument1 = $1

echo argument2 = $2

^D

$chmod +x script1

$./ script1 aa bb cc

argument1 = aa

argument2 = bb

Exemple 2 :

Écrire un script (copier) qui permet de copier un fichier (premier argument) dans autre (deuxième argument).

$ cat > copier

cp $1 $2

^D

$ chmod +x copier

$./ copier fichier1 fichier2

Page 20: Interpréteurs de commandes SIO  Programmation Web

Caractère Description

|Permet la communication par tube entre deux commandes.

Exemple : ls -1 | file la commande de listage des fichiers du répertoire (ls) envoie chacun d'eux à la commande qui permet de connaître le type d'un fichier (file).

#Introduit un commentaire. Donc tout ce qui suit ce caractère dans une ligne est ignoré par le

Shell. Exemple : # ceci est un commentaire.

\Déspécialise le caractère qui suit. C'est-à-dire que si le caractère qui suit celui là est un caractère

spécial alors le Shell l'ignorera. Exemple : echo Bon\*jour affiche bon*jour à l'écran.

'...'Défini une chaîne de caractères qui ne sera pas évaluée par le Shell.

Exemple : echo '*?&' affiche sur la sortie standard les caractères spéciaux *?& sans les interpréter.

"..."Défini une chaîne de caractères dont les variables seront évaluées par le Shell.

Exemple : echo "Vous êtes $USER." affiche Vous êtes + la valeur de la variable $USER.

`...`

Défini une chaîne de caractères qui sera interprétée comme une commande et remplacée par la chaîne qui serait renvoyée sur la sortie standard à l'exécution de la dite commande. Exemple : echo `pwd` >> liste.txt écrit à la fin du fichier le chemin et le nom du répertoire courant. Le caractère spécial utilisé s'obtient par la combinaison de touche : AltGr + 7 (c'est l'accent grave).

Caractères spéciaux

Page 21: Interpréteurs de commandes SIO  Programmation Web

Caractère Description

*Métacaractère qui remplace n'importe quelle chaîne de caractères (même vide).Exemple : cp * DATA copie tous les fichiers dans le répertoire DATA.

? Métacaractère qui remplace un caractère quelconque.

;

Permet de séparer plusieurs commandes écrites sur une même ligne.Exemple : cp *.c DATA; tar cvf data.tar DATA copie tous les fichiers d'extention .cdans le répertoire DATA et les archive dans le fichier data.tar.

( )

Regroupe des commandes. Exemple :(echo "Liste :"; ls ) > liste.txtécrit la chaîne Liste : et la liste des fichiers du répertoire courant dans le fichier liste.txt.

&Permet le lancement d'un processus en arrière plan. Cela permet d'exécuter d'autres commandes pendant qu'un processus est en marche. Exemple : netscape&.

Caractères spéciaux

Page 22: Interpréteurs de commandes SIO  Programmation Web

Permettent de garder en mémoire des informations importantes

Exemple :

le login de l'utilisateur (stocké dans la variable $USER) le répertoire de connexion de l’utilisateur ($HOME)

la liste des répertoires dans lesquels aller chercher les exécutables des commandes externes ($PATH)

La commande env affiche la liste de toutes les variables d'environnement du Shell avec leurs valeurs.

Variables d’environnement

le login de l'utilisateur (stocké dans la variable $USER)

le répertoire de connexion de l’utilisateur ($HOME) la liste des répertoires dans lesquels aller

chercher les exécutables des commandes externes ($PATH)

Page 23: Interpréteurs de commandes SIO  Programmation Web

Variable=Valeur Description

PWD=/home/hugo Stocke le chemin et le nom du répertoire courant.

HOSTNAME=localhost.localdomain

Nom du serveur.

HISTSIZE=1000Taille de l'historique. L'historique garde en mémoire les dernières commandes passées au

Shell. Ces dernières sont accessibles successivement par la touche fléchée vers le haut.

LANGUAGE=fr Suffixe de la langue du système.

PS1=[\u@\h \W]\$

Chaîne apparaissant à l'invite du Shell.

Variables d’environnement

Page 24: Interpréteurs de commandes SIO  Programmation Web

Variable=Valeur Description

USER=hugo Nom de l'utilisateur.

DISPLAY=unix:0.0 Adresse du terminal d'affichage.

SHELL=/bin/bash Chemin et nom du programme Shell (il en existe plusieurs différents).

HOME=/home/hugo Chemin du répertoire de connexion.

PATH=:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin

Liste des répertoires où chercher les exécutables des commandes externes.

Variables d’environnement

Page 25: Interpréteurs de commandes SIO  Programmation Web

Liste des fichiers (ls) $ ls fichier1

Création d'un fichier éditeur de textes ou directement sur l’interpréteur

$ cat > fichier1 1ère ligne

Visualisation d'un fichier (cat)$ cat nom_fichier

Destruction d'un fichier (rm)$ ls fichier1 fichier2$ rm fichier1$ ls fichier2

Manipulation des fichiers

Page 26: Interpréteurs de commandes SIO  Programmation Web

Copie d'un fichier (cp)$ cp nom_fichier1 nom_fichier2$ cp nom_fichier1 nom_répertoire

Renommage ou déplacement d'un fichier (mv)$ mv ancien_nom nouveau_nom (renommage)$ mv nom_fichier nom_répertoire (déplacement)

Création d'un répertoire (mkdir)$ mkdir nom_répertoire (possible uniquement si celui-ci est inexistant)

Destruction d'un répertoire (rmdir)$ rmdir nom_répertoire (si le répertoire est vide)$ rm -r nom_répertoire (r comme récursif : effacement du contenu du répertoire et de lui-même)

Déplacement dans les répertoire

$ cd nom_répertoire (changement de répertoire)$ cd .. ()

Manipulation des fichiers

Page 27: Interpréteurs de commandes SIO  Programmation Web

Recherche d’une chaîne de caractères dans un fichier (grep) commande : grep [option] motif [nom_fichier]

Exemple $ grep son fic

[option] -v : affichent les lignes qui ne contiennent pas le motif ; -i : ignore la distinction minuscule/majuscule dans les comparaisons.

$ grep ^[a-d] fichier1

obtenir tous les lignes commençant par les caractères compris entre a et d du fichier fichier1.

Recherches

Page 28: Interpréteurs de commandes SIO  Programmation Web

Recherche d'un fichier (find) find descend récursivement dans des sous-arborescences de répertoires, en cherchant à appliquer à des fichiers précisés par un ou plusieurs critères de sélection (nom, type, date de modification, etc.), une commande donnée. find s'utilise de la façon suivante :

commande : find liste_de_répertoires expression

liste_de_répertoires est la liste des racines des arborescences à parcourir ; expression est une suite d'options exprimant les critères de sélection

-name motif : vrai si le motif s'applique sur le nom du fichier courant ;

-user nom_utilisateur : vrai si le fichier courant appartient à l'utilisateur nom_utilisateur ;-group recherche sur le groupe auquel appartient le fichier -mtime n : vrai si le fichier a été modifié dans les n derniers jours-ctime recherche par date de création du fichier …

Recherches

Page 29: Interpréteurs de commandes SIO  Programmation Web

Recherche des utilisateurs connectés (who) La commande who affiche les utilisateurs connectés sur la machine où l'on travaille.

$ who Lartis ttyp1 Oct 23 22:25 perrot ttyp3 Oct 24 08:52

Recherches