0% ont trouvé ce document utile (0 vote)
8 vues34 pages

System NSI

Ce document présente un TP sur les systèmes et le shell pour des étudiants de première NSI, incluant des exercices pratiques sur les commandes BASH. Les exercices couvrent des thèmes tels que la manipulation de répertoires, les permissions de fichiers, les redirections et les recherches dans le système de fichiers. Des références à des manuels et des ressources en ligne sont fournies pour aider à la compréhension des concepts abordés.

Transféré par

gou gou
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues34 pages

System NSI

Ce document présente un TP sur les systèmes et le shell pour des étudiants de première NSI, incluant des exercices pratiques sur les commandes BASH. Les exercices couvrent des thèmes tels que la manipulation de répertoires, les permissions de fichiers, les redirections et les recherches dans le système de fichiers. Des références à des manuels et des ressources en ligne sont fournies pour aider à la compréhension des concepts abordés.

Transféré par

gou gou
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP2 système, shell

Thème architectures matérielles et systèmes d’exploitation

Première NSI, Lycée du Parc

Crédits
TP directement inspiré des livres Manuel de première NSI chez Ellipses de Thibault Balabonski, La ligne
de commande par l’exemple de Vincent Fourmond et Parlez-vous Shell ? de Thomas Hugel.
Pour traiter les exercices on pourra s’aider de mementos sur les principales commandes du shell BASH :
• [Link]
• [Link]
shell/[Link]

1 Exercices de niveau bac

Exercice 1
Sans toucher le clavier, décrire l’effet de chacune des commandes suivantes, en supposant qu’elles
sont enchaînées dans l’ordre :
junier@fredportable:~$ cd ~
junier@fredportable:~$ mkdir sandbox
junier@fredportable:~$ cd sandbox/
junier@fredportable:~/sandbox$ mkdir nsi
junier@fredportable:~/sandbox$ cd nsi
junier@fredportable:~/sandbox/nsi$ touch TP_shell
junier@fredportable:~/sandbox/nsi$ chmod ugo=rw-rw-rw- TP_shell
junier@fredportable:~/sandbox/nsi$ cd ..
junier@fredportable:~/sandbox$ mkdir maths
junier@fredportable:~/sandbox$ mkdir maths/premiere
junier@fredportable:~/sandbox$ touch maths/TP_proba
junier@fredportable:~/sandbox$ ls maths

