Niveau & Filière : 1ACP
Matière
Introduction pratique aux commandes
linux et aux scripts Shell
Animée par : M. Arsène
COULIBALY
Année Universitaire 2023-2024 1
OBJECTIF DU COURS
Objectif : Maitriser les commandes linux de bases ainsi
que les scripts Shell
Répartition du volume horaire : 14 h coursera
Mode d’évaluation :
Examen Ecrit 70%
Certification 30%
Année Universitaire 2023-2024 2
Références
https://openclassrooms.com/fr/courses/43538-reprenez-le-
controle-a-laide-de-linux
Année Universitaire 2023-2024 3
PLAN DETAILLE DU COURS
Initiation à Coursera
I. Introduction à linux
1. Généralités sur les systèmes d’exploitations
2. Histoire de GNU linux
3. Architecture du système Linux et notion de distribution
II. Introduction aux commandes linux
III. Introduction aux scripts Shell
IV. Projet final et examen final
Année Universitaire 2023-2024 4
Free Online Courses From Top Universities
Ø Coursera est une plateforme numérique proposant des courts en ligne.
Ø Le contenu est alimenté en grande partie par des universités à travers le
monde mais aussi par des entreprises comme IBM ou google
Ø On y trouve des cours gratuits et des cours payants
Ø Pour suivre les cours sur cette plateforme il vous suffit de créer un compte
coursera sur la plateforme.
Cours sponsorisé par
Année Universitaire 2023-2024 5
1. Généralités sur les OS
Le système d’exploitation (noté SE ou OS, abréviation du terme anglais Operating
System), est chargé d’assurer la liaison entre les ressources matérielles, l’utilisateur
et les applications.
Deux taches :
1. Fournir à l’utilisateur une machine étendue ou
virtuelle, plus simple à programmer
2. Gestion des ressources. Deux dimensions du
partage(multiplexage) :
• Temps
• Espace
Année Universitaire 2023-2024 6
1. Généralités sur les OS
L’os est un grand ordonnanceur
L’OS simule le parallélisme
sur une machine séquentielle
7
Année Universitaire 2023-2024
1. Généralités sur les OS
Abstraction des périphériques
Objectif : Masquer la complexité matériel/ Facilité l’accès au matériel
Linux est un OS à accès
fichier
Année Universitaire 2023-2024 8
2. Histoire de GNU linux
Logiciel Libre, concepts et licences
La licence libre est document autorisant l’utilisation d’un logiciel sous certaines conditions : Elle constitue
un contrat entre l’éditeur et l’utilisateur. Une licence libre ajoute trois libertés fondamentales :
Ø Utiliser le logiciel(même commercialement)
Ø Etudier et modifier le code source
Ø Distribuer la version modifiée.
Un logiciel libre ne doit pas être confondu avec le freeware, dont le code source n’est pas disponible
et la licence pas forcément compatible avec le modèle libre
Logiciel Libre , concepts et licences
Année Universitaire 2023-2024 9
2. Histoire de GNU linux
Définition d’un Logiciel Libre
Ø Un programme est considéré comme libre lorsque sa licence offre à tous les utilisateurs les
quatre points de liberté suivantes :
q La liberté d’exécuter le logiciel pour n’importe quel but
q La liberté d’étudier le logiciel et de le modifier
q La liberté de redistribuer des copies
q La liberté de distribuer des copies de versions modifiées
Ø Ces libertés sont accordées pour une utilisation commerciale et non commerciale
Ø Elles impliquent la disponibilité du code source, le logiciel peut être modifié et distribué aux
clients
Année Universitaire 2023-2024 10
2. Histoire de GNU linux
Qu’est-ce que l’Open Source ?
L’Open Source repose sur les principes du logiciel libre, mais est né d’une scission avec la
FSF (Free Software Foundation) vers 1998 et la création de l’OSI (Open Source Initiative)
par Eric Raymond.
Année Universitaire 2023-2024 11
2. Histoire de GNU linux
Naissance du Logiciel Libre
Ø 1983, Richard Stallman, Projet GNU et le concept de logiciel . Début du développement de gcc,
gdb, Glibc et d’autres outils importants.
Ø 1991, Linux Torvalds, Linux kernel Project. De plus avec les logiciels de GNU et de nombreux
autres composants open-source.
-> Un système d’exploitation entièrement libre, GNU/Linux
Année Universitaire 2023-2024 12
2. Histoire de GNU linux
Naissance du Logiciel Libre
Ø 1991, Linux Torvalds, Linux kernel Project. De plus avec les logiciels de GNU et de nombreux autres
composants open-source.
-> Un système d’exploitation entièrement libre, GNU/Linux
Année Universitaire 2023-2024 13
2. Histoire de GNU linux
Naissance du Logiciel Libre
Ø 1995, Linux devient de plus en plus populaire sur les systèmes serveur
Ø 2000, Linux devient de plus en plus populaire sur les systèmes embarqués
Ø 2008, Linux devient de plus en plus populaire sur les appareils mobiles
Ø 2010, Linux devient de plus en plus populaire sur les téléphones
Année Universitaire 2023-2024 14
2. Histoire de GNU linux
Qu’est-ce que Linux
Ø Linux ne désigne que le
noyau
Ø Linux est associé aux outils GNU d’où le nom
GNU/Linux
Ø Systèmes avec les outils GNU mais un noyau différent : GNU/Hurd,
Solaris etc
Ø Systèmes Linux sans GNU :
Android
Année Universitaire 2023-2024 15
3. Architecture de linux et notion de distribution
Linux est un système d’exploitation:
Ø Monolithique
Ø Modulaire
Année Universitaire 2023-2024 16
3. Architecture de linux et notion de distribution
Linux Linux et MacOs sont tous les deux
Basés sur Unix.
UNIX
MacOs
Par Windows qui est un Os propriétaire est
MSDOS Windows basé sur MS-DOS
Année Universitaire 2023-2024 17
3. Architecture de linux et notion de distribution
Une distribution de Linux est un Os qui est basé sur le noyau Linux mais dont l’espace utilisateur a été
personnalisé. Toutes les distributions de Linux ont donc le même noyau Linux.
Linux
Android Slackwave Debian Red Hat Mandviva
Raspberry pi
Ubuntu Skolelinux
Os
Année Universitaire 2023-2024 18
1. Entrer une commande
Le terminal ou encore la console est l’interface nous permettant de saisir une commande. Il existe sur
linux au total 6 terminaux nommés ttyi avec i allant de 1 à 6.
La console affiche une invite de commandes au début de la ligne
Ligne invite de commande
Nom de la machine
Nom d’utilisateur Année Universitaire 2023-2024 19
1. Entrer une commande
Une commande est un programme(un exécutable) qui demande au noyau linux d’exécuter une tache spécifique.
Exemple : La commande ls(List directory) permet de lister le contenu d’un répertoire
Année Universitaire 2023-2024 20
2. Structure des dossiers sur linux
Sur linux tout est fichiers. Toute la partie matériel est virtualisé sous forme de fichiers. On
distingue deux grands types de fichiers :
Ø Les fichiers classiques : fichiers texte, les sons, les programmes
Ø Les fichiers spéciaux : Ce sont des fichiers qui virtualise un matériel spécifique de
l’ordinateur. Par exemple votre clé usb , votre lecteur CD sont des fichiers pour
linux.
Année Universitaire 2023-2024 21
2. Structure des dossiers sur linux
2.1. La racine
Dans un système de fichiers, il y a toujours ce qu'on appelle une racine, c'est-à-dire un « gros
dossier de base qui contient tous les autres dossiers et fichiers.
Sur Windows on a deux racines :
Ø C:\ : pour le disque dur
Ø D:\ : Pour le lecteur CD
Sur Linux on a par contre une seule racine « / ». Il n’y a pas de dossier de plus haut niveau que
la racine. Voici le contenu de la racine :
Année Universitaire 2023-2024 22
2. Structure des dossiers sur linux
2.2. Arborescence
Année Universitaire 2023-2024 23
2. Structure des dossiers sur linux
2.2. Arborescence
contient des programmes (exécutables)
susceptibles d'être utilisés par tous les fichiers permettant le démarrage de Linux.
utilisateurs de la machine.
répertoires personnels des utilisateurs. c'est fichiers contenant les périphériques
dans ce dossier que vous placerez vos fichiers
personnels. Chaque utilisateur possède son
dossier personnel
dossier contenant les bibliothèques partagées
(généralement des fichiers .so) utilisées par
fichiers de configuration les programmes.
contient des informations système
Année Universitaire 2023-2024 24
2. Quelques commandes usuelles
2.3. Arborescence
pwd(Print Working Directory) & which : Où suis-je ?
pwd : Permet de savoir dans quel répertoire nous nous
trouvons
which : Permet de trouver l’emplacement d’une commande
Année Universitaire 2023-2024 25
2. Quelques commandes usuelles
2.3. Arborescence
ls(list) : Permet de lister les fichiers et les répertoires contenus dans un
dossier
cd(Change Directory) : changer de dossier
Année Universitaire 2023-2024 26
2. Quelques commandes usuelles
2.3. Arborescence
Chemin relatif vs chemin absolu
Un chemin relatif est un chemin qui dépend les chemins absolus fonctionnent quel que soit le dossier dans
du dossier dans lequel vous vous trouvez. lequel on se trouve. Un chemin absolu est facile à reconnaître : il
commence toujours par la racine (/).
Année Universitaire 2023-2024 27
2. Quelques commandes usuelles
2.4. Manipulation des fichiers
touch & mkdir : créer des fichiers et dossiers
cp & mv : copier et déplacer un fichier
rm : supprimer des fichiers et dossiers
head & tail : afficher le début et la fin d'un fichier
cat & less : afficher un fichier
Année Universitaire 2023-2024 28
2. Quelques commandes usuelles
2.5. Les utilisateurs et les droits
Année Universitaire 2023-2024 29
2. Quelques commandes usuelles
2.6. Recherche de fichiers
Année Universitaire 2023-2024 30
2. Quelques commandes usuelles
2.7. Les flux et les rédirections
Année Universitaire 2023-2024 31
2. Quelques commandes usuelles
2.8. Exécuter un programme à une heure différée
Année Universitaire 2023-2024 32
1. Introduction sur le shell
Le shell est le programme qui interprète les différentes commandes(cp, ls …) tapés en ligne de
commande . Il existe plusieurs types deShell :
Ø sh : Bourne Shell. L'ancêtre de tous les shells.
Ø bash : Bourne Again Shell. Une amélioration du Bourne Shell,
disponible par défaut sous Linux et Mac OS X.
Ø ksh : Korn Shell. Un shell puissant assez présent sur les Unix propriétaires,
mais aussi disponible en version libre, compatible avec bash.
Ø csh : C Shell. Un shell utilisant une syntaxe proche du langage C.
Ø tcsh : Tenex C Shell. Amélioration du C Shell.
Ø zsh : Z Shell. Shell assez récent reprenant les meilleures
idées de bash, ksh et tcsh.
Année Universitaire 2023-2024 33
2. Premier script Shell
Un script Shell est tout simplement un fichier sur lequel on retrouve un ensemble de commande
linux permettant d’exécuter une tache donnée.
Nous allons créer un script bash qui affiche le nom de l’utilisateur, puis le dossier dans lequel nous
nous trouvons et ensuite liste le contenu de ce dossier.
Année Universitaire 2023-2024 34
2. Premier script Shell
Ø Un script Shell porte l’extension .sh.
Ø Toutes les lignes débutant par un # sont des commentaires sauf la première ligne
Ø La première ligne appelée « Schebang » permet de spécier le type de shell que l’on
souhaite utiliser. Dans notre cas nous utilisons le bash.
Ø Les autres lignes sont une suite de commandes
Année Universitaire 2023-2024 35
2. Premier script Shell
Exécution d’un script
1. Commencer par donner le droit d’exécution au script avec chmod.
2. Exécution du script :
Année Universitaire 2023-2024 36
3. Afficher et manipuler des variables
Une variable possède un nom et une valeur :
echo : permet d’afficher le contenu d’une variable
Syntaxe : > echo $nomVariable
read : demander une saisie
syntaxe : > read nomVariable
Année Universitaire 2023-2024 37
3. Afficher et manipuler des variables
Effectuer des opérations mathématiques
Pour effectuer des opérations mathématiques on utilise en général deux méthodes:
1. le keyword « let »
2. $((opérations à effectuer))
Année Universitaire 2023-2024 38
3. Afficher et manipuler des variables
Variables d’environnement
Les variables d'environnement sont des variables que l'on peut utiliser dans n'importe quel programme.
On parle aussi parfois de variables globales. La commande « env » permet d’afficher toutes les variables
d’environnement.
Année Universitaire 2023-2024 39
3. Afficher et manipuler des variables
Variables d’environnement
Les variables d'environnement sont des variables que l'on peut utiliser dans n'importe quel programme.
On parle aussi parfois de variables globales. La commande « env » permet d’afficher toutes les variables
d’environnement.
Année Universitaire 2023-2024 40
3. Afficher et manipuler des variables
Variables paramètres
Ce sont les paramètres passés au script lors de son exécution :
Année Universitaire 2023-2024 41
3. Les conditions
Condition simple
Année Universitaire 2023-2024 42
3. Les conditions
Condition simple
Année Universitaire 2023-2024 43