Cours Linux
Cours Linux
Cours Linux
Le système
d’exploitation Linux
PROFESSEUR: WAFAA IBRIHICH
MAIL: WAFAA_IBRIHICH@HOTMAIL.FR
2
Objectifs d’un OS
C’est quoi UNIX
OS Multitâche et multi-utilisateur
Système d’exploitation Linux
Les qualités du système
Caractéristiques générales
Composition de Linux
W.IBRIHICH
3
Quelques liens :
• Histoire d’Unix : http://www.bell-labs.com/history/unix/
• Page officielle de Linux : http://www.linux.org
• Page officielle de GNU : http://www.gnu.org
W.IBRIHICH
W.IBRIHICH
9
1) Démarrer et arrêter
shutdown -h now: stoppe le système immédiatement sans
redémarrer
Halt: stoppe tous les processus.
shutdown -r 5: stoppe le système dans 5 mn et redémarre
Reboot: stoppe le système et redémarre
startx : démarre Xwindows
Logout: stoppe une connexion
W.IBRIHICH
13
W.IBRIHICH
17
& permet de
parallèle
lancer deux processus en
W.IBRIHICH
18
W.IBRIHICH
19
Les fichiers:
Systèmes de fichiers:
La classification des fichiers;
La désignation des fichiers;
La manipulation des répertoires;
La manipulation des fichiers;
Manuel de Linux.
Protection des fichiers:
Droit d’accès aux fichiers;
Modification des droits d’accès aux fichiers;
Droit d’accès aux répertoires.
W.IBRIHICH
20
Un fichier est repéré par son nom et sa position dans l’arborescence: son
chemin d’accès (PATHNAME).
La syntaxe de ce chemin d’accès est très précise et peut être décrite des
deux manières suivantes:
Le chemin d’accès absolu:
Composé d’une suite de noms de répertoires séparé par le caractère /,
en commençant par ce caractère qui désigne le répertoire racine.
La longueur maximale est limitée à 1024 caractères.
Exemple: /home/SIL/exemple
Le chemin d’accès relatif:
Tout utilisateur peut de positionner sur n’importe quel répertoire de
l’arborescence, qui devient le répertoire courant (de travail).
W.IBRIHICH
22
Exemple:
Chemin absolu: /home/SIL/exemple/double
Répertoire courant: /home/SIL
Chemin relatif: /exemple/double
Remarque:
Tout répertoire contient au moins deux entrées:
« . » représente le répertoire lui-même;
« .. » représente répertoire père.
W.IBRIHICH
23
Grep: recherche dans des fichiers toutes les lignes contenants une chaîne de
caractères.
Exemple: recherche la chaîne de caractères beau dans le fichier premiertexte
SIL@Linux>grep beau premiertexte
Wc: permet le dénombrement des mots, lignes et caractères dans un fichier.
Touch: permet de créer un fichier vide.
Echo: affiche à l’écran le texte qui suit la commande.
More: permet d’afficher page par page.
cp [source] [destination]: Copier des fichiers.
mv [source] [destination]: Renommer/Déplacer des fichiers.
rm [fichier]: Supprimer des fichiers.
W.IBRIHICH
24
W.IBRIHICH
25
W.IBRIHICH
26
Pour chaque fichier et par type d’utilisateur il existe trois modes principaux:
Autorisation d’écriture: (w) write
Autorisation de lecture: (r) read
Autorisation d’exécution: (x) execute
Sous Linux il existe différents types de fichiers:
Fichier ordinaire (-)
Fichier répertoire (d)
Fichier spécial en mode caractère (c)
Fichier spécial en mode bloc (b)
Tube nommé (p)
Lien symbolique (l)
W.IBRIHICH
Socket (s)
27
W.IBRIHICH
28
% pwd
/home/SIL
% ls -l
-rw-r----- 1 SIL Students 362514 fev 5 12:40 Cours.tex
-rwxrw-r-- 1 SIL Students 1024 fev 2:10 Examen_Linux.pdf
drw-r--rw- 4 SIL Students 10 Jan 11 15:41 Recherche/
drwxrwxrwx 6 SIL Students 8425 Mar 11 11:38 Tps_Linux/
• Les principales options de la commande ls sont :
• -l : format détaillé;
• -a : liste aussi les fichiers qui commencent par « . »;
• -d : si l’argument est un répertoire, la commande liste seulement
son nom et pas les fichiers qu’il contient;
• -t : affiche en triant par date de dernière modification;
• -g : affiche les informations sur le groupe.
W.IBRIHICH
29
• Exemple :
% ls –l Cours.tex
-rw-r----- 1 SIL profs 362514 Sep 5 12:40 Cours.tex
% chmod 777 Cours.tex
% ls –l Cours.tex
-rwxrwxrwx 1 SIL profs 362514 Sep 5 12:40 Cours.tex
% chmod g-w,o-wx Cours.tex
% ls –l Cours.tex
-rwxr-xr-- 1 SIL profs 362514 Sep 5 12:40 Cours.tex
% chmod go=r Cours.tex
-rwxr--r-- 1 SIL profs 362514 Sep 5 12:40 Cours.tex
Chmod u-w file : supprime le droit d’écriture au propriétaire;
Chmod g+r file: ajoute le droit de lecture pour le groupe;
Chmod ug=x file : accès uniquement en exécution pour le propriétaire et le
groupe, pas de modification pour les autres.
W.IBRIHICH
32
• Exemple :
% ls –dl Tps_Linux/
dr-x------ 1 SIL profs 3625 Sep 5 12:40 Tps_Linux/
% ls –l Tps_Linux/TP1.ps
-rwx------ 1 SIL profs 2514 Sep 2 10:35 TP1.ps
W.IBRIHICH
35
% yppasswd
Changing NIS password for USER on MACHINE
Old password: --entrez votre mot de passe courant
New password: --entrez votre nouveau mot de passe
Retype new password: --rentrez votre mot de passe
NIS entry has changed on filemon
W.IBRIHICH
36
• Pour Linux, l’identité d’un utilisateur est celle sous laquelle il se connecte
• La commande whoami vous donne votre identité;
% whoami
SIL
• L’utilisateur appartient également à un ou plusieurs groupes;
• La commande id vous donne votre identité et votre groupe.
% id
uid=5230(SIL) gid=64(Students) groups=64(stuents)
n° de l’utilisateur n° du groupe
W.IBRIHICH utilisateur groupe
38
• Syntaxe:
• ; sépare les commandes
• & lance en tâche de fond
• || séparateur conditionnel, si échoue
• && séparateur conditionnel, si succès
W.IBRIHICH
43
% grep -l read *
Recherche tous les fichiers contenant le mot read et affiche leurs noms
W.IBRIHICH
44
• Pour demander l’impression d’un fichier (le placer dans une file
d’attente), nous utilisons la commande :
lpr –Pnom_imprimante fichier
• L’impression d’un fichier sous Linux passe par un spooler d’impression
• Le spooler est réalisé par un processus système qui s’exécute en tâche
de fond
• Pour connaître l’état de la file d’attente associée à l’imprimante :
lpq -Pnom_imprimante
• Pour retirer un fichier en attente d’impression, nous disposons de
la commande :
lprm -Pnom_imprimante numéro_job
Le numéro_job spécifie le numéro de job, il est obtenu grâce à la
commande lpq
W.IBRIHICH
45
Concept de processus
W.IBRIHICH
46
en attente
d’un événement
W.IBRIHICH
Bloqué
47
P1
P2 P3
P4 P5 P6
W.IBRIHICH
48
W.IBRIHICH
49
fichiers ouverts
0 <- /dev/term/c4
signaux traités cmd1 1 -> /dev/term/c4
2 -> /dev/term/c4
3 <-> /tmp/toto
umask = 027
ulimit = 2048 /dev/term/c4 priorité = 20
temps = 0.3
Ce processus a le numéro 36. Il a été lancé par l’utilisateur qui a 106 pour UID.
Il est entrain d’exécuter le programme ‘cmd1’. Il a consommé 0.3 seconde,
avec une priorité de 20. Son masque de création est 027. Son terminal de
contrôle est /dev/term/c4. Son répertoire courant est /usr/c1. Il a 4
fichiers ouverts :
0, W.IBRIHICH
1, 2, et 3.
52
% ps
PID TTY STAT TIME CMD
746 pts/3 S 00:00:00 -bash
749 pts/3 S 00:00:02 gs
848 pts/3 S 00:03:28 mozilla-bin
965 pts/3 S 00:00:00 ps
• PID : le numéro d’identification du processus;
• TTY : le terminal depuis lequel le processus a été lancé;
• STAT : l’état du processus au moment du lancement de la commande
• R : le processus est en cours d’exécution
• T : le processus est stoppé
• S : le processus dort depuis moins de 20 secondes
• Z : le processus en attente d’un message du noyau
• TIME : le temps d ’exécution de la commande;
• W.IBRIHICH
CMD : le libellé de la commande lancée.
55
• % kill -l
1) HUP 2) INT 3) QUIT …
7) EMT 8) FPE 9) KILL …
• % kill -9 1635
Cette commande tue le processus dont le numéro PID est 1635
W.IBRIHICH
56
Compression et décompression
des fichiers
W.IBRIHICH
57
W.IBRIHICH
59
W.IBRIHICH
60
W.IBRIHICH
61
W.IBRIHICH
62
Utilisation du réseau
W.IBRIHICH
63
% who
and7483 ttyp0 cis450 Oct 28 09:38
del4820 ttyp1 cis324 Oct 28 09:50
elkh3481 ttyp2 cis128 Oct 28 10:02
W.IBRIHICH
64
Chaque utilisateur peut être spécifié par son login, prénom ou nom de
famille
• Options :
• -l : format long
• -s : format court
W.IBRIHICH
65
% ftp cis149.univ-st-etienne.fr
Connected to 131.184.96.542
Name: votre_login
Passwd:
Connected.
ftp>
W.IBRIHICH
67
W.IBRIHICH
69
W.IBRIHICH
70
• vi possède 2 modes :
• mode commande : permet de taper des commandes
• mode insertion : permet de saisir du texte en ajoutant du texte après ou
avant le curseur
W.IBRIHICH
71
• Lancer vi en tapant vi
• Un écran comportant une colonne remplie de tildes s’affiche
• Passer du mode commande en mode insertion en appuyant sur la touche a
(n’appuyer pas sur Entrée)
• Vous pouvez insérer des caractères sur la première ligne. Le caractère a
n’apparaîtra pas à l’écran
• Ajouter des lignes de texte, vous pouvez utiliser la touche Correction
pour supprimer les erreurs de la ligne en cours
• Passer du mode insertion en mode commande en appuyant sur la
touche Echap
• Enregistrer en tapant : :w nom_du_fichier
• La ligne d’état confirme cet action en affichant :
‘’nom_du_fichier’’ [New File] 4 lines, 46 characters
• Quitter vi en tapant : :q
W.IBRIHICH
72
• Commandes de base :
:q quitte l’éditeur
:q! force l’éditeur à quitter
:wq sauvegarde le document et quitte l’éditeur
:nom_du_fichier sauvegarde le document sous le nom nom_du_fichier
• Commandes d’édition :
x efface le caractère actuellement sous le curseur
dd efface la ligne actuellement sous le curseur
dxd efface x lignes à partir de celle actuellement sous le
curseur
nx efface n caractères à partir du caractère actuellement
sous le curseur
r remplace le caractère actuellement sous le curseur
cw
W.IBRIHICH modifie le mot courant à partir de la position du curseur
cc modifie la ligne entière
73
• emacs possède des modes permettant une interface facile avec Linux :
• mode shell : permet de lancer des commandes shells
• mode répertoire : permet de se déplacer dans une arborescence
• mode tar : permet de manipuler une archivage
• mode LaTex : facilite l’édition de fichiers Latex
• mode calendar : permet de gérer un calendrier
• etc.
W.IBRIHICH
74
W.IBRIHICH
75
W.IBRIHICH
76
La programmation Shell
W.IBRIHICH
77
Le premier Script;
Lecture et écriture;
Le passage de paramètres;
Les variables spéciales;
Les instructions conditionnelles;
Les boucles;
Les fonctions.
W.IBRIHICH
78
W.IBRIHICH
79
W.IBRIHICH
80
W.IBRIHICH
81
Exemple:
SIL:~>mavariable=Bonjour #assignation
SIL:~>echo $mavariable #référence
W.IBRIHICH
82
W.IBRIHICH
83
W.IBRIHICH
84
Exemple1:
#!bin/sh
#fichier ‘’mon_pwd ’’
Echo –n ’’Bonjour $USER’’
Echo ‘’tu es actuellement dans le répertoire $PWD’’
Résultat:
Bonjour SIL … tu es actuellement dans le répertoire /home/SIL
Exemple2:
#!bin/sh
#fichier ‘’mon_pwd ’’
Echo ‘’écrivez votre nom puis votre prenom’’
Read nom prenom
Echo ‘’nom: $nom’’
Echo
W.IBRIHICH
‘’prenom: $prenom’’
85
#/bin/sh
#fichier « var_sp »
Echo $0 a été appele avec $# parametres
Echo qui sont : $*
Exemple:
SIL@Linux:~>var_sp a b c d
Var_sp a été appele avec 4 parametres
Qui sont : a b c d
SIL@Linux:~>
W.IBRIHICH
88
Syntaxe:
Nom_variable=valeur
SIL@Linux:~>echo $imprimente
Laser
SIL@Linux:~>
W.IBRIHICH
89
W.IBRIHICH
91
W.IBRIHICH
92
If condition 1
Then commandes 1
Elif condition 2
Then commandes 2
……
Elif condition (n-1)
Then commandes (n-1)
Else
Commandes n
fi
Exemple:
If grep –i ‘’SIL’’ /etc/passwd
Then echo l\utilisateur SIL est connu du système
Else
Echo l\utilisateur SIL n\est pas connu du système
fi
W.IBRIHICH
93
La commande test: est une opération dont le but est d’évaluer la valeur d’une
expression. Cette expression peut être simplement l’existence de quelque chose
(par exemple, d’un fichier, ou bien d’une variable), ou ce peut être une
proposition.
Cette commande existe sous deux syntaxes différentes:
Test expression
[expression]
Un test renvoie un code de retour. Un code de retour est un nombre (0 ou autre),
qui correspond à une réponse de type « vrai » ou « faux ». C’est ce code de retour
qui permet la manipulation des tests dans les structures de contrôle comme if, etc.
Le code de retour 0 correspond à la réponse « vrai ». Pour répondre « faux », le
programme répond … autre chose ( ce peut être 1, 2, -1 ou autre).
Les expressions peuvent être niées par l’opérateur logique de négation « ! » et
combinées par les opérateurs logiques ou « -o » et et logique « -a ».
W.IBRIHICH
94
Attributs du fichier:
-s (size): vérifie qu’un fichier n’est pas vide.
Droits sur le fichier:
-r (readable): vérifie si un fichier peut être lu;
-w (writable): vérifie si un fichier peut être écrit ou
modifié;
-x (executable): vérifie si un fichier peut être exécuté.
Comparaison des fichiers:
-nt (newer than)vérifie si un fichier est plus récent qu’un
autre;
-ot (older than): vérifie si un fichier est plus ancien qu’un
autre.
W.IBRIHICH
96
W.IBRIHICH
97
Case chaine in
Motif 1) commandes 1;;
Motifs 2) commandes 2;;
*) commandes 3;;
Esac
Exemple:
Case $# in
0) echo $0 a 0 argument;;
1) Echo $0 a 1 argument;;
2) Echo $0 a 2 argument;;
3) *) echo $0 a plus de 2 argument;;
esac
W.IBRIHICH
98
W.IBRIHICH
99
While condition
Do commandes
done
Until condition
Do commandes
done
W.IBRIHICH
100
Nom_fonction [paramètres]
W.IBRIHICH
101
W.IBRIHICH
102
#/bin/sh
#je définis une première fonction
Ecrire_sur_une_ligne(){
Echo –n$*
}
W.IBRIHICH