L`écosystème Linux

publicité
L’écosystème Linux
Pibou
17 octobre 2016
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Linux, c’est quoi ?
Au sens strict, un noyau
Au sens large, un système d’exploitation GNU/Linux
Divisé en 2 :
Le système (GNU)
Le noyau (Linux)
Pibou
L’écosystème Linux
2 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Rapide tour d’horizon
UNIX (1969), ancêtre commun de plusieurs familles de systèmes :
BSD
GNU/Linux
Solaris
HP-UX
...
Pibou
L’écosystème Linux
3 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Rapide tour d’horizon
Quelques systèmes GNU/Linux :
Debian
Ubuntu
Fedora
Linux Mint
ArchLinux
CentOS/RedHat
Pibou
L’écosystème Linux
4 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Deux environnements
Linux offre deux environnements distincts :
Terminal
~/net7/formations/linux %
Graphique
Pibou
L’écosystème Linux
5 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Environnement graphique
Xorg : serveur d’affichage utilisé dans Linux
Environnements de bureau :
GNOME
KDE
Xfce
Gestionnaires de fenêtres :
i3
awesome
bspwm
dwm
...
Pibou
L’écosystème Linux
6 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Terminal
Linux possède 6 terminaux (aussi appelés TTY 1 )
Pour basculer entre les TTY : Ctrl + Alt + F1 − F6
Pour revenir sur l’environnement graphique : Ctrl + Alt + F7
En pratique : utilisation d’un émulateur de terminal dans
l’environnement graphique.
Les émulateurs de terminal sont des PTS 2
Intérêt : avoir le contrôle sur son système !
1. Teletypewriter
2. Pseudo terminal
Pibou
L’écosystème Linux
7 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Shell
Lorsque vous ouvrez un terminal, vous êtes accueilli par une ligne
ressemblant à :
theo@piece-montee:~$
Cette ligne vient du shell, ou interpréteur de commande.
Le shell se charge d’exécuter les commandes que vous lui donnez.
Exemples :
$ echo "Linux c’est génial !"
Linux c’est génial !
$ echo $SHELL
/bin/bash
Pibou
L’écosystème Linux
8 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Variables d’environnement
Le shell possède un certain nombre de variables d’environnement,
débutant par $, contenant des informations variées nécessaires au
bon fonctionnement du shell et plus généralement du système.
Il est possible de définir des variables d’environnement
personnalisées :
$ TEXTE="pouet"
$ echo $TEXTE
pouet
Pibou
L’écosystème Linux
9 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Système de fichiers
Sous UNIX, le système de fichiers est une arborescence.
/
bin
dev
etc
home
tmp
usr
var
/bin : exécutables
/dev : fichiers spéciaux de périphériques (device)
/etc : fichiers de configuration des programmes
/home : répertoires utilisateur
/tmp : fichiers temporaires
/usr : exécutables et fichiers de programmes utilisateur
/var : fourre-tout où on retrouve entre autres les logs système
Pibou
L’écosystème Linux
10 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Processus
Dans un système UNIX, tout programme s’exécute dans le cadre
d’un processus.
Tout processus possède un identifiant numérique, nommé pid,
comme process identifier.
Le processus « racine », init, possède toujours un pid égal à 1.
Il est lancé automatiquement lors du démarrage du système.
Un processus possède également une zone de mémoire RAM, qui
lui est attribuée par le noyau.
Il est possible de contrôler l’exécution de processus à l’aide de
signaux.
Pibou
L’écosystème Linux
11 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Gestion des permissions
Préambule : notions d’utilisateurs et de groupes.
root : super-utilisateur, ayant tous les droits sur le système
Chaque fichier présent dans le système de fichiers possède des
informations sur :
les permissions (utilisateur, groupe, reste)
le propriétaire (utilisateur et groupe)
~/net7/formations/linux % ls -l
total 594
drwxr-xr-x 2 theo theo
3 16 oct. 17:30 figures
-rw-r--r-- 1 theo theo 7221 16 oct. 21:10 support.tex
Pibou
L’écosystème Linux
12 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Noyau
Rappel : à proprement parler, Linux est seulement le noyau.
Qu’est-ce que le noyau ?
Le noyau, c’est un élément-clé d’un système d’exploitation.
C’est lui qui fait le lien entre le matériel et le logiciel.
La gestion des ressources matérielles étant une tâche assez ardue et
précise, on préfère déléguer cette tâche à un seul « programme ».
Pibou
L’écosystème Linux
13 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Partitionnement
Lorsqu’on installe un système UNIX, une des étapes est le
partitionnement. Le principe est de « découper » le disque afin d’y
mettre plusieurs systèmes de fichiers.
Un schéma de partitionnement classique est de créer une partition
pour la racine, et une pour /home, plus la partition de swap.
Swap : utilisé comme substitut lorsque la RAM est pleine.
Pibou
L’écosystème Linux
14 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Démarrage
Pour démarrer, le système a besoin d’un programme particulier
appelé chargeur de démarrage.
Historiquement, le code de ce programme était écrit sur les
premiers octets du disque.
En 2016, cette méthode archaïque est supplantée par l’UEFI :
Une partition spéciale (EFI System) contient les binaires des
chargeurs de démarrage, et leur emplacement (partition + chemin)
est stocké dans une NVRAM 1 .
Le chargeur de démarrage se charge ensuite de démarrer le système.
1. Non-volatile RAM
Pibou
L’écosystème Linux
15 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Commandes de base
Commande
echo
cd
ls
mv
pwd
mkdir
rmdir
rm
grep
Action
Afficher du texte ou des variables
Se déplacer dans l’arborescence
Affiche le contenu du répertoire courant
Déplacer ou renommer un fichier
Afficher le répertoire courant
Créer un répertoire
Supprimer un répertoire (vide)
Supprimer un fichier
Obtenir les lignes qui matchent l’expression régulière
Pibou
L’écosystème Linux
16 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Fichiers
Commande
cat
more
less
find
file
wc
Action
Afficher le contenu d’un fichier
Comme cat, mais permet en plus le défilement
Comme more, avec défilement dans les deux sens
Rechercher un fichier
Donne des informations sur le type de fichier
Compter les caractères ou les lignes d’un fichier
Éditeurs de texte :
nano, installé par défaut dans la majorité des systèmes
vi, également installé par défaut dans beaucoup de systèmes
vim, basé sur vi, plus performant, personnalisable, et plein de
plugins
Pibou
L’écosystème Linux
17 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Processus
Commande
ps
jobs
kill
killall
top
htop
Action
Obtenir des informations sur les processus
Afficher les processus en arrière-plan
Envoyer des signaux à un processus
Comme kill, mais avec le nom du programme au
lieu du PID
Informations sur les processus et la consommation
des ressources
Comme top, en mieux (permet le défilement)
Pibou
L’écosystème Linux
18 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Utilisateurs, groupes et permissions
Commande
chmod
chown
su
sudo
user{add,mod,del}
group{add,mod,del}
Action
Modifier les permissions d’un fichier
Modifier le propriétaire d’un fichier (utilisateur ou groupe)
Changer d’utilisateur
Exécuter une commande en tant que
Ajouter, modifier, supprimer un utilisateur
Ajouter, modifier, supprimer un groupe
Pibou
L’écosystème Linux
19 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Systèmes de fichiers et supports
Commande
mount
umount
lsblk
dd
Action
Monter des systèmes de fichiers depuis tout support (CD, clé USB, disque dur. . .)
Démonter un système de fichiers
Afficher les block devices
Utilitaire de copie de fichiers
Pibou
L’écosystème Linux
20 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Gestion de paquets
Chaque système est livré avec un gestionnaire de paquets. C’est
un programme qui permet d’installer d’autres programmes.
Sous Linux, contrairement à Windows, la gestion des programmes
installés est centralisée : les programmes prennent la forme de
paquets, et sont récupérés depuis des dépôts.
Note : il est aussi possible de compiler ses programmes.
Les gestionnaires de paquets varient selon le système installé.
Système
Gestionnaire de paquets
Debian, Ubuntu et Linux Mint apt
Fedora
dnf
ArchLinux
pacman
CentOS et RedHat
rpm ou yum
Pibou
L’écosystème Linux
21 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Système
Ces commandes sont un peu plus avancées, et leur disponibilité
peut varier selon le système.
Commande
uname
dmesg
lspci
lsusb
systemctl
service
Action
Informations sur le système
Afficher les messages du noyau
Informations sur les périphériques PCI
Informations sur les périphériques USB
Gestion des services (avec systemd)
Gestion des services (avec initd)
Pibou
L’écosystème Linux
22 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Réseau
Linux possède également plusieurs commandes liées de près ou de
loin au réseau.
Comme les commandes précédentes, la disponibilités de certaines
de ces commandes peut varier selon le système.
Commande
ip
ifconfig
ethtool
ping
telnet
ssh
netcat
Action
Gestion des interfaces réseau (iproute2)
Gestion des interfaces réseau (hérité de BSD)
Gérer les paramètres des cartes réseau
Vérifier si une machine distante est joignable
Communiquer avec un service distant
Connexion sécurisée à une machine distante
Lire ou écrire des données depuis ou sur une machine distante
Pibou
L’écosystème Linux
23 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
man
Pour finir, Linux est livré avec une commande importante : man !
man, comme manual, c’est un ensemble de manpages, dans
lesquelles sont documentées les fonctionnalités des différents
programmes installées sur votre système, ainsi que toutes ses
options disponibles.
Si vous ne savez pas quoi faire, jetez un œil au man !
Usage :
$ man <programme>
Pibou
L’écosystème Linux
24 / 25
Présentation
Notions de Linux
Noyau et démarrage
Commandes
Fin
Fin
C’est terminé !
Place à la vraie pratique : installez Linux sur votre PC !
net7 est là pour vous guider si vous voulez :)
Pibou
L’écosystème Linux
25 / 25
Téléchargement