1
Exercice 2
exercice du manuel de première NSI chez Ellipses
Sans toucher le clavier dessiner l’arborescence du répertoire ~/test après l’exécution dans l’ordre
de la séquence de commandes ci-dessous :
junier@fredportable:~$ mkdir sandbox
junier@fredportable:~$ cd sandbox/
junier@fredportable:~/sandbox$ mkdir a b c d
junier@fredportable:~/sandbox$ touch a/[Link] d/[Link]
junier@fredportable:~/sandbox$ cd c
junier@fredportable:~/sandbox/c$ mkdir ../b/e f g
junier@fredportable:~/sandbox/c$ cd ..
junier@fredportable:~/sandbox$
junier@fredportable:~/sandbox$ cp */*.txt c/g
junier@fredportable:~/sandbox$ rm -rf d

Exercice 3
QCM de type E3C 2
1. Dans un système Linux, on dispose d’un répertoire racine contenant deux répertoires
documents et sauvegardes. On se trouve dans le répertoire documents où figure un fichier
[Link].
Quelle commande permet de créer une copie nommée [Link] de ce fichier dans le répertoire
sauvegardes ?
Réponses
A) cp [Link] [Link]
B) cp [Link] sauvegardes/[Link]
C) cp [Link] ../[Link]
D) cp [Link] ../sauvegardes/[Link]
2. À partir du dossier ~/Doc/QCM, quelle commande permet de rejoindre le dossier ~/Hack/Reponses
?
Réponses
A) cd Hack/Reponses
B) cd /Hack/Reponses
C) cd ~/Hack/Reponses
D) cd ../../Hack/Reponses

2
3. Sous Linux, les droits d’accès à un fichier dont le propriétaire est Joseph sont les suivants :
-rwxr-xr--
Laquelle des affirmations suivantes est fausse ?
Réponses
A) Joseph a l’autorisation de lire ce fichier
B) les membres du groupe de Joseph ont l’autorisation de lire ce fichier
C) tous les utilisateurs ont l’autorisation de lire ce fichier
D) les membres du groupe de Joseph ont l’autorisation de modifier ce fichier
4. Dans la console Linux, quelle commande faut-il exécuter pour effacer le fichier [Link] ?
Réponses
A) rm [Link]
B) cp [Link]
C) ls [Link]
D) mv [Link]
5. Dans un terminal, on exécute la suite de commandes système suivante :
cd ~
cd seances/tp
mv [Link] ./../../[Link]
Où se trouve finalement placé le fichier [Link] ?
Réponses
A) dans le répertoire ~/seance/tp
B) dans le répertoire ~/seance
C) dans le répertoire ~
D) dans le répertoire /home
6. Pour renommer un fichier [Link] en [Link] dans un même répertoire, quelle commande
faut-il utiliser ?
Réponses
A) mv [Link] ../[Link]
B) mv [Link] [Link]
C) cp [Link] [Link]
D) lns [Link] [Link]
7. Sous Unix, que fait la commande suivante ? ls --a /home/pi >> [Link]

3
Réponses
A) elle liste uniquement les répertoires cachés du répertoire /home/pi
B) elle liste tous les fichiers du répertoire /home/pi et enregistre le résultat dans un fichier [Link]
C) elle liste tous les fichiers des répertoires de /home/pi et de [Link]
D) elle liste tous les fichiers du répertoire courant et enregistre le résultat dans un fichier /home-
/pi/[Link]
8. Par quelle ligne de commande peut-on créer, sous le système d’exploitation Linux, trois réper-
toires nommés : JAVA, PYTHON et PHP ?
Réponses
A) mkdir JAVA, PYTHON, PHP
B) mk -dir JAVA PYTHON PHP
C) mkdir JAVA PYTHON PHP
D) mk dir JAVA PYTHON PHP
Question E.6
9. À partir du répertoire ~/Perso/Doc quelle commande permet de rejoindre le répertoire
~/Public ?
Réponses
A) cd ./Public
B) cd ../Public
C) cd ././Public
D) cd ../../Public
10. Dans la console Linux, quelle commande faut-il exécuter pour obtenir la documentation sur la
commande pwd ?
Réponses
A) man pwd
B) cd pwd
C) mkdir pwd

Exercice 4
Exercice du livre Parlez-vous Shell ? de Thomas Hugel chez Ellipses

4
On se place dans le répertoire personnel de l’utilisateur représenté par le raccourci ~.
1. Dans son répertoire personnel, créer le répertoire T
̀ P-SHELL puis entrer dans ce répertoire.
2. Créer le répertoire Europe et changer de répertoire courant pour Europe.
3. Écrire une suite de commandes qui permet de construire l’arborescence ci-dessus sans quitter
le répertoire Europe. Les fichiers apparaissant avec des rectangles sont des répertoires et les
autres sont des fichiers.
4. Créer dans ~ une copie de tout le répertoire Europe avec ses sous-répertoires et nommer cette
copie Vieille-Europe. Les modifications qui suivent devront être faites dans Europe.
5. Appliquons le traité de Francfort de 1871. Se placer dans le répertoire Prusse et déplacer
Belfort dans France puis déplacer Alsace dans Prusse. Revenir dans Europe et renommer
Prusseen Allemagne.
6. Depuis Europe, afficher le contenu de Bordeaux puis détruire ce fichier.
7. Appliquons le traité de Versailles de 1919. Depuis France, ramener Alsace en France puis
détruire Vieille-Europe.

2 Exercices plus avancés


2.1 Flux d’entrée / sortie et redirections, filtres et pipeline

Méthode
• Par défaut, chaque programme (dont les commandes shell) exécuté dans un shell UNIX admet
trois canaux, ou flux, de communication avec l’extérieur :

5
– Un canal d’entrée nommé entrée standard (stdin en anglais) qui par défaut est le texte
saisi au clavier dans le terminal.
– Un canal de sortie nommé sortie standard (stdout en anglais) qui par défaut est l’écran
du terminal.
– Un canal d’erreur nommé erreur standard (stderror en anglais) qui par défaut est l’écran
du terminal.
• On peut modifier l’entrée ou la sortie standard d’une comande pour lire ou écrire sur d’autres
canaux que ceux par défaut (fichiers ou flux réseaux au lieu de clavier / écran ). Pour rediriger
un flux vers l’entrée ou la sortie standard d’une commande on utilise des opérateurs de redi-
rection :

Opérateur Redirection
> sortie standard
>> sortie standard en ajout à la fin
< entrée standard

• Par exemple, si on veut écrire le contenu du répertoire courant dans un fichier [Link],
on redirige la sortie standard de ls vers un fichier [Link] au lieu de l’écran du terminal
:
junier@fredportable:~$ ls > [Link]
• Et si on veut compter le nombre de mots dans un texte, on redirige son entrée standard vers
le contenu de [Link] au lieu du clavier :
junier@fredportable:~$ wc -m < [Link]
• On peut enchaîner les commandes en pipeline : la sortie standard d’une commande est rac-
cordée à l’entrée standard d’une commande suivante à l’aide d’un pip symbolisé par le caractère
|:
commande_debut | commande_fin
• Si on veut intercaler une commande entre les deux, elle doit envoyer son entrée standard sur sa
sortie standard : de telles commandes qui servent de traitements intermédiaires entre le début
et la fin d’un pipeline sont appelées filtres. On peut ainsi réaliser en un une ligne de commande
des traitements complexes.
commande_debut | filtre1 | filtre2 | ... | commande_fin
• Le tableau ci-dessous donne quelques exemples de filtres, d’autres options sont disponibles
pour chaque commande.

Commande Action
cat copie son entrée standard sur sa sortie standard sans modification
sort trie les lignes de son entrée standard par ordre alphabétique
sort -r trie les lignes de son entrée standard par ordre alphabétique inverse
sort -n trie les lignes de son entrée standard par ordre numérique

6
Commande Action
cut -d : -f 5 sélectionne le 5 eme champ de chaque ligne de son entrée standard découpée selon le
délimiteur :
wc -l compte les lignes de son entrée standard
wc -w compte les mots de son entrée standard
wc -m compte les caractères de son entrée standard
uniq supprime les lignes considérées comme des doublons
head -n5 affiche les cinq premières lignes de son entrée standard
head -n-5 affiche tout sauf les cinq dernières lignes de son entrée standard
tail -n5 affiche les cinq dernières lignes de son entrée standard
tail -n+5 affiche tout sauf les cinq premières lignes de son entrée standard

Exercice 5
Exercice du manuel de première NSI de Thibault Balabonski chez Ellipses
Le fichier /etc/passwd contient la liste des utilisateurs locaux de la machine. Pour chaque question,
on recherchera éventuellement dans le manuel avec la commande man command les options pertinentes
des commandes proposées.
1. Afficher les 5 premières lignes du fichier /etc/passwd.
2. Afficher la page du manuel de la commande tac puis utiliser cette commande pour afficher
tac à l’envers.
3. Trier le fichier /etc/passwd avec la commande sort. Quel ordre est utilisé ?
4. Les champs de chaque ligne de /etc/passwd sont séparées par le caractère :. Trier le fichier
selon le troisième champ. Quel ordre est utilisé ?
5. Trier /etc/passwd selon le troisième champ avec l’ordre numérique.

7
Exercice 6
1. Ouvrir un terminal shell et choisir comme répertoire courant ̀~/TP-SHELL.
2. Créer un un répertoire carnet puis entrer dans ce répertoire.
3. Consulter l’aide de la commande wget avec wget --help ou man wget puis télécharger le
fichier d’URL : [Link]
me/TP2/[Link]
4. Afficher les 3 premières lignes de [Link], puis ses 3 dernières lignes puis son
nombre de lignes. Chaque ligne contient un nom de contact et une adresse mail séparés par le
caractère ,.
5. Écrire une commande qui affiche les 10 premières lignes du contenu de [Link]
classé par ordre alphabétique croissant.
6. Écrire une commande qui trie [Link] par ordre alphabétique croissant puis re-
copie ce contenu dans le fichier [Link].
7. Écrire une commande qui filtre les lignes de [Link] en sélectionnant uniquement
le champ nom puis qui classe ces noms par ordre alphabétique croissant.
8. Compléter la commande précédente pour qu’elle supprime les doublons et affiche devant chaque
nom le nombre de doublons, c’est-à-dire d’adresses mails du contact. On consultera la page de
manuel de la commande uniq pour sélectionner la bonne option.
9. Modifier la commande précédente pour que les contacts soient classés par nombre décroissant
d’adresses mails et que le tout soit redirigé vers un fichier [Link].

2.2 Recherches

Méthode
Le shell BASH fournit de nombreuses commandes pour rechercher des informations dans le système
de fichiers.
• Pour une recherche sur les fichiers, on peut utiliser la commande find qui permet d’effectuer
une recherche par nom parmi de nombreuses options :

Commande Action
find -name [Link] recherche les fichiers nommés [Link] dans le répertoire courant et
tous ses sous-répertoires
find -iname [Link] idem mais insensible à la casse
find -name [Link] recherche les fichiers nommés [Link] dans le répertoire ~/sandbox
~/sandbox et tous ses sous-répertoires
find -name ’*.png’ recherche les fichiers dont le nom se termine par .png dans le
~/sandbox répertoire ~/sandbox et tous ses sous-répertoires

8
• Par exemple, si on veut rechercher le fichier ‘[Link]’ dans son répertoire per-
sonnel :
junier@fredportable:~$ find -name '[Link]'
./Git/Gitlab/frederic-junier/Premiere-NSI/[Link]
./NSI/TP/ressources/[Link]
• Pour une recherche sur un contenu de fichier, on peut utiliser la commande grep qui permet
d’effectuer une recherche d’un fragment de texte dans les fichiers donnés en argument. Par
défaut grep affiche chaque ligne de fichier où le fragment apparaît.

Commande Action
grep ‘fragment texte’ recherche les occurences de ‘fragment texte’ dans fichier
fichier
grep -c ‘fragment texte’ affiche juste le nombre d’occurences de ‘fragment texte’ dans fichier
fichier
grep -r ‘fragment texte’ recherche les occurences de ‘fragment texte’ dans le répertoire rep et
rep tous ses sous-répertoires
grep -r -l -i ‘fragment idem mais n’affiche que les noms de fichiers et insensible à la casse
texte’ rep

• Par exemple si on veut compter le nombre d’occurences de ‘swann’ dans le texte ‘unamour-
[Link]’ :
junier@fredportable:~$ grep -i -c 'swann' [Link]
685

Exercice 7
Ouvrir un terminal avec la page de manuel de la commande find obtenue avec man find.
Ouvrir un autre terminal pour traiter les questions suivantes.
1. Écrire une commande qui affiche tous les fichiers d’extension .py contenus dans son répertoire
personnel ou ses sous répertoires.
2. Compléter la commande précédente pour afficher le nombre des fichiers trouvés.
3. Compter de même le nombre de fichiers d’extension .py dans le répertoire /usr/share.
4. Écrire une commande qui compte le nombre total de répertoires contenus dans son répertoire
personnel ~ et tous ses sous-répertoires.
5. Écrire une commande qui compte le nombre de fichiers qui ne sont pas des répertoires et qui
ont été créés dans son répertoire personnel et tous ses sous-répertories dans les dix dernières
minutes.

9
Exercice 8
Le projet Gutenberg met à disposition des utilisateurs des textes du domaine public en format
numérique (txt, epub …) sous licence libre (voir The Gutenberg License).
Le texte brut du “Tour du monde en 80 jours” écrit par Jules Verne est disponible à partir de l’URL
[Link]
1. Ouvrir un terminal shell et choisir comme répertoire courant ~/TP-SHELL.
2. Créer un un répertoire Phileas puis entrer dans ce répertoire.
3. Consulter l’aide de la commande wget avec wget --help ou man wget puis télécharger le
fichier contenant le texte du “Tour du monde en 80 jours” au format txt.
junier@fredportable:~/TP-SHELL/Phileas$ ls
[Link]-8
4. Renommer le fichier en [Link].
junier@fredportable:~/TP-SHELL/Phileas$ ls
[Link]
5. Afficher le nombre de lignes, le nombre de mots, le nombre de caractères et le nombre d’octets de
[Link] avec des options bien choisies de la commande wc. Comment
peut-on expliquer que le nombre de caractères est inférieur au nombre d’octets ? Vérifier
l’encodage du fichier avec la commande file [Link].
6. Les commandes du et zip permettent respectivement d’afficher la taille d’un fichier et de com-
presser un fichier. Consulter leurs pages de manuel avec man du | less et man zip | less.
La commande less est un pager qui permet d’afficher une page à la fois dans le terminal.
• Afficher la taille du fichier en kilo-octets avec la commande du -h [Link].
• Compresser la fichier avec la commande zip. Quel est le taux de compression ?
• Avec la commande head, afficher les dix premières lignes des fichiers [Link]
et [Link]. Que peut-on remarquer ?
7. Consulter la page de manuel de la commande tac avec man | less tac. En une seule com-
mande, créer un fichier [Link] où toutes les lignes du fichier
initial sont recopiées à l’envers.
8. Dans [Link], avec la commande grep et des options bien choisies :
• Compter le nombre d’occurences du mot phileas. On doit trouver 330.
• Afficher le numéro de ligne du fragment de texte “*** START OF”. Vérifier avec un éditeur
de textes.
• Afficher le numéro de ligne du fragment de texte “*** END OF”. Vérifier avec un éditeur de
textes.
• En une seule commande, créer un fichier texte [Link] qui con-
tient toutes les lignes comprises entre celles commençant par *** START OF et *** END OF,
les deux bornes exclues.

10
Système d'exploitation

Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas
d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Version pdf du cours

Définition d'un système d'exploitation


Un système d'exploitation est un logiciel, ou ensemble de programmes, qui sert d'interface entre les
programmes exécutés par l'utilisateur et les ressources matérielles d'un ordinateur.
Source : Wikipedia

Un système d'exploitation est à la fois :

une machine virtuelle qui présente une interface simplifiée d'accès aux ressources (processeur,
mémoire, périphériques
d'entrée/sortie, réseau …) pour les autres programmes et pour l'utilisateur
un chef d'orchestre et un administrateur :
c'est le premier programme exécuté au démarrage de l'ordinateur
il gère l'accès concurrent aux ressources par les différents programmes (ordonnancement de
l'utilisation du processeur par les programmes en cours d'exécution ou processus,
sécurisation de la mémoire) ou utilisateurs (droits d'accès du système de fichiers).

Attributs du système d'exploitation :

Le mode noyau
Les programmes ne peuvent pas accéder directement aux ressources matérielles (mémoire,
processeur, périphériques d'entrée/sortie) sinon il y aurait des conflits : par exemple deux programmes
pourraient écrire dans la même zone mémoire.

Le système d'exploitation possède un mode d'exécution privilégiée : le mode noyau, qui lui donne un
accès unique et total aux ressources. Les autres programmes s'exécutent en mode normal. Pour
accéder aux ressources, ils font appel au système d'exploitation à l'aide de primitives qu'on nomme
appels systèmes.

Le contrôle de l'activité des programmes


Un programme ne peut être exécuté que si le système d'exploitation l'autorise. L'exécution d'un
programme peut être interrompue par le système d'exploitation, pour libérer une ressource ou en cas
d'erreur. On parle d'interruption système.

Un programme en cours d'exécution s'appelle un processus et le système d'exploitation arbitre le


partage de temps de calcul du processeur par les processus concurrents. Il joue un rôle
d'ordonnanceur pour éviter par exemple qu'un processus s'accapare le processeur.

Le contrôle du système de fichiers


Système de fichiers
Sur les supports de mémoire persistants (disques durs, clefs USB…), les informations sont
regroupées par le système d'exploitation dans des fichiers qui sont organisés à travers un système de
fichiers.

Dans les systèmes d'exploitation qui respectent le standard POSIX, on distingue plusieurs
catégories de fichiers :

fichiers réguliers ou fichiers textes qui contiennent des suites de caractères et qui sont lisibles par
des humains
fichiers binaires qui sont des suites d'octets non lisibles par des humains
fichiers exécutables qui sont des programmes, ils peuvent être des fichiers textes ou binaires.
répertoires qui sont des listes de fichiers : ils servent de conteneur à fichiers.

Les répertoires pouvant contenir d'autres fichiers, un système de fichiers POSIX possède une
structure hiérarchique qui est une arborescence avec un répertoire racine symbolisé par un /.

Les fichiers sont repérés par leur chemin :

chemin absolu depuis la racine : par exemple si un fichier [Link] se trouve dans le
répertoire sandbox , contenu dans le répertoire maurice , lui-même contenu dans le répertoire
home , lui-même dans le répertoire racine, son chemin absolu est
/home/maurice/sandbox/[Link]
ou chemin relatif qui est relatif au répertoire courant ou répertoire de travail où l'utilisateur se
trouve. Par exemple, si le répertoire courant est maurice , le chemin relatif du fichier précédent
est sandbox/[Link] .

 "Exemple"
Dans le schéma d'arborscence précédent :

le chemin absolu du fichier [Link] est


/home/frederic/programmes/[Link]
si on se trouve dans le répertoire frederic le chemin relatif du fichier [Link] est
programmes/[Link]
si on se trouve dans le répertoire images le chemin relatif du fichier [Link] est
../programmes/[Link] . Le motif .. désigne le répertoire parent du répertoire
courant et marque une remontée d'un niveau dans l'arborescence.

Gestion des droits et permissions


Les systèmes d'exploitation modernes sont multi-utilisateurs et permettent de gérer les droits et
permissions sur les fichiers (dont les répertoires) pour les différents utilisateurs.

Pour un fichier, on distingue :

trois profils d'utilisateurs :


le propriétaire (ou owner) noté u
le groupe principal (ou group) noté g
un autre utilisateur (ou other) noté o
trois types de permissions :
lecture (caractère r si attribué ou - sinon)
écriture (caractère w si attribué ou - sinon)
exécution (caractère x si attribué ou - sinon)
Source : [Link]
[Link]/[Link]/tutorials/uploads/pictures/[Link]

Pour les répertoires, la signification des permissions est précisée dans ce tableau. Attention, si on a le
droit d'écriture sur un répertoire on peut supprimer tous les fichiers qu'il contient même ceux dont on
n'est pas propriétaire.

Type de permission pour un répertoire

r lecture lister le contenu

w écriture ajouter, supprimer, renommer des fichiers

x exécution entrer dedans

 "Exemple"

fjunier@fjunier:~$ ls -l [Link]
-rwxrw-r-- 1 fjunier fjunier 3680 juin 2 2023 [Link]
Les permissions pour le fichier [Link] ci-dessus sont positionnées ainsi :

Droit de lecture Droit d'écriture Droit d'exécution


Profil
r w x

Propriétaire Oui Oui Oui

Groupe principal du
Oui Oui Non
propriétaire

Autres Oui Non Non

Interface utilisateur d'un système d'exploitation

Le shell
Une interface entre l'utilisateur et le système d'exploitation s'appelle un shell ou interpréteur de
commandes.

Le rôle d'un shell est de prendre une entrée de l'utilisateur, de la traduire en instructions
compréhensibles par le système d'exploitation et de renvoyer la réponse du système à l'utilisateur.

Il existe deux grandes catégories de shell :

les interfaces textuelles comme bash, le plus


commun sur les systèmes de la famille UNIX.
les interfaces graphiques qu'on retrouve dans les systèmes d'exploitation grand public tels que
Windows

Nous allons donner des exemples de commandes textuelles en bash.

Syntaxe d'une commande bash


Une commande shell est constituée du nom de la commande suivi d'un ou plusieurs arguments. Des
options précédées d'un tiret haut, peuvent modifier le comportement de la commande :

nom_commande -option1 -option2 ... arg1 arg2 arg3 ...

Ainsi, la commande ls permet d'afficher des informations sur répertoire ou un fichier :


Sans argument, ni option ls liste le contenu du répertoire courant
:

junier@fredportable:~/sandbox$ ls
fichier1 fichier2 fichier3 fichier4 rep1 rep2

Avec l'option -l elle affiche des informations détaillées sur chacun des fichiers contenus dans le
répertoire :

junier@fredportable:~/sandbox$ ls -l
total 8
-rw-rw-r-- 1 junier junier 0 août 16 21:43 fichier1
...........
drwxrwxr-x 2 junier junier 4096 août 16 21:44 rep1
drwxrwxr-x 2 junier junier 4096 août 16 21:44 rep2

L'option -a affiche les fichiers (ou répertoires) cachés et l'option -h convertit les tailles de
fichiers (en octets par défaut) en des multiples plus lisibles. On peut écrire ls -l -a -h ou
regrouper les options ls -lah . L'ordre des options n'a pas d'importance :

junier@fredportable:~/sandbox$ ls -lah
total 16K
drwxrwxr-x 4 junier junier 4,0K août 16 21:49 .
drwxr-xr-x 50 junier junier 4,0K août 16 21:43 ..
-rw-rw-r-- 1 junier junier 0 août 16 21:49 .cache_cache
-rw-rw-r-- 1 junier junier 0 août 16 21:43 fichier1
..............
drwxrwxr-x 2 junier junier 4,0K août 16 21:44 rep1
drwxrwxr-x 2 junier junier 4,0K août 16 22:10 rep2

Principales commandes de l'interpréteur bash


Dans ce tableau chemin , source et cible désignent des chemins absolus ou relatifs de fichiers
ou de répertoires dans le système de fichiers. Il faut bien comprendre que chaque commande est
exécutée depuis un certain emplacement dans l'arborescence du système de fichiers qui est le
répertoire courant.

Commande Syntaxe Fonction


Commande Syntaxe Fonction

Affiche l'entrée du manuel de


man man commande documentation de bash pour la
commande

Affiche le chemin absolu du


pwd pwd
répertoire courant

change de répertoire courant pour


cd cd chemin
celui désigne par chemin

change de répertoire courant pour


cd cd .. le répertoire parent dans
l'arboresence

change de répertoire courant pour


cd cd ~ le répertoire personnel de
l'utilisateur /home/user

affiche les répertoires et fichiers


ls ls
du répertoire courant

affiche de façon détaillée les


ls ls -l répertoires et fichiers du
répertoire courant

Déplace le fichier de chemin


source vers le chemin cible ,
mv mv source cible
peut être utilisé pour renommer
un fichier

Crée le sous-répertoire rep vide


mkdir mkdir rep
dans le répertoire courant

Supprime le fichier désigné par


rm rm chemin
son chemin

Supprime le répertoire désigné


par son chemin , et
rm rm -r chemin récursivement tous les fichiers et
sous-répertoires qu'in contient,
l'option -r signifie récursif
Commande Syntaxe Fonction

Copie le fichier de chemin


source vers le chemin cible ,
cp cp source cible
peut être utilisé pour renommer
un fichier

ps ps -e Affiche tous les processus

Force l'arrêt du processus


kill kill -SIGKILL pid
identifié par son pid

Montre les adresses IPV4 et IPV6


ip ip address
des interfaces réseaux

Envoie un paquet de test avec le


ping ping adresse_ip_cible protocole ICMP vers l'adresse ip
cible

Résout le nom de domaine et


host host nom_domaine renvoie l'adresse IP donnée par
le service DNS

Affiche les routeurs traversés


traceroute traceroute (nom_domaine/adresse_ip) pour atteindre le nom de domaine
ou l'adresse IP cible

Les différents types de licences logicielles


On distingue :

Les licences propriétaires :


Un éditeur concède à titre non exclusif un droit d'usage sur un logiciel dont il conserve les droits
de propriété intellectuelle. Un CLUF (Contrat Licence Utilisateur Final) délimite les conditions
d'usage du logiciel : limitation du nombre de copies, de postes sur lequel le logiciel peut être
installé, interdiction de modification
et de redistribution . En général, le code source n'est pas accessible (on parle de logiciel fermé)
...
Les licences libres ou open-source : elles respectent les quatre libertés fondamentales du
logiciel libre :
i. Liberté 1 liberté d'exécuter le programme, pour tous les usages.
ii. Liberté 2 liberté d'étudier le fonctionnement du programme, et de le modifier pour
l'adapter à ses besoins
iii. Liberté 3 liberté de redistribuer des copies.
iv. Liberté 4 liberté de redistribuer aux autres des copies de versions modifiées
Les libertés 2 et 4 nécessitent l'accès au code source. Il ne faut pas confondre licence libre et
domaine public : mettre un logiciel sous licence libre ne signifie pas abandonner ses droits
d'auteurs (droit moral inaliénable) mais donner des permissions aux usagers qui vont au-delà de
ce qu'autorise le droit d'auteur par défaut.

 "Exemple"

Système
Licence libre Descendant de Figure tutélaire
d'exploitation

Unix, distributions
Noyau Linux Oui, GNU version 2 Ubuntu, Debian, Linus Torvalds
Fedora ...

Android Oui, Apache Unix, noyau Linux Andy Rubin

Partiellement, licence Steve Jobs


MacOS propriétaire et Apple Public Unix (CEO pas
Licence développeur)

Windows Non MS-DOS Bill Gates

 "Attention"

Ne pas confondre logiciels libres et gratuits (double sens du mot free en Anglais):

un freeware désigne usuellement un logiciel distribué gratuitement, indépendamment de


sa licence d'utilisation. Le code source n'est pas forcément fourni ; dans ce cas ce n'est pas
un logiciel libre.
un shareware désigne un logiciel distribué gratuitement et librement pendant une durée ou
un nombre d'utilisations qui sont fixées par l'auteur. Au delà de ce délai il faut payer des
royalties et le code source n'est pas fourni donc ce n'est pas un logiciel libre.
Source de l'infographie : journal Le Monde 6 Janvier 2024.
Système d'exploitation

Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas
d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Version pdf du cours

Définition d'un système d'exploitation


Un système d'exploitation est un logiciel, ou ensemble de programmes, qui sert d'interface entre les
programmes exécutés par l'utilisateur et les ressources matérielles d'un ordinateur.
Source : Wikipedia

Un système d'exploitation est à la fois :

une machine virtuelle qui présente une interface simplifiée d'accès aux ressources (processeur,
mémoire, périphériques
d'entrée/sortie, réseau …) pour les autres programmes et pour l'utilisateur
un chef d'orchestre et un administrateur :
c'est le premier programme exécuté au démarrage de l'ordinateur
il gère l'accès concurrent aux ressources par les différents programmes (ordonnancement de
l'utilisation du processeur par les programmes en cours d'exécution ou processus,
sécurisation de la mémoire) ou utilisateurs (droits d'accès du système de fichiers).

Attributs du système d'exploitation :

Le mode noyau
Les programmes ne peuvent pas accéder directement aux ressources matérielles (mémoire,
processeur, périphériques d'entrée/sortie) sinon il y aurait des conflits : par exemple deux programmes
pourraient écrire dans la même zone mémoire.

Le système d'exploitation possède un mode d'exécution privilégiée : le mode noyau, qui lui donne un
accès unique et total aux ressources. Les autres programmes s'exécutent en mode normal. Pour
accéder aux ressources, ils font appel au système d'exploitation à l'aide de primitives qu'on nomme
appels systèmes.

Le contrôle de l'activité des programmes


Un programme ne peut être exécuté que si le système d'exploitation l'autorise. L'exécution d'un
programme peut être interrompue par le système d'exploitation, pour libérer une ressource ou en cas
d'erreur. On parle d'interruption système.

Un programme en cours d'exécution s'appelle un processus et le système d'exploitation arbitre le


partage de temps de calcul du processeur par les processus concurrents. Il joue un rôle
d'ordonnanceur pour éviter par exemple qu'un processus s'accapare le processeur.

Le contrôle du système de fichiers


Système de fichiers
Sur les supports de mémoire persistants (disques durs, clefs USB…), les informations sont
regroupées par le système d'exploitation dans des fichiers qui sont organisés à travers un système de
fichiers.

Dans les systèmes d'exploitation qui respectent le standard POSIX, on distingue plusieurs
catégories de fichiers :

fichiers réguliers ou fichiers textes qui contiennent des suites de caractères et qui sont lisibles par
des humains
fichiers binaires qui sont des suites d'octets non lisibles par des humains
fichiers exécutables qui sont des programmes, ils peuvent être des fichiers textes ou binaires.
répertoires qui sont des listes de fichiers : ils servent de conteneur à fichiers.

Les répertoires pouvant contenir d'autres fichiers, un système de fichiers POSIX possède une
structure hiérarchique qui est une arborescence avec un répertoire racine symbolisé par un /.

Les fichiers sont repérés par leur chemin :

chemin absolu depuis la racine : par exemple si un fichier [Link] se trouve dans le
répertoire sandbox , contenu dans le répertoire maurice , lui-même contenu dans le répertoire
home , lui-même dans le répertoire racine, son chemin absolu est
/home/maurice/sandbox/[Link]
ou chemin relatif qui est relatif au répertoire courant ou répertoire de travail où l'utilisateur se
trouve. Par exemple, si le répertoire courant est maurice , le chemin relatif du fichier précédent
est sandbox/[Link] .

 "Exemple"
Dans le schéma d'arborscence précédent :

le chemin absolu du fichier [Link] est


/home/frederic/programmes/[Link]
si on se trouve dans le répertoire frederic le chemin relatif du fichier [Link] est
programmes/[Link]
si on se trouve dans le répertoire images le chemin relatif du fichier [Link] est
../programmes/[Link] . Le motif .. désigne le répertoire parent du répertoire
courant et marque une remontée d'un niveau dans l'arborescence.

Gestion des droits et permissions


Les systèmes d'exploitation modernes sont multi-utilisateurs et permettent de gérer les droits et
permissions sur les fichiers (dont les répertoires) pour les différents utilisateurs.

Pour un fichier, on distingue :

trois profils d'utilisateurs :


le propriétaire (ou owner) noté u
le groupe principal (ou group) noté g
un autre utilisateur (ou other) noté o
trois types de permissions :
lecture (caractère r si attribué ou - sinon)
écriture (caractère w si attribué ou - sinon)
exécution (caractère x si attribué ou - sinon)
Source : [Link]
[Link]/[Link]/tutorials/uploads/pictures/[Link]

Pour les répertoires, la signification des permissions est précisée dans ce tableau. Attention, si on a le
droit d'écriture sur un répertoire on peut supprimer tous les fichiers qu'il contient même ceux dont on
n'est pas propriétaire.

Type de permission pour un répertoire

r lecture lister le contenu

w écriture ajouter, supprimer, renommer des fichiers

x exécution entrer dedans

 "Exemple"

fjunier@fjunier:~$ ls -l [Link]
-rwxrw-r-- 1 fjunier fjunier 3680 juin 2 2023 [Link]
Les permissions pour le fichier [Link] ci-dessus sont positionnées ainsi :

Droit de lecture Droit d'écriture Droit d'exécution


Profil
r w x

Propriétaire Oui Oui Oui

Groupe principal du
Oui Oui Non
propriétaire

Autres Oui Non Non

Interface utilisateur d'un système d'exploitation

Le shell
Une interface entre l'utilisateur et le système d'exploitation s'appelle un shell ou interpréteur de
commandes.

Le rôle d'un shell est de prendre une entrée de l'utilisateur, de la traduire en instructions
compréhensibles par le système d'exploitation et de renvoyer la réponse du système à l'utilisateur.

Il existe deux grandes catégories de shell :

les interfaces textuelles comme bash, le plus


commun sur les systèmes de la famille UNIX.
les interfaces graphiques qu'on retrouve dans les systèmes d'exploitation grand public tels que
Windows

Nous allons donner des exemples de commandes textuelles en bash.

Syntaxe d'une commande bash


Une commande shell est constituée du nom de la commande suivi d'un ou plusieurs arguments. Des
options précédées d'un tiret haut, peuvent modifier le comportement de la commande :

nom_commande -option1 -option2 ... arg1 arg2 arg3 ...

Ainsi, la commande ls permet d'afficher des informations sur répertoire ou un fichier :


Sans argument, ni option ls liste le contenu du répertoire courant
:

junier@fredportable:~/sandbox$ ls
fichier1 fichier2 fichier3 fichier4 rep1 rep2

Avec l'option -l elle affiche des informations détaillées sur chacun des fichiers contenus dans le
répertoire :

junier@fredportable:~/sandbox$ ls -l
total 8
-rw-rw-r-- 1 junier junier 0 août 16 21:43 fichier1
...........
drwxrwxr-x 2 junier junier 4096 août 16 21:44 rep1
drwxrwxr-x 2 junier junier 4096 août 16 21:44 rep2

L'option -a affiche les fichiers (ou répertoires) cachés et l'option -h convertit les tailles de
fichiers (en octets par défaut) en des multiples plus lisibles. On peut écrire ls -l -a -h ou
regrouper les options ls -lah . L'ordre des options n'a pas d'importance :

junier@fredportable:~/sandbox$ ls -lah
total 16K
drwxrwxr-x 4 junier junier 4,0K août 16 21:49 .
drwxr-xr-x 50 junier junier 4,0K août 16 21:43 ..
-rw-rw-r-- 1 junier junier 0 août 16 21:49 .cache_cache
-rw-rw-r-- 1 junier junier 0 août 16 21:43 fichier1
..............
drwxrwxr-x 2 junier junier 4,0K août 16 21:44 rep1
drwxrwxr-x 2 junier junier 4,0K août 16 22:10 rep2

Principales commandes de l'interpréteur bash


Dans ce tableau chemin , source et cible désignent des chemins absolus ou relatifs de fichiers
ou de répertoires dans le système de fichiers. Il faut bien comprendre que chaque commande est
exécutée depuis un certain emplacement dans l'arborescence du système de fichiers qui est le
répertoire courant.

Commande Syntaxe Fonction


Commande Syntaxe Fonction

Affiche l'entrée du manuel de


man man commande documentation de bash pour la
commande

Affiche le chemin absolu du


pwd pwd
répertoire courant

change de répertoire courant pour


cd cd chemin
celui désigne par chemin

change de répertoire courant pour


cd cd .. le répertoire parent dans
l'arboresence

change de répertoire courant pour


cd cd ~ le répertoire personnel de
l'utilisateur /home/user

affiche les répertoires et fichiers


ls ls
du répertoire courant

affiche de façon détaillée les


ls ls -l répertoires et fichiers du
répertoire courant

Déplace le fichier de chemin


source vers le chemin cible ,
mv mv source cible
peut être utilisé pour renommer
un fichier

Crée le sous-répertoire rep vide


mkdir mkdir rep
dans le répertoire courant

Supprime le fichier désigné par


rm rm chemin
son chemin

Supprime le répertoire désigné


par son chemin , et
rm rm -r chemin récursivement tous les fichiers et
sous-répertoires qu'in contient,
l'option -r signifie récursif
Commande Syntaxe Fonction

Copie le fichier de chemin


source vers le chemin cible ,
cp cp source cible
peut être utilisé pour renommer
un fichier

ps ps -e Affiche tous les processus

Force l'arrêt du processus


kill kill -SIGKILL pid
identifié par son pid

Montre les adresses IPV4 et IPV6


ip ip address
des interfaces réseaux

Envoie un paquet de test avec le


ping ping adresse_ip_cible protocole ICMP vers l'adresse ip
cible

Résout le nom de domaine et


host host nom_domaine renvoie l'adresse IP donnée par
le service DNS

Affiche les routeurs traversés


traceroute traceroute (nom_domaine/adresse_ip) pour atteindre le nom de domaine
ou l'adresse IP cible

Les différents types de licences logicielles


On distingue :

Les licences propriétaires :


Un éditeur concède à titre non exclusif un droit d'usage sur un logiciel dont il conserve les droits
de propriété intellectuelle. Un CLUF (Contrat Licence Utilisateur Final) délimite les conditions
d'usage du logiciel : limitation du nombre de copies, de postes sur lequel le logiciel peut être
installé, interdiction de modification
et de redistribution . En général, le code source n'est pas accessible (on parle de logiciel fermé)
...
Les licences libres ou open-source : elles respectent les quatre libertés fondamentales du
logiciel libre :
i. Liberté 1 liberté d'exécuter le programme, pour tous les usages.
ii. Liberté 2 liberté d'étudier le fonctionnement du programme, et de le modifier pour
l'adapter à ses besoins
iii. Liberté 3 liberté de redistribuer des copies.
iv. Liberté 4 liberté de redistribuer aux autres des copies de versions modifiées
Les libertés 2 et 4 nécessitent l'accès au code source. Il ne faut pas confondre licence libre et
domaine public : mettre un logiciel sous licence libre ne signifie pas abandonner ses droits
d'auteurs (droit moral inaliénable) mais donner des permissions aux usagers qui vont au-delà de
ce qu'autorise le droit d'auteur par défaut.

 "Exemple"

Système
Licence libre Descendant de Figure tutélaire
d'exploitation

Unix, distributions
Noyau Linux Oui, GNU version 2 Ubuntu, Debian, Linus Torvalds
Fedora ...

Android Oui, Apache Unix, noyau Linux Andy Rubin

Partiellement, licence Steve Jobs


MacOS propriétaire et Apple Public Unix (CEO pas
Licence développeur)

Windows Non MS-DOS Bill Gates

 "Attention"

Ne pas confondre logiciels libres et gratuits (double sens du mot free en Anglais):

un freeware désigne usuellement un logiciel distribué gratuitement, indépendamment de


sa licence d'utilisation. Le code source n'est pas forcément fourni ; dans ce cas ce n'est pas
un logiciel libre.
un shareware désigne un logiciel distribué gratuitement et librement pendant une durée ou
un nombre d'utilisations qui sont fixées par l'auteur. Au delà de ce délai il faut payer des
royalties et le code source n'est pas fourni donc ce n'est pas un logiciel libre.
Source de l'infographie : journal Le Monde 6 Janvier 2024.

Vous aimerez peut-être aussi