0% ont trouvé ce document utile (0 vote)
22 vues22 pages

Syllabus Linux

Le cours d'initiation à Linux vise à fournir aux participants les compétences nécessaires pour comprendre et administrer un système Linux. Il couvre l'histoire de Linux, les distributions, les interfaces, les commandes de base, la gestion des fichiers et des utilisateurs, ainsi que des notions de réseau. Les participants apprendront également à utiliser des éditeurs de texte, à gérer des processus et à effectuer des scripts shell.

Transféré par

abdoulazizdembega10
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)
22 vues22 pages

Syllabus Linux

Le cours d'initiation à Linux vise à fournir aux participants les compétences nécessaires pour comprendre et administrer un système Linux. Il couvre l'histoire de Linux, les distributions, les interfaces, les commandes de base, la gestion des fichiers et des utilisateurs, ainsi que des notions de réseau. Les participants apprendront également à utiliser des éditeurs de texte, à gérer des processus et à effectuer des scripts shell.

Transféré par

abdoulazizdembega10
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

Cours d’Initiation à Linux

Objectif general

Fournir aux participants les bases nécessaires pour comprendre, utiliser et


administrer un système Linux dans un contexte personnel ou professionnel.

1 Histoire et philosophie de Linux


1.1 Origine

• Unix (1969) : Système d’exploitation multi-utilisateur, multitâche,


stable et modulaire.
• Minix (1987) : Version simplifiée d’Unix pour l’apprentissage.
• Linux (1991) : Créé par Linus Torvalds, Linux est un noyau libre,
inspiré de Minix.
o Premier message public : « Just a hobby, won’t be big and
professional like GNU. »

1.2 Philosophie

• Liberté logicielle : Basé sur la licence GPL (General Public License)


— tout utilisateur peut :
o Utiliser
o Étudier
o Modifier
o Distribuer
• Communauté : Linux est développé par des milliers de contributeurs
dans le monde.
• Modularité : Chaque partie (shell, noyau, interface, etc.) est
indépendante.
2 Distribution GNU/Linux : Debian, Ubuntu, Fedora, CentOS, etc.

o Qu’est-ce qu’une distribution ?


▪ Une distribution Linux = Noyau Linux + outils +
gestionnaire de paquets + environnement graphique.
o Exemples populaires

Gestionnaire de
Distribution Public cible Caractéristiques
paquets
Stable,
Debian Apt Ultra stable
serveur
Débutant,
Ubuntu apt Facile à utiliser
bureau
Fedora Avancé, dev dnf Dernières techs
CentOS/RHEL Entreprise yum/dnf Fiabilité pro
Minimaliste, à construire
Arch Linux Expert pacman
soi-même

3 Les différentes interfaces : ligne de commande vs interfaces graphiques (CLI


vs GUI)
CLI (Command Line GUI (Graphical User
Aspect
Interface) Interface)
Utilisation Clavier, terminal Souris, fenêtres
Rapidité Très rapide avec scripts Plus lent mais intuitif
Courbe d’apprentissage plus
Apprentissage Plus accessible
raide
Contrôle
Complet et précis Parfois limité
système
Exemple Bash, Zsh, Fish GNOME, KDE, Xfce

4 Installation de Linux sur une machine virtuelle (VirtualBox ou WSL)

Travaux pratiques

Premiers pas dans le terminal


Commande Description
pwd Affiche le chemin du répertoire courant
ls Liste les fichiers du dossier
cd nom_dossier Se déplacer dans un dossier
mkdir test Crée un dossier
touch fichier Crée un fichier vide
rm fichier Supprime un fichier
man ls Affiche le manuel de la commande ls

5 Commandes de base du terminal

• Arborescence du système de fichiers Linux (/, /home, /etc, /bin, etc.)


• Navigation dans le système : pwd, cd, ls, tree
• Manipulation de fichiers et dossiers : cp, mv, rm, mkdir, touch
• Utilisation de man pour l’aide en ligne

6 Gestion des fichiers et des permissions

• Les types de fichiers Linux


• Droits d’accès : lecture, écriture, exécution
• Commandes : chmod, chown, chgrp
• Notions d’utilisateur et de groupe

