|
|
|
M2 CCI - Programmation et Langages
Stage de Rentrée – Séance 1
But de la séance 1
Se connecter sur une machine de l'UFR IM2AG
Accéder aux principales applications en ligne qui vous seront utiles :
Moodle, pour les supports de cours
ADE, pour les emplois du temps
Se familiariser avec l'environnement multi-fenêtres
Savoir gérer une arborescence de fichiers et répertoires
Assimiler quelques commandes simples d'un interprète de commandes sur Unix
Utiliser un outil d'édition de texte
La suite de ce document comporte des explications sur ces
thèmes ainsi que des exercices à faire librement au fur et à
mesure de votre lecture.
Certaines parties, indiquées
en vert (et regroupées à la fin
de cette page), sont jugées moins prioritaires. Ne les
regardez que lorsque vous avez fini tout le reste, et en fonction du
temps disponible (vous pourrez revenir dessus lors d'une séance
de libre-service).
1 -
Démarrer une session de travail (en utilisant les machines de l'UFR
IM2AG)
Pour tous les enseignements pratiques du M2 CCI vous utiliserez les salles de TP du bâtiment UFR IM2AG. Ces salles sont équipées avec des ordinateurs de type PC.
Notons qu’il est également possible d’utiliser sa machine personnelle, soit pour travailler depuis son domicile en dehors des heures de cours, soit sur place lors des séances de travaux pratiques. Des informations à ce sujet sont disponibles sur cette page (à regarder tranquillement hors-séance et revenir vers vos enseignants en cas de problème).
1.1 - Session de travail
Les ordinateurs individuels
de type PC disponibles à l'UFR IM2AG
sont dotés d'un "double boot". Cela signifie qu'ils
peuvent fonctionner sous les systèmes d'exploitation Windows et
Linux (Ubuntu).
Selon la salle de TP dans laquelle vous vous
trouvez et selon le "gestionnaire de session" (session
manager) que vous utilisez, l'interface utilisateur peut
différer.
Pour l'enseignement de « Programmation et
Langages » nous
vous demandons de
démarrer ces PC sous Linux.Vous
vous connectez ensuite en utilisant votre nom d'utilisateur
(login)
et mot de passe fournis lors de votre inscription (ou ceux d'un
compte temporaire si vous n'êtes pas encore inscrits).
Selon vos besoins, vous
pourrez aussi démarrer ces PC sous Windows pour utiliser des
logiciels spécifiques (Word, Excel, etc.) en utilisant ce même
login et mot de passe ...
N'oubliez pas de vous
déconnecter une fois votre session de travail terminée ...
Rappel : Si
vous souhaitez utiliser votre machine
personnelle pour les travaux
pratiques (que vous soyez en salle de TP ou ailleurs !), des
informations sont disponibles sur
cette page.
1.2
- Manipulation de fenêtres
Quelque soit le système d'exploitation utilisé (Linux ou Windows), l'environnement de travail proposé permet de manipuler plusieurs fenêtres. Dans une fenêtre, on peut différencier plusieurs zones :
la barre située en haut, qui permet de déplacer la fenêtre lorsque l'on clique dessus avec le bouton gauche.
la zone de travail, qui contient la portion de fenêtre dans laquelle on a des textes, des commandes, des graphiques, etc. Dans cette portion, on peut effectuer des copier-coller. Par exemple, pour copier une portion de texte située dans une fenêtre donnée, il faut tout d'abord positionner la souris au début de la zone en cliquant avec le bouton gauche. Il faut ensuite parcourir la zone avec le bouton gauche appuyé, puis relâcher le bouton en fin de zone. Pour coller le texte sélectionné, dans la même fenêtre ou bien dans une autre, il suffit de positionner la souris au début de la zone de collage en cliquant avec le bouton gauche, puis de cliquer sur le bouton du milieu.
les zone de défilement (scroll), qui permettent de visualiser le contenu de la fenêtre qui n'est pas visible
les coins de la fenêtre, qui permettent de la redimensionner lorsqu'on clique dessus .
les boutons en haut gauche, qui permettent d'"iconifier" une fenêtre ou de la passer en plein écran
le bouton en haut à droite qui permet de la fermer
Pour faire une action sur l'un des éléments cités ci-dessus, il faut amener le pointeur de souris dans la zone voulue, et cliquer avec l'un des boutons de la souris.
1.3 - Accès à des pages web qui vous seront utiles
Comme première manipulation nous vous proposons de vérifier que vous arrivez bien accéder à différentes ressources mises à disposition sur le web …
Accès à Moodle
La plateforme Moodle sera utilisée pour vous transmettre les ressources pédagogiques (documents, lien utiles, etc.) relatives à chaque Unité d’Enseignement. Chaque enseignant vous précisera comment vous inscrire à chacun des cours du M2 CCI présents sur cette plateforme. L’exercice suivant va vous permettre de vous inscrire au cours « Langages et Programmation».
EXERCICE a. Ouvrez un navigateur (par exemple Firefox …) b.
Connectez-vous à l’URL
https://im2ag-moodle.univ-grenoble-alpes.fr/ d. Cliquez enfin sur le lien Auto-inscription (Étudiant). ATTENTION : cette inscription ne peut se faire que si vous disposez déjà de vos login et mots de passe fournis avec votre carte d’étudiant … e. Vérifiez que vous retrouvez bien parmi les informations fournies un lien vers le document que vous êtes en train de lire ... |
Accès à ADE
L’application ADE vous permet d’accéder en ligne à votre emploi du temps, via un ordinateur ou un téléphone portable. L’exercice suivant va vous permettre de vous familiariser avec cette application ...
EXERCICE
b. Les informations fournies sur cette page (tutoriel, vidéo) vous indiquent comment consulter votre emploi du temps (le minimum à connaître!) ainsi que comment le synchroniser avec votre agenda personnel (si vous le souhaitez) ou télécharger l’application sur votre téléphone (si vous le souhaitez …). |
2 - L'interprète de commandes (shell)
Vous pouvez ensuite
ouvrir une ou plusieurs fenêtres de commandes (terminal
ou xterm)
dans lesquelles vous pouvez travailler (en utilisant les commandes
Unix vues en cours). Par défaut, ces commandes seront exécutées
sur le PC que vous avez sous les yeux. L'interprète de commande Unix
(ou shell Unix)
est un programme qui est exécuté lorsqu'on se connecte dans
l'environnement Unix. Il exécute les commandes qui sont tapées par
l'utilisateur. A chaque fois que le shell attend une commande Unix,
il le notifie en affichant un "prompt", indiquant le numéro
de la commande et le nom de la machine.
Une commande Unix se compose du nom de la commande (toujours en tête), éventuellement suivi d'arguments (qui peuvent être optionnels). Lorsque la commande saisie est incorrecte (ou qu'elle ne peut être exécutée) un message d'erreur est affiché. Il précise en général la nature de l'erreur :
nom de commande inconnu
arguments en nombre insuffisant, ou arguments incorrects
droits insuffisants pour exécuter cette commande, ou pour accéder aux fichiers/répertoires concernés
etc.
EXERCICE
|
3 - Manipulation de fichiers au travers du shell
La version du système Unix que vous utilisez permet -- comme sur le système Windows -- de consulter et gérer (copier, supprimer, déplacer, renommer, etc) l'ensemble de vos fichiers et répertoires à l'aide d'une interface graphique (c'est-à-dire en visualisant graphiquement ces fichiers et répertoires et en les manipulant avec la souris). Vous pourrez bien sur utiliser cette interface graphique lors des TPs si vous le souhaitez. L'objectif des exercices suivants est de découvrir un langage de commande accessible en mode texte (via le clavier). Un tel langage est en général plus expressif, et permet de se familiariser avec un langage "informatique".
3.1 Répertoire de travail
(home directory)
Quand
vous vous connectez dans un environnement Unix, vous vous retrouvez
dans un environnement de travail composé d'un répertoire qui vous
est propre et d'informations vous concernant (nom d'utilisateur,
droits, etc). Chaque connexion vous placera toujours dans ce même
environnement.
Pour
l'instant, nous allons nous intéresser à la notion de répertoire.
Un répertoire contient un ensemble de fichiers et/ou de répertoires,
un fichier étant composé d'un nom et d'un ensemble de données
stockées sur disque. Vu
par l'utilisateur, le système de fichiers est donc organisé comme
une arborescence dont les nœuds sont des répertoires et les
feuilles des fichiers simples.
3.2 Désignation des
fichiers et répertoires
Un
fichier ou répertoire est désigné au moyen d'un chemin d'accès,
qui indique sa position dans l'arborescence
globale. La racine de
cette arborescence, notée / (se prononce slash),
est un répertoire qui contient tous les fichiers et répertoires
gérés par le serveur. Il
existe deux moyens de désigner des objets (fichiers ou répertoires)
dans une arborescence : la désignation absolue et la désignation
relative.
La désignation absolue indique le chemin à suivre dans l'arborescence globale, depuis la racine /, pour accéder à l'objet voulu. Par exemple, /a/u1/durand désigne l'objet durand situé dans le répertoire u1 lui-même situé dans le répertoire a qui se trouve dans le répertoire racine /.
La désignation relative précise le chemin à suivre pour accéder à l'objet voulu, depuis le répertoire courant. Par exemple, si vous vous trouvez dans le répertoire /a/u1, le nom durand/programs désigne l'objet programs situé dans le répertoire durand lui-même situé dans le répertoire courant.
Notez que le symbole / est utilisé pour séparer les noms de fichiers et répertoire dans ces deux désignations. Quelques notations utiles :
. désigne le répertoire courant
.. désigne le répertoire "père" du répertoire courant
Par exemple, si l'on se trouve dans le répertoire de nom absolu /a/u1/durand/CCI/Programmes, alors :
.. désigne le répertoire /a/u1/durand/CCI
../.. désigne le répertoire /a/u1/durand/
../../dupond/CCI désigne le répertoire /a/u1/dupond/CCI
/a/u1/durand/CCI/../Algo désigne le répertoire /a/u1/durand/Algo
3.3 Changement de
répertoire courant
Au
moment de votre connexion, vous vous retrouvez dans votre répertoire
principal (qui est à
ce moment votre répertoire
courant). Vous pouvez
changer de répertoire courant via la commande cd
(Change
Directory).
En tapant cd nom_rep, (nom_rep étant un nom absolu ou relatif de répertoire), votre répertoire courant devient nom_rep.
La commande cd
sans arguments permet de revenir
à tout moment à votre répertoire principal.
La
commande cd
~nom_utilisateur permet
d'aller, si les droits le permettent, au répertoire principal de
l'utilisateur donné.
La
commande cd /
permet d'aller au sommet de
l'arborescence.
La
commande cd ..
permet de remonter au répertoire
père du répertoire courant. Comme dit précédemment, quelque soit
le répertoire courant, la chaîne ".."
désigne en effet toujours le répertoire père.
3.4 Connaissance du
répertoire courant
La
commande pwd
(print working directory) permet
de savoir dans quel répertoire courant on se situe à un instant
donné (cette commande affiche le nom absolu
du répertoire courant).
EXERCICE a.
Testez la commande pwd.
Dans quel répertoire êtes-vous ?
|
3.5 Copie de fichiers et
répertoires
La
commande cp
permet de copier le contenu d'un
fichier dans un autre. Par exemple cp
f1 f2 copie le contenu
de f1 dans
un fichier f2.
Plusieurs situations sont possibles :
si aucun fichier ou répertoire de non f2 n'existe dans le répertoire courant alors un nouveau fichier f2 (copie de f1) est crée ;
si un fichier de nom f2 existe dans le répertoire courant alors son contenu est remplacé par le contenu de f1 ;
enfin, si un répertoire de nom f2 existe dans le répertoire courant, alors une copie de f1 est crée dans ce répertoire (son nom sera donc f2/f1).
La commande cp, utilisée avec l'option -r, comme dans cp -r r1 r2, permet de copier le contenu du répertoire r1 (c.a.d l'arborescence complète des répertoires et fichiers qu'il contient). On parle parfois de copie récursive. Là encore, plusieurs situations possibles :
si aucun fichier ou répertoire de non r2 n'existe dans le répertoire courant alors une copie de r1 est crée ;
si un répertoire de nom r2 existe dans le répertoire courant alors une copie de r1 est crée dans ce répertoire (son nom sera donc r2/r1)
enfin, si un fichier de nom r2 existe dans le répertoire courant alors un message d'erreur est affiché.
Exemples utiles :
cp f1 .. permet de copier le fichier f1 dans le répertoire père
cp ../f1 . [attention au "." final] permet de copier le fichier f1 du répertoire père dans le répertoire courant
cp ~durand/f1 . [attention au "." final] permet de copier le fichier f1 du répertoire principal de durand dans le répertoire courant
cp -r ~durand/TP1 TP2 copie l'ensemble du répertoire ~durand/TP1 et de ses sous-répertoires éventuels dans le répertoire TP2.
3.6
Consultation d'un répertoire
La
commande ls
(list directory)permet de lister
le contenu d'un répertoire.
Cette commande, comme presque
toutes celles du shell unix, a la possibilité d'être utilisée avec
des options qui peuvent se combiner et permettent de la spécialiser.
Par exemple :
La commande ls sans options affiche en colonne les noms des objets (fichiers et sous-répertoires) dont le premier caractère est différent du point.
L'option -a ( ls -a ) affiche tous les noms des objets du répertoire courant, quel que soit leur nom.
L'option -l (ls -l) liste les fichiers sur une colonne, avec des informations sur les droits d'accès, sur le propriétaire de l'objet, la taille et la date de dernière modification. Nous reviendrons sur ce point.
L'option -R (ls -R) permet de visualiser le contenu d'un répertoire ainsi que celui de ses sous-répertoires (affichage récursif).
EXERCICE
|
Remarque
: Votre répertoire
principal contient maintenant un répertoire PL1.
Nous vous suggérons fortement de ranger dans ce répertoire tout ce
qui concerne le cours "Programmation et Langages 1". Vous
pourrez également vous créer un répertoire par cours dans votre
répertoire principal.
3.7 Complétion
Il s'agit d'un moyen qu'offre l’interprète de commandes pour compléter automatiquement (à partir d'un préfixe saisi ou clavier) les noms de commandes ou fichiers/répertoires intervenants dans une commande shell. Selon les serveurs utilisés la complétion de commande peut être obtenue soit avec la touche Tab (Tabulation), soit par un Ctrl-D (touches Ctrl et D enfoncées simultanément).
Par exemple, si l'on tape ls ~durand/sean suivi de Tab, l’interprète remplace cette commande par ls suivi de l'ensemble des noms de fichiers ou de répertoires qui se trouvent sous le répertoire ~durand et dont le nom commence par sean. De même si l'on tape l suivi de Tab, l'intreprète propose tous les noms de commande débutant par l.
3.8 Création de répertoire
Pour créer un répertoire
de nom nomrep,
il faut utiliser la commande mkdir
nomrep. Le répertoire
créé permettra de stocker des fichiers ou des répertoires.
3.9 Renommer ou déplacer un fichier ou répertoire
La commande mv
permet de changer le nom d'un
fichier (ou répertoire) ou dans certains cas de le déplacer.
Par
exemple, mv f1 f2
aura pour effet :
de remplacer le fichier de nom f1 par un fichier de nom f2 s'il n'y a pas de répertoire f2 dans le répertoire courant ;
de déplacer le fichier f1 dans le répertoire f2 si f2 est un nom de répertoire valide.
Par exemple la commande mv calculette .. a pour effet de déplacer le fichier (ou répertoire) de nom calculette dans le répertoire père du répertoire courant.
EXERCICE a.
Placez vous dans PL1 |
3.10
Destruction d'un fichier
La
commande rm
permet de détruire des fichiers.
Par exemple, rm f
détruit le fichier f. Attention,
le système Unix ne permet aucune récupération des fichiers
supprimés.
La commande rm que vous utilisez est
en fait un alias vers la commande rm -i qui demande
confirmation avant de détruire (Cf. séance 2).
3.11
Destruction d'un répertoire
On
peut détruire des répertoires par rmdir
(remove directory). Cette
commande implique que les répertoires à détruire soient vides
(attention aux fichiers "cachés" dont le nom commence par
un point).
EXERCICE
|
3.12 Consultation du
contenu d'un fichier
Pour
visualiser le contenu d'un fichier qui contient du texte, il existe
la commande cat.
Cette commande est utilisée en fournissant en paramètre le(s)
nom(s) du ou des fichiers que l'on souhaite visualiser. Dans notre
environnement, si le fichier dépasse en longueur la taille de la
fenêtre, il faut utiliser l'ascenseur situé verticalement sur le
coté de la fenêtre.
Pour visualiser plus facilement les fichiers de grande taille, il existe une autre commande appelée more. Cette commande affiche le fichier page par page, une page correspondant à la quantité de données visualisable dans la fenêtre courante. Les commandes suivantes sont disponibles :
Le caractère return pour faire apparaitre une ligne supplémentaire
Le caractère espace pour faire apparaitre la page suivante
Le caractère b pour remonter dans le texte
Le caractère q pour quitter l'exécution du more.
EXERCICE
|
4. Droits associés aux
fichiers et répertoires
Les
fichiers et répertoires sont associés à des droits de manipulation
qui dépendent de l'utilisateur courant.
Tout utilisateur possédant un compte (ou login) sur une machine Unix est identifié au niveau du système par son nom de login, qui est unique. En outre, afin de pouvoir classifier les utilisateurs et leur donner des droits d'accès en fonction de leur rôle, ceux-ci appartiennent à des groupes. Le système Unix permet de restreindre les droits d'accès à un fichier ou répertoire en fonction du groupe de l'utilisateur courant. Ces droits peuvent être modifiés par le propriétaire du fichier ou répertoire (ou par l'administrateur de la machine, via le compte spécial appelé root).
L'ensemble des informations associées à un fichier ou répertoire sont fournies par la commande ls -l, comme indiqué sur l'exemple suivant (de gauche à droite) :
-rwxr-xr-- 1 durand staff 12543 Sep 24 17 :54 TD1
L'objet (fichier ou répertoire) a pour nom TD1
Il a été modifié pour la dernière fois le 24 septembre à 17H54
Sa taille en octets est 12543
Le groupe associé est staff
Son propriétaire a pour nom de login durand
La chaîne de 10 caractères -rwxr-xr-- code des informations sur la nature et les droits d'accès. Elle se lit de la manière suivante, de gauche à droite :
le 1er caractère code la nature de l'objet : - pour un fichier, d pour un répertoire, etc. TD1 est donc un fichier.
les 3 caractères suivants codent les droits d'accès en lecture (read), écriture (write) et exécution (execute) sur l'objet, pour son propriétaire. durand a donc le droit de lire, modifier et exécuter TD1.
les 3 caractères suivants codent les droits d'accès pour les membres du groupe associé à l'objet. Les membres du groupe staff ont donc le droit de lire et exécuter TD1 (r-x).
enfin, les trois derniers caractères codent les droits d'accès pour les autres utilisateurs (non membres du groupe). Ces derniers n'ont donc que le droit de lire TD1 (r--).
Pour changer les droits
d'accès à un fichier ou à un répertoire, on utilise la commande
chmod (change mode) de la manière suivante. Les trois
niveaux d'utilisateurs (le propriétaire, les membres du même
groupe, les autres) sont désignés respectivement par les
lettres u (user), g (group) et o (others). La
commande chmod permet alors de préciser pour chaque niveau quels
droits (lecture, écriture ou exécution) on souhaite ajouter ou
retrancher.
Exemples :
chmod u-wx TD1 retranche les droits en écriture et en exécution à l'utilisateur durand.
chmod g+w ajoute le droit en écriture aux membres du groupe staff.
chmod g-w effectue l'opération inverse.
chmod o+x ajoute le droit en exécution aux non-membres du groupe staff.
enfin, chmod a+rwx ajoute tous les droits (lecture, écriture et exécution) à tous les utilisateurs (désignés par la lettre a pour all).
Pour changer le groupe auquel appartient un fichier, il faut utiliser la commande chgrp nom-du-nouveau-groupe nom-du-fichier. De même, pour changer le propriétaire d'un fichier, il faut utiliser la commande chown nom-du-nouveau-propriétaire nom-du-fichier.
EXERCICE
|
5. Les manuels
en ligne
Il est possible, par la commande man, d'obtenir des informations sur le fonctionnement d'une commande (en particulier, sur les options disponibles). Pour ceci, il faut taper man numéro-du-manuel nom-de-la-commande. Le numéro du manuel est optionnel. La commande particulière man intro donne la liste des commandes disponibles. Les manuels sont organisés de la manière suivante :
man 1 commandes principales (les commandes étudiées jusqu'ici se trouvent dans ce manuel)
man 2 appels systèmes
man 3 librairies
man 4 fichiers spéciaux
man 5 commandes pour formater les fichiers
man 6 démos
man 7 environnements
man 8 commandes de maintenance
EXERCICE
|
6. L'éditeur de texte nedit
Avec l'environnement Unix, un éditeur assez simple d'utilisation pour écrire des programmes est nedit. Pour lancer cet éditeur, il suffit de taper nedit au niveau du shell. On peut d'ailleurs appeler nedit avec un ou plusieurs fichiers initiaux (nedit peut manipuler plusieurs fichiers en parallèle, dans une ou plusieurs fenêtres). Nous verrons ultérieurement un autre éditeur intégré dans un environnement de programmation complet.
Dans une fenêtre nedit
:
On peut taper du texte dans la fenêtre principale.
L'emploi de la souris permet de positionner le curseur à l'endroit voulu dans le fichier, afin de modifier le texte.
L'emploi de la souris permet également d'effectuer des copier-coller ; Il faut tout d'abord sélectionner le texte à copier à l'aide du menu Edit (Copy) ou du raccourci clavier Ctrl c, puis préciser la position de collage à l'aide de la souris ou du clavier, et enfin donner l'ordre de collage à l'aide du menu Edit (Paste) ou du raccourci clavier Ctrl v.
Le menu principal (à droite du bouton Save sur la barre en haut de la fenêtre) offre de nombreuse fonctionnalités dont :
Sav As ... permet de sauvegarder le contenu de la fenêtre dans le fichier courant. File (Save as) permet de sauvegarder le contenu de la fenêtre dans un fichier au choix.
Find ... permet de rechercher un mot, une ligne ou un texte dans le fichier.
Find and Replace ... permet de remplacer un mot, une ligne ou un texte dans le fichier. Search (Goto Line Number) permet de positionner le curseur sur une ligne donnée du fichier.
EXERCICE
|
7.
Sauvegardes
Le
contenu de votre répertoire principal est régulièrement sauvegardé
(6 sauvegardes journalières et une sauvegarde hebdomadaire).
Ces
sauvegardes sont accessibles sur le répertoire /home/.snapshot
EXERCICE
Indications :
|
Compléments
(a regarder en fin de séance, ou lors d'une séance de
libre-service)
1.
Autres options de la commande ls
et
caractères spéciaux pour la désignation de fichiers
La commande ls peut également avoir un ou plusieurs noms d'objets en paramètre. Par exemple, ls exemple.texte affiche le nom de l'objet du répertoire courant (qui est exemple.texte) s'il existe dans le répertoire courant, sinon il indique qu'aucun objet de ce nom n'existe dans le répertoire courant. De même que pour toutes les commandes qui acceptent des listes de noms en paramètre, on peut utiliser des caractères spéciaux pour faciliter l'écriture de la commande.
Le caractère ? permet de remplacer un caractère quelconque. Par exemple, ls fic? donne tous les objets de 4 lettres dont les trois premières sont f, i, et c. La commande ls f?c? donne tous les fichiers de 4 lettres, dont la première est f et la troisième c.
Le caractère * remplace n'importe quelle chaîne de caractères, y compris la chaîne vide. Par exemple, la commande ls fic* donne tous les objets de trois lettres ou plus, commençant par fic.
Une suite de caractères entre crochets [(par exemple [abc]) désigne un caractère pris dans la suite. Par exemple, ls fic[123] est équivalent à ls fic1 fic2 fic3
Deux caractères séparés par un tiret entre crochets (par exemple [a-d]) désigne un caractère se trouvant lexicalement entre les deux caractères spécifiés. Ainsi, ls fic[a-d] est équivalent à ls fica ficb ficc ficd.
Pour manipuler un objet qui possède un caractère spécial dans son nom, il faut indiquer explicitement à l’interprète de ne pas prendre en compte le caractère spécial en faisant précéder ce caractère de \. Par exemple, pour lister un fichier de nom fic*1, il faut taper ls fic\*1.
EXERCICE
Dans votre répertoire principal, utilisez la commande ls pour :
|
5. Quelques commandes utiles sur les fichiers
5.1
Recherche d'une chaîne de caractères dans un fichier
La
commande grep
permet
de rechercher une chaîne de caractères dans un ou plusieurs
fichiers. Plus précisément, étant donnée une chaîne de
caractères et un ensemble de noms de fichiers, grep
va
rechercher (et afficher) l'ensemble des lignes de ces fichiers qui
contiennent cette chaîne. Par exemple, la commande grep
"f1" *.c
affiche
toutes les lignes des fichiers suffixés par .c
du
répertoire courant qui contiennent la chaîne f1
EXERCICE a.
Testez la commande grep
sur
quelques exemples (comme le fichier hello.c).
Cette commande sera par la suite très utile pour le
développement de programmes.
|
5.2
Recherche d'un fichier
La
commande find
a
pour but la recherche de fichiers dans une arborescence du système
de fichiers, et éventuellement l'exécution d'une commande sur
chacun des fichiers trouvés.
La commande find noms_de_fichiers expression parcourt récursivement l'arborescence de fichiers définie par les répertoires ou fichiers fournis en paramètre, en évaluant l'expression booléenne formée à partir des opérateurs donnés ci-dessous pour chaque fichier.
-name nom_de_fichier
-user nom d'utilisateur : vrai si le fichier appartient à cet utilisateur
-group nom_de_groupe : vrai si le fichier appartient à ce groupe
-type T : vrai si le fichier est de type T, où T est f pour fichier ordinaire, d pour répertoire.
-print : toujours vrai, permet de visualiser les fichiers consultés par la commande find
-atime n : vrai si le fichier a été accédé depuis n jours
-mtime n : vrai si le fichier a été modifié depuis n jours
-exec commande : exécute la commande donnée, qui doit se terminer par \; ( {} est le symbole à utiliser pour désigner le fichier).
Par
exemple, find
. -type d affiche
la liste des répertoires se trouvant sous le répertoire courant.
find
/ -name passwd affiche
tous les fichiers de nom passwd
se
trouvant directement ou indirectement sous /.
Autre
exemple: find
. -type d -exec ls -l {} \ ;
permet
de lister récursivement tous les répertoires et leur contenu à
partir du répertoire courant.
EXERCICE Chercher
tous les fichiers de nom cp depuis la racine de
l'arborescence |
5.3
Tri de fichier
L'opération
de tri d'un fichier est fournie par la commande sort.
Cette commande tri le contenu du fichier selon une ou plusieurs clés,
identifiées par leur positions dans les lignes du fichier.
Par
exemple, sort
-k 3 nom_fichier,
va effectuer un tri portant sur le 3ème mot de chaque ligne du
fichier nom_fichier.
La comparaison des mots s'appuie sur le codage ASCII des caractères,
qui est conforme à l'ordre lexicographique. Par défaut, le
caractère considéré comme séparateur entre mots est l'espace ou
la tabulation. Si l'on souhaite utiliser d'autres caractères, alors
il faut les spécifier avec l'option -t de la commande sort.
Par
exemple, sort
-t : -k 3 nom_fichier,
effectue
le même tri en considérant le : comme le caractère séparateur
entre mots.
EXERCICE Trier le fichier /etc/passwd selon les noms d'utilisateurs. |
5.4
Deux fichiers sont-ils identiques ?
La
commande diff
f1 f2 imprime
les lignes qui diffèrent entre deux fichiers f1
et f2.
5.5
Archivage et compression de répertoires et fichiers
L'archivage et la
compression de répertoires et fichiers peuvent être requis pour
effectuer des sauvegardes de données, ou bien pour transférer des
données structurées de grande taille sur le réseau. On peut ainsi
transmettre des données d'un utilisateur à un autre sous forme
d'archive compressée, soit en l'attachant à un message
électronique, soit en la mettant à disposition sur une page Web.
La commande tar
permet de produire une archive
(c'est-à-dire un
ensemble de fichiers et répertoires regroupés sous un nom de
fichier unique) à partir d'un répertoire donné :
tar -cvf nom_archive nom_répertoire
L'archive créée est un fichier qui contient toutes les données se trouvant sous nom_répertoire, et mémorise l'organisation en fichiers de ces données. La commande qui permet de reproduire cette organisation à partir de l'archive est la suivante :
tar -xvf nom_archive
La compression est un mécanisme qui permet de réduire la taille mémoire occupée par des données en leur appliquant un algorithme de compression. La commande gzip permet de compresser un fichier.
gzip
nom_fichier
produit le fichier
compressé de nom nom_fichier.gz
gunzip
nom_fichier.gz reproduit
le fichier nom_fichier
EXERCICE
|
6 -
Accès aux fichiers depuis une session Windows
Dans
la zone de travail Windows, vous pouvez aussi accéder à votre
environnement Unix, c'est à dire à vos répertoires et fichiers, en
cliquant sur l'icône Poste
de travail puis sur
l'icône votre-login
sur Z:. Cet
environnement est le même que celui accessible sous Unix. Si vous
modifiez cet environnement sous Windows, les changements seront
visibles sous Unix, et inversement.
EXERCICE Ouvrez
une session Windows. |