Microsoft PowerPoint - Cours_Unix.ppt [Mode de

publicité
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
Téléchargement