7 Éditeurs de texte en ligne de commande

7.1 nano – Éditeur simple pour débutants

7.1.1 Ouvrir un fichier :

nano fichier.txt

7.1.2 Commandes de base :

Action Raccourci clavier


Enregistrer (sauvegarder) Ctrl + O
Quitter Ctrl + X
Couper une ligne Ctrl + K
Action Raccourci clavier
Coller une ligne Ctrl + U
Rechercher un mot Ctrl + W

Lorsque tu appuies sur Ctrl + O, nano demande le nom du fichier à enregistrer


(valider avec Entrée).

7.2 vim – Éditeur puissant pour utilisateurs avancés

7.2.1 Ouvrir un fichier :

vim fichier.txt

7.2.2 Modes de Vim :

• Mode normal : pour naviguer et éditer (par défaut)


• Mode insertion : pour écrire (comme un éditeur normal)
• Mode commande : pour sauvegarder, quitter, etc.

7.2.3 Commandes essentielles :

Action Commande
Passer en mode insertion i
Sauvegarder :w (en mode commande)
Quitter :q
Sauvegarder et quitter :wq ou ZZ
Quitter sans enregistrer :q!
Supprimer une ligne dd
Copier une ligne yy
Coller p
Rechercher un mot /mot puis n

Pour revenir au mode normal, appuie sur Échap.

Astuce : si tu es perdu dans vim

:q!
Cela te permet de quitter sans enregistrer.

8 Gestion des processus et des tâches

• Commandes :
o Listez les processus en cours sur le système

La commande principale pour relever l'activité des processus sur Linux


est ps

▪ Ps

utiliser ps pour relever tous les processus lancés sur le


système,
et les filtrer par utilisateur,
ou les trier par charge CPU consommée et par volume de
mémoire utilisée.

▪ pstree

Cette commande permet d’afficher la hiérarchie des


