Interpréteur de commandes

publicité
Interpréteurs de commandes
SIO
Programmation Web
Composantes d’un Système d’exploitation
 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.
MS-Dos
 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
Windows
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.1
Windows 8 (2012) disponible en version 32 bits, 64 bits et sur architecture
mobile ARM. Windows Runtime (C++, Visual Basic, C#, JavaScript).
Unix
 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.
Linux
 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 : Fonctionnalités
Gestion des ressources de l'ordinateur
Multi-tâches
Multi-utilisateurs
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), …
Organisation des fichiers
 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
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
/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
Droits d’accès
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étaire
ils sont désignés par la lettre o
Droits d’accès
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
 Exemple :
ls : Liste le contenu du répertoire courant {ou le(s) fichier(s) ou répertoire(s) spécifiés}
u
g
o
Droits d’accès
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
Exemple :
perrot@von-neumann>ls -la rep3
total 3
drwx------ 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 rep3
rep3 unreadable
Commandes
 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
 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
 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
Exemple 1:
Exemple 2 :
$ cat > script1
Écrire un script (copier) qui permet de copier un
fichier (premier argument) dans autre (deuxième
argument).
echo argument1 = $1
echo argument2 = $2
^D
$ cat > copier
cp $1 $2
^D
$chmod +x script1
$./ script1 aa bb cc
argument1 = aa
argument2 = bb
$ chmod +x copier
$./ copier fichier1 fichier2
Caractères spéciaux
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
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 .c
dans 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&.
Variables d’environnement
 Permettent de garder en mémoire des informations importantes
 Exemple :
 lele
login
de l'utilisateur
(stocké
dans $USER)
la variable
login
de l'utilisateur
(stocké dans
la variable
le$USER)
répertoire de connexion de l’utilisateur ($HOME)

le répertoire de connexion de l’utilisateur ($HOME)
la liste la
desliste
répertoires
dans lesquels dans
aller chercher
exécutables des
des répertoires
lesquelsles
aller
commandes
externes
chercher
les($PATH)
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
Variable=Valeur
Description
PWD=/home/hugo
Stocke le chemin et le nom du répertoire courant.
HOSTNAME=
localhost.l
ocaldomain
Nom du serveur.
HISTSIZE=1000
Taille 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
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.
Manipulation des fichiers
 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
 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 .. ()
Recherches
 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
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
 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
Téléchargement