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