Vous êtes sur la page 1sur 45

Introduction à Unix/Linux

PLAN
1. Introduction
2. Première session
3. Gestion et manipulation des fichiers
4. Quelques outils Unix courants
5. Fichiers et flux
6. Archivage des données
7. Gestion des processus
8. Quelques bases d'Unix avancé
PLAN
1. Introduction
• système d'exploitation
• caractéristiques et fonctionnement d'UNIX
• historique d'UNIX
1. Commandes de base
2. Gestion et manipulation des fichiers
3. Quelques outils Unix courants
4. Fichiers et flux
5. Archivage des données
6. Gestion des processus
7. Quelques bases d'Unix avancé
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…

Système
Matériel d'exploitation Utilisateur(s)
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

Historique d'UNIX
première version
d'UNIX développée
par Ken Thompson

BSD pour Berkeley


Software Design

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) :

Utilisateurs
le shell envoie des appels au
noyau en fonction des requêtes
Shell de(s) (l')utilisateurs
système
UNIX

le noyau UNIX est chargé en


mémoire lors du démarrage de
Noyau 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,
Fonctionnenent de base d'UNIX (2)
PLAN
1. Introduction
2. Première session
• gestion des utilisateurs
• se connecter
• notion de shell Unix
• quelques commandes de base
1. Gestion et manipulation des fichiers
2. Quelques outils Unix courants
3. Fichiers et flux
4. Archivage des données
5. Gestion des processus
6. Quelques bases d'Unix avancé
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)
Première Connexion

Saisie du
nom
d'utilisate
ur
saisie du
mot de passe

type de session
X (KDE ou
gnome)
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
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) :

icôn
(permet le e
multi-
fenêtrage)
burea
u
ouvertu
re d'un
shell barre
de
bouton tâches
de menu
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"
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, 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 date
ls : liste les fichiers du répertoire courant
Fermeture du shell :
commande exit
commande logout
Ctrl-D
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)
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
PLAN
1. Introduction
2. Première session
3. 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
1. Quelques outils Unix courants
2. Fichiers et flux
3. Archivage des données
4. Gestion des processus
5. Quelques bases d'Unix avancé
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)
L'arborescence Unix
/ racine
(référence
absolue)
bin dev etc home usr var

ls passw prot1 bin loca


d l
DESS formati biolog
on y
répertoir
softs maitre rasmol
es
2
ce_linux.tar monpro
.gz g.c fichiers
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 »
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 user
e.g : cd ~maitre10 amène dans le "home directory" de
l'utilisateur maitre10
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
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_dir
option -r : destruction récursive (càd de tout
les fichiers et sous-répertoires; à utiliser
avec attention !)
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
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
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
Droits d'accès aux
fichiers (2)
 la commande ls -l : renseigne sur les caractéristiques
d'un fichier (i-node)

type
de
fichie
r
droits nom
taille
nombre utilisateu groupe date de
de liens r propriéta dernière
physiqu propriéta ire modificat
es ire ion
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 du
droits de reste du - : l'utilisateur n'a pas le
l'utilisat monde droit correspondant
eur
propriéta droits de r, w ou x : l'utilisateur
ire l'utilisat possède le droit
eur
propriéta
Changer les droits d'accès aux
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 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…)
PLAN
1. Introduction
2. Première session
3. Gestion et manipulation des fichiers
4. Quelques outils Unix courants
• les éditeurs de texte
• les outils Internet
• les outils de développement
1. Fichiers et flux
2. Archivage des données
3. Gestion des processus
4. Quelques bases d'Unix avancé
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…
PLAN
1. Introduction
2. Première session
3. Gestion et manipulation des fichiers
4. Quelques outils Unix courants
5. Fichiers et flux
• définition des 3 flux courants
• redirection des flux
1. Archivage des données
2. Gestion des processus
3. Quelques bases d'Unix avancé
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) : écran
e.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
bonjour est affiché sur l'écran
(stdin)
(stdout)
on presse Ctrl-D pour quitter
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
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
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)
Redirection des flux
(2)
 | : 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
PLAN
1. Introduction
2. Première session
3. Gestion et manipulation des fichiers
4. Quelques outils Unix courants
5. Fichiers et flux
6. Archivage des données
7. Gestion des processus
8. Quelques bases d'Unix avancé
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
PLAN
1. Introduction
2. Première session
3. Gestion et manipulation des fichiers
4. Quelques outils Unix courants
5. Fichiers et flux
6. Archivage des données
7. Gestion des processus
8. Quelques bases d'Unix avancé
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 &
PLAN
1. Introduction
2. Première session
3. Gestion et manipulation des fichiers
4. Quelques outils Unix courants
5. Fichiers et flux
6. Archivage des données
7. Gestion des processus
8. Quelques bases d'Unix avancé
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…