17/02/2004 introduction à unix/linux pierre tufféry equipe de bioinformatique et génomique...
TRANSCRIPT
17/02/2004
Introduction à Unix/Linux
Pierre TufféryEquipe de Bioinformatique et Génomique
MoléculaireUniversité Paris 7
[email protected] from [email protected] from [email protected]
17/02/2004
PLAN
1. Introduction
2. Première session3. Gestion et manipulation des fichiers4. Quelques outils Unix courants5. Fichiers et flux6. Archivage des données7. Gestion des processus8. Quelques bases d'Unix avancé
17/02/2004
PLAN
1. Introduction• système d'exploitation • caractéristiques et fonctionnement d'UNIX• historique d'UNIX
2. Commandes de base3. Gestion et manipulation des fichiers4. Quelques outils Unix courants5. Fichiers et flux6. Archivage des données7. Gestion des processus8. Quelques bases d'Unix avancé
17/02/2004
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.Rq : on utilise souvent le sigle OS pour "Operating System"
• Exemple : Windows, Unix, Mac OS, Be OS, MS-DOS…
MatérielSystème
d'exploitation
Utilisateur(s)
17/02/2004
Caractéristiques 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, mais aussi caché dans MacOS X
– qui gère la répartition des ressources (mémoire et espace disque)
– orienté réseau (e.g. partage de fichiers sur une machine distante : NFS…)
…
– très utilisé en développement et en recherche (le développement d'applications y est SIMPLE
– très stable– Devient d'utilisation simple pour tous
…
17/02/2004
Historique d'UNIX
LINUX
première version d'UNIX développée par Ken Thompson
BSD pour Berkeley Software Design
17/02/2004
Fonctionnenent de base d'UNIX
Matériel
Noyau
Shell
Utilisateurs
= Processeur, mémoire, disque dur, lecteur de CDROM, écran, clavier…
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…
Unix est un système d'exploitation qui fonctionne par couches (ici seule une petite partie vous en est montrée) :
syst
èm
e
UN
IX
le shell envoie des appels au noyau en fonction des requêtes de(s) (l')utilisateurs
17/02/2004
Fonctionnenent de base d'UNIX (2)
17/02/2004
PLAN
1. Introduction2. Première session
• gestion des utilisateurs• se connecter• notion de shell Unix• quelques commandes de base
3. Gestion et manipulation des fichiers4. Quelques outils Unix courants5. Fichiers et flux6. Archivage des données7. Gestion des processus8. Quelques bases d'Unix avancé
17/02/2004
Les Utilisateurs
• 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)
17/02/2004
Première Connexion
Saisie du nom d'utilisateursaisie du mot de passe
type de session X (KDE ou gnome)
17/02/2004
Mot de passe
• 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 8 lettres au minimum
17/02/2004
L'environnement X-Windows
On arrive sous l'environnement X-Windows (KDE ou gnome = interface graphique rendant l'interaction avec le système plus conviviale) :
ouverture d'un shell
bouton de menu
icône
barre de tâches
bureau
(permet le
multi-fenêtrage)
17/02/2004
Déconnexion de la session X-Windows
Nécessité de se déconnecter à la fin d'une session (pour des raisons de sécurité)
• click droit sur "le bureau"
• dans la barre de menu "logout"
17/02/2004
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
17/02/2004
Notion de shell (2)
• Ouverture du shell (sous X Window) :– cliquer sur l'icône représentant le shell, ou
sélectionner «ouvrir un terminal» dans le menu droit de la souris
• A ce point le shell peut recevoir des commandes :– exemples :
date : affiche la datels : liste les fichiers du répertoire courant
• Fermeture du shell :– commande exit– commande logout– Ctrl-D
17/02/2004
Syntaxe générale des commandes UNIX
• syntaxe générale : commande options arguments
exemple : ls -al– les options (souvent très nombreuses) permettent de
modifier le comportement de la commande; en général elles sont précédées du signe '-' (e.g. ls -l)
– certaines commandes utilisent des arguments (e.g. nom de fichier)
– Il y a un manuel en ligne: man ls
• IMPORTANT : – Unix est sensible à la casse ( a != A): ls != LS ou
de Ls– Unix utilise l'espace comme séparateur de commandes
(e.g. utiliser man date et non mandate)
17/02/2004
Quelques commandes de base
• 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
• ls : affiche la liste des fichiers• cd : change de répertoire• rm : supprime un fichier• vi : édite un fichier• man commande : affiche les pages de manuel de commande (utilise les mêmes touches que more pour se déplacer le long des pages)
• date : affiche la date• slogin : connexion sécurisée à une autre machine
17/02/2004
PLAN
1. Introduction2. Première session3. Gestion et manipulation des fichiers
• généralités• arborescence / références absolues et relatives• manipulation des fichiers• droits des fichiers• caractères spéciaux
4. Quelques outils Unix courants5. Fichiers et flux6. Archivage des données7. Gestion des processus8. Quelques bases d'Unix avancé
17/02/2004
Système de fichier
• 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)
17/02/2004
L'arborescence Unix
/
dev etc home usr var
DESS formation
softs maitre2
bin
bin local
prot1passwd
ce_linux.tar.gz
ls
racine (référence absolue)
monprog.c
répertoires
biology
rasmol
fichiers
17/02/2004
Chemin d'accès : référence absolue et relative
• 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.
• Référence absolue = chemin d'accès ("pathname") depuis la racine (permettant le répérage sans ambiguïté)e.g. : /home/prot1/formation/softs
• Référence relative : – Selon l'endroit où l'on se situe ( répertoire de travail = working
directory), répérer un fichier peut s'effectuer de manière relative.
e.g. : ../../DESS• 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 »
17/02/2004
Déplacement dans l'arborescence
• 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
– 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 usere.g : cd ~maitre10 amène dans le "home directory" de
l'utilisateur maitre10
17/02/2004
Liste du contenu des répertoires
• 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
17/02/2004
Création / Destruction de répertoires
• mkdir my_new_dir : création d'un nouveau répertoire my_new_dir
• rmdir my_new_dir : destruction du répertoire my_new_diroption -r : destruction récursive (càd de tout les
fichiers et sous-répertoires; à utiliser avec attention !)
17/02/2004
Manipulations de 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
17/02/2004
Manipulations de fichiers (2)
• 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
17/02/2004
Droits d'accès aux fichiers
• 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
17/02/2004
Droits d'accès aux fichiers (2)
• la commande ls -l : renseigne sur les caractéristiques d'un fichier (i-node)
type de
fichierdroits
nombre de
liens physiq
ues
utilisateur
propriétaire
groupe propriéta
ire
taille
date de dernière modifica
tion
nom
17/02/2004
Droits d'accès aux fichiers (3)
• Sortie de ls -l :invite$ ls -l-rwxr-xr-x ... user group ... monscript.csh-rw-r--r-- ... user group ... toto
droits de
l'utilisateur
propriétaire
droits de
l'utilisateur
propriétaire
droits du reste
du monde
- : l'utilisateur n'a pas le droit correspondant
r, w ou x : l'utilisateur possède le droit
17/02/2004
Changer les droits d'accès aux fichiers
commande chmod : modifie les droits d'accès syntaxesyntaxe : 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 ochmod ugo+rw fichier -> affecte les droits rw à u, g et
ochmod o-x fichier -> retire le droit x à o
17/02/2004
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– ? : 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…)
17/02/2004
PLAN
1. Introduction2. Première session3. Gestion et manipulation des fichiers4. Quelques outils Unix courants
• les éditeurs de texte• les outils Internet• les outils de développement
5. Fichiers et flux6. Archivage des données7. Gestion des processus8. Quelques bases d'Unix avancé
17/02/2004
Quelques outils Unix courants
• Les éditeurs de texte– nedit (le plus simple, bien pour commencer)– emacs (très puissant, mais complexe au départ)– vi (très spartiate, mais permet de travailler en mode
terminal)• Navigateur Internet (et Messagerie)
– mozilla / firefox (sur la plupart des distributions LINUX, mais aussi Windows, macOS, ...)
– konqueror (spécifique à KDE)• Outils de développement :
– compilateurs• gcc : compilateur C• f77 : compilateur Fortran
– Langages de programmation• python• perl
etc…
17/02/2004
PLAN
1. Introduction
2. Première session3. Gestion et manipulation des fichiers4. Quelques outils Unix courants5. Fichiers et flux
• définition des 3 flux courants• redirection des flux
6. Archivage des données7. Gestion des processus8. Quelques bases d'Unix avancé
17/02/2004
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) :
• entrée standard (stdin) : clavier• sortie standard (stdout) : écran• sortie d'erreur (stderr) : écrane.g. : la commande cat sans argument lit en entrée stdin et
génère sa sortie sur stdout : commande cat sans argument
bonjour est saisi au clavier (stdin)bonjour est affiché sur l'écran (stdout)
on presse Ctrl-D pour quitter cat
17/02/2004
Redirection des flux
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
fichiere.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
17/02/2004
Quelques commandes de filtres
• 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)
17/02/2004
Redirection des flux (2)
• | : le pipe (tube) permet de connecter la stdout d'une commande avec la stdin d'une autre commande
syntaxe : commande1 | commande2ls -l | sort : renvoie la liste des fichiers triéels -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'argumentRq2 : on peut connecter autant de commandes que
l'on veut : ls -l /etc | grep csh | sort
17/02/2004
PLAN
1. Introduction
2. Première session3. Gestion et manipulation des fichiers4. Quelques outils Unix courants5. Fichiers et flux6. Archivage des données7. Gestion des processus8. Quelques bases d'Unix avancé
17/02/2004
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)– compress fichier : compresse fichier et ajoute une
extension .Z (opération inverse : uncompress fichier)– 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
17/02/2004
PLAN
1. Introduction
2. Première session3. Gestion et manipulation des fichiers4. Quelques outils Unix courants5. Fichiers et flux6. Archivage des données7. Gestion des processus8. Quelques bases d'Unix avancé
17/02/2004
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 &
17/02/2004
PLAN
1. Introduction
2. Première session3. Gestion et manipulation des fichiers4. Quelques outils Unix courants5. Fichiers et flux6. Archivage des données7. Gestion des processus8. Quelques bases d'Unix avancé
17/02/2004
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 :• 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 scripts shells : véritable langage de programmation
● La variable PATH: decrit l'endroit où chercher les programmes• echo $PATH• export PATH=${PATH}:/home/prot1/formation/bin
etc…