Grégory Bonnet gregory.bonnet@unicaen.fr GREYC Université Caen Basse Normandie Diaporama original : Jean-Philippe Métivier - Boris Lesner
But de cet enseignement 1 - Apprendre à manipuler un système Unix/Linux commandes de base, raccourcis de base manipuler quelques logiciels 2 - Notion de droits de fichiers groupes d utilisateurs droits d accés et propriétaires 3 - Recherche de fichiers ou de mots au sein de plusieurs fichiers commandes avancées de recherche notions de tubes et de chaînes d exécution processus et signaux 4 - Notion de scriptage bash variables d environnement écriture de scripts simples NE PAS PANIQUER
Votre compte Chaque étudiant possède un identifiant qui correspond à son numéro d étudiant. À cet identifiant est associé un compte permettant de stocker ses fichiers dans son répertoire personnel (que nous appellerons par la suite son home), ainsi qu un espace où il pourra mettre des pages internet consultables à l adresse http://xxxxxxx.perso.info.unicaen.fr. Ainsi qu une boite électronique (XXXXXXXX@etu.unicaen.fr), consultable via le portail EtuP@ss : http://www.unicaen.fr/etupass.
Une brève histoire des systèmes d exploitation Définition : Sytème d Exploitation Le système d exploitation (SE, en anglais Operating System ou OS) est un ensemble de programmes responsables de la liaison entre les ressources matérielles d un ordinateur et les applications informatiques de l utilisateur (traitement de texte, lecteur multimedia...). Il fournit aux programmes applicatifs des points d entrée génériques pour les périphériques.
Une brève histoire des systèmes d exploitation Définition : Sytème d Exploitation Le système d exploitation (SE, en anglais Operating System ou OS) est un ensemble de programmes responsables de la liaison entre les ressources matérielles d un ordinateur et les applications informatiques de l utilisateur (traitement de texte, lecteur multimedia...). Il fournit aux programmes applicatifs des points d entrée génériques pour les périphériques. Un système d exploitation est un programme reliant l ordinateur aux logiciels et aux périphériques. =
Une brève histoire des systèmes d exploitation 1985 Windows Pas de SE Windows 1981 Seven 1969 UNIX DOS 1984 Machintosh 1991 Linux 0.01 Linux 2.6.31 MacOS X 10.5
Arborescence / Enseignements Autres Licence Pro Licence Info photo.jpeg archives.tgz test Module A1 Module A2 Méthodologie CM0102.pdf TP0102.pdf TP01.pdf
Chemin absolu / Enseignements Autres Licence Pro Licence Info photo.jpeg archives.tgz test Module A1 Module A2 Méthodologie CM0102.pdf TP0102.pdf TP01.pdf Chemin absolu Le chemin absolu désigne une chaîne de dossiers qui permet depuis la racine d accéder à la cible (fichier ou répertoire) Exemple : accéder à test : /Autres/test accéder à Méthodologie : /Enseignements/Licence Info/Méthodologie
Chemin relatif / Enseignements Autres Licence Pro Licence Info photo.jpeg archives.tgz test Module A1 Module A2 Méthodologie CM0102.pdf TP0102.pdf TP01.pdf Chemin relatif Le chemin relatif désigne une chaîne de dossiers qui permet depuis l endroit où l on se trouve d accéder à la cible (fichier ou répertoire) Exemple : (à partir de Licence Pro) accéder à test :../../Autres/test accéder à Méthodologie :../Licence Info/Méthodologie
Caractères spéciaux / le répertoire racine rep/ désigne le répertoire rep. l endroit où l on se trouve.. le répertoire précédent le répertoire home login le répertoire home de login \cara protège un caractère spécial (., (,,...)
À vous de jouer / Enseignements export Licence Pro Licence Info home Module A1 Module A2 Méthodologie jdoe mdupont pdupont CM0102.pdf TP0102.pdf TP01.pdf photo.jpeg photo.jpeg archives.tgz test 1 - Donnez le chemin absolu de la photo dans le répertoire de Marie Dupont, puis son chemin relatif à partir du répertoire Licence Pro et du home de John Doe. 2 - John Doe veut désigner son home, donnez trois différentes possibilités de le désigner (John Doe se trouve dans le repertoire home de Pierre Dupont). 3 - Donnez le chemin absolu et relatif à partir de la racine du fichier CM0102.pdf, que constatez vous?
cd, mkdir et touch cd (change directory) permet de se déplacer d un répertoire à un autre. cd chemin de la cible mkdir (make directory) permet de créer un répertoire dans le répertoire courant. mkdir nom du repertoire touch permet de créer un fichier vide. touch nom du fichier
cd, mkdir et touch / jdoe@trantor:/$
cd, mkdir et touch / jdoe@trantor:/$ mkdir temp
cd, mkdir et touch / jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ temp
cd, mkdir et touch / jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp temp
cd, mkdir et touch / jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ temp
cd, mkdir et touch / jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 temp
cd, mkdir et touch / temp jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ rep1
cd, mkdir et touch / temp jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 rep1
cd, mkdir et touch / temp jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ rep1 rep2
cd, mkdir et touch / temp jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 rep1 rep2
cd, mkdir et touch / temp jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ rep1 rep2
cd, mkdir et touch / temp jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 rep1 rep2
cd, mkdir et touch / temp rep1 rep2 jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 jdoe@trantor:/temp/rep1$ fichier1
cd, mkdir et touch / temp rep1 rep2 jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 jdoe@trantor:/temp/rep1$ touch../rep2/fichier2 fichier1
cd, mkdir et touch / temp rep1 rep2 jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 jdoe@trantor:/temp/rep1$ touch../rep2/fichier2 jdoe@trantor:/temp/rep1$ fichier1 fichier2
cd, mkdir et touch / temp rep1 rep2 jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 jdoe@trantor:/temp/rep1$ touch../rep2/fichier2 jdoe@trantor:/temp/rep1$ cd.. fichier1 fichier2
cd, mkdir et touch / temp rep1 rep2 jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 jdoe@trantor:/temp/rep1$ touch../rep2/fichier2 jdoe@trantor:/temp/rep1$ cd.. jdoe@trantor:/temp/$ fichier1 fichier2
cd, mkdir et touch / temp rep1 rep2 jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 jdoe@trantor:/temp/rep1$ touch../rep2/fichier2 jdoe@trantor:/temp/rep1$ cd.. jdoe@trantor:/temp/$ cd rep2 fichier1 fichier2
cd, mkdir et touch / temp rep1 rep2 fichier1 fichier2 jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 jdoe@trantor:/temp/rep1$ touch../rep2/fichier2 jdoe@trantor:/temp/rep1$ cd.. jdoe@trantor:/temp/$ cd rep2 jdoe@trantor:/temp/rep2$
cd, mkdir et touch / temp rep1 rep2 fichier1 fichier2 jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 jdoe@trantor:/temp/rep1$ touch../rep2/fichier2 jdoe@trantor:/temp/rep1$ cd.. jdoe@trantor:/temp/$ cd rep2 jdoe@trantor:/temp/rep2$ cd /
cd, mkdir et touch / temp rep1 rep2 fichier1 fichier2 jdoe@trantor:/$ mkdir temp jdoe@trantor:/$ cd temp jdoe@trantor:/temp/$ mkdir rep1 jdoe@trantor:/temp/$ mkdir rep2 jdoe@trantor:/temp/$ cd rep1 jdoe@trantor:/temp/rep1$ touch fichier1 jdoe@trantor:/temp/rep1$ touch../rep2/fichier2 jdoe@trantor:/temp/rep1$ cd.. jdoe@trantor:/temp/$ cd rep2 jdoe@trantor:/temp/rep2$ cd / jdoe@trantor:/$
À vous de jouer / Enseignements export Licence Pro Licence Info home Module A1 Module A2 Méthodologie jdoe mdupont pdupont CM0102.pdf TP0102.pdf TP01.pdf photo.jpeg photo.jpeg archives.tgz test Recréez l arborescence ci-dessus de deux façons différentes.
Manuel de commande La plupart des commandes Linux possèdent un manuel décrivant : ce que font ces commandes; quels sont les paramètres de ces commandes; les options possibles de ces commandes; quelques cas d utilisation. man (manual) manuel d une commande. man nom de la commande la touche q permet de quitter un manuel, et si on tape /mot le manuel marque la première occurence de mot dans le manuel.
La commande ls? ls
La commande ls? ls (list) permet de lister le contenu d un repertoire. ls [option] [chemin d un repertoire] Les options les plus courantes sont : -l (long) mode long décrivant toutes les informations; -a (all) affiche tout y compris les fichiers et répertoires cachés; -d (directory) affiche seulement les répertoires; -R (recursive) effectue le ls et fait de même dans tous les sous-répertoires.
La commande ls? L option --color permet de coloriser le résultat de la commande ls. Le code couleur est le suivant : bleu répertoire vert exécutable magenta fichier média rouge archive cyan lien symbolique
Fichiers cachés Les fichiers et répertoires dont le nom débute par. sont cachés. photo.jpg.devoir.pdf.temp/./sauvegarde/../rep01../../.azerty.
Fichiers cachés Les fichiers et répertoires dont le nom débute par. sont cachés. photo.jpg visible.devoir.pdf.temp/./sauvegarde/../rep01../../.azerty.
Fichiers cachés Les fichiers et répertoires dont le nom débute par. sont cachés. photo.jpg visible.devoir.pdf caché.temp/./sauvegarde/../rep01../../.azerty.
Fichiers cachés Les fichiers et répertoires dont le nom débute par. sont cachés. photo.jpg visible.devoir.pdf caché.temp/ caché./sauvegarde/../rep01../../.azerty.
Fichiers cachés Les fichiers et répertoires dont le nom débute par. sont cachés. photo.jpg visible.devoir.pdf caché.temp/ caché./sauvegarde/ visible../rep01../../.azerty.
Fichiers cachés Les fichiers et répertoires dont le nom débute par. sont cachés. photo.jpg visible.devoir.pdf caché.temp/ caché./sauvegarde/ visible../rep01 visible../../.azerty.
Fichiers cachés Les fichiers et répertoires dont le nom débute par. sont cachés. photo.jpg visible.devoir.pdf caché.temp/ caché./sauvegarde/ visible../rep01 visible../../.azerty caché.
Fichiers cachés Les fichiers et répertoires dont le nom débute par. sont cachés. photo.jpg visible.devoir.pdf caché.temp/ caché./sauvegarde/ visible../rep01 visible../../.azerty caché. caché
Jokers Pour désigner plusieurs fichiers ou répertoires il existe les jokers qui permettent de remplacer en partie ou entièrement un chemin d accés. Exemple :? n importe quelle lettre * n importe quelle chaîne de caractères ls repertoire/* : tous les fichiers contenus dans repertoire ls solution??.pdf : tous les fichiers commencant par solution suivi de deux caractères quelconques et de.pdf ls travaux/plan* : tous les fichiers commencant par plan dans le répertoire travaux y compris le fichier ou répertoire plan s il existe
À vous de jouer Quelle est la commande permettant de lister : Tous les fichiers contenus dans le répertoire courant Tous les fichiers dont l extension est.txt Tous les fichiers contenant le mot facture Sachant que les fichiers de facture sont nommés de la façon suivante : jjmmaa facture client.txt, listez 1 toutes les factures du mois d octobre 2008; 2 toutes les factures du client Doe.
Copier, déplacer et effacer cp (copy) permet de copier un ou plusieurs fichiers cp [option] source destination mv (move) déplace un ou plusieurs fichiers ou répertoires. les options les plus courantes : mv [option] source destination -i mode intéractif -r mode récursif (seulement pour cp) -v mode textuel -u mise à jour seulement
Copier, déplacer et effacer rmdir (remove directory) permet d effacer un répertoire vide rmdir [option] repertoire rm (remove) permet d effacer un fichier les options les plus courantes : rm [option] fichier -i mode intéractif (seulement pour rm) -r effacer le fichier ou le répertoire et son contenu (seulement pour rm) -v mode textuel
Copier, déplacer et effacer jdoe jdoe@trantor: /$ temp mail 09 09a 09b 10a c10 bin z cc a
Copier, déplacer et effacer jdoe jdoe@trantor: /$ cd mail temp mail 09 09a 09b 10a c10 bin z cc a
Copier, déplacer et effacer jdoe jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ temp mail 09 09a 09b 10a c10 bin z cc a
Copier, déplacer et effacer jdoe jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* temp mail 09 09a 09b 10a c10 bin z cc a
Copier, déplacer et effacer jdoe jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ temp mail 09 09a 09b 10a c10 bin
Copier, déplacer et effacer jdoe jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ temp mail 09 09a 09b 10a c10 bin
Copier, déplacer et effacer jdoe jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ temp mail 09 09a 09b 10a bin c10
Copier, déplacer et effacer jdoe jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ temp mail 09 09a 09b 10a bin c10
Copier, déplacer et effacer jdoe jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ jdoe@trantor: /temp$ temp mail 09 09a 09b 10a bin c10
Copier, déplacer et effacer jdoe jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ jdoe@trantor: /temp$ cp 09?../mail/ temp mail 09 09a 09b 10a bin c10
Copier, déplacer et effacer temp jdoe mail jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ jdoe@trantor: /temp$ cp 09?../mail/ jdoe@trantor: /temp$ 09 09a 09b 10a 09a 09b bin c10
Copier, déplacer et effacer temp jdoe mail jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ jdoe@trantor: /temp$ cp 09?../mail/ jdoe@trantor: /temp$ cd.. 09 09a 09b 10a 09a 09b bin c10
Copier, déplacer et effacer temp jdoe mail jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ jdoe@trantor: /temp$ cp 09?../mail/ jdoe@trantor: /temp$ cd.. jdoe@trantor: /$ 09 09a 09b 10a 09a 09b bin c10
Copier, déplacer et effacer temp jdoe mail jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ jdoe@trantor: /temp$ cp 09?../mail/ jdoe@trantor: /temp$ cd.. jdoe@trantor: /$ rm -fr temp 09 09a 09b 10a 09a 09b bin c10
Copier, déplacer et effacer jdoe mail jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ jdoe@trantor: /temp$ cp 09?../mail/ jdoe@trantor: /temp$ cd.. jdoe@trantor: /$ rm -fr temp jdoe@trantor: /$ 09a 09b bin c10
Copier, déplacer et effacer jdoe mail jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ jdoe@trantor: /temp$ cp 09?../mail/ jdoe@trantor: /temp$ cd.. jdoe@trantor: /$ rm -fr temp jdoe@trantor: /$ mv mail courriel 09a 09b bin c10
Copier, déplacer et effacer jdoe courriel 09a 09b bin jdoe@trantor: /$ cd mail jdoe@trantor: /mail$ rm bin/* jdoe@trantor: /mail$ mv c10 bin/ jdoe@trantor: /mail$ cd /temp/ jdoe@trantor: /temp$ cp 09?../mail/ jdoe@trantor: /temp$ cd.. jdoe@trantor: /$ rm -fr temp jdoe@trantor: /$ mv mail courriel jdoe@trantor: /$ c10
À vous de jouer jdoe jdoe a_classer file $ file10 file20 documents Autres file a file b Autres A B C aa bb cc aa bb cc file a aa file b bb file20 file10
Liens symboliques Un lien symbolique correspond à un raccourci vers un fichier ou un répertoire. ln -s fichier lien Cela permet de désigner à différents endroits le même fichier et ainsi de pouvoir répercuter des modifications à plusieurs endroits en une seule fois.
cat, less, head et tail cat (concat and display) concatène des fichiers et les affiche cat [option] source 1...source n less affiche le contenu du fichier comme s il s agissait d un manuel less [option] source head affiche les X premières lignes d un fichier (par défaut X = 10) head [option -n X] source tail affiche les X dernières lignes d un fichier (par défaut X = 10) tail [option -n X] source
Archivages L outil tar permet d archiver des fichiers et de les compresser. Pour archiver, il faut utiliser tar de la manière suivante : tar -c [option] nom de l archive fichiers a archiver Pour désarchiver, il faut utiliser tar de la manière suivante : tar -xf [option] nom de l archive Les options les plus courantes : -c crée une archive -x extrait une archive -z active la compression au format de bzip -j active la compression au format de bzip2 -v affiche la liste des fichiers traiteés
La Forge et Subversion https://forge.info.unicaen.fr/ Forge permet de faire circuler l information autour du projet, de recenser les anomalies et les tâches à effectuer, de disposer d un dépôt de sources du projet géré par Subversion (SVN). http://svnbook.red-bean.com/nightly/fr/svn-book.pdf SVN est un gestionnaire d arborescence de fichiers qui : garde en mémoire toutes les modifications effectuées; permet de revenir à une version antérieure; gère les conflits d écriture sur un même fichier.
Principes Connection avec votre EtuP@ss
Commandes création du dépôt local (synchronisation initiale) svn -checkout [ username login] url mise à jour du dépôt local svn -update [ username login] répertoire ajout ou suppression de fichiers locaux svn -add nom-de-fichier svn -del nom-de-fichier mise à jour du dépôt distant svn -commit [ username] [-m commentaire ]
Gestion des conflits vérouillage d un fichier svn -lock [ username login] fichier dévérouillage d un fichier svn -unlock [ username login] fichier consultation du statut des fichiers svn -status
Arborescence du dépôt