PLAN Introduction à UNIX Patrick Fuchs Dynamique des Structures et Interactions des Macromolécules Biologiques Université Paris Diderot patrick.fuchs@univ-paris-diderot.fr 2 PLAN Système d'exploitation système d'exploitation caractéristiques et fonctionnement d'unix historique d'unix 2. Commandes de base 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. 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 Utilisateur(s) 3 4 1
Caractéristiques d'unix Fonctionnenent de base d'unix UNIX est un Système d'exploitation : 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 Mais aussi il est : 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 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 Noyau le shell envoie des appels au noyau en fonction des requêtes de(s) (l')utilisateurs 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 5 Matériel = Processeur, mémoire, disque dur, lecteur de CDROM, écran, clavier 6 Historique d'unix: naissance de Linux Historique d Unix (plus à jour) première version d'unix développée par Ken Thompson (Bell Labs) 1970 1975 1980 1985 1990 BSD pour Berkeley Software Design Minix (Vrije Universiteit Amsterdam) 1995 1998 Linux (Linus Thorvald) 7 source http://fr.wikipedia.org/wiki/unix 8 2
Redhat Fedora Mandriva Debian Ubuntu Suse Distributions Linux version installée à Lamarck version conseillée pour débuter PLAN gestion des utilisateurs se connecter notion de shell Unix quelques commandes de base Slackware 9 10 Les Utilisateurs Première Connexion Unix est multi-utilisateurs nécessité d'avoir un nom particulier aux yeux du système ("login") ainsi 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) 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) Saisie du nom d'utilisateur et du mot de passe Arrêt de l ordinateur environnement de travail pour la session X-window: KDE ou gnome 11 12 3
L'environnement X-Window (XFree86 = version libre) On arrive sous l'environnement KDE ou gnome (X-Window = interface graphique rendant l'interaction avec le système plus conviviale) : bouton de menu icônes ouverture d'un shell (clique-droit) date Déconnexion de la session X-Window Nécessité de se déconnecter à la fin d'une session (selon les systèmes): dans la barre de menu "Système" puis "Fermer la session" bureau (permet le multi-fenêtrage) barre de tâches 13 14 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 Notion de shell (2) Ouverture du shell (sous X-Window) : cliquer sur l'icône représentant le 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 15 16 4
Connexion en mode texte Changement du mot de passe Invite de connexion Utilisateur connecté, shell prêt à recevoir des commandes Impossibilité d ouvrir une fenêtre X-window le mot de passe est personnel : 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 6 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 Taper startx pour passer en mode X-window 17 18 Syntaxe générale des commandes UNIX Quelques commandes de base 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) certaines commandes utilisent des arguments (e.g. nom de fichier) IMPORTANT : Unix est sensible à la casse Unix utilise l'espace comme séparateur de commandes (e.g. utiliser man date et non mandate) 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 man commande : affiche les pages de manuel de commande (utilise les mêmes touches que more pour se déplacer le long des pages) man more; man ls 19 20 5
PLAN Système de fichier généralités arborescence / références absolues et relatives manipulation des fichiers droits des fichiers caractères spéciaux 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) 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 (emplacement, nom du propriétaire, droits, taille, date de création et de dernière modification) 21 22 L'arborescence Unix Chemin d'accès : référence absolue et relative bin ls / dev etc home usr var répertoires passwd DESS threose maitre1 toto maitrise bin maitre2 monprog.c racine (référence absolue) local biology rasmol fichiers 23 Notion de chemin d'accès : 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. Chaque répertoire a au moins deux liens physiques : lien noté. caractérisant le répertoire lui-même lien noté.. caractérisant le répertoire «père» Référence absolue = chemin d'accès ("pathname") depuis la racine (permettant le répérage sans ambiguïté) e.g. : /home/threose/maitrise/maitre1 Référence relative : Selon l'endroit où l'on se situe ( répertoire de travail = working directory ou encore répertoire courant ), répérer un fichier peut s'effectuer de manière relative. e.g. :../../DESS 24 6
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/biology une référence relative: e.g. cd../../dess 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 maitre1 cd ~/test est équivalent à cd /home/threose/maitrise/maitre1/test ~user : désigne le "home directory" de l'utilisateur user e.g : cd ~maitre10 amène dans le "home directory" de l'utilisateur maitre10 25 26 Liste du contenu des répertoires Manipulations de fichiers ls options : -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 : / pour un répertoire * si le fichier est executable @ si le fichier est un lien symbolique -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 copie de fichiers : cp source destination 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 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 27 28 7
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 déplacement d'un fichier : mv fichier1 repertoire : déplace fichier1 dans le répertoire repertoire supporte également l'option -i 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) groupe (g) : les utilisateurs font partie de groupe (e.g. maitrise) le reste du monde (o) : tout autre utilisateur 29 30 Droits d'accès aux fichiers (2) 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 utilisateur propriétaire taille groupe propriétaire date de dernière modification nom droits de l'utilisateur propriétaire droits du groupe droits du reste du monde - : l'utilisateur n'a pas le droit correspondant r, w ou x : l'utilisateur possède le droit 31 31 32 8
Changer les droits d'accès aux fichiers Caractères Spéciaux et noms de fichiers commande chmod : modifie les droits d'accès syntaxe syntaxe : chmod droits fichier les droits peuvent être décrits de 2 manières 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) 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 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? : remplace n'importe quel caractère 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 ) 33 34 PLAN Quelques outils Linux courants les éditeurs de texte les outils Internet les outils de développement 35 Les éditeurs de texte 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 Tux kart etc 36 9
GNU Project (Gnu s Not Unix) Licence GPL http://www.gnu.org etc e.g. bash, emacs, gcc, etc source http://www.gnu.org/licenses/quick-guide-gplv3.html 37 38 Le ftp anonyme PLAN 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 : 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 définition des 3 flux courants redirection des flux 39 40 10
Les flux (entrée et sortie standard) Redirection des flux Les flux désignent les flux de données qui rentrent et qui sortent des processus (ou programmes) : 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 : commande python sans argument (lance l interpréteur) print 1+1 est saisi au clavier (stdin) 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 Le résultat de la commande est affiché sur l'écran (stdout) 41 42 Quelques commandes de filtres Redirection des flux (2) 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) : 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 43 44 11
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 45 46 PLAN Gestion des processus 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 : 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 & 47 48 12
PLAN 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 49 50 13