processus
Lorsque la machine démarre, Linux lance un premier
processus qui aura un ID=1 (init ou systemd en fonction du
type et de l'âge de la distribution). Tous les autres processus

seront des fils et petits-fils de ce processus.

▪ top

C’est un gestionnaire de taches sous linux en terminal


▪ htop

▪ kill

9 Gestion des utilisateurs et groupes

On peut créer autant d'utilisateurs que l'on veut, eux-mêmes répartis dans des
groupes.
Il y a un utilisateur « spécial », root, aussi appelé superutilisateur. Celui-ci a
tous les droits sur la machine.
9.1.1.1 sudo : devenir root un instant
9.1.1.2 sudo su : devenir root et le rester

• Création et suppression d’utilisateurs :

Useradd pour creer un utilisateur,

usermod pout modifier un utilisateur,

userdel pour supprimer un utilisateur


• Gestion des groupes :
o groupadd,

o gpasswd,
o groups
• Gestion des mots de passe : passwd

10 Gestion des paquets logiciels

Les logiciels des systèmes Linux sont livrés sous forme de « paquets», qui
sont des archives spéciales contenant les fichiers nécessaires (programmes,
fichiers de données, configuration, documentation), mais aussi des scripts
d’installation et des indications sur les logiciels qui doivent préalablement être
installés sur le système pour que ce paquet fonctionne bien. Ces logiciels
nécessaires sont nommés des dépendances : si un paquet dépend d’un autre
paquet, cela signifie qu’il a besoin de celui-ci pour fonctionner. Les principaux
formats de paquets sont:
.rpm(distributions Red Hat)
.deb(distributions Debian, Ubuntu et leurs dérivés).
Sous Debian/Ubuntu, le système de gestion de paquetage est nommé
APT(Advanced Package Tool), et s’utilise principalement à travers les
commandes apt-get, apt-cacheet dpkg.Les paquets sont identifiés par un nom
(par exemple « libreoffice-writer ») et un numéro de version. Les mises à jour
remplacent les paquets anciens par de nouvelles versions. Les mises à jour
régulières (quotidiennes) sont essentielles pour garantir la sécurité du système
(corrections de bugs pouvant être exploités par des pirates).Les paquets sont
publiés dans des dépôts, publiés sur le Web (la liste des dépôts et leurs
adresses sont spécifiées dans le fichier: /etc/apt/sources.list).

Les commandes utiles :

apt update: Met à jour votre *liste* de paquets. (interroge les serveurs de la
distribution pour télécharger la liste des paquets publiés et leurs numéros de
versions).

apt list –upgradable: Liste tous les paquets pour lesquels une nouvelle version
est disponible.

apt upgrade: Met à jour tous les paquets.

apt-get --only-upgrade install<nom_paquet>:Met à jour uniquement le paquet


passé en argument.

apt search<mot-recherché>: Rechercheles paquets dont la description


contientle mot clé passé en argument.

apt show<nom-paquet>: Affiche des informations détaillées sur le paquet passé


en argument.

apt install<nom-paquet>: Télécharge et installe le paquet passé en argument.

apt-get remove<nom_paquet>: supprime le paquet passé en argument mais


conserve ses fichiers de configuration.

apt-get purge<nom_paquet>: Supprime le paquet passé en argument ainsi que


ses fichiers de configuration.

apt list –installed: Affiche une liste de tous les paquets déjà installés.

apt-cache depends<nom_paquet>: Affiche les dépendances d'un paquet passé en


argument.

11 Scripting shell de base

11.1 Introduction à Bash


Le Bash, acronyme de "Bourne Again Shell", est l'un des interpréteurs de
commandes les plus utilisés sur les systèmes Unix et Linux. Il est présent par
défaut sur la majorité des distributions Linux, notamment les plus populaires tels
que Debian, Ubuntu, Rocky Linux, etc. Autrement dit, Bash est ce que l'on appelle
un shell, c'est-à-dire une interface système qui se positionne entre l'utilisateur et
le système d'exploitation.
Bash permet d'exécuter des commandes sur la machine locale, de créer et
d'exécuter des scripts pour automatiser des tâches selon les besoins d'un utilisateur
ou d'une organisation. De plus, c'est aussi un excellent moyen de gérer une
machine et les données qu'elle stocke.

11.2 Variables, conditions simples, boucles

Syntaxe générique des commandes Bash


commande [option(s)] [argument(s)]

commande option argument

ls -a /home/dossier

11.3 Création et exécution de scripts .sh

Creation d’un script bash

Les script bash utilisent l’extension .sh

touch ~/ScriptBash.sh

Ecrire un script bash

La première ligne de votre script doit toujours être le Shebang


#!/bin/bash

A la suite de cela nous pouvons ajouter nos lignes de code

#!/bin/bash

# Ecrire un message dans la console

echo "Hello World ! Premier script Bash !"

Exécution :

./ScriptBash.sh

Nécessite des droits d’exécution

11.4 Permissions d’exécution

Le script précédemment écrit n’est pas exécutable en raison du manque de

permission. Il faut donner les droits d’execution comme suit :

chmod +x ScriptBash.sh

Exercice :

12 Réseaux et services
12.1 Notions de base du réseau

12.1.1 Adresse IP (Internet Protocol)

Définition :

Une adresse IP identifie de manière unique un appareil sur un réseau.

Types :

• IPv4 : 4 nombres séparés par des points (ex : 192.168.1.1)


• IPv6 : plus long, format hexadécimal (ex :
2001:0db8:85a3::8a2e:0370:7334)

Public vs Privé :

Type Exemple Utilisation


Visible sur
Publique 8.8.8.8
Internet
Privée 192.168.x.x, 10.x.x.x Réseaux locaux

12.1.2 Masque de sous-réseau (Subnet Mask)

Définition :

Il définit la portion réseau vs la portion hôte d’une adresse IP.

Exemple :

IP : 192.168.1.5
Masque : 255.255.255.0
Réseau : 192.168.1.0
Plage d'hôtes : 192.168.1.1 → 192.168.1.254

12.1.3 Passerelle par défaut (Gateway)


Définition :

L’adresse IP du routeur qui permet à un appareil de communiquer en dehors


de son réseau local.

Ex : 192.168.1.1 est souvent la passerelle des box Internet.

12.1.4 DNS (Domain Name System)

Rôle :

Traduit les noms de domaine (ex : google.com) en adresses IP


(142.250.185.206).

Exemples de serveurs DNS :

Fournisseur Adresse DNS


Google 8.8.8.8
Cloudflare 1.1.1.1
OpenDNS 208.67.222.222

12.1.4.1 DHCP (Dynamic Host Configuration Protocol)

Fonction :

Attribue automatiquement une adresse IP, masque, gateway, et serveur DNS à


chaque appareil connecté au réseau.

Exemple : quand tu connectes ton PC en Wi-Fi chez toi, il reçoit une IP via
DHCP.

12.1.4.2 Ports et Protocoles

Port :

Un port est un point d’entrée pour un service réseau sur une machine.

Service Protocole Port


Web HTTP TCP 80
Service Protocole Port
Web HTTPS TCP 443
SSH TCP 22
DNS UDP 53

12.1.5 Adresse MAC (Media Access Control)

Une adresse physique unique à chaque carte réseau (ex : 00:1A:2B:3C:4D:5E).

Utilisée pour la communication au niveau local (LAN).

12.1.6 NAT (Network Address Translation)

Rôle :

Permet à plusieurs appareils avec des IP privées de partager une seule IP


publique via le routeur.

C’est ce qui te permet d’avoir plusieurs appareils à la maison connectés à


Internet.

12.1.7 Quelques Commandes :

ip - Afficher et configurer les interfaces reseau

----------------------------------------------------

- Afficher les interfaces :

#ip a

- Afficher la route :

#ip route
- Attribuer une IP :

# ip addr add 192.168.1.100/24 dev eth0

ifconfig

------------------------------------------

- Afficher interfaces :

#ifconfig

- Activer interface :

# ifconfig eth0 up

- Desactiver interface :

# ifconfig eth0 down

ping - Tester la connectivite reseau

# ping google.com

netstat - Voir connexions et ports (remplace par ss)

--------------------------------------------------------

- Ports ouverts :

#sudo netstat -tuln

- Connexions :

# netstat -ant

curl - Transferer des donnees (API, Web)

-------------------------------------------

- Telecharger page :

#curl https://example.com

- Enregistrer fichier :
# curl -o fichier.html https://example.com

- Requête POST :

#curl -X POST -d "nom=test" https://httpbin.org/post

wget - Telecharger fichiers/sites

------------------------------------

- Telecharger :

#wget https://example.com/fichier.zip

- Mode arriere-plan :

#wget -b https://example.com/fichier.zip

- Site entier :

#wget --mirror --convert-links --html-extension --no-parent


https://example.com

12.1.8 Accès distant : ssh

12.1.8.1 Découvrez les protocoles de cryptographie asymétrique


Cryptologie C'est la science du secret dans la transmission de l'information.
Cryptographie C'est une discipline de la cryptologie assurant notamment la
confidentialité, l'authenticité et l'intégrité du message dans une
transmission.
Chiffrer On chiffre un message afin de s'assurer qu'il est secret.
Déchiffrer On déchiffre un message afin de récupérer les données
d'origine, lisibles et compréhensibles.
Crypter On crypte lorsqu'on veut altérer un message dans l’objectif
qu’il ne soit plus lisible, à jamais.
Décrypter On essaie cependant de décrypter un message chiffré
lorsqu'on ne connaît pas la clé de déchiffrement.

Le principe de la cryptographie est le suivant :

1. déterminer un algorithme permettant de chiffrer un message,


2. communiquer cet algorithme à votre correspondant afin qu'il puisse
déchiffrer le message

Les algorithme de cryptographie Symetrique

• DES (Data Encryption Standard) d'IBM,


• ou encore AES (Advanced Encryption Standard), qui est probablement le
plus courant aujourd'hui.

Le gros inconvénient de cette méthode réside dans la criticité de cette clé


unique, qui doit être très protégée et transmise de façon sûre à vos
correspondants.

Pour résoudre le problème de la criticité de la clé de chiffrement symétrique,


nous employons plutôt la cryptographie asymétrique, c'est à dire l'utilisation
de deux clés plutôt qu'une :

1. Une clé dite publique, qui va servir à chiffrer le message, et qui peut être
diffusée sans criticité absolue, puisqu'elle ne sert qu'à chiffrer.
2. Une clé dite privée, qui va servir à déchiffrer le message, et qui est
conservée précieusement, sans nécessité de la diffuser :

Les algorithme de cryptographie asymetrique

RSA

DSA

le protocole SSH se définit par l'utilisation des deux procédés de cryptographie :


1. asymétrique pour mettre en place un échange sécurisé avec le client,
2. et symétrique pour gérer les données.

Le principe de fonctionnement est le suivant :

1. Le serveur écoute les demandes de connexions entrantes ;


2. Un client demande une connexion, le serveur lui répond les algorithmes
de chiffrement à sa disposition ;
3. Le client valide un algorithme et le serveur fournit au client sa clé
publique ;
4. À partir de ce moment-là, le client peut vérifier que tous les messages
qu'il va recevoir proviennent bien du serveur ;
5. Le client et le serveur échangent grâce à la cryptographie asymétrique
pour s'accorder sur une clé de chiffrement symétrique basée sur un très
grand nombre premier, on l'appelle la clé de session SSH ;
6. Une fois cette clé partagée, le client et le serveur peuvent l'utiliser pour
tout le reste de la session.

12.1.8.2 Installez un service SSH(OpenSSH)

• sshd: le service SSH ;


• ssh: le client SSH ;
• ssh-keygen et ssh-copy-id: les utilitaires de gestion de clé RSA, DSA ;
• scp et sftp: les clients permettant le transfert de données via SSH.

#apt-get install openssh-server

#systemctl status ssh

#ss -lptun | grep ssh

#systemctl enable ssh

#systemctl stop ssh

#systemctl restart ssh

#ssh username@ip

il est important de securiser le ssh

https://openclassrooms.com/fr/courses/7274161-administrez-un-systeme-
linux/7529351-connectez-vous-a-distance-avec-ssh
• Transfert de fichiers : scp

scp source destination

#scp fichier.txt [email protected]:/srv/

13 Sécurité et bonnes pratiques

13.1 Mise à jour du système Linux

13.1.1 Debian / Ubuntu / Linux Mint

sudo apt update # Met à jour la liste des paquets disponibles


sudo apt upgrade # Installe les mises à jour disponibles
sudo apt full-upgrade # Mise à jour + gestion des dépendances (recommandé)
sudo apt autoremove # Supprime les paquets devenus inutiles

sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y

13.1.2 RedHat / CentOS / Fedora (ancien système : yum)

sudo yum check-update # Vérifie les mises à jour


sudo yum update # Applique les mises à jour

13.2 Configuration du pare-feu (ufw, firewalld)

13.2.1 UFW (Uncomplicated Firewall)

Vérifier si UFW est installé :

sudo ufw status

Activer / Désactiver UFW :

sudo ufw enable # Active le pare-feu


sudo ufw disable # Désactive le pare-feu

Autoriser / Refuser un service :

osudo ufw allow ssh # Autorise SSH


o sudo ufw allow 80/tcp # Autorise HTTP (port 80)
o sudo ufw allow 443/tcp # Autorise HTTPS (port 443)
o sudo ufw deny 23 # Bloque Telnet
Supprimer une règle :

osudo ufw delete allow 80/tcp


Autoriser une IP spécifique :

o sudo ufw allow from 192.168.1.100

14 Sauvegarde de fichiers et automatisation

Archiver et compresser : ZIP


o zip -r archive.zip test_compression/

Explication :

o zip : commande pour créer une archive .zip


o -r : inclut les sous-dossiers récursivement
o archive.zip : nom du fichier compressé
o test_compression/ : dossier à compresser

o unzip archive.zip #pour décompresser

Archiver et compresser : TAR.GZ


o tar -czvf archive.tar.gz test_compression/

Explication :

o tar : commande pour créer des archives


o -c : créer une nouvelle archive
o -z : compresse avec gzip
o -v : mode verbeux (affiche ce qui est ajouté)
o -f : spécifie le nom du fichier
o archive.tar.gz : nom de l’archive compressée
o tar -xzvf archive.tar.gz #pour décompresser

Vous aimerez peut-être aussi