Où ? Qui ? Quand ? M1BI, M2BI, M2ISDD Septembre 2014 • Adresse web : http://didel.script.univ-paris- Introduction à UNIX diderot.fr/claroline/course/index.php?cid=33OEB1 • Lieu: PRG (Halle aux Farines, Lamarck) – cf emploi du temps ! Patrick Fuchs • Enseignants : – Cours : Patrick Fuchs – TP : Amélie Bacle, Caroline Sénac, Thibault Tubiana, Patrick Fuchs – Contributeurs Cours / TP : Patrick Fuchs, Pierre Poulain, Denis Mestivier Institut Jacques Monod Université Paris Diderot [email protected] PF 09/2014 2 PLAN 1. 2. 3. 4. 5. 6. 7. 8. PLAN 1. Introduction Introduction Première session Gestion et manipulation des fichiers Quelques outils Unix courants Fichiers et flux Archivage des données Gestion des processus Quelques bases d'Unix avancé PF 09/2014 • • • 2. 3. 4. 5. 6. 7. 8. 3 système d'exploitation caractéristiques et fonctionnement d'UNIX historique d'UNIX Commandes de base Gestion et manipulation des fichiers Quelques outils Unix courants Fichiers et flux Archivage des données Gestion des processus Quelques bases d'Unix avancé PF 09/2014 4 1 Système d'exploitation Caractéristiques d'UNIX • UNIX est un Système d'exploitation : • Définition : programme assurant la gestion de l'ordinateur et de ses périphériques. Il sert d'interface entre l'utilisateur et le matériel. – multi-utilisateurs – multi-tâches – multi-plate-formes (c'est-à-dire portable) : IBM, SUN, HP, IRIX (Silicon Graphics)… et maintenant sur PC avec Linux – qui gère la répartition des ressources (mémoire, processeur et espace disque) etc… Rq : on utilise souvent le sigle OS pour "Operating System" • Exemple : Windows, Unix, Mac OSX, Be OS, MS-DOS, Linux… Matériel Système d'exploitation • Mais aussi il est : Utilisateur(s) PF 09/2014 – orienté réseau (e.g. partage de fichiers sur une machine distante : NFS…) – très utilisé en développement et en recherche – très stable etc… 5 PF 09/2014 6 Historique d'UNIX: naissance de Linux Fonctionnenent de base d'UNIX Unix est un système d'exploitation qui fonctionne par couches (ici seule une petite partie vous en est montrée) : système UNIX Utilisateurs Shell le shell envoie des appels au noyau en fonction des requêtes de(s) (l')utilisateurs première version d'UNIX développée par Ken Thompson (Bell Labs) 1970 1975 1980 BSD pour Berkeley Software Design 1985 Noyau le noyau UNIX est chargé en mémoire lors du démarrage de l'ordinateur; il alloue les ressources mémoire et processeur, gère le stockage des fichiers… Matériel = Processeur, mémoire, disque dur, lecteur de CDROM, écran, clavier… 7 1990 1995 PF 09/2014 PF 09/2014 1998 Minix (Vrije Universiteit Amsterdam) Linux (Linus Thorvald) 8 2 Historique d’Unix (plus à jour) Distributions Linux • Redhat • Fedora • Mandriva • Debian • Ubuntu version conseillée pour débuter • Suse • Slackware PF 09/2014 source http://fr.wikipedia.org/wiki/UNIX 9 PF 09/2014 10 Importance d’Unix en Bioinfo PLAN 1. Introduction 2. Première session • • • • 3. 4. 5. 6. 7. 8. PF 09/2014 Dudley & Butte, PLOS Comp. Biol., 2009 11 gestion des utilisateurs se connecter notion de shell Unix quelques commandes de base Gestion et manipulation des fichiers Quelques outils Unix courants Fichiers et flux Archivage des données Gestion des processus Quelques bases d'Unix avancé PF 09/2014 12 3 Les Utilisateurs Première Connexion • Unix est multi-utilisateurs nécessité d'avoir un nom particulier aux yeux du système ("login") ainsi Salles info Lamarck : Ubuntu 12.04 qu'un mot de passe pour la sécurité • 2 types d'utilisateurs – l'utilisateur "root" : super utilisateur -> possède tous les droits sur la machine – les autres utilisateurs (possèdent des droits restreints) Saisie du nom d'utilisateur (login) et du mot de passe (passwd) • Chaque utilisateur est caractérisé par : – un nom ("login") et un numéro d'utilisateur ("UID") – un groupe et un numéro de groupe ("GID") – un mot de passe ("passwd") – un type de shell (= intérpréteur de commandes) – un répertoire utilisateur qui lui appartient ("home directory") (Rq : toutes ces informations sont stockées dans le fichier /etc/passwd) PF 09/2014 13 PF 09/2014 L'environnement X-Window ou X11 (XFree86 = version libre) Sous Ubuntu 12.04 on arrive sous l'environnement Unity (successeur de gnome) = interface graphique permettant le multi-fenêtrage (X-Window) barre de menu moteur de recherche pour quitter la session bureau (possibilité d’y déposer des icônes) 14 Déconnexion de la session X-Window Nécessité de se déconnecter à la fin d'une session (selon les systèmes): Cliquer en haut à droite dans la barre de menu puis "Fermer la session" (ou "Log out") barre de tâches PF 09/2014 15 PF 09/2014 16 4 Déconnexion de la session X-Window Notion de shell Le shell est un programme qui va faire le lien entre le noyau UNIX et l'utilisateur = interpréteur de commandes interactif invite ("prompt") le shell est prêt à recevoir des commandes rentrées au clavier PF 09/2014 17 PF 09/2014 18 Terminal Notion de shell (2) • Ouverture du shell (sous X-Window) : Terminal = fenêtre permettant de piloter un shell Unix – cliquer sur l'icône Terminal (=fenêtre pilotant un shell) • A ce point le shell peut recevoir des commandes : – exemples : date : affiche la date cal : affiche le calendrier du mois en cours • Fermeture du shell : – commande exit – Ctrl-D PF 09/2014 19 PF 09/2014 20 5 Sur les vieux systèmes : Connexion en mode texte Changement du mot de passe • le mot de passe est personnel : Invite de connexion – ne pas le divulguer – éviter les mots de passe triviaux (e.g. votre nom…) – utiliser des lettres (majuscules et/ou minuscules) et des chiffres (éventuellement des caractères spéciaux) – doit faire 8 lettres au minimum • la commande passwd : permet de changer de mot de passe – saisir le mot de passe actuel – saisir 2 fois le nouveau mot de passe – NB: A Lamarck, utiliser la commande yppasswd (authentification utilisant le programme yellow page) Utilisateur connecté, shell prêt à recevoir des commandes Impossibilité d’ouvrir une fenêtre X-window PF 09/2014 Taper ‘startx’ pour passer en mode X-window 21 PF 09/2014 Quelques commandes de base Syntaxe générale des commandes UNIX • syntaxe générale : commande option(s) argument(s) exemple : man date – les options permettent de modifier le comportement de la commande; en général elles sont précédées du signe '-' (e.g. ls et ls -l) 22 • • • • • date : affiche la date cal : affiche le calendrier who : affiche les utilisateurs connectés whoami : affiche votre nom d'utilisateur more fichier : affiche le contenu de fichier page par page – utiliser la touche espace pour passer à la page suivante – utiliser la touche b pour revenir à la page précédente – utiliser la touche q pour quitter – certaines commandes utilisent des arguments (e.g. nom de fichier) • IMPORTANT : • less fichier : programme plus puissant que more • man commande : affiche les pages de manuel de commande (utilise les mêmes touches que more pour se déplacer le long des pages) – Unix est sensible à la casse – Unix utilise l'espace comme séparateur de commandes (e.g. utiliser man date et non mandate) man more; man ls PF 09/2014 23 PF 09/2014 24 6 PLAN Système de fichier 1. Introduction 2. Première session 3. Gestion et manipulation des fichiers • • • • • 4. 5. 6. 7. 8. • En UNIX, tout est fichier : – les fichiers dits normaux • fichiers textes (suite de caractères ASCII = caractères lisibles) • fichiers éxécutables (suite de caractères binaires, compréhensibles uniquement par l'ordinateur, en général il s'agit des programmes) généralités arborescence / références absolues et relatives manipulation des fichiers droits des fichiers caractères spéciaux – les répertoires (peuvent contenir d'autres fichiers ou d'autres répertoires) – les fichiers de périphériques • Chaque fichier possède un "i-node" : moyen pour Unix de stocker les caractéristiques du fichier Quelques outils Unix courants Fichiers et flux Archivage des données Gestion des processus Quelques bases d'Unix avancé (emplacement, nom du propriétaire, droits, taille, date de création et de dernière modification) PF 09/2014 25 bin dev etc • Notion de chemin d'accès : racine (référence absolue) home 26 Chemin d'accès : référence absolue et relative L'arborescence Unix / PF 09/2014 usr – Pour identifier un fichier : suite de noms étiquetant les arêtes le long de l'arborescence. – racine absolue : / – / sert aussi de séparation entre sous-répertoires. var • Chaque répertoire a au moins deux liens physiques : ls passwd l3bi répertoires PF 09/2014 glycine m1bi lib m2bi etudiant1 etudiant2 toto monprog.c – lien noté . caractérisant le répertoire lui-même – lien noté .. caractérisant le répertoire « père » local • Référence absolue : chemin d'accès depuis la racine / (permettant le répérage sans ambiguïté) e.g. : /home/glycine/m2bi/etudiant1 • Référence relative : bin rasmol fichiers – Selon l'endroit où l'on se situe ( répertoire de travail = ‘working directory’ ou encore ‘répertoire courant’) : ne commence pas par la racine / e.g. : ../../m1bi 27 PF 09/2014 28 7 Déplacement dans l'arborescence • • Création / Destruction de répertoires pwd : affiche le répertoire courant (print working directory) cd chemin : déplacement vers le répertoire indiqué par chemin (change directory) – chemin peut être : • une référence absolue : e.g. cd /usr/local/bin • une référence relative: e.g. cd ../../m1bi • mkdir my_new_dir : création d'un nouveau répertoire my_new_dir • rmdir my_new_dir : destruction du répertoire my_new_dir – si chemin est omis, ramène dans le répertoire utilisateur "home directory" – caractère spécial : ~ désigne le "home directory" e.g. : pour l'utilisateur etudiant1 cd ~/test est équivalent à cd /home/glycine/m2bi/etudiant1/test – ~user : désigne le "home directory" de l'utilisateur user e.g : cd ~etudiant1 amène dans le "home directory" de l'utilisateur maitre10 PF 09/2014 29 PF 09/2014 Liste du contenu des répertoires • Manipulations de fichiers ls options : • copie de fichiers : cp source destination – -l : liste des fichiers avec leurs caractéristiques détaillées excepté ceux commençant par un . – -F : liste des fichiers avec un symbole selon certaines caractéristiques : – 1er cas : si destination est un fichier e.g : cp fichier1 fichier2 : effectue une copie de fichier1 en un nouveau fichier appelé fichier2 option -i : si fichier2 existe, le shell demande confirmation avant l'écrasement • / pour un répertoire • * si le fichier est executable • @ si le fichier est un lien symbolique – 2ème cas : si destination est un répertoire cp fichier1 repertoire : effectue une copie de fichier1 dans le répertoire repertoire cp fichier1 fichier2 repertoire : effectue une copie de fichier1 et fichier2 dans le répertoire repertoire option –i : demande confirmation d'écrasement si le (ou l'un des) fichier(s) existe(nt) dans le répertoire de destination – -a : tous les fichiers même ceux précédés par un point . (=fichiers cachés) – -R : liste le contenu du répertoire du courant et le contenu de tous les sous-répertoires. – -t : liste par ordre chronologique – -s : liste la taille des fichiers PF 09/2014 30 31 PF 09/2014 32 8 Manipulations de fichiers (2) Droits d'accès aux fichiers • destruction de fichiers : – rm fichier1 : destruction du fichier fichier1 – rm fichier1 fichier2 : destruction des fichiers fichier1 et fichier2 – option -i : demande confirmation avant la destruction • renommer un fichier : – mv fichier1 fichier2 : renomme fichier1 en fichier2 – option -i : si fichier2 existe déjà, demande confirmation avant écrasement • 3 types d'opération : – lire (r) : on peut lire le contenu du fichier (ou le répertoire) – écrire (w) : on peut modifier ou détruire le fichier (ou le répertoire) – exécuter (x) : on peut éxécuter le fichier (en général, il s'agit des programmes ou scritps); pour un répertoire, cela signifie que l'on peut s'y déplacer • 3 types d'utilisateur : – propriétaire (u) : l'utilisateur lui-même (e.g. maitre1) • déplacement d'un fichier : – groupe (g) : les utilisateurs font partie de groupe (e.g. maitrise) – mv fichier1 repertoire : déplace fichier1 dans le répertoire repertoire – supporte également l'option -i PF 09/2014 – le reste du monde (o) : tout autre utilisateur 33 PF 09/2014 Droits d'accès aux fichiers (2) 34 Droits d'accès aux fichiers (3) • la commande ls -l : renseigne sur les caractéristiques d'un fichier (i-node) • Sortie de ls -l : invite$ ls -l -rwxr-xr-x ... user group ... monscript.csh -rw-r--r-- ... user group ... toto type de fichier droits nombre de liens physiques PF 09/2014 taille utilisateur propriétaire groupe propriétaire droits de l'utilisateur propriétaire nom droits du reste du monde droits du groupe date de dernière modification 35 PF 09/2014 - : l'utilisateur n'a pas le droit correspondant r, w ou x : l'utilisateur possède le droit 36 9 Changer les droits d'accès aux fichiers ! • Par défaut la création d’un fichier avec un éditeur de texte 644 (rx-r--r--) commande chmod : modifie les droits d'accès syntaxe syntaxe : chmod droits fichier – les droits peuvent être décrits de 2 manières – lisible potentiellement par d’autres utilisateurs • par une combinaison de 3 chiffres : – chaque chiffre correspond dans l'ordre à l'utilisateur, le groupe et le reste du monde – à chaque droit correspond une valeur : (r -> 4, w -> 2, x-> 1) – on utilise la somme des droits que l'on veut affecter (0 signifie aucun droit) • Partage de fichier : – Pratique pour réaliser un projet commun, mais… – Déontologie : ne pas aller dans les répertoires de vos camarades sauf si vous y êtes invités e.g. : chmod 644 fichier -rw-r--r-- ... fichier chmod 750 fichier -rwxr-x--- ... fichier • par une combinaison de lettres désignant les individus concernés (r, g ou o) ainsi qu'une autre combinaison de lettres désignant les droits que l'on veut affecter (précédées du signe +) ou retirer (précédées du signe -) e.g. : chmod +x fichier affecte le droit x à u, g et o chmod ugo+rw fichier affecte les droits rw à u, g et o chmod o-x fichier retire le droit x à o PF 09/2014 37 • Pour sécuriser vos données (lisible seulement par vous et par root) – fichier 600 (rx-------) – répertoire 700 (rwx------) (récursif, tout fichier ou PF 09/2014 sous-répertoire) 38 PLAN Caractères Spéciaux et noms de fichiers • Caractères spéciaux Unix : – * (joker) : remplace n'importe quelle chaîne de caractères • ls *.txt : désigne tous les fichiers se terminant par l'extension .txt • ls results* : désigne tous les fichiers commençant par results • ls ~/test/* : désigne tous les fichiers du répertoire test 1. 2. 3. 4. • ls results?.dat : désigne tous les fichiers commençant par results suivis d'un caractère quelconque et se terminant par .dat – ! : rappel une commande dans l'historique (cf commande history) • Noms de fichiers : – 255 caractères maximum – éviter les espaces et les caractères spéciaux (* ? ! $ < > & \ / " ' ` ; etc…) 39 Introduction Première session Gestion et manipulation des fichiers Quelques outils Unix courants • • • – ? : remplace n'importe quel caractère PF 09/2014 Droits de lecture et données confidentielles 5. 6. 7. 8. les éditeurs de texte les outils Internet les outils de développement Fichiers et flux Archivage des données Gestion des processus Quelques bases d'Unix avancé PF 09/2014 40 10 GNU Project (Gnu’s Not Unix) Quelques outils Linux courants • Les éditeurs de texte – – – – – http://www.gnu.org nedit (le plus simple, bien pour commencer) gedit (sous gnome) kedit (sous KDE) emacs (très puissant, mais complexe au départ) vi (très spartiate, mais permet de travailler en mode terminal) • Navigateur Internet (et Messagerie) – firefox (sur la plupart des distributions LINUX) – konqueror (spécifique à KDE) – ftp (file transfert protocol) : permet le transfert de fichiers sur Internet • Outils de développement : – Compilateurs: gcc : compilateur C ; f77 : compilateur Fortran – Langages de scripts : python, perl • Traitement de texte: – latex : véritable traitement de texte (rendu quasi-pro, mais syntaxe rigide) – Open Office : suite bureautique (tableur, logiciel de présentations etc) • Jeux e.g. bash, emacs, gcc, etc – Tux kart PF 09/2014 41 etc PF 09/2014 Licence GPL 42 Le ftp anonyme • La Commande ftp : – syntaxe : ftp nom_du_site_ftp (e.g. ftp.rcsb.org) • Connexion au site : – se ‘logger’ en tant qu’utilisateur ‘anonymous’ – pour le passwd, mettre son E-mail – en général, autorisation d’aller dans le répertoire pub • Commandes au sein du programme ftp : – – – – etc ls : voir le contenu du répertoire cd : changer de répertoire get : rapatrier un fichier (inverse de put) quit ou bye : quitter le programme ftp source http://www.gnu.org/licenses/quick-guide-gplv3.html PF 09/2014 43 PF 09/2014 44 11 PLAN 1. 2. 3. 4. 5. Les flux (entrée et sortie standard) Les flux désignent les flux de données qui rentrent et qui sortent des processus (ou programmes) : Introduction Première session Gestion et manipulation des fichiers Quelques outils Unix courants Fichiers et flux • • • entrée standard (stdin) : clavier • sortie standard (stdout) : écran • sortie d'erreur (stderr) : écran e.g. : la commande python sans argument lance l’interpréteur python qui lit en entrée stdin et génère sa sortie sur stdout : définition des 3 flux courants redirection des flux commande python sans argument (lance l’interpréteur) 6. Archivage des données 7. Gestion des processus 8. Quelques bases d'Unix avancé PF 09/2014 print 1+1 est saisi au clavier (stdin) 45 PF 09/2014 Redirection des flux Le résultat de la commande est affiché sur l'écran (stdout) 46 Quelques commandes de filtres Il est possible de rediriger les flux (en général vers ou depuis un fichier) : • < : redirection de l'entrée standard • > : redirection de la sortie standard • >> : redirection de la sortie standard à la fin d'un fichier • e.g. : ls -l /etc > toto : redirection de stdout dans le fichier toto (si toto existe, il est écrasé) ls -l /bin >> toto : redirection de stdout à la fin du fichier toto (le fichier toto n'est pas écrasé) cat < toto : redirection de l'entrée standard depuis le fichier toto • • PF 09/2014 PF 09/2014 47 • • head fichier : affiche les premières lignes de fichier tail fichier : affiche les dernières lignes de fichier grep expression fichier : renvoie toutes les lignes de fichier contenant expression sort fichier : tri chaque ligne de fichier wc -l fichier : renvoie le nombre de lignes de fichier (option -c : nombre de caractères, option -w : nombre de mots) 48 12 Redirection des flux (2) PLAN | : le pipe (tube) permet de connecter la stdout d'une commande avec la stdin d'une autre commande syntaxe : commande1 | commande2 ls -l | sort : renvoie la liste des fichiers triée ls -l /etc | grep csh : renvoie tous les lignes de la sortie de la commande ls contenant l'expression csh Rq : la 2ème commande n'a pas besoin d'argument Rq2 : on peut connecter autant de commandes que l'on veut : ls -l /etc | grep csh | sort 1. 2. 3. 4. 5. 6. 7. 8. PF 09/2014 PF 09/2014 • 49 Introduction Première session Gestion et manipulation des fichiers Quelques outils Unix courants Fichiers et flux Archivage des données Gestion des processus Quelques bases d'Unix avancé PLAN Archivage et compression de données • Archivage : – tar -cvf archive.tar fichier1 fichier2 : crée une archive contenant fichier1 et fichier2 – tar -xvf archive.tar : désarchive archive.tar – tar -tvf archive.tar : renvoie le contenu de archive.tar • Compression – gzip fichier : compresse fichier et ajoute une extension .gz (opération inverse : gunzip fichier.gz) – compress fichier : compresse fichier et ajoute une extension .Z (opération inverse : uncompress fichier.Z) – zip archive.zip fichier1 fichier2 : crée une archive compressée contenant fichier1 et fichier2 (même type de compression que winzip) – unzip archive.zip : décompresse et désarchive archive.zip PF 09/2014 50 51 1. 2. 3. 4. 5. 6. 7. 8. Introduction Première session Gestion et manipulation des fichiers Quelques outils Unix courants Fichiers et flux Archivage des données Gestion des processus Quelques bases d'Unix avancé PF 09/2014 52 13 Gestion des processus PLAN • Processus = suite plus ou moins longue d'instructions exécutables par un ordinateur (typiquement un programme) • Unix = système multi-tâches -> Unix peut gérer plusieurs processus en même temps • Quelques commandes de gestion des processus : 1. 2. 3. 4. 5. 6. 7. 8. – top et ps : permettent de visualiser les processus qui sont en exécution – kill : permet de tuer un processus • Notion d'avant-plan et d'arrière-plan : – avant-plan : on a pas la main dans le shell (par défaut quand on lance une commande) – arrière-plan : on récupère la main dans le shell alors que le processus tourne – pour lancer une commande en arrière-plan : commande & PF 09/2014 53 Introduction Première session Gestion et manipulation des fichiers Quelques outils Unix courants Fichiers et flux Archivage des données Gestion des processus Quelques bases d'Unix avancé PF 09/2014 54 Quelques bases d'Unix avancé • Quelques astuces en bash: – alias : permet de créer ses propres commandes : • alias ll='ls –l' : lorsqu'on tapera la commande ll, elle équivaudra à ls –l • alias rm='rm –i' ; alias mv='mv –i' ; alias cp='cp –i' – le fichier ~/.bashrc (en bash) : • contient un certain nombre d'instructions pour configurer son propre shell • ces instructions sont exécutées à chaque fois qu'on lance un shell • il existe différents types de shell (sh, bash, tcsh…) • les variables • les scripts shells : véritable langage de programmation • autres outils Unix : sed, awk… etc… PF 09/2014 55 14