<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator><link href="https://linux.goffinet.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://linux.goffinet.org/" rel="alternate" type="text/html" /><updated>2023-03-14T23:58:04+01:00</updated><id>https://linux.goffinet.org/feed.xml</id><title type="html">Linux Administration</title><subtitle>Support de formation Linux, Administration système et Réseau, virtualisation, Red Hat, Debian, Ubuntu, LIPC, RHCSA, RHCE, LFS</subtitle><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;nil, &quot;email&quot;=&gt;nil, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, &quot;dribbble&quot;=&gt;nil, &quot;flickr&quot;=&gt;nil, &quot;facebook&quot;=&gt;nil, &quot;foursquare&quot;=&gt;nil, &quot;github&quot;=&gt;nil, &quot;gitlab&quot;=&gt;nil, &quot;google_plus&quot;=&gt;nil, &quot;keybase&quot;=&gt;nil, &quot;instagram&quot;=&gt;nil, &quot;lastfm&quot;=&gt;nil, &quot;linkedin&quot;=&gt;nil, &quot;pinterest&quot;=&gt;nil, &quot;soundcloud&quot;=&gt;nil, &quot;stackoverflow&quot;=&gt;nil, &quot;steam&quot;=&gt;nil, &quot;tumblr&quot;=&gt;nil, &quot;twitter&quot;=&gt;nil, &quot;vine&quot;=&gt;nil, &quot;weibo&quot;=&gt;nil, &quot;xing&quot;=&gt;nil, &quot;youtube&quot;=&gt;nil}</name></author><entry><title type="html">Évolution de Linux</title><link href="https://linux.goffinet.org/administration/introduction-a-linux/evolution-de-linux/" rel="alternate" type="text/html" title="Évolution de Linux" /><published>2018-01-01T00:00:00+01:00</published><updated>2020-09-22T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/introduction-a-linux/evolution-de-linux</id><content type="html" xml:base="https://linux.goffinet.org/administration/introduction-a-linux/evolution-de-linux/"><![CDATA[<h1 id="évolution-de-linux">Évolution de Linux</h1>

<h2 id="objectifs-de-certification">Objectifs de certification</h2>

<h3 id="objectifs-linux-essentials-11">Objectifs Linux Essentials 1.1</h3>

<ul>
  <li><strong>Connaissance du développement de Linux et des distributions majeures.</strong></li>
  <li>Domaines de connaissance les plus importants :
    <ul>
      <li>Philosophie des Logiciels libres.</li>
      <li>Distributions.</li>
      <li>Systèmes embarqués.</li>
    </ul>
  </li>
  <li>Liste partielle de termes, fichiers et utilitaires utilisés pour cet objectif :
    <ul>
      <li>Android.</li>
      <li>Debian.</li>
      <li>CentOS.</li>
    </ul>
  </li>
</ul>

<h2 id="1-système-dexploitation-os">1. Système d’exploitation (OS)</h2>

<ul>
  <li>Une des tâches du système d’exploitation est d’offrir aux utilisateurs une interface simple et conviviale avec le matériel.</li>
  <li>Un système d’exploitation (souvent appelé OS pour Operating System) est un ensemble de programmes qui dirige l’utilisation des capacités d’un ordinateur (matériel) par des logiciels applicatifs.</li>
</ul>

<h3 id="11-fonction-dun-os">1.1. Fonction d’un OS</h3>

<p>Il s’occupe au minimum de  :</p>

<ul>
  <li>La gestion des processus (programmes)</li>
  <li>La gestion de la mémoire</li>
  <li>Le système de fichiers</li>
  <li>La gestion des entrées/sorties</li>
</ul>

<h3 id="12-caractéristiques-dun-os-moderne">1.2. Caractéristiques d’un OS moderne</h3>

<p>Linux est un système d’exploitation :</p>

<ul>
  <li><strong>Multi-tâches</strong> : Un système d’exploitation est multitâche (en anglais : multitasking) s’il permet d’exécuter, de façon apparemment simultanée, plusieurs programmes informatiques.</li>
  <li><strong>Multi-utilisateurs</strong> : Un système d’exploitation multi-utilisateur est conçu pour permettre à plusieurs utilisateurs d’utiliser l’ordinateur simultanément, tout en limitant les droits d’accès de chacun afin de garantir l’intégrité de leurs données.</li>
  <li><strong>Multi-processeurs</strong></li>
</ul>

<h2 id="2-architectures-matérielles">2. Architectures matérielles</h2>

<p>Linux est supporté sur tout type d’architecture :</p>

<ul>
  <li>Serveurs d’entreprise</li>
  <li>Serveurs de Data Center</li>
  <li>Ordinateurs de bureau</li>
  <li>Ordinateurs portables</li>
  <li>Ordinateurs légers</li>
  <li>Mainframes</li>
  <li>Embarqués Industrie</li>
  <li>Embarqués automobile, domotique, domestique, …</li>
  <li>Appareils mobiles, appareils légers</li>
  <li>CPE,</li>
  <li>Périphériques d’infrastructure réseau/stockage/multimédia</li>
</ul>

<h3 id="21-processeurs">2.1. Processeurs</h3>

<table>
  <thead>
    <tr>
      <th>ARM</th>
      <th>Intel/AMD</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Architecture RISC</td>
      <td>Architecture CISC</td>
    </tr>
    <tr>
      <td>A performance égale, réduction des coûts de production et meilleure efficacité thermique (ARM Cortex-A15 28nm 1.62mm²)</td>
      <td>Complexité matérielle plus coûteuse (AMD Jaguar 28nm 3.1mm²) en conception et en énergie</td>
    </tr>
    <tr>
      <td>Stratégie commerciale : licence</td>
      <td>Intel/AMD</td>
    </tr>
    <tr>
      <td>Unix</td>
      <td>Unix / Windows</td>
    </tr>
    <tr>
      <td>Bootloader</td>
      <td>Bios</td>
    </tr>
  </tbody>
</table>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="22-arm-business-model">2.2. ARM Business Model</h3>

<p>Les architectures ARM sont des architectures matérielles RISC 32 bits (ARMv1 à ARMv7) et 64 bits (ARMv8)1 développées par ARM Ltd depuis 1990 et introduites à partir de 1983 par Acorn Computers.</p>

<p>Dotés d’une architecture relativement plus simple que d’autres familles de processeurs, et bénéficiant d’une faible consommation, les processeurs ARM sont devenus dominants dans le domaine de l’informatique embarquée, en particulier la téléphonie mobile et les tablettes.</p>

<p>Ces processeurs sont fabriqués sous licence par un grand nombre de constructeurs.</p>

<figure><img src="/assets/images/linux/Business_Model.jpg" /><figcaption></figcaption></figure>

<p>Source : <a href="https://ir.arm.com/phoenix.zhtml?c=197211&amp;p=irol-model">https://ir.arm.com/phoenix.zhtml?c=197211&amp;p=irol-model</a> et <a href="https://fr.wikipedia.org/wiki/Architecture_ARM">https://fr.wikipedia.org/wiki/Architecture_ARM</a></p>

<h3 id="23-matériel-embarqué">2.3. Matériel embarqué</h3>

<p>On trouvera ici une liste des ordinateurs embarqués dans <a href="https://en.wikipedia.org/wiki/Comparison_of_single-board_computers">https://en.wikipedia.org/wiki/Comparison_of_single-board_computers</a> dans laquelle on retrouve des plateformes ARM, Intel et AMD, mais aussi des architectures <a href="https://fr.wikipedia.org/wiki/Architecture_MIPS">MIPS</a>.</p>

<p>À titre d’exemple, Openwrt est une distribution Linux pour routeurs domestiques dont on trouve <a href="https://wiki.openwrt.org/toh/start">ici la liste</a>.</p>

<h4 id="embarqué-domestique--raspberry-pi">Embarqué domestique : Raspberry Pi</h4>

<p>Les <a href="https://fr.wikipedia.org/wiki/Raspberry_Pi">plateformes Raspberry Pi</a> sont très populaires. Leur système d’explotation favori est une distribution Linux dont la distribution <a href="https://www.raspberrypi.org/downloads/raspbian/">Raspbian</a> (dérivé Debian) qui est la distribution officiellle et qui dispose d’un communauté très large.</p>

<figure><img src="/assets/images/linux/pi4-labelled@2x-0894491e6de97a282dde5a5010cc8b61.jpg" /><figcaption>Raspberry Pi 4 B</figcaption></figure>

<p>Par exemple, Raspberry Pi 4, Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz, 1Go/2Go/4Go RAM, 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE intégrés, Gigabit Ethernet, 2 USB 3.0 ports; 2 USB 2.0 ports, 2 × micro-HDMI ports, 5V DC via USB-C connector (minimum 3A*) ou via GPIO header. Source : <a href="https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/">https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/</a></p>

<p>Autre exemple, comme le <a href="https://www.raspberrypi.org/products/raspberry-pi-zero-w/">Raspberry Pi Zero WH</a>, 1 CPU Broadcom BCM2835 candencé à 1GHz ARM11, 512MB RAM, Micro-USB sockets for data and power, 2.4GHz 802.11 b/g/n Wi-Fi, Bluetooth 4.1 LE, 40 pin GPIO header soudé. Il mesure 30X56X13 mm, il pèse 12 g. et il consomme 180 mA seulement !</p>

<figure><img src="/assets/images/linux/770A4994-768x511.jpg" /><figcaption>Raspberry Pi Zero WH</figcaption></figure>

<p>Pour comparer les différents modèles Raspberry Pi : <a href="http://socialcompare.com/en/comparison/raspberrypi-models-comparison">http://socialcompare.com/en/comparison/raspberrypi-models-comparison</a>.</p>

<h4 id="embarqué-industriel--pc-engines-mirabox">Embarqué industriel : PC Engines, Mirabox</h4>

<figure><img src="/assets/images/linux/mb_back-500x500.jpg" /><figcaption>Globalscale Mirabox</figcaption></figure>

<p>Gobalscale Mirabox, Source : <a href="https://wiki.ipfire.org/en/hardware/arm/globalscale/mirabox">https://wiki.ipfire.org/en/hardware/arm/globalscale/mirabox</a></p>

<ul>
  <li>1.2Ghz Marvell Armada CPU ARMADA 370 ARM v7 compliant</li>
  <li>802.11b/g/n Wifi with Marvell 88W8787 and Bluetooth 3.0</li>
  <li>1GB DDR3</li>
  <li>1 GB NAND Flash</li>
  <li>2 each 10/100/1000 Ethernet Ports</li>
  <li>2 each USB 3.0 host</li>
  <li>1 microsd card slot/reader, 1 additional Mini PCIe slot for expansion (internal) For additional 2x2, 3x3, 4x4 WiFi Radios, or 3G modules</li>
  <li>3 LED controlled by GPIO, reset button</li>
  <li>external power supply</li>
  <li>Port for JTAG and Debugging options</li>
</ul>

<p>PC Engines développe et vend de petits ordinateurs monocartes pour la mise en réseau à une clientèle mondiale. La société a été fondée en 1995 à Sunnyvale, Californie. Nous avons commencé par concevoir des PC embarqués sur mesure pour divers clients OEM. PC Engines a déménagé en Suisse en 2002. Depuis lors, nous nous sommes concentrés sur l’offre de nos produits à marque propre.</p>

<p>Le matériel embarqué <a href="https://pcengines.ch/apu1d4.htm">APU1D4 de PC Engines</a> par exemple est une plateforme AMD X64 (1 GHz dual Bobcat core) avec 4Go RAM embarqués, trois interfaces Gigabit Ethernet, un port pour une carte SD, 1 port USB 2.0, un ports m-sata, deux ports emplacements miniPCI express et un emplacement pour héberger une carte SIM. Il est dimensionné en 152.4 x 152.4 mm.</p>

<figure><img src="/assets/images/linux/apu1c1.jpg" /><figcaption>APU1D4 PC Engines</figcaption></figure>

<p>Sources : <a href="https://pcengines.ch/apu1d4.htm">https://pcengines.ch/apu1d4.htm</a></p>

<h4 id="embarqué-hacking--hak5">Embarqué Hacking : Hak5</h4>

<p><a href="https://shop.hak5.org">Hak5</a> est une entreprise américaine spécialisée dans la conception de matériel de Hacking pour des attaques de proximité :</p>

<p><strong>Intrusion Wi-Fi</strong></p>

<ul>
  <li><a href="https://shop.hak5.org/products/wifi-pineapple">Wifipineapple Nano</a></li>
  <li><a href="https://shop.hak5.org/products/wifi-pineapple">Wifipineapple Tetra</a></li>
</ul>

<p><strong>Implants réseau filaire / sans-fil</strong></p>

<ul>
  <li><a href="https://shop.hak5.org/collections/network-implants/products/lan-turtle">Lan Turtle</a></li>
  <li><a href="https://shop.hak5.org/collections/network-implants/products/packet-squirrel">Pacquet Squirrel</a></li>
  <li><a href="https://shop.hak5.org/collections/network-implants/products/signal-owl">Send Owl</a></li>
  <li><a href="https://shop.hak5.org/collections/network-implants/products/bug">Plunder Bug</a> (Tap Ethernet)</li>
</ul>

<p><strong>Attaques de proximité USB/Ethernet</strong></p>
<ul>
  <li><a href="https://shop.hak5.org/collections/physical-access/products/shark-jack">Shark Jack</a></li>
  <li><a href="https://shop.hak5.org/collections/physical-access/products/usb-rubber-ducky-deluxe">Rubber Ducky</a> (contrôlleur)</li>
  <li><a href="https://shop.hak5.org/collections/physical-access/products/bash-bunny">Bash Bunny</a></li>
</ul>

<p>Le matériel est optimisé pour la légèreté et la faible consommation d’énergie. Il est dédié à des tâches spécialisées d’audit de sécurité. Il dispose de commutateurs et de LED que l’on peut programmer nativement.</p>

<p>Toutes les plateformes de type “ordinateur” (sauf “Plunder Bug” et “Bash Bunny”) fonctionnent sur une base de la distribution OpenWRT. <a href="https://github.com/hak5">Les charges d’audit sont conçues en Bash ou en Python</a>. Les binaires de “pentesting” comme ncat, tcpdump, etc. et d’autres plus rares sont de fabrication “maison”.</p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h2 id="3-quest-ce-que-linux-">3. Qu’est-ce que Linux ?</h2>

<ul>
  <li>Linux est d’abord le nom d’un noyau (le contrôleur central)</li>
  <li>Avec quelques outils supplémentaires, on obtient un système d’exploitation (OS) :
    <ul>
      <li>Un environnement Shell (une ligne de commande)</li>
      <li>La gestion du système (ajouter des utilisateurs,…)</li>
      <li>Des applications (mail, web, développement,…)</li>
    </ul>
  </li>
  <li>Le tout est mis dans une distribution Linux :
    <ul>
      <li>dépôts de paquetages, maintenance des logiciels, scripts de lancement,…</li>
      <li>interfaces graphiques, communautés, …</li>
    </ul>
  </li>
</ul>

<h3 id="31-origine-de-linux">3.1. Origine de Linux</h3>

<ul>
  <li>Créé en 1991 par Linus Torvalds pour des processeurs 80386, il y a plus de 20 ans.</li>
  <li>Reproduit le comportement d’un noyau UNIX (1969).</li>
  <li>Repris par une communauté de développement.</li>
  <li>Le projet GNU ajoute une série d’outils autour du noyau.</li>
</ul>

<h3 id="32-quest-ce-que-unix-">3.2. Qu’est-ce que Unix ?</h3>

<ul>
  <li>Unix a été créé par Bell Labs en 1969.</li>
  <li>Populaire dans les milieux académiques et sur les Mainframes (1980).</li>
  <li>Donne le nom à une famille de systèmes d’exploitation (notamment FreeBSD, NetBSD et OpenBSD), Dalvik/Linux (Android), GNU/Linux, iOS et OS X.</li>
  <li>Le nom « UNIX » est une marque déposée de l’Open Group, qui autorise son utilisation pour tous les systèmes certifiés conformes à la <em>Single UNIX Specification</em>.</li>
</ul>

<h3 id="33-famille-unix">3.3. Famille Unix</h3>

<figure><img src="/assets/images/linux/509px-Unix_timeline.en.2.png" /><figcaption>Famille Unix</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Unix_timeline.en.2.png/509px-Unix_timeline.en.2.png">Source de l’image Famille Unix</a></p>

<h3 id="34-que-fait-linux-">3.4. Que fait Linux ?</h3>

<ul>
  <li>Le noyau gère les processus applicatifs</li>
  <li>Attribue et récupère la mémoire</li>
  <li>Gère les accès aux disques et au processeur (CPU)</li>
  <li>Met une couche d’abstraction sur le matériel pour des applications “hardware-agnostic”</li>
  <li>Fournit la sécurité et l’isolation des utilisateurs</li>
  <li>Est capable de passer à la gestion de processus multiples (preemptive multitasking, SMP)</li>
</ul>

<h3 id="35-ubiquité-du-noyau-linux">3.5. Ubiquité du noyau Linux</h3>

<figure><img src="/assets/images/linux/1000px-Linux_kernel_ubiquity.svg.png" /><figcaption>Ubiqiuité du noyau Linux.</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Linux_kernel_ubiquity.svg/1000px-Linux_kernel_ubiquity.svg.png">Source l’image Ubiqiuité du noyau Linux.</a></p>

<h2 id="4-gnu">4. GNU</h2>

<p>GNU est un projet de système d’exploitation libre lancé en 1983 par Richard Stallman, puis maintenu par le projet GNU. Son nom est un acronyme récursif qui signifie en anglais « GNU’s Not UNIX » (littéralement, « GNU n’est pas UNIX »). Il reprend les concepts et le fonctionnement d’UNIX. Le système GNU permet l’utilisation de tous les logiciels libres, pas seulement ceux réalisés dans le cadre du projet GNU. Son symbole est un gnou, un animal vivant en Afrique.</p>

<p>Il existe à ce jour deux distributions du système d’exploitation GNU :</p>

<ul>
  <li>Arch Hurd ;</li>
  <li>Debian GNU/Hurd.</li>
</ul>

<p><strong>GNU/Linux</strong> (souvent appelé “Linux”) est une variante du système d’exploitation GNU fonctionnant avec le noyau Linux. Le projet GNU avait originellement prévu le développement du noyau Hurd pour compléter le système, mais au début des années 1990, Hurd ne fonctionnait pas encore et son développement rencontrait encore des difficultés. L’arrivée du noyau Linux permit l’utilisation du système GNU sur les ordinateurs animés par des microprocesseurs de la famille Intel x86, en favorisant sa large diffusion par la complémentarité des projets.</p>

<p>Source : <a href="https://fr.wikipedia.org/wiki/GNU">https://fr.wikipedia.org/wiki/GNU</a></p>

<h2 id="5-evolution-des-os">5. Evolution des OS</h2>

<ul>
  <li>Support de la virtualisation</li>
  <li>Support accru pour les architectures autres qu’Intel</li>
  <li>Support de la reconnaissance automatique du matériel</li>
  <li>Un support et un développement communautaire</li>
</ul>

<h2 id="6-open-source">6. Open Source</h2>

<ul>
  <li>Les êtres humains conçoivent des applications, des systèmes et des idées en langue intelligible pour les machines : du code à exécuter.</li>
  <li>Le terme “Open Source” au fait suivant : vous avez <strong>accès</strong> au code et que vous pouvez le <strong>modifier</strong>.</li>
</ul>

<h2 id="7-références">7. Références</h2>

<ul>
  <li><a href="https://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux">https://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux</a></li>
  <li><a href="https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation">https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation</a></li>
  <li><a href="https://fr.wikipedia.org/wiki/Projet_GNU">https://fr.wikipedia.org/wiki/Projet_GNU</a></li>
</ul>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Introduction" /><category term="Administration" /><category term="introduction" /><summary type="html"><![CDATA[Cette introduction est un point de départ sur le monde des ordinateurs et du système d'exploitation Unix moderne GNU/Linux. On verra l'évolution de Linux en tant que reproduction de Unix sur des plateformes Intel. 30 ans plus tard, Linux est certainement l'OS le plus déployé dans le monde.]]></summary></entry><entry><title type="html">Distributions Linux et cycles de maintenance</title><link href="https://linux.goffinet.org/administration/introduction-a-linux/distributions-linux-et-cycles-de-maintenance/" rel="alternate" type="text/html" title="Distributions Linux et cycles de maintenance" /><published>2018-01-01T00:00:00+01:00</published><updated>2021-06-05T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/introduction-a-linux/distributions-linux-et-cycles-de-maintenance</id><content type="html" xml:base="https://linux.goffinet.org/administration/introduction-a-linux/distributions-linux-et-cycles-de-maintenance/"><![CDATA[<h1 id="distributions-linux-et-cycles-de-maintenance">Distributions Linux et cycles de maintenance</h1>

<!--
Famille Suse
-->

<h2 id="objectifs-de-certification">Objectifs de certification</h2>

<h3 id="objectifs-linux-essentials-41">Objectifs Linux Essentials 4.1</h3>

<p>Connaissance des systèmes d’exploitations les plus réputés et des distributions Linux.</p>

<p>Domaines de connaissance les plus importants :</p>

<ul>
  <li>Différences entre Windows, Mac et Linux .</li>
  <li>Cycle de développement des distributions.</li>
</ul>

<p>Liste partielle de termes, fichiers et utilitaires utilisés pour cet objectif :</p>

<ul>
  <li>Interface graphique versus ligne de commande, configuration du bureau.</li>
  <li>Cycles de maintenance, beta et stable.</li>
</ul>

<h2 id="1-distribution-linux">1. Distribution Linux</h2>

<p>Une distribution Linux est composée :</p>

<ul>
  <li>Du noyau</li>
  <li>Des outils d’environnement</li>
  <li>D’un logiciel d’installation</li>
  <li>D’un outil de gestion des paquetages logiciels</li>
</ul>

<figure><img src="/assets/images/linux/320px-Distribution_Linux.svg.png" /><figcaption>Distribution Linux</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Distribution_Linux.svg/320px-Distribution_Linux.svg.png">Source de l’image</a></p>

<h3 id="11-critères-de-choix-dune-distribution-linux">1.1. Critères de choix d’une distribution Linux</h3>

<p><a href="https://en.wikipedia.org/wiki/Comparison_of_Linux_distributions">https://en.wikipedia.org/wiki/Comparison_of_Linux_distributions</a></p>

<ul>
  <li>Architecture matérielle :
    <ul>
      <li>i386,</li>
      <li>amd64,</li>
      <li>arm</li>
    </ul>
  </li>
  <li>Système de paquetage :
    <ul>
      <li>dpkg,</li>
      <li>rpm,</li>
      <li>autres : opkg, pacman, emerge</li>
    </ul>
  </li>
  <li>Droits :
    <ul>
      <li>FSF,</li>
      <li>commercial,</li>
      <li>GPL</li>
    </ul>
  </li>
  <li>Stabilité :
    <ul>
      <li>cycles de maintenance,</li>
      <li>support,</li>
      <li>End of Life (EOL)</li>
    </ul>
  </li>
  <li>Usage :
    <ul>
      <li>bureautique,</li>
      <li>mobile,</li>
      <li>serveur</li>
    </ul>
  </li>
  <li>Commodité :
    <ul>
      <li>Pratique,</li>
      <li>habitude,</li>
      <li>procédure</li>
    </ul>
  </li>
  <li>Support commercial
    <ul>
      <li>Supports techniques</li>
      <li>Solution SaaS</li>
    </ul>
  </li>
</ul>

<h3 id="12-familles-linux">1.2. Familles Linux</h3>

<p>Pour une présentation graphique des familles GNU/Linux : <a href="https://prezi.com/ipbdborsg1qd/gnulinux-distribution-timeline-1210/">https://prezi.com/ipbdborsg1qd/gnulinux-distribution-timeline-1210/</a></p>

<p><strong>Distributions Généralistes</strong></p>

<p>Si les outils “maison” des distributions (services, paquetages, …) et leurs comportements par défaut font toujours la différence, les procédures et les principes des nombreuses distributions deviennent de plus en plus similaires.</p>

<p>Aussi, les concepteurs de logiciels laissent la plupart du temps leur code ouvert, ce qui invite à les compiler soi-même dans leur dernière version. Même si la distribution et l’installation de binaires déjà compilés par les mainteneurs des distributions reste une préférence, de plus en plus de projets logiciels proposent leurs propres dépôts de paquetages.</p>

<p>Voici une liste non-exhaustive des distributions généralistes et leurs dérivés, par famille :</p>

<ul>
  <li><a href="https://www.debian.org/index.fr.html">Debian</a>, <a href="https://www.ubuntu.com/">Ubuntu</a>, <a href="https://www.kali.org/">Kali</a>, <a href="https://www.linuxmint.com/">Mint</a></li>
  <li><a href="https://www.redhat.com/">Redhat</a>, <a href="https://www.centos.org/">CentOS</a>, <a href="https://fedoraproject.org/">Fedora</a></li>
  <li><a href="https://www.slackware.com/">Slackware</a>, <a href="https://www.suse.com/">Suse</a>, <a href="https://www.opensuse.org/">OpenSuse</a></li>
</ul>

<p><strong>Distributions Spécifiques</strong></p>

<p>Ces distributions sont plus spécifiques. Elles disposent chacunes de leur propre communauté, histoire et objectif. Par exemple,</p>

<ul>
  <li><a href="https://openwrt.org/">OpenWRT</a></li>
  <li><a href="https://www.archlinux.org/">Archlinux</a></li>
  <li><a href="https://www.gentoo.org/">Gentoo</a></li>
  <li><a href="https://coreos.com/">CoreOS</a></li>
</ul>

<p>Enfin, on connaîtra aussi bon nombre de <strong>distributions spécialisées</strong> qui remplissent un  objectif assez précis. Elles se basent sur l’une ou l’autre des distributions généralistes ou spécialisées. Kali Linux est un bon exemple : basée Debian, elle propose ses propres dépôts pour des logiciels de sécurité.</p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h2 id="2-cycle-derévision">2. Cycle de révision</h2>

<p>Un cycle de révision fournit des mises à jour et des nouvelles versions. On peut connaître des :</p>

<ul>
  <li>révisions mineures : corrections de bugs ou des ajouts de fonctionnalités secondaires</li>
  <li>révisions majeures : nouvelles fonctionnalités, voire nouvelle conception</li>
</ul>

<p>Exemples :</p>

<ul>
  <li>Debian connait un cycle de plusieurs années</li>
  <li>Ubuntu connait un cycle de tous les 6 mois</li>
  <li>Fedora est révisé tous les 6 mois</li>
  <li>Une révision mineure est proposée tous les 12/18 mois chez RHEL</li>
  <li>Une révision majeure est proposée tous les 3/6 ans chez RHEL</li>
</ul>

<h2 id="3-cycle-de-maintenance">3. Cycle de maintenance</h2>

<p>Un cycle de maintenance est la durée pendant laquelle un logiciel est corrigé et maintenu sur un système de manière cohérente.</p>

<ul>
  <li>Un statut EOL (End of Life) indique la fin de ce support.</li>
  <li>Une mise à niveau (upgrade) est nécessaire pour continuer à bénéficier d’un support de maintenance.</li>
</ul>

<h2 id="4-debian">4. Debian</h2>

<ul>
  <li>Distribution non-commerciale : GNU/Linux par excellence</li>
  <li>Support d’un grand nombre d’architectures dont ARM</li>
  <li>Paquetages compilés sont disponibles en dépôts locaux ou distants : <code class="language-plaintext highlighter-rouge">dpkg</code>, <code class="language-plaintext highlighter-rouge">apt</code>, <code class="language-plaintext highlighter-rouge">synaptic</code></li>
</ul>

<figure><img src="/assets/images/linux/200px-Openlogo-debianV2.svg.png" /><figcaption>Logo Debian</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Openlogo-debianV2.svg/200px-Openlogo-debianV2.svg.png">Source de l’image</a></p>

<h3 id="41-présentation-du-projet-debian">4.1. Présentation du projet Debian</h3>

<p>Debian est une organisation composée uniquement de bénévoles, dont le but est de développer le logiciel libre et de promouvoir les idéaux de la communauté du logiciel libre. Le projet Debian a démarré en 1993, quand Ian Murdock invita tous les développeurs de logiciels à participer à la création d’une distribution logicielle, complète et cohérente, basée sur le nouveau noyau Linux. Ce petit groupe d’enthousiastes, d’abord subventionné par la <a href="https://www.fsf.org/">Free Software Foundation</a>, et influencé par la philosophie <a href="https://www.gnu.org/gnu/the-gnu-project.html">GNU</a>, a grandi pour devenir une organisation composée par environ 1026 <em>développeurs Debian</em>.</p>

<p>Pour communiquer sa philosophie et attirer des développeurs qui adhèrent à ses principes, le projet Debian a publié un certain nombre de documents qui mettent en évidence ses valeurs et expliquent ce que signifie être un développeur Debian :</p>

<ul>
  <li>
    <p>Le <a href="https://www.debian.org/social_contract">contrat social Debian</a> est la déclaration des engagements de Debian vis-à-vis de la communauté du logiciel libre. Quiconque est d’accord pour se conformer à ce contrat social peut devenir un <a href="https://www.debian.org/doc/maint-guide/">développeur Debian</a>. Tout développeur Debian peut introduire de nouveaux logiciels dans Debian, à condition que ces paquets se conforment à nos critères de liberté et répondent à nos critères de qualité ;</p>
  </li>
  <li>
    <p>Les <a href="https://www.debian.org/social_contract#guidelines">directives Debian pour le logiciel libre</a> (<em>Debian Free Software Guidelines</em>, ou <em>DFSG</em>) sont une déclaration claire et concise des critères Debian en matière de logiciel libre. Ce document a une grande influence sur le mouvement pour le logiciel libre ; il est à la base de la définition de l’<a href="https://opensource.org/osd">Open Source</a> ;</p>
  </li>
  <li>
    <p>La <a href="https://www.debian.org/doc/debian-policy/">charte Debian</a> est une spécification détaillée des standards de qualité du projet Debian.</p>
  </li>
</ul>

<p>Les développeurs Debian participent aussi à d’autres projets : certains sont spécifiques à Debian, d’autres concernent tout ou partie de la communauté Linux. Voici quelques exemples :</p>

<ul>
  <li>
    <p>Le <a href="https://www.linuxbase.org/">Linux Standard Base</a> (LSB) est un projet dont le but est de standardiser le système GNU/Linux de base. Les concepteurs de matériels et de logiciels pourront ainsi plus facilement concevoir des applications et des pilotes de périphériques pour un système Linux générique plutôt que pour une distribution particulière ;</p>
  </li>
  <li>
    <p>Le <a href="https://www.pathname.com/fhs/">standard pour l’organisation des systèmes de fichiers</a> (FHS) est un effort pour standardiser l’organisation du système de fichiers Linux. Le FHS permettra aux développeurs de logiciels de se concentrer sur la conception de programmes, sans avoir à se préoccuper de la façon dont le paquet sera installé dans les différentes distributions GNU/Linux ;</p>
  </li>
</ul>

<p>Pour des informations plus générales sur Debian, voir la <a href="https://www.debian.org/doc/FAQ/">FAQ Debian</a>.</p>

<p>Source : <a href="https://www.debian.org/releases/stable/amd64/ch01s01.html.fr">https://www.debian.org/releases/stable/amd64/ch01s01.html.fr</a></p>

<h3 id="42-versions-branches-debian">4.2. Versions (Branches) Debian</h3>

<ul>
  <li>Debian Squeeze (6.0) sera supporté jusqu’en 02/2016</li>
  <li>old stable : Wheezy (7.0), publiée en Mai 2013, les seules mises à jour sont des correctifs de sécurité ;</li>
  <li>old stable : Jessie (8.0) est l’ancienne stable depuis le 26 avril 2015 ;</li>
  <li>stable : Stretch (9.0) est la version stable depuis le 17 juin 2017 ;</li>
  <li>testing  : Buster (10.0) future version stable où seuls les paquets suffisamment matures peuvent rentrer ;</li>
  <li>unstable : surnommée Sid, il s’agit d’une version en constante évolution, alimentée sans fin par de nouveaux paquets ou de mises à jour de paquets déjà existants (on parle de Rolling release).</li>
</ul>

<figure><img src="/assets/images/linux/865eb44d2f1015c222f3581cea54c041.png" /><figcaption>Versions et support Debian</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/en/timeline/865eb44d2f1015c222f3581cea54c041.png">Source de l’image</a></p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="43-architectures-supportées-par-le-projet-debian">4.3. Architectures supportées par le projet Debian</h3>

<ul>
  <li>Intel : 386, kfreebsd-i386, amd64, kfreebsd-amd64, ia64</li>
  <li>ARM : armel, armhfi</li>
  <li>Autres : mips, mipsel, powerpc, sparc, s390x</li>
</ul>

<p>Note : Une distribution Debian est optimisée (officiellement) pour la plateforme Raspberry Pi (armhf) : <a href="https://www.raspberrypi.org/downloads/raspbian/">Raspbian</a>.</p>

<h2 id="5-ubuntu">5. Ubuntu</h2>

<ul>
  <li>Commandité par la société Canonical et une marque déposée par cette même société.</li>
  <li>Basé Debian, Ubuntu respecte les licences GNU et l’esprit Open Source.</li>
  <li>https://doc.ubuntu-fr.org/ubuntu_distribution</li>
</ul>

<figure><img src="/assets/images/linux/200px-Ubuntu-Logo_ohne_Schriftzug.svg.png" /><figcaption>Logo Ubuntu</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/5/54/Ubuntu-Logo_ohne_Schriftzug.svg/200px-Ubuntu-Logo_ohne_Schriftzug.svg.png">Source de l’image</a></p>

<h3 id="51-version-stables-ubuntu">5.1. Version stables Ubuntu</h3>

<ul>
  <li>Version standard sort 2 fois par an (supportée pendant 9 mois)</li>
  <li>Version LTS (Long Term Support) une fois tous les 2 ans supportée 5 ans :</li>
  <li>2 ans pour les màj de sécurité et de pilotes matériel</li>
  <li>3 ans en plus pour les màj de sécurité seulement</li>
</ul>

<h3 id="52-versions-ubuntu">5.2. Versions Ubuntu</h3>

<figure><img src="/assets/images/linux/ubuntu-release-cycle.png" /><figcaption>Versions Ubuntu</figcaption></figure>

<p>Source: <a href="https://ubuntu.com/about/release-cycle">The Ubuntu lifecycle and release cadence</a></p>

<table>
  <thead>
    <tr>
      <th>Numéro de version</th>
      <th>Nom de code</th>
      <th>Date de sortie</th>
      <th>Date de fin de soutien Postes de travail</th>
      <th>Serveurs</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Ubuntu 4.10</td>
      <td>The Warty Warthog (le phacochère verruqueux)</td>
      <td>20 octobre 2004</td>
      <td>30 avril 2006</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 5.04</td>
      <td>The Hoary Hedgehog (le hérisson vénérable)</td>
      <td>8 avril 2005</td>
      <td>31 octobre 2006</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 5.10</td>
      <td>The Breezy Badger (le blaireau jovial)</td>
      <td>13 octobre 2005</td>
      <td>13 avril 2007</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td><strong>Ubuntu 6.06 LTS</strong></td>
      <td>The Dapper Drake (le canard pimpant)</td>
      <td>1er juin 2006</td>
      <td>14 juillet 2009</td>
      <td>1er juin 2011</td>
    </tr>
    <tr>
      <td>Ubuntu 6.10</td>
      <td>The Edgy Eft (Le Triton Agité)</td>
      <td>26 octobre 2006</td>
      <td>25 avril 2008</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 7.04</td>
      <td>The Feisty Fawn (le faon courageux)</td>
      <td>19 avril 2007</td>
      <td>19 octobre 2008</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 7.10</td>
      <td>The Gutsy Gibbon (le gibbon fougueux)</td>
      <td>18 octobre 2007</td>
      <td>18 avril 2009</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td><strong>Ubuntu 8.04 LTS</strong></td>
      <td>The Hardy Heron (le héron robuste)</td>
      <td>24 avril 2008</td>
      <td>12 mai 2011</td>
      <td>9 mai 2013</td>
    </tr>
    <tr>
      <td>Ubuntu 8.10</td>
      <td>The Intrepid Ibex (Le bouquetin intrépide)</td>
      <td>30 octobre 2008</td>
      <td>30 avril 2010</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 9.04</td>
      <td>The Jaunty Jackalope (le jackalope enjoué)</td>
      <td>23 avril 2009</td>
      <td>23 octobre 2010</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 9.10</td>
      <td>The Karmic Koala (le koala karmique)</td>
      <td>29 octobre 2009</td>
      <td>30 avril 2011</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td><strong>Ubuntu 10.04 LTS</strong></td>
      <td>The Lucid Lynx (le lynx lucide)</td>
      <td>29 avril 2010</td>
      <td>9 mai 2013</td>
      <td>30 avril 2015</td>
    </tr>
    <tr>
      <td>Ubuntu 10.10</td>
      <td>The Maverick Meerkat (le suricate rebelle)</td>
      <td>10 octobre 2010</td>
      <td>10 avril 2012</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 11.04</td>
      <td>The Natty Narwhal (le narval chic)</td>
      <td>28 avril 2011</td>
      <td>28 octobre 2012</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 11.10</td>
      <td>The Oneiric Ocelot (l’ocelot onirique)</td>
      <td>13 octobre 2011</td>
      <td>9 mai 2013</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td><strong>Ubuntu 12.04 LTS</strong></td>
      <td>The Precise Pangolin (le pangolin précis)</td>
      <td>26 avril 2012</td>
      <td>28 avril 2017</td>
      <td>-</td>
    </tr>
    <tr>
      <td>Ubuntu 12.10</td>
      <td>The Quantal Quetzal (le quetzal quantique)</td>
      <td>18 octobre 2012</td>
      <td>16 mai 2014</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 13.04</td>
      <td>The Raring Ringtail (le bassaris enthousiaste)</td>
      <td>25 avril 2013</td>
      <td>27 janvier 2014</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 13.10</td>
      <td>The Saucy Salamander (la salamandre délurée)</td>
      <td>17 octobre 2013</td>
      <td>17 juillet 2014</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td><strong>Ubuntu 14.04 LTS</strong></td>
      <td>The Trusty Tahr (le bélier confiant)</td>
      <td>17 avril 2014</td>
      <td>Avril 2019</td>
      <td>-</td>
    </tr>
    <tr>
      <td>Ubuntu 14.10</td>
      <td>The Utopic Unicorn (la licorne utopique)</td>
      <td>23 octobre 2014</td>
      <td>23 juillet 2015</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 15.04</td>
      <td>The Vivid Vervet (le vervet vif)</td>
      <td>23 avril 2015</td>
      <td>4 février 2016</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 15.10</td>
      <td>The Wily Werewolf (le loup-garou rusé)</td>
      <td>22 octobre 2015</td>
      <td>28 juillet 2016</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td><strong>Ubuntu 16.04 LTS</strong></td>
      <td>The Xenial Xerus (le xerus hospitalier)</td>
      <td>21 avril 2016</td>
      <td>Avril 2021</td>
      <td>-</td>
    </tr>
    <tr>
      <td>Ubuntu 16.10</td>
      <td>The Yakkety Yak (le yak bavard)</td>
      <td>13 octobre 2016</td>
      <td>Juillet 2017</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 17.04</td>
      <td>The Zesty Zapus (le zapus plaisant)</td>
      <td>13 Avril 2017</td>
      <td>Janvier 2018</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 17.10</td>
      <td>The Artful Aardvark (l’oryctérope du Cap astucieux)</td>
      <td>19 Octobre 2017</td>
      <td>Juillet 2018</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td><strong>Ubuntu 18.04 LTS</strong></td>
      <td>The Bionic Beaver (le castor bionique)</td>
      <td>26 avril 2018</td>
      <td>Avril 2023</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 18.10</td>
      <td>The Cosmic Cuttlefish (la seiche cosmique)</td>
      <td>18 Octobre 2018</td>
      <td>18 Juillet 2019</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 19.04</td>
      <td>The Disco Dingo (le dingo disco)</td>
      <td>18 Avril 2019</td>
      <td>23 Janvier 2020</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 19.10</td>
      <td>The Eoan Ermine (l’ermine de l’aube)</td>
      <td>17 octobre 2019</td>
      <td>17 Juillet 2020</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td><strong>Ubuntu 20.04 LTS</strong></td>
      <td>The Focal Fossa (le fossa focal)</td>
      <td>23 avril 2020</td>
      <td>Avril 2025</td>
      <td><em>idem</em></td>
    </tr>
    <tr>
      <td>Ubuntu 20.10</td>
      <td>The Groovy Gorilla (le gorille sensationnel)</td>
      <td>22 octobre 2020</td>
      <td>juillet 2021</td>
      <td>-</td>
    </tr>
  </tbody>
</table>

<h3 id="53-images-ubuntu">5.3. Images Ubuntu</h3>

<p><a href="https://doc.ubuntu-fr.org/variantes">Plusieurs images et variantes disponibles</a> :</p>

<ul>
  <li>Serveur</li>
  <li>Desktop (Gnome ou Unity : Gnome par défaut à partir de Ubuntu 18.04 LTS</li>
  <li>En plusieurs variantes (interface graphique) : LUbuntu, XUbuntu, KUbuntu</li>
</ul>

<h2 id="6-red-hat-rhel">6. Red Hat RHEL</h2>

<ul>
  <li><a href="https://www.redhat.com/en">Red Hat</a> est une société multinationale d’origine américaine fondée en 1993 éditant des distributions GNU/Linux.</li>
  <li>Elle est l’une des entreprises dédiées aux logiciels Open Source les plus importantes et les plus reconnues.</li>
  <li>Elle distribue un OS : <a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux">Red Hat Enterprise Linux (RHEL)</a> qui un système d’exploitation basé Linux destiné aux entreprises.</li>
  <li>Red Hat fournit des plateformes logicielles (Openstack, JBoss, OpenShift), vend des abonnements d’assistance, de formations et de services d’intégration personnalisés pour les clients utilisant des logiciels open source.</li>
  <li>Toutes les distributions basées Redhat (CentOs, Fedora, …) utilisent le même système de paquetage RPM.</li>
</ul>

<p>On peut télécharger gratuitement la dernière version de RHEL sur le site <a href="https://developers.redhat.com/downloads/">https://developers.redhat.com/downloads/</a>.</p>

<h3 id="61-cycle-de-vie-rhel">6.1. Cycle de vie RHEL</h3>

<figure><img src="/assets/images/linux/8e9d30a15cecd541e3fece0d194986ac.png" /><figcaption>Cycle de vie RHEL</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/en/timeline/8e9d30a15cecd541e3fece0d194986ac.png">Source de l’image</a></p>

<p>Voir aussi <a href="https://access.redhat.com/support/policy/updates/errata">Red Hat Enterprise Linux Life Cycle</a>.</p>

<h3 id="62-fedora">6.2. Fedora</h3>

<ul>
  <li>Alors que la distribution phare de Red Hat (RHEL) n’est pas livrée gratuitement dans son format binaire contrairement à la plupart des distributions Linux, <strong><a href="https://fedoraproject.org/">Fedora</a> a été créée par Red Hat pour être une distribution GNU/Linux communautaire.</strong></li>
  <li>La communauté qui gère ce projet est constituée à la fois d’employés de Red Hat et de contributeurs externes.</li>
  <li>Red Hat présente le projet Fedora comme un laboratoire pour développer de nouvelles fonctionnalités qui seront incluse plus tard dans la distribution commerciale de Red Hat. En tant que tel Fedora est une version en amont <strong>“upstream”</strong> de RHEL.</li>
</ul>

<figure><img src="/assets/images/linux/240px-Fedora_logo.svg.png" /><figcaption>Logo Fedora</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Fedora_logo.svg/240px-Fedora_logo.svg.png">Source de l’image</a></p>

<figure><img src="/assets/images/linux/6f90829677db68f88a301760ddff3138.png" /><figcaption>Cycle de de vie Fedora</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/en/timeline/6f90829677db68f88a301760ddff3138.png">Source de l’image</a></p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="63-centos-linux">6.3. CentOS Linux</h3>

<ul>
  <li><a href="https://www.centos.org/">CentOS</a> (Community enterprise Operating System) est une distribution GNU/Linux principalement destinée aux serveurs.</li>
  <li>Tous ses paquets, à l’exception du logo, sont des paquets compilés à partir des sources de la distribution RHEL (Red Hat Enterprise Linux), éditée par la société Red Hat.</li>
  <li><strong>Centos est donc quasiment identique à la distribution RHEL et se veut 100 % compatible d’un point de vue binaire.</strong> c’est un projet en aval, <strong>“downstream”</strong>, c’est-à-dire venant de RHEL.</li>
</ul>

<figure><img src="/assets/images/linux/centos-logo-light.png" /><figcaption>Logo Centos</figcaption></figure>

<p><a href="https://wiki.centos.org/ArtWork/Brand/Logo?action=AttachFile&amp;do=get&amp;target=centos-logo-light.png">Source de l’image</a></p>

<p>Le 8 décembre 2020 Red Hat annonce la fin de Centos 8 pour le 31/12/2021 (dernier support). Le projet se décline désormais en deux distributions (voir plus bas) :</p>

<ul>
  <li>Centos Stream</li>
  <li>Rocky Linux</li>
</ul>

<h3 id="64-red-hat-package-manager-rpm">6.4. Red Hat Package Manager (RPM)</h3>

<p>RPM Package Manager (Red Hat Package Manager) est le logiciel de gestion des paquetages utilisé par les distributions Linux :</p>

<ul>
  <li>Red Hat Enterprise Linux,</li>
  <li>Fedora, CentOS, Rocky, AlmaLinux</li>
  <li>Mandriva,</li>
  <li>openSUSE,</li>
  <li>SUSE Linux Enterprise</li>
</ul>

<h3 id="65-centos-stream">6.5. Centos Stream</h3>

<p><a href="https://www.centos.org/centos-stream/">Centos Stream</a> est projet en amont de RHEL et en aval de Fedora, un projet dit <strong>“midstream”</strong> caractérisé sa nature “rolling release” dans une branche de développement de RHEL, c’est-à-dire avec des mises-à-jour et une maintenace continue dans cette version majeure. La version initiale est basé sur la dernière version de CentOS Linux 8.</p>

<p>Beaucoup d’utilisateurs utilisaient Centos Linux comme version en aval gratuite de RHEL, alors que Centos Stream devient une version juste en amont mais toujours dans la même branche. Centos Stream est aussi en aval de Fedora déjà très stable. Justement si l’on ne paie pas Red Hat, pourquoi s’empêcher d’accéder aisément aux derniers développements gratuitement. Pour ceux qui restent sur l’usage désormais dépassé de Centos Linux, deux alternatives au moins sont possibles : Rocky Linux et Oracle Linux.</p>

<h3 id="66-rocky-linux-et-almalinux">6.6. Rocky Linux et AlmaLinux</h3>

<p><a href="https://rockylinux.org/">Rocky Linux</a> est un projet de distribution entièrement communautaire et <a href="https://almalinux.org">AlmaLinux</a> est construit et maintenu par les développeurs de CloudLinux, une société qui fournit de l’hébergement de serveurs et des logiciels Linux. Ces deux projets de distribution sont en aval de RHEL visant à remplacer Centos Linux.</p>

<p>Le système d’exploitation AlmaLinux est un projet communautaire open-source qui vise à fournir une alternative à la version stable de CentOS. AlmaLinux est un système d’exploitation compatible au niveau binaire 1:1 avec RHEL® 8 et une collaboration globale de la communauté des développeurs, de l’industrie, du monde universitaire et de la recherche qui s’appuie sur cette technologie pour renforcer l’humanité.</p>

<p>Rocky Linux est un système d’exploitation d’entreprise communautaire conçu pour être compatible à 100 %, bit pour bit, avec la principale distribution Linux d’entreprise américaine, maintenant que son partenaire en aval a changé de direction. Il est développé de manière intensive par la communauté. Rocky Linux est dirigé par Gregory Kurtzer, fondateur du projet CentOS.</p>

<h3 id="67-oracle-linux">6.7. Oracle Linux</h3>

<p>Oracle Linux (en abrégé OL, anciennement connu sous le nom d’Oracle Enterprise Linux ou OEL) est une distribution Linux packagée et librement distribuée par Oracle, disponible partiellement sous la licence publique générale GNU depuis fin 2006. Elle est compilée à partir du code source de Red Hat Enterprise Linux (RHEL), en remplaçant la marque Red Hat par celle d’Oracle.</p>

<h2 id="7-autres-distributions-populaires">7. Autres distributions populaires</h2>

<ul>
  <li>Archlinux</li>
  <li>Gentoo</li>
  <li>OpenWrt</li>
  <li>Android</li>
</ul>

<p>Mais aussi,</p>

<ul>
  <li>Kali Linux, Parrot OS</li>
  <li>Damn small Linux</li>
  <li>…</li>
</ul>

<h3 id="71-archlinux">7.1. Archlinux</h3>

<ul>
  <li><a href="https://www.archlinux.org/">Archlinux</a> est une distribution légère et facile à maintenir.</li>
  <li>Elle dispose de dépôts pour les architectures Intel et ARM.</li>
  <li>Archlinux utilise le gestionnaire de paquets <code class="language-plaintext highlighter-rouge">pacman</code>.</li>
  <li>Le système de mise à jour est continu (rolling release).</li>
  <li>Le système de paquets est basé ABS.</li>
  <li>Archlinux est bien documentée : https://wiki.archlinux.fr/Accueil</li>
</ul>

<figure><img src="/assets/images/linux/archlinux-logo-dark-1200dpi.b42bd35d5916.png" /><figcaption>Logo Archlinux</figcaption></figure>

<p><a href="https://www.archlinux.org/static/logos/archlinux-logo-dark-1200dpi.b42bd35d5916.png">Source de l’image</a></p>

<h3 id="72-gentoo">7.2. Gentoo</h3>

<ul>
  <li><a href="https://www.gentoo.org/">Gentoo Linux</a> est une distribution dite source</li>
  <li>Sa particularité est la compilation complète ou partielle d’un système GNU/Linux à partir des sources, à la manière de Linux From Scratch mais automatisée.</li>
  <li>La compilation des sources en “rolling release” est gérée grâce au logiciel “Portage” et à la commande <code class="language-plaintext highlighter-rouge">emerge</code>.</li>
  <li>C’est une distribution qui a pour objectif la portabilité.</li>
  <li>Gentoo est aussi une distribution très bien documentée : <a href="https://www.gentoo.org/doc/fr/">https://www.gentoo.org/doc/fr/</a></li>
  <li>Idéal pour comprendre le fonctionnement de bas niveau d’un système d’exploitation.</li>
</ul>

<figure><img src="/assets/images/linux/229px-Gentoo_Linux_logo_matte.svg.png" /><figcaption>Logo Gentoo</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Gentoo_Linux_logo_matte.svg/229px-Gentoo_Linux_logo_matte.svg.png">Source de l’image</a></p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="73-openwrt">7.3. OpenWrt</h3>

<ul>
  <li><a href="https://openwrt.org/">OpenWrt</a> est une distribution GNU/Linux minimaliste pour du matériel embarqué tel que des routeurs grand public basés sur des “System-on-Chip” Broadcom (par exemple les routeurs WLAN Belkin, TP-Link, Linksys, le matériel Hak5) mais il est porté sur d’autres architectures comme X86-64 et beaucoup d’autres.</li>
  <li>On compile soi-même en firmware ou on le télécharge une version compilée à partir d’un dépôt du projet.</li>
  <li>OpenWrt est capable de tenir sur une mémoire Flash de 4 Mo.</li>
  <li>Le gestionnaire de paquets est <code class="language-plaintext highlighter-rouge">opkg</code>. Les fichiers de configuration tiennent dans un seul dossier <code class="language-plaintext highlighter-rouge">/etc/config</code>. Un API comme LuCI permet de gérer le système en ligne de commande et à travers une interface Web.</li>
</ul>

<figure><img src="/assets/images/linux/200px-Openwrt_Logo.svg.png" /><figcaption>Logo OpenWrt</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Openwrt_Logo.svg/200px-Openwrt_Logo.svg.png">Source de l’image</a></p>

<h3 id="74-distributions-spécialisées">7.4. Distributions spécialisées</h3>

<ul>
  <li>On trouve depuis longtemps des distributions spécialisées qui offrent des services spécifiques déjà pré-installés.</li>
  <li>Ces logiciels se téléchargent librement sous format ISO, OVA / OVF ou autres (images ou recettes) et s’installent aussi bien sur des PCs, des appliances, du matériel embarqué, sur un hyperviseur ou dans le cloud…</li>
  <li><a href="https://distrowatch.com/search.php">Distrowatch</a> permet de faire une recherche parmi 300 projets :
    <ul>
      <li>Infrastructure</li>
      <li>Sécurité</li>
      <li>Téléphonie</li>
      <li>Pare-feu</li>
      <li>Virtualisation</li>
      <li>Clustering</li>
      <li>Stockage (SAN)</li>
    </ul>
  </li>
</ul>

<h3 id="75-android">7.5. Android</h3>

<ul>
  <li>Android est défini comme étant une pile de logiciels, c’est-à-dire un ensemble de logiciels destinés à fournir une solution clé en main pour les appareils mobiles – smartphones et tablettes tactiles.</li>
  <li>Cette pile est organisée en cinq couches distinctes :
    <ol>
      <li>le noyau Linux avec les pilotes ;</li>
      <li>des bibliothèques logicielles telles que WebKit, OpenGL, SQLite ou FreeType ;</li>
      <li>une machine virtuelle et des bibliothèques permettant d’exécuter des programmes prévus pour la plate-forme Java ;</li>
      <li>un framework - kit de développement d’applications ;</li>
      <li>un lot d’applications standard parmi lesquelles il y a un environnement de bureau, un carnet d’adresses, un navigateur web et un téléphone.</li>
    </ol>
  </li>
</ul>

<figure><img src="/assets/images/linux/200px-Android_logo_%282014%29.svg.png" /><figcaption>Logo d'Android</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Android_logo_%282014%29.svg/200px-Android_logo_%282014%29.svg.png">Source de l’image</a></p>

<h3 id="76-versions--architecture-android">7.6. Versions / Architecture Android</h3>

<figure><img src="/assets/images/linux/640px-Android_Version_History_By_Term.png" /><figcaption>Versions d'Android</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Android_Version_History_By_Term.png/640px-Android_Version_History_By_Term.png">Source de l’image</a></p>

<p>Source : <a href="https://fr.wikipedia.org/wiki/Historique_des_versions_d%27Android">Historique des versions d’Android</a></p>

<figure><img src="/assets/images/linux/592px-Android-System-Architecture.svg.png" /><figcaption>Architecture d'Android</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Android-System-Architecture.svg/592px-Android-System-Architecture.svg.png">Source de l’image</a></p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h2 id="8-linux-et-windows">8. Linux et Windows</h2>

<p>Voici ce qu’en pensait James Zemlin en 2007 qui dirige la Linux Foundation.</p>

<blockquote>
  <p>Il n’y a plus que deux chevaux dans la course, Microsoft et Linux. Il y a des choses que Microsoft fait bien, c’est la promotion, la standardisation et la protection juridique de Windows. Ce que Microsoft fait dans ce domaine est exactement ce que nous devons également faire pour Linux: <strong>promouvoir, protéger et standardiser</strong>.</p>
</blockquote>

<p><a href="https://azure.microsoft.com/en-us/blog/microsoft-and-red-hat-help-accelerate-enterprise-container-adoption/">Affirmation de John Gossman, architecte dans le domaine de Microsoft Azure dix plus tard en 2017 :</a></p>

<blockquote>
  <p>Nous avons observé communément que les clients n’optent pas pour Red Hat ou pour Microsoft, mais qu’ils ont déjà choisi: ils ont en fait choisi l’utilisation des deux technologies. Les entreprises dans le monde entier recourent à Windows et à Red Hat Enterprise Linux, Java et .NET.</p>
</blockquote>

<p><a href="https://laurentbloch.net/MySpip3/La-filiere-informatique">Avis de Laurent Bloch sur la position européenne dans le domaine des logiciels système et réseau :</a></p>

<blockquote>
  <p>La faiblesse européenne dans le domaine des logiciels système et réseau est une faiblesse à corriger, seuls les logiciels libres offrent aujourd’hui des perspectives exploitables. On notera que deux des trois leaders du marché mondial, Google et Apple, utilisent des logiciels libres (respectivement Linux et BSD) comme socles de leur offre, cependant que Microsoft utilise de plus en plus Linux, et contribue de façon massive à son développement.</p>
</blockquote>

<p>James Zemlin, le patron de la fondation Linux, écrivait récemment sur Twitter suite à l’annonce de Microsoft de rejoindre l’Open Innovation Network et de partager quelque 60 000 de ses brevets avec la communauté open source :</p>

<blockquote>
  <p>Nous avons été ravis d’accueillir Microsoft en tant que membre Platinium de la Linux Foundation en 2016 et nous sommes ravis de voir leur évolution en tant que supporter à part entière de l’écosystème Linux et de la communauté open source », écrit  Jim Zemlin, le patron de la fondation sur Twitter.</p>
</blockquote>

<p>En 2018, il existe plus de VM Linux dans Microsoft Azure que sur les autres plateformes et Microsoft contribue à tous les projets open source.</p>

<p><a href="https://bit.ly/2yxpjRd">Microsoft partage 60 000 de ses brevets avec l’open source</a></p>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Introduction" /><category term="Administration" /><category term="introduction" /><summary type="html"><![CDATA[On présentera dans cet article les différentes distributions Linux principales au regard de leur cycle de maintenance et des critères de choix. Debian, Ubuntu, Red Hat Entreprise Linux (RHEL), Fedora, Centos, Rocky, OpenWRT, Kali, Gentoo, ArchLinux, sont celles qui feront l'objet de notre attention.]]></summary></entry><entry><title type="html">Licences Open Source</title><link href="https://linux.goffinet.org/administration/introduction-a-linux/licences-open-source/" rel="alternate" type="text/html" title="Licences Open Source" /><published>2018-01-01T00:00:00+01:00</published><updated>2020-09-22T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/introduction-a-linux/licences-open-source</id><content type="html" xml:base="https://linux.goffinet.org/administration/introduction-a-linux/licences-open-source/"><![CDATA[<h1 id="licences-open-source">Licences Open Source</h1>

<h2 id="objectifs-de-certification">Objectifs de certification</h2>

<h3 id="objectifs-linux-essentials-13">Objectifs Linux Essentials 1.3</h3>

<ul>
  <li>Communautés autour des logiciels libres et utilisation des licences libres dans le cadre professionnel.</li>
  <li>Domaines de connaissance les plus importants :
    <ul>
      <li>Octroi de licence.</li>
      <li>Free Software Foundation (FSF), Open Source Initiative (OSI).</li>
    </ul>
  </li>
  <li>Liste partielle de termes, fichiers et utilitaires utilisés pour cet objectif :
    <ul>
      <li>GPL, BSD, Creative Commons.</li>
      <li>Logiciel libre, logiciel Open Source, FOSS, FLOSS.</li>
      <li>Modèles économiques autour des logiciels libres</li>
    </ul>
  </li>
  <li>Autres notions intéressantes à connaître :
    <ul>
      <li>Propriété intellectuelle : copyright, marques de commercialisation, brevets.</li>
      <li>Licence Apache, Licence Mozilla.</li>
    </ul>
  </li>
</ul>

<h2 id="1-licences-logicielles">1. Licences logicielles</h2>

<ul>
  <li>Les droits sur un logiciel (copyright) appartiennent à son propriétaire.</li>
  <li>Celui-ci énonce dans une licence ce qui est autorisé avec son code.</li>
  <li>Il existe des licences plus permissives que d’autres.</li>
  <li>Le moyen le plus simple de mettre une oeuvre en licence libre est de la mettre dans le domaine public</li>
</ul>

<h3 id="11-free-software-foundation">1.1. Free Software Foundation</h3>

<ul>
  <li>La Free Software Foundation (FSF) a été créée par Richard Stallman en 1985.</li>
  <li>Également à l’origine des outils d’environnement GNU pour Linux et d’autres.</li>
  <li>Les licences GPLv2 et GPLv3 permettent de modifier et de redistribuer le code.</li>
  <li>Un “copyleft” exige le partage de toute modification.</li>
</ul>

<h3 id="12-définition-de-la-free-software-fondation-fsf-du-logiciel-libre">1.2. Définition de la Free Software Fondation (FSF) du logiciel libre</h3>

<p>Aujourd’hui, un logiciel est considéré comme libre, au sens de la Free Software Foundation, s’il confère à son utilisateur quatre libertés (numérotées de 0 à 3) :</p>

<ul>
  <li>
    <p>(0) la liberté d’exécuter le programme, pour tous les usages ;</p>
  </li>
  <li>
    <p>(1) la liberté d’étudier le fonctionnement du programme et de l’adapter à ses besoins ;</p>
  </li>
  <li>
    <p>(2) la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies) ;</p>
  </li>
  <li>
    <p>(3) la liberté d’améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.</p>
  </li>
</ul>

<p>L’accès au code source est une condition d’exercice des libertés 1 et 3.</p>

<p>La FSF précise quelques points. D’abord ces libertés doivent être irrévocables. Chacun doit avoir la possibilité d’en jouir sans devoir prévenir un tiers. La redistribution du programme doit pouvoir se faire sous toute forme, notamment compilée, éventuellement à la condition de rendre disponible le code source correspondant. L’utilisateur doit pouvoir fusionner des logiciels libres dont il n’est pas lui-même l’auteur. La FSF accepte toutefois des restrictions mineures quant à la façon dont un logiciel modifié doit être présenté lorsqu’il est redistribué.</p>

<figure><img src="/assets/images/linux/800px-Carte_conceptuelle_du_logiciel_libre.svg.png" /><figcaption></figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/Carte_conceptuelle_du_logiciel_libre.svg/800px-Carte_conceptuelle_du_logiciel_libre.svg.png">Source de l’image</a></p>

<p>Source : <a href="https://fr.wikipedia.org/wiki/Logiciel_libre">https://fr.wikipedia.org/wiki/Logiciel_libre</a></p>

<h3 id="13-licences-gpl">1.3. Licences GPL</h3>

<ul>
  <li>GNU Public Licence est une licence libre bien connue.</li>
  <li>GPL est virale : tout changement exige l’usage de la licence GPL.</li>
  <li>LGPL est moins contraignante avec des logiciels propriétaires.</li>
</ul>

<h3 id="14-copyleft">1.4. Copyleft</h3>

<blockquote>
  <p><em>“L’idée centrale du copyleft est de donner à quiconque la permission d’exécuter le programme, de le copier, de le modifier, et d’en distribuer des versions modifiées - mais pas la permission d’ajouter des restrictions de son cru. C’est ainsi que les libertés cruciales qui définissent le logiciel libre sont garanties pour quiconque en possède une copie ; elles deviennent des droits inaliénables.”</em></p>
</blockquote>

<p>— Richard Stallman</p>

<h2 id="2-open-source-initiative">2. Open Source Initiative</h2>

<ul>
  <li>L’Open Source Initiative (OSI) a été impulsé en 1998 par Bruce Perens et Eric Raymond</li>
  <li>Le “copyleft” est très restrictif et le FSF trop politique</li>
  <li>L’OSI approuve des licences mais ne les conçoit pas</li>
  <li>Une licence FSF est approuvée OSI mais l’inverse n’est pas nécessairement vrai.</li>
</ul>

<h2 id="3-permissive-free-software">3. Permissive Free Software</h2>

<ul>
  <li>Une licence OSI doit permettre de lire, modifier, redistribuer et d’utiliser le code par n’importe qui pour n’importe quel usage.</li>
  <li>Les licences MIT, BSD ou Creative Commons sont aussi des licences OSI et peuvent être plus ou moins permissives.</li>
</ul>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h2 id="4-creative-commons">4. Creative Commons</h2>

<p>Licences sur des oeuvres écrites, web, multimédia.</p>

<p>Outil en ligne : <a href="https://creativecommons.org/choose/">https://creativecommons.org/choose/</a></p>

<p>Droits définis :</p>

<ul>
  <li>Attribution – accord de l’auteur</li>
  <li>ShareAlike – copyleft</li>
  <li>No-Derivs – On ne peut pas changer le contenu</li>
  <li>NonCommercial – Pas d’usage commercial</li>
</ul>

<p>Combinaisons comme par exemple :</p>

<ul>
  <li>Attribution-No-Derivs-NonCommercial</li>
  <li>BY-SA</li>
  <li>No Rights Reserved – public domain</li>
</ul>

<h2 id="5-licence-apache">5. Licence Apache</h2>

<p>Les caractéristiques majeures de la licence Apache sont :</p>

<ul>
  <li>Autoriser la modification et la distribution du code sous toute forme (libre ou propriétaire, gratuit ou commercial)</li>
  <li>Obliger le maintien du copyright lors de toute modification (et également du texte de la licence elle-même).</li>
  <li>Ce n’est pas une licence copyleft.</li>
  <li>Par exemple, Apache a été réutilisé comme base pour le développement d’un greffon du serveur applicatif WebSphere de chez IBM.</li>
</ul>

<h2 id="6-licence-mozilla">6. Licence Mozilla</h2>

<ul>
  <li>La Mozilla Public License (MPL) est une licence libre créée par Netscape lors de la libération du code source de ce qui devait devenir Netscape Communicator 5 (1998). Celui-ci formera la base du projet Mozilla, qui utilise toujours la MPL aujourd’hui dans sa version 2.0.</li>
  <li>La plus grande partie du code source de Mozilla est en outre publiée sous une triple licence MPL/GPL/LGPL, ce qui permet théoriquement d’en utiliser une partie dans un logiciel GPL ou LGPL uniquement.</li>
  <li>Il est intéressant de comparer la licence MPL avec les autres.</li>
</ul>

<h2 id="7-foss--floss">7. FOSS / FLOSS</h2>

<ul>
  <li>Free (Libre) and Open Source Software</li>
  <li>Free = Libre = gratuit = libéré</li>
</ul>

<h2 id="8-générer-des-revenus-avec-lopen-source">8. Générer des revenus avec l’Open Source</h2>

<p><strong>En 2015, la Linux Foundation <a href="https://www.linuxfoundation.org/news-media/announcements/2015/03/2015-linux-jobs-report-linux-professionals-high-demand">a publié une étude</a> selon laquelle le marché est fort demandeur en personnel qualifié en systèmes Linux.</strong></p>

<ul>
  <li>Linux System Engineer / Consultant, Developper</li>
  <li>Product (Oracle, PHP, Security, Unix, …) Consultant / Expert</li>
  <li>Vendre des services, du support, des garanties</li>
  <li>Travailler sur des adaptations contre de l’argent</li>
  <li>Adopter certains modèles de développement, freemium, premium, gratuit pour usage non-commercial, formations, …</li>
  <li>Usage dans le travail quotidien, comme outil d’audit ou éléments complets ou partiels de solutions</li>
  <li>Maintenir ses compétences IT à un haut niveau de manière pérenne</li>
  <li>Open Source pour l’image de marque personnelle</li>
</ul>

<h3 id="81-open-source-hardware-business-model">8.1. Open Source Hardware Business Model</h3>

<figure><img src="/assets/images/linux/Open-Source-Hardware-Open-Design-Business-Model-Matrix-by-Lars-Zimmermann-CC-BY_.png" /><figcaption></figcaption></figure>

<p><a href="https://larszimmermann.de/wp-content/uploads/2013/11/Open-Source-Hardware-Open-Design-Business-Model-Matrix-by-Lars-Zimmermann-CC-BY_.png">Source de l’image</a></p>

<p>Source de l’image : <a href="https://larszimmermann.de/business-models-for-open-source-hardware-open-design/">https://larszimmermann.de/business-models-for-open-source-hardware-open-design/</a></p>

<p>Un modèle de Business Open Source n’est pas à confondre avec la libre disponibilité d’un code performant maintenu et éprouvé.</p>

<p>En effet, il est possible de générer des revenus grâce aux produits Open Source, notamment à travers à l’écosystème Linux. Cela concerne beaucoup de métiers de l’IT ou des infrastructures traditionnelles même si les <strong>développeurs de code</strong> sont certainement les premiers concernés. On notera également l’émergence de nouveaux métiers ou de nouveaux marchés (IoT, Cloud, AI, …) directement liés au monde Open Source et à Linux.</p>

<p>Pour du personnel d’infrastructure IT (opérateurs), on peut tenir comptes de quelques considérations.</p>

<ul>
  <li>Red Hat est un exemple commercial à suivre comme d’autres leaders dans leur secteur (Cisco, HP, IBM, Microsoft, …). Se certifier chez ce constructeur est certainement le chemin le plus direct pour entrer dans cette carrière. La Linux Foundation s’impose comme interlocuteur face aux grands acteurs commerciaux. Leurs certifications vaudraient autant qu’une certification Red Hat. Toutefois, il me semble que le projet manque encore en visibilité large.</li>
  <li>Les projets sérieux d’infrastructure ne se passent jamais de compétences internes et temporaires d’un bon niveau. Ces infrastructures doivent être maintenues, adaptées, mises à jour, “migrées” et surveillées. Elles se doivent d’être de plus en plus élastiques et automatisées.</li>
</ul>

<p>D’un autre point de vue, pour le marché sur tous les secteurs, disposer d’une technologie universelle qui fait fonctionner les machines (Linux), le cloud (Openstack) et le web parmi une multitude de projets :</p>

<ul>
  <li>élève le niveau de concurrence,</li>
  <li>permet au marché de rendre de meilleurs services aux entreprises,</li>
  <li>profite de l’Internet qui crée un marché de masse et qui demande des infrastructures et du logiciel.</li>
</ul>

<p>Selon l’auteur, céder librement une partie de sa production place la plus haute plus-value sur l’intelligence soit l’humain.</p>

<p>Mais le choix de technologies Open Source n’est pas un parcours aisé pour beaucoup de raisons. Ce choix n’est certainement adapté en toute situation, car l’objectif restera toujours la satisfaction finale du commanditaire (soit du client). Par contre, imaginer qu’un projet Open Source ne pourrait pas rivaliser avec un projet propriétaire est certainement une erreur. Si un gain est souvent possible, il s’agira souvent d’une autre voire d’une meilleure répartition des moyens mis à disposition. Il s’agira bien plus souvent alors d’une adaptation culturelle à réussir au sein de l’organisation.</p>

<p>Le niveau de maîtrise à acquérir pour l’utiliser de manière professionnelle demande rigueur, travail et volonté bien sûr, mais il demande surtout de la pratique, toujours plus et actualisée. La formidable boîte-à-outil libre Linux nous offre justement la possibilité de déployer des technologies complexes, souvent simulées mais proche de réalité, voire disponibles directement à partir du nuage avec des exigences en ressources informatiques accessibles au plus grand nombre.</p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="82-pourquoi-acquérir-des-compétences-en-système-linux-">8.2. Pourquoi acquérir des compétences en système Linux ?</h3>

<ul>
  <li><strong>Boîte à outils librement disponible</strong> pour faire fonctionner et développer des systèmes informatiques.</li>
  <li>Permet de <strong>se concentrer sur le développement de solutions de haut niveau et de manière rapide</strong> car une solide pile de logiciels est maintenue pour un grand nombre de plateformes matérielles.</li>
  <li>Fait partie de la <strong>famille historique des systèmes UNIX</strong>. Il bénéficie non seulement d’une technologie éprouvée mais aussi de valeurs humaines.</li>
  <li>Il s’agit d’une technologie qui concerne des <strong>compétences pérennes</strong>.</li>
  <li>Il est certainement le système <strong>le plus utilisés dans le monde</strong>.</li>
  <li>Cette perspective permet aux activités humaines de <strong>croître</strong> à partir de leurs propres créations numériques et de <strong>contrôler</strong> leur environnement.</li>
  <li><strong>La culture du développement collaboratif</strong> autorise une rapidité de réponse aux besoins du marché (offrir des solutions éprouvées) qui est restée inédite jusqu’à aujourd’hui.</li>
  <li>Lui-même une <strong>richesse</strong>, il est facteur de croissance et de richesse.</li>
  <li>La maîtrise du <strong>système d’exploitation universel</strong> est une des manières de nous libérer des machines avec lesquelles nous sommes contraints de vivre.</li>
  <li><strong>Ce qui n’est pas investi en licences pourrait mieux se répartir</strong> entre coûts humains et coûts industriels, accessibilité des produits et rémunération des investisseurs.</li>
  <li>Son aspect universel devrait convaincre tout qui veut faire carrière en informatique.</li>
</ul>

<p>Il s’agit de l’avis succinct de l’auteur, qu’en pensez-vous ?</p>

<h3 id="83-le-coût-de-développementdu-noyau-linux">8.3. Le coût de développement du noyau Linux</h3>

<figure><img src="/assets/images/linux/Redevelopment_costs_of_Linux_kernel.png" /><figcaption></figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/6/68/Redevelopment_costs_of_Linux_kernel.png">Source de l’image</a></p>

<ul>
  <li>En 2004, le coût estimé pour redévelopper le noyau Linux (version 2.6.0) à la manière d’un développement traditionnel propriétaire a été estimé de <strong>467M €.</strong></li>
  <li>En 2006, une étude financée par l’UE a estimé son coût de développement à <strong>882M €</strong> (2.6.8 et plus).</li>
  <li>En 2008, on a estimé ce coût à <strong>1,3 Milliard US$</strong> (comme partie de développement de Fedora estimé à presque 11 Milliard US$).</li>
  <li>Une autre étude a estimé que la valeur ajoutée annuelle du noyau était de 100M € entre 2005 et 2007 et de 225M € de 2007 à 2008.</li>
  <li>En 2011, on a estimé ce coût à <strong>2,2 Milliard €</strong>.</li>
  <li>Un calcul actualisé au 26 septembre 2018 montre qu’il en coûterait environ <strong>14,7 Milliard US$</strong> pour réécrire le code existant.</li>
</ul>

<!-- Note : Les versions 3.2, 3.4, 3.10, 3.12, 3.14, 3.18 , 4.1 et 4.4 restent supportées. La dernière version LTS est la 4.9. La dernière version est la 4.10. (02/2017) -->

<p>Source : <a href="https://en.wikipedia.org/wiki/Linux_kernel#Estimated_cost_to_redevelop">https://en.wikipedia.org/wiki/Linux_kernel#Estimated_cost_to_redevelop</a> et <a href="https://upload.wikimedia.org/wikipedia/commons/6/68/Redevelopment_costs_of_Linux_kernel.png">https://upload.wikimedia.org/wikipedia/commons/6/68/Redevelopment_costs_of_Linux_kernel.png</a></p>

<h2 id="9-linux-foundation">9. Linux Foundation</h2>

<p>La Fondation Linux (en anglais <a href="https://www.linuxfoundation.org/">Linux Foundation</a>) est un consortium à but non lucratif fondé le 21 janvier 2007, il résulte de la fusion entre l’Open Source Development Labs et le Free Standards Group.</p>

<p>La Linux Foundation a pour mission de protéger, standardiser et promouvoir Linux en procurant les ressources et services centralisés nécessaires à concurrencer de manière efficace les autres systèmes d’exploitation.</p>

<figure><img src="/assets/images/linux/320px-Linux_Foundation_logo.png" /><figcaption>Logo Linux Foundation</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Linux_Foundation_logo.png/320px-Linux_Foundation_logo.png">Source de l’image</a></p>

<p>La Linux Foundation regroupe 70 membres parmi lesquels on trouve Fujitsu, Hitachi, HP, IBM, Intel, AMD, NEC, Novell, Oracle, LG Group, Yahoo!, Samsung, Twitter et d’autres. Cette organisation est dirigée par Jim Zemlin, ancien directeur du FSG qui maintient en place les principaux développeurs, dont Linus Torvalds, sponsorisé par la fondation. On peut y adhérer individuellement pour 99$ ou gratuitement en tant qu’étudiant.</p>

<p>Au côté des administrateurs proposés par ses membres, on remarquera la présence de Mark Shuttleworth fondateur du projet Ubuntu.</p>

<p>Ces dernières années la Linux Foundation a étendu ses services à de l’organisation d’événements, de la formation et des certifications ainsi qu’au soutien de projets collaboratifs. Des exemples de ces projets collaboratifs sont : OpenDaylight, Open Platform for NFV (OPNFV), AllSeen Alliance, Cloud Foundry, Node.js Foundation. Ses domaines d’activité sont : Automotive Grade Linux, le site Linux.com, Linux Videos, Linux Developer Network, la formation, Linux Standard Base (LSB), Carrier Grade Linux, OpenPrintinget Patent Commons Project.</p>

<p>Sources : <a href="https://fr.wikipedia.org/wiki/Fondation_Linux">https://fr.wikipedia.org/wiki/Fondation_Linux</a>, <a href="https://en.wikipedia.org/wiki/Linux_Foundation">https://en.wikipedia.org/wiki/Linux_Foundation</a>, <a href="https://www.linuxfoundation.org/">https://www.linuxfoundation.org/</a></p>

<h2 id="10-certifications-linux">10. Certifications Linux</h2>

<ul>
  <li>LPI Essentials</li>
  <li>LPIC-1</li>
  <li>LPIC-2</li>
  <li>RHCSA</li>
  <li>RHCE</li>
  <li>LFCS</li>
  <li>LFCE</li>
</ul>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Introduction" /><category term="Administration" /><category term="introduction" /><summary type="html"><![CDATA[On présentera brièvement les licences Open Source GNU, GPL, BSD, Creative Common, Apache, leur organismes FSF, ISO, Linux Foundation et les intérêts économiques à adopter un modèle Open Source.]]></summary></entry><entry><title type="html">Applications Open Source</title><link href="https://linux.goffinet.org/administration/introduction-a-linux/applications-open-source/" rel="alternate" type="text/html" title="Applications Open Source" /><published>2018-01-01T00:00:00+01:00</published><updated>2020-09-22T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/introduction-a-linux/applications-open-source</id><content type="html" xml:base="https://linux.goffinet.org/administration/introduction-a-linux/applications-open-source/"><![CDATA[<h1 id="applications-open-source">Applications Open Source</h1>

<h2 id="objectifs-de-certification">Objectifs de certification</h2>

<h3 id="objectifs-linux-essentials-12">Objectifs Linux Essentials 1.2</h3>

<ul>
  <li>Connaissance des applications majeures et de leur utilisation.</li>
  <li>Domaines de connaissance les plus importants :
    <ul>
      <li>Applications pour les postes de travail.</li>
      <li>Applications pour les serveurs.</li>
      <li>Applications mobiles.</li>
      <li>Langages de programmation.</li>
      <li>Outils de gestion des paquets et dépôts de logiciels.</li>
    </ul>
  </li>
  <li>Liste partielle de termes, fichiers et utilitaires utilisés pour cet objectif :
    <ul>
      <li>OpenOffice.org, LibreOffice, Thunderbird, Firefox, Iceweasel.</li>
      <li>Blender, Gimp, Audacity, ImageMagick.</li>
      <li>Apache, MySQL, PostgreSQL.</li>
      <li>NFS, Samba, OpenLDAP, Postfix, DNS, DHCP.</li>
      <li>C, Java, Perl, shell, Python, PHP.</li>
    </ul>
  </li>
</ul>

<h2 id="1-applications-linux">1. Applications Linux</h2>

<p>Linux est un OS qui peut être installé sur :</p>

<ul>
  <li>des serveurs qui offrent des services</li>
  <li>des stations de travail bureautique, terminaux divers, légers, …</li>
  <li>des appareils mobiles tels que des smartphones ou des tablettes</li>
  <li>du matériel embarqué</li>
  <li>des stations de développement</li>
</ul>

<h2 id="2-services-dentreprise">2. Services d’entreprise</h2>

<h3 id="21-serveurs-web-open-source">2.1. Serveurs Web Open Source</h3>

<p>La plupart des services Web sont assurés par des logiciels libres :</p>

<ul>
  <li>Apache</li>
  <li>Nginx</li>
  <li>LightHttpd</li>
</ul>

<h3 id="22-accélérateurs-web">2.2. Accélérateurs Web</h3>

<ul>
  <li>Squid,</li>
  <li>Varnish</li>
  <li>HAProxy</li>
</ul>

<h3 id="23-base-de-données">2.3. Base de données</h3>

<p>Parmi les bases de données les plus connues <strong>PostGreSQL</strong> et <strong>MariaDB</strong> (fork compatible et reconnu de <strong>MySQL</strong>).</p>

<ul>
  <li>Elles permettent d’agencer des données structurées.</li>
  <li>SQL est un langage d’interrogation de base de données.</li>
</ul>

<p>Pour d’autres approches ou d’autres usages :</p>

<ul>
  <li>MongoDB,</li>
  <li>REDIS,</li>
  <li>SQLite,</li>
  <li>Zope Database, …</li>
</ul>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="24-serveur-mail-mta-open-source">2.4. Serveur Mail MTA Open Source</h3>

<p>Un service MTA (SMTP) transfère le courrier électronique à travers l’Internet. On citera :</p>

<ul>
  <li>Sendmail,</li>
  <li>Postfix,</li>
  <li>Exim, …</li>
</ul>

<h3 id="25-mdamua-open-source">2.5. MDA/MUA Open Source</h3>

<ul>
  <li>Un service MDA (POP3/IMAP) livre le courrier électronique aux utilisateurs. On citera :
    <ul>
      <li>Cyrus,</li>
      <li>Dovecot.</li>
    </ul>
  </li>
  <li>Des logiciels MUA comme <em>procmail ou beaucoup d’autres</em> permettent de récupérer le courrier.</li>
  <li>On peut le faire également via des interfaces Web :
    <ul>
      <li>SquirrelMail,</li>
      <li>Roundcube,</li>
      <li>Horde, …</li>
    </ul>
  </li>
</ul>

<h3 id="26-serveurs-de-fichiers-open-source">2.6. Serveurs de fichiers Open Source</h3>

<p>Linux offre des services de fichiers pour une panoplie de protocoles :</p>

<ul>
  <li><del>FTP : proFTPD, Vsftpd</del></li>
  <li>NFS : support natif</li>
  <li>CIFS/SMB : <strong>Samba client et server</strong> qui pourra jusqu’à reproduire à 90% un serveur Active Directory</li>
  <li><strong>Netatalk</strong> : émule un serveur de fichier Apple</li>
  <li><strong>Support iSCSI</strong></li>
  <li><strong>SSH</strong> dispose de deux sous-protocoles qui permettent avantageusement de transmettre des fichiers de manière sécurisée : <strong>SCP</strong> et <strong>SFTP</strong>. <strong>Rsync</strong> permet de maintenir une synchronisation des copies.</li>
</ul>

<p>Une distribution Linux comme Openfiler offre des services de stockage (FreeNAS est basé BSD).</p>

<h3 id="27-services-dinfrastructure">2.7. Services d’infrastructure</h3>

<ul>
  <li><strong>ISC-DHCP</strong> permet de gérer un réseau en offrant un service robuste DHCP et DHCPv6</li>
  <li><strong>ISC-Bind</strong> offre un service robuste DNS, certainement le plus utilisé dans le monde.</li>
  <li><strong>OpenLDAP</strong> offre un service d’annuaire LDAP réputé.</li>
  <li><strong>Samba4</strong> permet de reproduire un environnement Active Directory. Il est largement mis en production et Microsoft collabore dans une certaine mesure.</li>
  <li><strong>NFS</strong></li>
</ul>

<h3 id="28-services-collaboratifs">2.8. Services collaboratifs</h3>

<ul>
  <li>Zarafa</li>
  <li>Zimbra</li>
  <li>Open-Xchange</li>
  <li>RoundCube</li>
  <li>OwnCloud</li>
</ul>

<h3 id="29-services-de-téléphonie">2.9. Services de téléphonie</h3>

<ul>
  <li>Asterisk</li>
  <li>Kamailio</li>
  <li>SipeX</li>
  <li>Freeswitch</li>
  <li>FreePBX</li>
  <li>Ast2Billing</li>
  <li>Jitsi</li>
  <li>Big Blue Button</li>
</ul>

<h3 id="210-cloud-computing">2.10. Cloud Computing</h3>

<ul>
  <li>OpenStack
    <ul>
      <li>OpenNebula</li>
      <li>Eucalyptus</li>
      <li>Cloud Stack</li>
      <li>Nimbus</li>
    </ul>
  </li>
</ul>

<h3 id="211-virtualisation">2.11. Virtualisation</h3>

<ul>
  <li>Qemu</li>
  <li>KVM</li>
  <li>OpenVZ</li>
  <li>Xen</li>
  <li>Virtualbox</li>
  <li>Proxmox</li>
  <li>O-virt</li>
  <li>Jail</li>
  <li>LXC</li>
  <li>LXD</li>
  <li>Docker</li>
</ul>

<h3 id="212-gestion-de-parc">2.12. Gestion de Parc</h3>

<ul>
  <li>GLPI</li>
  <li>OCS Inventory NG</li>
  <li>Fusion Inventory</li>
</ul>

<h3 id="213-poste-à-distance">2.13. Poste à distance</h3>

<ul>
  <li>Tight VNC</li>
  <li>SSH,</li>
  <li>X2Go</li>
</ul>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="214-automation-orchestration">2.14. Automation, orchestration</h3>

<ul>
  <li>Puppet</li>
  <li>Chef</li>
  <li>Vagrant</li>
  <li>Ansible</li>
  <li>Kuberbnetes</li>
  <li>Terraform</li>
  <li>Packer</li>
</ul>

<h3 id="215-sauvegarde">2.15. Sauvegarde</h3>

<ul>
  <li>Bacula</li>
  <li>Partimage</li>
  <li>Amanda</li>
  <li>CloneZilla</li>
</ul>

<h3 id="216-haute-disponibilité">2.16. Haute disponibilité</h3>

<ul>
  <li>HAProxy</li>
  <li>Keepalived</li>
  <li>Linux-HA</li>
  <li>LVS (Linux Virtual Server)</li>
</ul>

<h3 id="217-sécurité">2.17. Sécurité</h3>

<ul>
  <li>AIDE</li>
  <li>OpenVas</li>
  <li>ClamAV</li>
  <li>Snort</li>
  <li>Wireshark</li>
</ul>

<h3 id="218-vpn">2.18. VPN</h3>

<ul>
  <li>OpenSwan</li>
  <li>OpenVPN</li>
</ul>

<h3 id="219-firewall">2.19. Firewall</h3>

<ul>
  <li>NetFilter</li>
  <li>Packet Filter</li>
  <li>pfSense</li>
  <li>NuFW</li>
  <li>Firewalld</li>
</ul>

<h3 id="220-surveillance">2.20. Surveillance</h3>

<ul>
  <li>Nagios</li>
  <li>Cacti</li>
  <li>Centreon</li>
  <li>MRTG</li>
  <li>Munin</li>
  <li>OpenNMS</li>
  <li>Zabbix</li>
  <li>Zenoss</li>
  <li>Icinga</li>
  <li>Shinken</li>
</ul>

<h3 id="221-pki">2.21. PKI</h3>

<ul>
  <li>EasyCA</li>
  <li>OpenCA PKI</li>
  <li>EJBCA</li>
  <li>OpenSSL</li>
</ul>

<h3 id="222-fenêtres-graphiques-open-source">2.22. Fenêtres graphiques Open Source</h3>

<ul>
  <li>Un service de fenêtres graphiques permet de les ouvrir, de les redimensionner, etc.</li>
  <li>Une distribution “desktop” vient d’emblée avec tous les outils graphiques.</li>
  <li>X-Windows est la base du système graphique, il fournit les fenêtres et les primitives de base comme <strong>X11</strong> ou <strong>X.org</strong>.</li>
  <li><strong>Compiz</strong>, <strong>FVWM</strong>, <strong>Enlightenment</strong>, <strong>Metacity</strong> sont des gestionnaires de fenêtres.</li>
</ul>

<h3 id="223-environnement-de-bureau-oss">2.23. Environnement de bureau OSS</h3>

<ul>
  <li>Les environnements de bureau offrent un service complet de fenêtrage et de l’interface graphique avec l’ordinateur.</li>
  <li>Au même titre que les services X, il peut être déporté à distance. Il peut même être chiffré en SSH.</li>
  <li>On citera :
    <ul>
      <li>Unity</li>
      <li>Gnome Shell</li>
      <li>KDE</li>
      <li>Mate</li>
      <li>Xfce</li>
      <li>LXDE, et bien d’autres …</li>
    </ul>
  </li>
</ul>

<h3 id="224-suite-de-productivité--bureautique">2.24. Suite de productivité / bureautique</h3>

<ul>
  <li>Suite bureautique qui n’a rien à envier à d’autres : <strong>LibreOffice</strong> fork d’<strong>OpenOffice</strong>.</li>
  <li>On citera <strong>Iceweasel</strong> (Firefox) comme navigateur Web.</li>
  <li><strong>Thunderbird</strong>, Evolution et KMail sont des clients mail collaboratifs célèbres.</li>
</ul>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="225-environnement-de-développement">2.25. Environnement de développement</h3>

<p>Langage de programmation :</p>

<ul>
  <li>C, C++, Java</li>
  <li>Perl, Python, PHP, Ruby</li>
</ul>

<p>Plateforme de développement :</p>

<ul>
  <li>Redmine</li>
  <li>GIT,</li>
  <li>Eclipse,</li>
  <li>CVS,</li>
  <li>Subversion</li>
</ul>

<p>Plateforme de développement Web :</p>

<ul>
  <li>Django,</li>
  <li>JQuery,</li>
  <li>Ruby On Rails,</li>
  <li>Zend Framework,</li>
  <li>Node.js, REDnode</li>
  <li>…</li>
</ul>

<h3 id="226-applications-cms-e-commerce-erp">2.26. Applications CMS, E-commerce, ERP</h3>

<p>CMS et blogs :</p>

<ul>
  <li>Drupal,</li>
  <li>Wordpress,</li>
  <li>Joomla,</li>
  <li>Spip,</li>
  <li>Plone,</li>
  <li>Ghost</li>
</ul>

<p>E-Commerce :</p>

<ul>
  <li>Magento,</li>
  <li>Prestashop,</li>
  <li>Oscommerce</li>
</ul>

<p>ERP :</p>

<ul>
  <li>Compiere,</li>
  <li>Dolibarr,</li>
  <li>Odoo</li>
</ul>

<h3 id="227-autres-applications">2.27. Autres Applications</h3>

<ul>
  <li>Créativité graphique et sonore</li>
  <li>Environnement éducatif, d’apprentissage</li>
</ul>

<h2 id="3-liste-de-logiciels-open-source">3. Liste de logiciels Open Source</h2>

<ul>
  <li><a href="https://www.open-source-guide.com/">https://www.open-source-guide.com/</a></li>
  <li><a href="https://www.framasoft.net/rubrique2.html">https://www.framasoft.net/rubrique2.html</a></li>
  <li><a href="https://fr.wikipedia.org/wiki/Liste_de_logiciels_libres">https://fr.wikipedia.org/wiki/Liste_de_logiciels_libres</a></li>
  <li><a href="https://distrowatch.com/">https://distrowatch.com/</a></li>
</ul>

<p>On peut aussi se faire une idée des appliances virtuelles open source disponibles sur <a href="https://bitnami.com/stacks">Bitnami</a>.</p>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Introduction" /><category term="Administration" /><category term="introduction" /><summary type="html"><![CDATA[On trouvera ici une liste des applications Open Source à connaître dans le cadre de l'administration des systèmes Linux.]]></summary></entry><entry><title type="html">Utiliser Linux en console graphique (Centos7)</title><link href="https://linux.goffinet.org/administration/introduction-a-linux/utiliser-linux-en-console-graphique-centos7/" rel="alternate" type="text/html" title="Utiliser Linux en console graphique (Centos7)" /><published>2018-01-01T00:00:00+01:00</published><updated>2020-09-22T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/introduction-a-linux/utiliser-linux-en-console-graphique-centos7</id><content type="html" xml:base="https://linux.goffinet.org/administration/introduction-a-linux/utiliser-linux-en-console-graphique-centos7/"><![CDATA[<h1 id="utiliser-linux-en-console-graphique-centos7">Utiliser Linux en console graphique (Centos7)</h1>

<h2 id="objectifs-de-certification">Objectifs de certification</h2>

<h3 id="objectifs-linux-essentials-14">Objectifs Linux Essentials 1.4</h3>

<ul>
  <li>Compétences informatiques élémentaires et travail sous Linux.</li>
  <li>Domaines de connaissance les plus importants :
    <ul>
      <li>Utilisation de l’environnement graphique.</li>
      <li>Accès à la ligne de commande.</li>
      <li>Utilisation industrielle de Linux, informatique dans les nuages (Cloud Computing) et virtualisation.</li>
    </ul>
  </li>
  <li>Liste partielle de termes, fichiers et utilitaires utilisés pour cet objectif :
    <ul>
      <li>Utilisation d’un navigateur, questions de vie privée, options de configuration, recherche sur le web et enregistrement de contenu.</li>
      <li>Console et terminal.</li>
      <li>Questions de mots de passe.</li>
      <li>Outils et questions de la vie privée.</li>
      <li>Utilisation de logiciels libres courants pour les présentations et la gestion de projets.</li>
    </ul>
  </li>
</ul>

<h2 id="1-choisir-une-distribution-linux-desktop">1. Choisir une distribution Linux desktop</h2>

<h3 id="11-ditributions-habituelles">1.1. Ditributions habituelles</h3>

<ul>
  <li><strong>Ubuntu Desktop</strong> : correspond au standard libre GNU, orienté communauté.
    <ul>
      <li>Il faut choisir soit une image serveur soit une image ou desktop. On peut démarrer d’une image serveur à laquelle on ajoute une suite graphique.</li>
    </ul>
  </li>
  <li><strong>CentOS</strong> : version libre de Redhat Enterprise Linux (RHEL), orienté constructeur.
    <ul>
      <li>Une seule image par architecture et par version.</li>
    </ul>
  </li>
</ul>

<h3 id="12-autres-distributions-linux-desktop">1.2. Autres distributions Linux Desktop</h3>

<p>Dérivés parmi bien d’autres des distributions traditionnelles :</p>

<ul>
  <li>la distribution de sécurité basée <strong>Debian Kali Linux</strong></li>
  <li>ou <strong>Linux Mint</strong> qui améliore Ubuntu.</li>
</ul>

<p>Plus exotiques, plus bas des distributions plus fondamentales :</p>

<ul>
  <li>en <strong>Archlinux</strong></li>
  <li>ou en <strong>Gentoo</strong>.</li>
</ul>

<h2 id="2-configuration-de-lordinateur">2. Configuration de l’ordinateur</h2>

<ul>
  <li>Machine native physique ou virtuelle.</li>
  <li>Processeur x86 64 bits, instruction VT</li>
  <li>RAM : minimum 1-2 Go</li>
  <li>HD : minimum 40 Go (LVM)</li>
  <li>Partitions non chiffrée</li>
  <li>Réseau : “ponté” au réseau local, en DHCP</li>
  <li>Une souris, un clavier, un écran</li>
  <li>Un lecteur CD ou USB avec une image ISO montée : un liveCD</li>
</ul>

<h2 id="3-installation-centos-7">3. Installation Centos 7</h2>

<p>Cette présentation utilise un ISO LiveCD de Centos 7 (sans LibreOffice) avec Gnome (<a href="https://ftp.belnet.be/ftp.centos.org/7/isos/x86_64/">https://ftp.belnet.be/ftp.centos.org/7/isos/x86_64/</a>).</p>

<p>Si vous avez une préférence</p>

<ul>
  <li>pour Ubuntu : <a href="https://doc.ubuntu-fr.org/installation/">https://doc.ubuntu-fr.org/installation/</a></li>
  <li>pour Debian : <a href="https://www.debian.org/ports/amd64/">https://www.debian.org/ports/amd64/</a></li>
  <li>pour ArchLinux : <a href="https://wiki.archlinux.fr/Installation">https://wiki.archlinux.fr/Installation</a></li>
  <li>pour Gentoo : <a href="https://www.gentoo.org/doc/fr/index.xml?catid=install">https://www.gentoo.org/doc/fr/index.xml?catid=install</a></li>
</ul>

<h3 id="31-consoles">3.1. Consoles</h3>

<ul>
  <li>Dès que votre machine a démarré vous accédez à une console graphique.</li>
  <li>Vous disposez de six autres consoles texte.</li>
  <li>Pour basculer de l’une à l’autre on utilise la combinaison des touches CTRL-ALT-F1, CTRL-ALT-F2, CTRL-ALT-F3, …</li>
</ul>

<h3 id="32-clavier">3.2. Clavier</h3>

<figure><img src="/assets/images/linux/PKSD3Lu.png" /><figcaption>Choix du clavier</figcaption></figure>

<h3 id="33-ecrans--langues">3.3. Ecrans / Langues</h3>

<figure><img src="/assets/images/linux/Y5oP0qR.png" /><figcaption>Configuration de l'écran, de la langue et du réseau</figcaption></figure>

<h3 id="34-interface-graphique">3.4. Interface graphique</h3>

<p>Vous trouverez des applications courantes telles que :</p>

<ol>
  <li>un navigateur Web</li>
  <li>une suite bureautique</li>
  <li>un navigateur de fichiers</li>
  <li>des aides</li>
  <li>un logiciel de terminal (console)</li>
  <li>Mais aussi bien d’autres</li>
</ol>

<h3 id="35-nouveautés-centos-7">3.5. Nouveautés CentOS 7</h3>

<ul>
  <li>Virtualisation</li>
  <li><code class="language-plaintext highlighter-rouge">Systemd</code> remplace les scripts d’initialisation</li>
  <li>Commande <code class="language-plaintext highlighter-rouge">ip</code> (pile <code class="language-plaintext highlighter-rouge">iproute2</code> qui remplace <code class="language-plaintext highlighter-rouge">net-tools</code>)</li>
  <li>Système de fichiers par défaut XFS</li>
  <li>…</li>
</ul>

<h3 id="36-sécurité-web">3.6. Sécurité Web</h3>

<p>Les cookies gardent des traces de vos visites sur les sites Web. Il est conseillé de ne pas les enregistrer ou des les effacer après chaque session.</p>

<h3 id="37-installation-sur-disque">3.7. Installation sur disque</h3>

<figure><img src="/assets/images/linux/s6niIQj.png" /><figcaption>Installation sur disque</figcaption></figure>

<h3 id="38-installation--choix-de-languelocalisation">3.8. Installation : choix de langue/localisation</h3>

<figure><img src="/assets/images/linux/X0ET5An.png" /><figcaption>Installation : choix de langue/localisation</figcaption></figure>

<h3 id="39-installation--emplacement">3.9. Installation : emplacement</h3>

<figure><img src="/assets/images/linux/7U97BTC.png" /><figcaption>Installation : emplacement</figcaption></figure>

<h3 id="310-installation--choix-du-disque">3.10. Installation : choix du disque</h3>

<figure><img src="/assets/images/linux/Y6sT6w0.png" /><figcaption>Installation : choix du disque</figcaption></figure>

<h3 id="311-utilisateurs-et-mot-de-passe">3.11. Utilisateurs et mot de passe</h3>

<p>Sur un système, on dispose de :</p>

<ul>
  <li>Comptes système : créés par l’os</li>
  <li>Un compte root : super-utilisateur sur le système</li>
  <li>Comptes utilisateur standard</li>
</ul>

<p>Plusieurs stratégies de comptes locaux :</p>

<ul>
  <li>Création d’un un compte root et de compte(s) “utilisateur standard”</li>
  <li>Un ou certains utilisateurs qui disposent de droits “super-utilisateur” avec ou sans compte root défini</li>
</ul>

<p>Mots de passes forts :</p>

<ul>
  <li>Unicité, choisi au hasard,</li>
  <li>minimum 10 caractères,</li>
  <li>minuscules, majuscules, chiffres</li>
  <li>et caractères spéciaux <code class="language-plaintext highlighter-rouge">$</code> <code class="language-plaintext highlighter-rouge">(</code> <code class="language-plaintext highlighter-rouge">#</code> <code class="language-plaintext highlighter-rouge">!</code> <code class="language-plaintext highlighter-rouge">[</code> <code class="language-plaintext highlighter-rouge">;</code> <code class="language-plaintext highlighter-rouge">.</code></li>
</ul>

<h3 id="311-installation--création-des-comptes-utilisateurs">3.11. Installation : création des comptes utilisateurs</h3>

<figure><img src="/assets/images/linux/v5fZTmV.png" /><figcaption>Utilisateurs et mot de passe</figcaption></figure>

<h3 id="312-installation--licence-gplv2">3.12. Installation : licence GPLv2</h3>

<figure><img src="/assets/images/linux/sVPyqOS.png" /><figcaption>Installation : licence GPLv2</figcaption></figure>

<p>A ce moment, on peut éjecter l’image et redémarrer l’ordinateur …</p>

<h2 id="4-console-graphique">4. Console graphique</h2>

<figure><img src="/assets/images/linux/Nl9jSkz.png" /><figcaption>Console graphique</figcaption></figure>

<h3 id="41-mise-à-jour-du-système">4.1. Mise-à-jour du système</h3>

<figure><img src="/assets/images/linux/0E04ZQN.png" /><figcaption>Mise-à-jour du système</figcaption></figure>

<h3 id="42-pare-feu-linux">4.2. Pare-feu Linux</h3>

<ul>
  <li>Netfilter / Iptables est le pare-feu Linux</li>
  <li>Ici, l’interface graphique Firewalld</li>
</ul>

<figure><img src="/assets/images/linux/DW5qVH3.png" /><figcaption>Firewalld</figcaption></figure>

<h3 id="43-gestionnaire-de-paquets">4.3. Gestionnaire de paquets</h3>

<figure><img src="/assets/images/linux/UeYYE93.png" /><figcaption>Gestionnaire de paquets</figcaption></figure>

<h3 id="44-gestionnaire-de-fichiers">4.4. Gestionnaire de fichiers</h3>

<figure><img src="/assets/images/linux/yDFpAPv.png" /><figcaption>Gestionnaire de fichiers</figcaption></figure>

<h3 id="45-aide-gnome--centos">4.5. Aide Gnome / Centos</h3>

<figure><img src="/assets/images/linux/wXtyggH.png" /><figcaption>Aide Gnome</figcaption></figure>

<h3 id="46-editeurs-de-texte">4.6. Editeurs de texte</h3>

<ul>
  <li>Les éditeurs habituels sont <code class="language-plaintext highlighter-rouge">nano</code>, <code class="language-plaintext highlighter-rouge">vi</code> et <code class="language-plaintext highlighter-rouge">emacs</code>. Ici, <code class="language-plaintext highlighter-rouge">gedit</code> :</li>
</ul>

<figure><img src="/assets/images/linux/cKFtOdy.png" /><figcaption>Editeurs de texte</figcaption></figure>

<h3 id="47-terminal">4.7. Terminal</h3>

<ul>
  <li>Le système se gère dans le shell via des commandes via un logiciel de terminal :</li>
</ul>

<figure><img src="/assets/images/linux/P7p5SuQ.png" /><figcaption>Terminal</figcaption></figure>

<h2 id="5-installation-de-rhel-7">5. Installation de RHEL 7</h2>

<ul>
  <li>Prendre un compte “developer” sur <a href="https://developers.redhat.com/">https://developers.redhat.com/</a></li>
  <li>Choisir le menu “Downloads”</li>
  <li>Sous le titre “Red Hat Enterprise Linux” * télécharger l’image ISO et choisir “Learn More”</li>
  <li>Suivre le tutoriel “Get Started” : <a href="https://developers.redhat.com/products/rhel/get-started/">https://developers.redhat.com/products/rhel/get-started/</a> en choisissant le type d’installation Bare-Metal, Hyper-V, KVM, VirtualBox, VMware</li>
  <li>Documentation : <a href="https://access.redhat.com/documentation/fr-FR/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/index.html">https://access.redhat.com/documentation/fr-FR/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/index.html</a></li>
</ul>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Introduction" /><category term="Administration" /><category term="introduction" /><summary type="html"><![CDATA[L'obectif de cet article Utiliser Linux en console graphique (Centos7) est d'installer et de commencer à utiliser une distribution Linux en mode graphique.]]></summary></entry><entry><title type="html">Environnements de bureau Linux</title><link href="https://linux.goffinet.org/administration/introduction-a-linux/environnements-de-bureau/" rel="alternate" type="text/html" title="Environnements de bureau Linux" /><published>2018-01-01T00:00:00+01:00</published><updated>2020-09-22T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/introduction-a-linux/environnements-de-bureau</id><content type="html" xml:base="https://linux.goffinet.org/administration/introduction-a-linux/environnements-de-bureau/"><![CDATA[<h1 id="environnements-de-bureau">Environnements de bureau</h1>

<p>Un environnement de bureau est un ensemble de programmes qui permettent de manipuler l’ordinateur à travers une interface graphique qui fait analogie à un bureau. Le terme “environnement de bureau” provient de la métaphore du bureau sur laquelle sont basés ces produits.</p>

<p>De nombreux systèmes d’exploitation ont un environnement de bureau incorporé. À l’inverse, avec le système de fenêtrage X des systèmes d’exploitation Unix, plusieurs environnements de bureau sont disponibles. (<a href="https://fr.wikipedia.org/wiki/Environnement_de_bureau">https://fr.wikipedia.org/wiki/Environnement_de_bureau</a>)</p>

<p>C’est ainsi qu’un environnement de bureau Linux est composé de plusieurs éléments distincts :</p>

<ul>
  <li><a href="https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_fen%C3%AAtrage">le système de fenêtrage</a> (X11, X Window System, Mir)</li>
  <li><a href="https://fr.wikipedia.org/wiki/Gestionnaire_de_fen%C3%AAtres">le gestionnaire de fenêtres</a> (Compiz, KWin, Metacity, Xfwm, …)</li>
  <li>l’environnement graphique</li>
  <li>le gestionnaire de fichiers et divers outils</li>
  <li><a href="https://fr.wikipedia.org/wiki/X_display_manager">le gestionnaire de d’affichage</a>, <em>Display Manager</em> qui ouvre les sessions (GDM, LightGDM, KDM, XDM)</li>
</ul>

<figure><img src="/assets/images/linux/640px-Schema_des_couches_de_linterface_graphique.svg.png" /><figcaption>Schéma des couches de l'interface graphique</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Sch%C3%A9ma_des_couches_de_l%27interface_graphique.svg/640px-Sch%C3%A9ma_des_couches_de_l%27interface_graphique.svg.png">Source de l’image</a></p>

<h2 id="1-environnements-de-bureau-linux">1. Environnements de bureau Linux</h2>

<ul>
  <li>Environnements traditionnels :
    <ul>
      <li>GNOME3</li>
      <li>KDE4</li>
    </ul>
  </li>
  <li>Environnements dérivés :
    <ul>
      <li>Unity (GNOME3, défaut Ubuntu)</li>
      <li>Cinnamon (GNOME3, défaut Linux Mint)</li>
      <li>Mate (GNOME)</li>
    </ul>
  </li>
  <li>Environnements légers :
    <ul>
      <li>LXDE</li>
      <li>Xfce</li>
    </ul>
  </li>
  <li>Environnement entièrement paramétrable :
    <ul>
      <li>Enlightenment</li>
    </ul>
  </li>
  <li>Environnement Qt :
    <ul>
      <li>Razor-qt</li>
      <li>Elokab</li>
    </ul>
  </li>
</ul>

<h2 id="2-freedesktoporg">2. Freedesktop.org</h2>

<p>Freedesktop.org est un organisme de collaboration entre différents projets de logiciels libres comme GNOME, KDE, Xfce, Enlightenment, GStreamer, Xgl/AIGLX ou encore X.Org, qui travaille à <strong>l’interopérabilité des environnements graphiques sous les systèmes utilisant X Window System</strong> comme GNU/Linux (ou sur d’autres UNIX) en produisant des logiciels et des spécifications.</p>

<p>Les deux principaux environnements de bureau actuels sont GNOME et KDE, mais le but de Freedesktop est d’être neutre et de proposer des spécifications (presque élevées au rang de standards) afin de faciliter le travail de développeurs en améliorant la compatibilité des programmes GNOME et KDE, mais aussi de rendre l’expérience des utilisateurs finaux la plus agréable possible.</p>

<p>Freedesktop n’a pas pour objectif de standardiser les interfaces graphiques utilisateur, qui doivent au contraire avoir chacune leurs originalités pour convenir à des publics différents, mais d’harmoniser l’infrastructure : copier/coller, raccourcis claviers, détection du matériel, etc. Freedesktop encourage des protocoles unifiés et des symboles distincts (voir protocole-symbole).</p>

<p>Freedesktop a été fondé en mars 2000, par Havoc Pennington de Red Hat.</p>

<p>Source : <a href="https://fr.wikipedia.org/wiki/Freedesktop.org">https://fr.wikipedia.org/wiki/Freedesktop.org</a></p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h2 id="3-gnome">3. GNOME</h2>

<p>GNOME, acronyme de GNU Network Object Model Environment, est un environnement de bureau libre convivial dont l’objectif est de rendre accessible l’utilisation du système d’exploitation GNU au plus grand nombre ; cette interface est actuellement populaire sur les systèmes GNU/Linux et fonctionne également sur la plupart des systèmes de type UNIX.</p>

<figure><img src="/assets/images/linux/401px-GNOME_Shell.png" /><figcaption>Environnement de bureau GNOME Shell</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/GNOME_Shell.png/401px-GNOME_Shell.png">Source de l’image</a></p>

<p>Remis en cause depuis le passage à la version 3, le projet GNOME manquerait de développeurs, dont une grande partie sont des employés de la société Red Hat.</p>

<p>Le mécontentement suscité par les suppressions répétitives de fonctionnalités et par l’ergonomie de GNOME 3 a conduit à deux initiatives :</p>

<ul>
  <li>un fork de GNOME 2, <strong>MATE</strong>, reprenant l’ergonomie de GNOME 2.x. et basé sur l’infrastructure de GNOME 2.32,</li>
  <li>une customisation de l’interface de GNOME 3 visant à la faire ressembler à celle de GNOME 2.x, proposée par le projet <strong>Linux Mint</strong> sous le nom de Mint Gnome Shell Extensions (MGSE), qui laissera finalement sa place à Cinnamon.</li>
</ul>

<figure><img src="/assets/images/linux/400px-Ubuntu_MATE_14.04_LTS_Desktop.png" /><figcaption>Environnement de bureau MATE</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Ubuntu_MATE_14.04_LTS_Desktop.png/400px-Ubuntu_MATE_14.04_LTS_Desktop.png">Source de l’image</a></p>

<p>Ubuntu prend quelque distance avec GNOME : en parallèle du développement (public) de GNOME 3 dont GNOME Shell est la pierre angulaire, Canonical a développé (en interne) sa propre interface graphique système pour Ubuntu : Unity, expliquant rechercher une unification sans couture entre les appareils à écran tactile et ceux utilisant des souris et autres pointeurs classiques.</p>

<figure><img src="/assets/images/linux/360px-Ubuntu_14.04_Search_applications.png" /><figcaption>Environnement de bureau Unity</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Ubuntu_14.04_Search_applications.png/360px-Ubuntu_14.04_Search_applications.png">Source de l’image</a></p>

<p>Les différences dans l’infrastructure même des deux projets vont en grandissant : outre GNOME Shell vs. Unity (et donc Mutter vs Compiz), citons GDM vs. LightDM, chacun son framework d’authentification unique, Wayland vs Mir… Pendant un temps Canonical a promu également son propre système de démarrage Upstart avant de se ranger en fin de compte à Systemd.</p>

<p>Source : <a href="https://fr.wikipedia.org/wiki/GNOME">https://fr.wikipedia.org/wiki/GNOME</a></p>

<h2 id="4-kde">4. KDE</h2>

<p>KDE est un projet de logiciel libre historiquement centré autour d’un environnement de bureau pour systèmes UNIX. Ce projet a évolué en un ensemble de programmes :</p>

<ul>
  <li>KDE Framework, bibliothèques et API fournissant une couche d’abstraction logicielle multiplate-forme ;</li>
  <li>Plasma, environnement de bureau ;</li>
  <li>KDE Applications, ensemble complet d’applications.</li>
</ul>

<figure><img src="/assets/images/linux/360px-KDE_4.png" /><figcaption>Environnement de bureau KDE</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/5/54/KDE_4.png/360px-KDE_4.png">Source de l’image</a></p>

<p>KDE est inclus dans la plupart des distributions GNU/Linux populaires. Il est l’environnement de bureau par défaut de certaines comme openSUSE et Mageia.</p>

<p>Source : <a href="https://fr.wikipedia.org/wiki/KDE">https://fr.wikipedia.org/wiki/KDE</a></p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h2 id="5-lxde">5. LXDE</h2>

<p>LXDE est un environnement de bureau libre pour les systèmes de type Unix, tels que Linux ou BSD. Le nom LXDE est l’acronyme de “Lightweight X11 Desktop Environment” (environnement de bureau X11 léger).</p>

<figure><img src="/assets/images/linux/320px-LXDE_desktop_full.png" /><figcaption>Environnement de bureau LXDE</figcaption></figure>

<p><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/LXDE_desktop_full.png/320px-LXDE_desktop_full.png">Source de l’image</a></p>

<p>LXDE a pour but de proposer un nouvel environnement de bureau léger, rapide et utilisant peu de ressources, au détriment du nombre de fonctionnalités. Il se veut modulaire : ses composants dépendent peu les uns des autres.</p>

<p>Source : <a href="https://fr.wikipedia.org/wiki/LXDE">https://fr.wikipedia.org/wiki/LXDE</a></p>

<h2 id="6-xfce">6. Xfce</h2>

<p>Xfce est un environnement de bureau léger utilisant la boîte à outils GTK+ 2.x et destiné aux systèmes d’exploitation apparentés à UNIX.</p>

<p>Xfce est fondé sur trois principes : rapidité, économie de ressources et simplicité d’utilisation. Son logo, une souris se déplaçant à grande vitesse, exprime ces idées. L’un des autres buts de Xfce est d’être conforme aux normes, plus particulièrement avec les spécifications du Freedesktop.org.</p>

<h2 id="7-environnements-de-bureau-sous-rhel7centos-7">7. Environnements de bureau sous RHEL7/Centos 7</h2>

<p>Si on a démarré avec un LiveDVD Centos GNOME, on peut tester les autres solutions :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>yum <span class="nt">-y</span> <span class="nb">install </span>epel-release
yum <span class="nt">-y</span> update
</code></pre></div></div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>yum group <span class="nb">install</span> <span class="s2">"Bureau MATE"</span>
</code></pre></div></div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>yum group <span class="nb">install</span> <span class="s2">"Xfce"</span>
</code></pre></div></div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>yum group <span class="nb">install</span> <span class="s2">"KDE Plasma Workspaces"</span>
</code></pre></div></div>

<p>Installation des logins graphiques :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>yum groupinstall <span class="s2">"X Window System"</span>
</code></pre></div></div>

<p>Choix de l’environnement graphique par défaut</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>systemctl set-default graphical.target
</code></pre></div></div>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h2 id="8-environnements-de-bureau-sous-debian-8-jessie">8. Environnements de bureau sous Debian 8 Jessie</h2>

<p>Mise à jour de la distribution.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apt-get update
apt-get <span class="nt">-y</span> upgrade
apt-get <span class="nt">-y</span> dist-upgrade
</code></pre></div></div>

<p>Gnome.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apt-get <span class="nb">install </span>gnome
</code></pre></div></div>

<p>KDE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apt-get <span class="nb">install </span>kde-standard
</code></pre></div></div>

<p>XFCE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apt-get <span class="nb">install </span>xfce4
</code></pre></div></div>

<p>LXDE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apt-get <span class="nb">install </span>lxde
</code></pre></div></div>

<p>MATE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apt-get <span class="nb">install </span>mate-desktop-environment
</code></pre></div></div>

<h2 id="9-environnements-de-bureau-sous-ubuntu-1604">9. Environnements de bureau sous Ubuntu (16.04)</h2>

<ul>
  <li><a href="https://doc.ubuntu-fr.org/environnements">https://doc.ubuntu-fr.org/environnements</a></li>
  <li><a href="https://doc.ubuntu-fr.org/tutoriel/faire_cohabiter_plusieurs_gestionnaires_de_bureau">https://doc.ubuntu-fr.org/tutoriel/faire_cohabiter_plusieurs_gestionnaires_de_bureau</a></li>
</ul>

<h3 id="91-installation-minimale">9.1. Installation minimale</h3>

<p>Gnome.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>gnome-core
</code></pre></div></div>

<p>KDE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>kde-minimal
</code></pre></div></div>

<p>XFCE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>xfce4
</code></pre></div></div>

<p>LXDE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>lubuntu-core
</code></pre></div></div>

<h3 id="92-installation-complète">9.2. Installation complète</h3>

<p>Gnome.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>ubuntu-desktop
</code></pre></div></div>

<p>KDE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>kubuntu-desktop
</code></pre></div></div>

<p>XFCE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>xubuntu-desktop
</code></pre></div></div>

<p>LXDE.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>lubuntu-desktop
</code></pre></div></div>

<p>Mate pour Ubuntu :  voir https://wiki.mate-desktop.org/download#ubuntu et https://ubuntu-mate.org/</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>ubuntu-mate-desktop
</code></pre></div></div>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Introduction" /><category term="Administration" /><category term="introduction" /><summary type="html"><![CDATA[On exposera brièvement quelques environnements de bureau comme Gnome, KDE, LXDE ou encore XFCE sous Debian/Ubuntu et sous RHEL/Centos.]]></summary></entry><entry><title type="html">Installation Linux Debian</title><link href="https://linux.goffinet.org/administration/introduction-a-linux/installation-linux-debian/" rel="alternate" type="text/html" title="Installation Linux Debian" /><published>2018-01-01T00:00:00+01:00</published><updated>2020-09-22T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/introduction-a-linux/installation-linux-debian</id><content type="html" xml:base="https://linux.goffinet.org/administration/introduction-a-linux/installation-linux-debian/"><![CDATA[<h1 id="installation-linux-debian">Installation Linux Debian</h1>

<h2 id="objectifs-de-certification">Objectifs de certification</h2>

<h3 id="objectifs-lpic-1">Objectifs LPIC 1</h3>

<ul>
  <li><em>Sujet 102 : Installation de Linux et gestion de paquetages</em>
    <ul>
      <li>102.1 Conception du schéma de partitionnement</li>
      <li>102.2 Installation d’un gestionnaire d’amorçage</li>
    </ul>
  </li>
  <li><em>Sujet 106 : Interfaces et bureaux utilisateur</em>
    <ul>
      <li>106.1 Installation et configuration de X11</li>
      <li>106.2 Configuration d’un gestionnaire d’affichage (Display Manager)</li>
      <li>106.3 Accessibilité</li>
    </ul>
  </li>
</ul>

<h2 id="1-introduction-installation-debian">1. Introduction installation Debian</h2>

<p>Il existe un guide complet pour répondre à toutes les questions concernant l’installation de Debian : <a href="https://www.debian.org/releases/stable/amd64/index.fr.html">Manuel d’installation pour la distribution Debian GNU/Linux</a>.</p>

<p>Le document qui suit est tiré du livre “<a href="https://debian-handbook.info/browse/fr-FR/stable/installation.html">Le cahier de l’administrateur Debian, Chapitre 4. Installation</a>” sous licence CC-BY-SA et GNU.</p>

<p>Pour utiliser la distribution Debian, il faut l’avoir installée sur un
ordinateur, tâche complexe prise en charge par le programme
<em>debian-installer</em>. Une bonne installation implique de nombreuses
opérations. Ce chapitre les passe en revue dans l’ordre dans lequel
elles sont habituellement effectuées.</p>

<p>L’installateur est toujours basé sur
<code class="language-plaintext highlighter-rouge">debian-installer</code>. Sa conception modulaire le rend
opérationnel dans de nombreux scénarios et lui a permis d’évoluer pour
s’adapter aux inévitables changements. Malgré les nombreuses contraintes
imposées par la prise en charge d’une large palette d’architectures, cet
installateur est très accessible au débutant puisqu’il assiste
l’utilisateur à chaque étape du processus. La détection automatique du
matériel, le partitionnement assisté et l’interface graphique ont résolu
l’essentiel des problèmes que les néophytes pouvaient rencontrer dans
les premières années de Debian.</p>

<p>L’installation requiert 80 Mo de mémoire vive et au moins 700 Mo
d’espace disque. Notons toutefois que ces chiffres s’appliquent à
l’installation d’un système très limité dénué d’un bureau graphique. Il
vaut mieux prévoir un minimum de 512 Mo de mémoire vive et de 5 Go
d’espace disque pour un poste bureautique de base.</p>

<h2 id="2-méthodes-dinstallation">2. Méthodes d’installation</h2>

<p>L’installation d’un système Debian est possible depuis divers types de
supports, pour peu que le BIOS de la machine le permette. On pourra
ainsi amorcer grâce à un CD-Rom, une clé USB, voire à travers un réseau.</p>

<blockquote>
  <p><strong>B.A.-BA</strong> BIOS, l’interface matériel/logiciel</p>
</blockquote>

<blockquote>
  <p>Le BIOS (abréviation de <em>Basic Input/Output System</em>, ou système
élémentaire d’entrées-sorties) est un logiciel intégré à la carte mère
(carte électronique reliant tous les périphériques) et exécuté au
démarrage du PC pour charger un système d’exploitation (par
l’intermédiaire d’un chargeur d’amorçage adapté). Il reste ensuite
présent en arrière-plan pour assurer une interface entre le matériel et
le logiciel (en l’occurrence, le noyau Linux).</p>
</blockquote>

<h3 id="21installation-depuis-un-cd-romdvd-rom">2.1. Installation depuis un CD-Rom/DVD-Rom</h3>

<p>Le support d’installation le plus employé est le CD-Rom (ou le DVD-Rom,
qui se comporte exactement de la même manière) : l’ordinateur s’amorce
sur ce dernier et le programme d’installation prend la main.</p>

<p>Divers types de CD-Rom ciblent chacun des usages différents. <em>netinst</em>
(installation réseau) contient l’installateur et le système de base de
Debian ; tous les autres logiciels seront téléchargés. Son « image »,
c’est-à-dire le système de fichiers ISO-9660 présentant le contenu exact
du disque, n’occupe pas plus de 150 à 280 Mo (selon l’architecture). À
l’opposé, le jeu complet de disques propose tous les paquets et permet
d’installer le système sur un ordinateur n’ayant pas accès à Internet —
il nécessite environ 84 CD-Rom (ou 12 DVD-Rom, ou encore deux disques
Blu-ray). Mais les logiciels sont répartis sur les disques en fonction
de leur popularité et de leur importance ; les trois premiers suffiront
donc à la majorité des installations car ils contiennent les logiciels
les plus utilisés.</p>

<p>Il existe un autre type d’image, <code class="language-plaintext highlighter-rouge">mini.iso</code>, qui n’est
disponible que comme un sous-produit de l’installateur. Cette image
contient seulement le strict minimum requis pour configurer le réseau,
tout le reste est téléchargé lors de l’installation (y compris d’autres
portions du programme d’installation lui-même, ce qui explique que ces
images ont tendance à ne plus fonctionner lorsqu’une nouvelle version du
programme d’installation est publiée). Ces images se trouvent sur les
miroirs Debian habituels, dans le dossier
<code class="language-plaintext highlighter-rouge">dists/release/main/installer-arch/current/images/netboot/</code>.</p>

<blockquote>
  <p><strong>ASTUCE</strong> Disques multi-architectures</p>
</blockquote>

<blockquote>
  <p>La plupart des CD-Rom et DVD-Rom d’installation correspondent à une
seule architecture matérielle. Si l’on souhaite télécharger les images
complètes, il faudra donc prendre soin de choisir celles qui
correspondent à l’architecture matérielle de l’ordinateur sur lequel on
souhaite les utiliser.</p>
</blockquote>

<p>Quelques images CD-Rom/DVD-Rom présentent la particularité de
fonctionner sur plusieurs architectures. On trouve ainsi une image de
CD-Rom combinant les images <em>netinst</em> des architectures <em>i386</em> et
<em>amd64</em>. Il existe aussi une image de DVD-Rom comprenant l’installateur
et une sélection de paquets binaires pour <em>i386</em> et <em>amd64</em>, ainsi que
les paquets sources correspondants.</p>

<p>Pour se procurer des CD-Rom Debian, on peut bien sûr télécharger et
graver leur image. Il est aussi possible de les acheter et de faire par
la même occasion un petit don au projet. Consultez le site web pour
connaître la liste des vendeurs et des sites de téléchargement des
images de ces CD-Rom.</p>

<p>→ <a href="https://www.debian.org/CD/index.fr.html">https://www.debian.org/CD/index.fr.html</a></p>

<h3 id="22démarrage-depuis-une-clé-usb">2.2. Démarrage depuis une clé USB</h3>

<p>Comme la plupart des ordinateurs sont capables de démarrer depuis un
périphérique USB, il est également possible d’installer Debian à partir
d’une clé USB (qui n’est rien de plus qu’un petit disque à mémoire
flash).</p>

<p>Le manuel d’installation explique comment créer une clé USB contenant
<code class="language-plaintext highlighter-rouge">debian-installer</code>. La procédure est très simple puisque les
images ISO des architectures i386 et amd64 sont des images hybrides qui
peuvent démarrer aussi bien depuis un CD-Rom que depuis une clé USB.</p>

<p>Il faut tout d’abord identifier le nom de périphérique de la clé USB
(ex : <code class="language-plaintext highlighter-rouge">/dev/sdb</code>). Le plus simple pour cela est de consulter
les messages émis par le noyau à l’aide de la commande
<code class="language-plaintext highlighter-rouge">dmesg</code>. Ensuite, il faut copier l’image ISO préalablement
récupérée (par exemple <code class="language-plaintext highlighter-rouge">debian-8.0.0-amd64-i386-netinst.iso</code>)
avec la commande
<code class="language-plaintext highlighter-rouge">cat debian-8.0.0-amd64-i386-netinst.iso &gt;/dev/sdb; sync</code>.
Cette commande requiert les droits administrateurs car elle accède
directement à la clé USB et écrase aveuglément son contenu.</p>

<p>Une explication plus détaillée est disponible dans le manuel de
l’installateur. Elle couvre notamment une méthode alternative (et plus
complexe) pour préparer votre clé USB mais qui permet de personnaliser
les options par défaut de l’installateur (celles consignées dans la
ligne de commande du noyau).</p>

<p>→ <a href="https://www.debian.org/releases/stable/amd64/ch04s03.html">https://www.debian.org/releases/stable/amd64/ch04s03.html</a></p>

<h3 id="23installation-par-boot-réseau">2.3. Installation par <em>boot</em> réseau</h3>

<p>De nombreux BIOS permettent d’amorcer directement sur le réseau en
téléchargeant un noyau et un système de fichiers minimal. Cette méthode
(que l’on retrouve sous différents noms, notamment PXE ou <em>boot</em> TFTP)
peut être salvatrice si l’ordinateur ne dispose pas de lecteur de CD-Rom
ou si le BIOS ne peut amorcer sur un tel support.</p>

<p>Cette méthode d’initialisation fonctionne en deux étapes. Premièrement,
lors du démarrage de l’ordinateur, le BIOS (ou la carte réseau) émet une
requête BOOTP/DHCP pour obtenir une adresse IP de manière automatique.
Lorsqu’un serveur BOOTP ou DHCP renvoie une réponse, celle-ci inclut un
nom de fichier en plus des paramètres réseau. Après avoir configuré le
réseau, l’ordinateur client émet alors une requête TFTP <em>(Trivial File
Transfer Protocol)</em> pour obtenir le fichier qui lui a été indiqué. Ce
fichier récupéré, il est exécuté comme s’il s’agissait d’un chargeur de
démarrage, ce qui permet de lancer le programme d’installation Debian —
celui-ci s’exécute alors comme s’il provenait d’un disque dur, d’un
CD-Rom ou d’une clé USB.</p>

<p>Tous les détails de cette méthode sont disponibles dans le guide
d’installation (section « Préparer les fichiers pour amorcer depuis le
réseau avec TFTP »).</p>

<p>→ <a href="https://www.debian.org/releases/stable/amd64/ch05s01.html#boot-tftp">https://www.debian.org/releases/stable/amd64/ch05s01.html#boot-tftp</a></p>

<p>→ <a href="https://www.debian.org/releases/stable/amd64/ch04s05.html">https://www.debian.org/releases/stable/amd64/ch04s05.html</a></p>

<h3 id="24autres-méthodes-dinstallation">2.4. Autres méthodes d’installation</h3>

<p>Lorsqu’il s’agit de déployer des installations personnalisées sur un
grand nombre d’ordinateurs, on opte généralement pour des approches plus
automatisées. Selon les cas et la complexité des installations à
effectuer, on emploiera plutôt FAI (<em>Fully Automatic Installer</em> ou un CD-Rom
d’installation personnalisé avec préconfiguration (voir « Debian-installer avec
préconfiguration »).</p>

<h2 id="3-installation-debian-8">3. Installation Debian 8</h2>

<h3 id="31exécution-du-programme-dinstallation">3.1. Exécution du programme d’installation</h3>

<p>Dès que le BIOS a lancé l’amorçage sur le CD-Rom (ou le DVD-Rom), le menu du chargeur d’amorçage Isolinux apparaît. À ce stade, le noyau Linux n’est pas encore chargé ; ce menu permet justement de choisir le noyau à démarrer et de saisir d’éventuelles options à lui passer.</p>

<p>Pour une installation standard, il suffit de sélectionner (avec les touches flèches) <strong>Install</strong> ou <strong>Graphical install</strong>, puis d’appuyer sur la touche <strong>Entrée</strong> pour enchaîner sur la suite de l’installation. Si le DVD-Rom est de type « Multi-arch » et si la machine dispose d’un processeur 64 bits de Intel ou AMD, des entrées de menu <strong>64 bit install</strong> et <strong>64 bit graphical install</strong> permettent d’installer la variante 64 bits <em>(amd64)</em> au lieu de celle par défaut (<em>i386</em> en 32 bits). Dans la pratique, la variante 64 bits peut être utilisée de manière quasi systématique : les processeurs récents fonctionnent tous en 64 bits et cette variante gère mieux les grosses quantités de mémoire vive dont disposent les ordinateurs récents.</p>

<blockquote>
  <p><strong>POUR ALLER PLUS LOIN 32 ou 64 bits ?</strong></p>

  <p>La différence fondamentale entre les systèmes 32 et 64 bits est la taille des adresses mémoire. En théorie, un système 32 bits ne peut exploiter plus de 4 Go de mémoire vive (2<sup>32</sup> octets). En pratique, il est possible de contourner cette limite en utilisant la variante <code class="language-plaintext highlighter-rouge">686-pae</code> du noyau à condition que le processeur gère la fonctionnalité PAE <em>(Physical Address Extension)</em>. Son usage a toutefois un impact non négligeable sur les performances du système. C’est pourquoi un serveur disposant d’une grande quantité de mémoire vive a tout intérêt à exploiter le mode 64 bits.</p>

  <p>Pour un poste bureautique (où quelques pour cent de performance sont négligeables), on sera plus sensible au fait que certains logiciels propriétaires ne sont pas disponibles en version 64 bits (Skype par exemple). Il est techniquement possible de les faire fonctionner sur le système 64 bits, mais il faudra installer les versions 32 bits de toutes les bibliothèques nécessaires (voir <a href="sect.manipulating-packages-with-dpkg.html#sect.multi-arch">Section 5.4.5, « Support multi-architecture »</a>) et éventuellement faire usage de <code class="language-plaintext highlighter-rouge">setarch</code> ou <code class="language-plaintext highlighter-rouge">linux32</code> (dans le paquet util-linux) pour tromper les applications sur la nature du système.</p>
</blockquote>

<blockquote>
  <p><strong>B.A.-BA Chargeur d’amorçage</strong></p>

  <p>Le chargeur d’amorçage (ou de démarrage), <em>bootloader</em> en anglais, est un programme de bas niveau chargé de démarrer le noyau Linux juste après que le BIOS lui a passé la main. Pour mener cette mission à bien, il doit être capable de « retrouver » sur le disque le noyau Linux à démarrer. Sur les architecture amd64 et i386, les deux programmes les plus employés pour effectuer cette tâche sont LILO, le plus ancien, et GRUB, son successeur plus moderne. Isolinux et Syslinux sont des alternatives souvent employées pour démarrer depuis des supports amovibles.</p>
</blockquote>

<p>Derrière chaque entrée de menu se cache une ligne de commande de démarrage spécifique que l’on peut personnaliser au besoin en appuyant sur <strong>TAB</strong> avant de valider et démarrer. L’entrée de menu <strong>Help</strong> fait apparaître l’ancienne interface en ligne de commande où les touches <strong>F1</strong> à <strong>F10</strong> affichent différents écrans d’aide détaillant les options possibles à l’invite. Sauf exceptions, vous n’aurez normalement pas besoin de vous servir de cette possibilité.</p>

<p>Le mode « expert » (accessible dans le menu <strong>Advanced options</strong>, « Options avancées ») détaille toutes les options possibles au cours de l’installation et permet de naviguer entre les différentes étapes sans qu’elles s’enchaînent automatiquement. Attention, ce mode très verbeux pourra dérouter par la multitude des choix de configuration qu’il propose.</p>

<figure><img src="/assets/images/linux/inst-boot.png" /><figcaption>Écran de démarrage</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-boot.png">Source de l’image</a></p>

<p><strong>Figure 1. Écran de démarrage</strong></p>

<p>Une fois démarré, le programme d’installation nous guide d’étape en étape tout au long du processus. Cette section détaille chacune d’entre elles, leurs tenants et leurs aboutissants. Nous suivons le déroulement correspondant à un DVD-Rom Multi-Arch (plus précisément, la version beta4 de l’installateur de Jessie) ; les autres types d’installations (<em>netinst</em> notamment) peuvent varier quelque peu. Nous allons également nous concentrer sur l’installation en mode graphique, mais elle ne diffère de l’installation « classique » que par l’aspect visuel.</p>

<h3 id="22choix-de-la-langue">2.2. Choix de la langue</h3>

<p>Le programme d’installation débute en anglais mais la toute première étape consiste à choisir la langue utilisée par la suite. Opter pour le français fournira une installation entièrement traduite (et un système configuré en français à l’issue du processus). Cela permettra également de proposer des choix par défaut plus pertinents lors des étapes suivantes (la disposition du clavier notamment).</p>

<p><strong><em>B.A.-BA</em> Naviguer grâce au clavier</strong></p>

<p>Certaines étapes du processus d’installation nécessitent une saisie d’informations. Ces écrans disposent alors de plusieurs zones qui peuvent « avoir le <em>focus</em> » (zone de saisie de texte, cases à cocher, liste de choix, boutons <strong>OK</strong> et <strong>Annuler</strong>), et la touche <strong>Tabulation</strong> permet de circuler entre elles.</p>

<p>En mode graphique, on utilise la souris comme on l’utiliserait sur un bureau graphique fonctionnel.</p>

<figure><img src="/assets/images/linux/inst-lang.png" /><figcaption>Choix de la langue</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-lang.png">Source de l’image</a></p>

<figure><img src="/assets/images/linux/inst-lang-txt.png" /><figcaption>Choix de la langue</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-lang-txt.png">Source de l’image</a></p>

<p><strong>Figure 2. Choix de la langue</strong></p>

<h3 id="33choix-du-pays">3.3. Choix du pays</h3>

<p>La deuxième étape consiste à choisir le pays. Combinée à la langue, cette information permettra de proposer une disposition de clavier encore plus adaptée. Elle influera aussi sur la configuration du fuseau horaire. Dans le cas de la France, un clavier de type AZERTY sera proposé et le fuseau horaire sera <strong>Europe/Paris</strong></p>

<figure><img src="/assets/images/linux/inst-country.png" /><figcaption>Choix du pays</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-country.png">Source de l’image</a></p>

<figure><img src="/assets/images/linux/inst-country-txt.png" /><figcaption>Choix du pays</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-country-txt.png">Source de l’image</a></p>

<p><strong>Figure 3. Choix du pays</strong></p>

<h3 id="34choix-de-la-disposition-du-clavier">3.4. Choix de la disposition du clavier</h3>

<p>Le clavier <strong>Français</strong> proposé convient pour les claviers AZERTY traditionnels. Il prend en charge le symbole euro.</p>

<figure><img src="/assets/images/linux/inst-keyboard.png" /><figcaption>Choix du clavier</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-keyboard.png">Source de l’image</a></p>

<figure><img src="/assets/images/linux/inst-keyboard-txt.png" /><figcaption>Choix du clavier</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-keyboard-txt.png">Source de l’image</a></p>

<p><strong>Figure 4. Choix du clavier</strong></p>

<h3 id="35détection-du-matériel">3.5. Détection du matériel</h3>

<p>Cette étape est entièrement automatique dans la plupart des cas. L’installateur détecte le matériel et cherche notamment à identifier le lecteur de CD-Rom employé afin de pouvoir accéder à son contenu. Il charge les modules correspondant aux différents éléments détectés, puis « monte » le CD-Rom afin de pouvoir le lire. Les étapes précédentes étaient entièrement contenues dans l’image de démarrage intégrée au CD-Rom, fichier de taille limitée et chargé en mémoire par le BIOS lors de l’amorçage du CD-Rom.</p>

<p>L’installateur gère l’immense majorité des lecteurs, en particulier les périphériques ATAPI (parfois appelés IDE ou EIDE) standards. Toutefois, si la détection du lecteur de CD-Rom échoue, l’installateur propose de charger (par exemple depuis une clé USB) un module noyau correspondant au pilote du CD-Rom.</p>

<h3 id="36chargement-des-composants">3.6. Chargement des composants</h3>

<p>Le contenu du CD-Rom désormais accessible, l’installateur rapatrie tous les fichiers nécessaires à la poursuite de sa tâche. Cela comprend des pilotes supplémentaires pour le reste du matériel (et notamment la carte réseau) ainsi que tous les composants du programme d’installation.</p>

<h3 id="37détection-du-matériel-réseau">3.7. Détection du matériel réseau</h3>

<p>Cette étape automatique cherche à identifier la carte réseau et à charger le module correspondant. À défaut de reconnaissance automatique, il est possible de sélectionner manuellement le module à charger. Si aucun module ne fonctionne, il est possible de charger un module spécifique depuis un périphérique amovible. Cette dernière solution ne sert réellement que si le pilote adéquat n’est pas intégré au noyau Linux standard s’il est disponible par ailleurs, par exemple sur le site du fabricant.</p>

<p>Cette étape doit absolument réussir pour les installations de type <em>netinst</em> puisque les paquets Debian doivent y être chargés sur le réseau.</p>

<h3 id="38configuration-du-réseau">3.8. Configuration du réseau</h3>

<p>Soucieux d’automatiser au maximum le processus, l’installateur tente une configuration automatique du réseau par DHCP (pour IPv4) et par découverte du réseau IPv6. Si celle-ci échoue, il propose plusieurs choix : réessayer une configuration DHCP normale, effectuer une configuration DHCP en annonçant un nom de machine, ou mettre en place une configuration statique du réseau.</p>

<p>Cette dernière demande successivement une adresse IP, un masque de sous-réseau, une adresse IP pour une éventuelle passerelle, un nom de machine et un nom de domaine.</p>

<blockquote>
  <p><strong>ASTUCE Configuration sans DHCP</strong></p>

  <p>Si le réseau local est équipé d’un serveur DHCP que vous ne souhaitez pas utiliser car vous préférez définir une adresse IP statique pour la machine en cours d’installation, vous pourrez lors du démarrage sur le CD-Rom ajouter l’option <strong><code class="language-plaintext highlighter-rouge">netcfg/use_dhcp=false</code></strong>. Il suffit de se placer sur l’entrée de menu désirée, d’appuyer sur <strong>TAB</strong> et d’ajouter l’option ci-dessus avant de valider par <strong>Entrée</strong>.</p>
</blockquote>

<h3 id="39mot-de-passe-administrateur">3.9. Mot de passe administrateur</h3>

<p>Le compte super-utilisateur <code class="language-plaintext highlighter-rouge">root</code>, réservé à l’administrateur de la machine, est automatiquement créé lors de l’installation : c’est pourquoi un mot de passe est demandé. Une confirmation (ou deuxième saisie identique) évitera toute erreur de saisie, difficile à retrouver ensuite !</p>

<figure><img src="/assets/images/linux/inst-rootpw.png" /><figcaption>Mot de passe administrateur</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-rootpw.png">Source de l’image</a></p>

<p><strong>Figure 5. Mot de passe administrateur</strong></p>

<blockquote>
  <p><strong>SÉCURITÉ Mot de passe administrateur</strong></p>

  <p>Le mot de passe de l’utilisateur <code class="language-plaintext highlighter-rouge">root</code> doit être long (8 caractères ou plus) et impossible à deviner. En effet, tout ordinateur (et a fortiori tout serveur) connecté à Internet fait régulièrement l’objet de tentatives de connexions automatisées avec les mots de passe les plus évidents. Parfois, il fera même l’objet d’attaques au dictionnaire, où diverses combinaisons de mots et de chiffres sont testées en tant que mots de passe. Évitez aussi les noms des enfants ou parents et autres dates de naissance : de nombreux collègues les connaissent et il est rare que l’on souhaite leur donner libre accès à l’ordinateur concerné.</p>

  <p>Ces remarques valent également pour les mots de passe des autres utilisateurs, mais les conséquences d’une compromission sont moindres dans le cas d’un utilisateur sans droits particuliers.</p>

  <p>Si l’inspiration vient à manquer, il ne faut pas hésiter à utiliser des générateurs de mot de passe comme <code class="language-plaintext highlighter-rouge">pwgen</code> (dans le paquet de même nom).</p>
</blockquote>

<h3 id="310création-du-premier-utilisateur">3.10. Création du premier utilisateur</h3>

<p>Debian impose également de créer un compte utilisateur standard pour que l’administrateur ne prenne pas la mauvaise habitude de travailler en tant que <code class="language-plaintext highlighter-rouge">root</code>. Le principe de précaution veut en effet que chaque tâche soit effectuée avec le minimum de droits nécessaires, pour limiter l’impact d’une mauvaise manipulation. C’est pourquoi l’installateur vous demandera successivement le nom complet de ce premier utilisateur, son identifiant et son mot de passe (deux fois, pour limiter les risques d’erreur de saisie).</p>

<figure><img src="/assets/images/linux/inst-username.png" /><figcaption>Nom du premier utilisateur</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-username.png">Source de l’image</a></p>

<p><strong>Figure 6. Nom du premier utilisateur</strong></p>

<h3 id="311configuration-de-lhorloge">3.11. Configuration de l’horloge</h3>

<p>Si le réseau est disponible, l’horloge interne du système est mise à jour (de façon ponctuelle et instantanée) à l’aide d’un serveur NTP. Les horodatages des logs seront ainsi précis dès le premier démarrage. Pour qu’ils restent précis dans la durée, il faudra tout de même mettre en place un démon NTP après l’installation initiale.</p>

<h3 id="312détection-des-disques-et-autres-périphériques">3.12. Détection des disques et autres périphériques</h3>

<p>Cette étape automatique détecte les disques susceptibles d’accueillir Debian. Ils seront proposés dans l’étape suivante : le partitionnement.</p>

<h3 id="313démarrage-de-loutil-de-partitionnement">3.13. Démarrage de l’outil de partitionnement</h3>

<blockquote>
  <p><strong>CULTURE Utilité du partitionnement</strong></p>

  <p>Le partitionnement, étape indispensable de l’installation, consiste à diviser l’espace disponible sur les disques durs (chaque sous-partie étant alors appelée une « partition ») en fonction des données à stocker et de l’usage prévu de l’ordinateur. Cette étape intègre aussi le choix des systèmes de fichiers employés. Toutes ces décisions ont une influence en termes de performances, de sécurité des données et d’administration du serveur.</p>
</blockquote>

<p>L’étape du partitionnement est traditionnellement difficile pour les utilisateurs débutants. Il faut en effet définir les différentes portions des disques (ou « partitions ») qui accueilleront le système de fichiers de Linux et sa mémoire virtuelle <em>(swap)</em>. La tâche se complique si un autre système d’exploitation existe déjà et si on souhaite le conserver. En effet, il faudra alors veiller à ne pas altérer ses partitions (ou à les redimensionner de manière indolore).</p>

<p>Fort heureusement, le logiciel de partitionnement dispose d’un mode « assisté » qui propose à l’utilisateur les partitions à créer. Dans la majorité des cas, il suffit de valider ses propositions.</p>

<figure><img src="/assets/images/linux/inst-partman.png" /><figcaption>Choix du mode de partitionnement</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-partman.png">Source de l’image</a></p>

<p><strong>Figure 7. Choix du mode de partitionnement</strong></p>

<p>Le premier écran de l’utilitaire de partitionnement propose d’employer un disque complet pour créer les diverses partitions. Pour un ordinateur (neuf) qui sera dédié à Linux, cette option est vraisemblablement la plus simple et l’on choisira donc l’option <strong>Assisté - utiliser un disque entier</strong>. Si l’ordinateur compte deux disques pour deux systèmes d’exploitation, consacrer un disque à chacun est également une solution facilitant le partitionnement. Dans ces deux cas, l’écran suivant permet de choisir le disque à consacrer à Linux en validant l’option correspondante (par exemple, <strong>SCSI1 (0,0,0) (sda) - 12.9 GB ATA VBOX HARDDISK</strong> pour installer Debian sur le premier disque). Vous débutez alors un partitionnement assisté.</p>

<figure><img src="/assets/images/linux/inst-partman-disk.png" /><figcaption>Disque à utiliser pour le partitionnement assisté</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-partman-disk.png">Source de l’image</a></p>

<p><strong>Figure 8. Disque à utiliser pour le partitionnement assisté</strong></p>

<p>Le partitionnement assisté est également capable de mettre en place des volumes logiques LVM au lieu de partitions (voir plus bas). Le reste du fonctionnement restant le même, nous ne détaillerons pas les options <strong>Assisté - utiliser tout un disque avec LVM</strong> (chiffré ou non).</p>

<p>Dans les autres cas, quand Linux doit cohabiter avec des partitions déjà présentes, il faudra opter pour un partitionnement manuel.</p>

<h4 id="3131partitionnement-assisté">3.13.1. Partitionnement assisté</h4>

<p>L’outil de partitionnement assisté propose trois méthodes de partitionnement, qui correspondent à des usages différents.</p>

<figure><img src="/assets/images/linux/inst-autopartman-mode.png" /><figcaption>Partitionnement assisté</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-autopartman-mode.png">Source de l’image</a></p>

<p><strong>Figure 9. Partitionnement assisté</strong></p>

<p>La première méthode s’intitule <strong>Tout dans une seule partition</strong>. Toute l’arborescence du système Linux est stockée dans un seul système de fichiers, correspondant à la racine <code class="language-plaintext highlighter-rouge">/</code>. Ce partitionnement simple et robuste convient parfaitement pour des ordinateurs personnels ou mono-utilisateurs. En réalité, deux partitions verront le jour : la première abritera le système complet ; la seconde, la mémoire virtuelle.</p>

<p>La deuxième méthode, <strong>Partition /home séparée</strong>, est similaire mais découpe l’arborescence en deux : une partie contient le système Linux (<code class="language-plaintext highlighter-rouge">/</code>) et la seconde les répertoires personnels (c’est-à-dire les données des utilisateurs, dans les fichiers placés sous <code class="language-plaintext highlighter-rouge">/home/</code>).</p>

<p>La dernière méthode de partitionnement, intitulée <strong>Partitions /home, /var et /tmp séparées</strong>, convient pour les serveurs et les systèmes multi-utilisateurs. Elle découpe l’arborescence en de nombreuses partitions : en plus de la racine (<code class="language-plaintext highlighter-rouge">/</code>) et des comptes utilisateurs (<code class="language-plaintext highlighter-rouge">/home/</code>), elle prévoit des partitions pour les données des logiciels serveurs (<code class="language-plaintext highlighter-rouge">/var/</code>) et pour les fichiers temporaires (<code class="language-plaintext highlighter-rouge">/tmp/</code>). Ces divisions ont plusieurs avantages. Les utilisateurs ne pourront pas bloquer le serveur en consommant tout l’espace disque disponible (ils ne pourront remplir que <code class="language-plaintext highlighter-rouge">/tmp/</code> et <code class="language-plaintext highlighter-rouge">/home/</code>). Les données des démons (et notamment les logs) ne pourront pas non plus bloquer le reste du système.</p>

<blockquote>
  <p><strong>B.A.-BA Choisir un système de fichiers</strong></p>

  <p>Un système de fichiers définit la manière d’organiser les données sur un disque. Chaque système de fichiers existant a ses mérites et ses limitations. Certains sont plus robustes, d’autres plus efficaces : si l’on connaît bien ses besoins, le choix d’un système de fichiers plus adapté est possible. De nombreuses comparaisons ont déjà été réalisées ; il semblerait que ReiserFS soit particulièrement efficace pour la lecture de nombreux petits fichiers ; <em>XFS</em>, quant à lui, est plus véloce avec de gros fichiers. <em>Ext4</em>, le système employé par défaut chez Debian, est un bon compromis, par ailleurs basé sur les trois précédentes versions du système de fichiers historiquement utilisé par Linux (<em>ext</em>, <em>ext2</em>, et <em>ext3</em>). <em>Ext4</em> corrige certaines limitations de <em>ext3</em> et est particulièrement adapté aux disques de très grande capacité. Une autre possibilité est d’expérimenter le très prometteur <em>btrfs</em> qui intègre de nombreuses fonctionnalités qui nécessitaient jusqu’à présent l’usage de LVM et/ou RAID.</p>

  <p>Un système de fichiers journalisé (comme <em>ext3</em>, <em>ext4</em>, <em>btrfs</em>, <em>reiserfs</em> ou <em>xfs</em>) prend des dispositions particulières afin qu’en cas d’interruption brutale, il soit toujours possible de revenir dans un état cohérent sans être contraint à une analyse complète du disque (comme c’était le cas avec le système <em>ext2</em>). Cette fonctionnalité est obtenue en remplissant un journal décrivant les opérations à effectuer avant de les exécuter réellement. Si une opération est interrompue, il sera possible de la « rejouer » à partir du journal. Inversement, si une interruption a lieu en cours de mise à jour du journal, le dernier changement demandé est simplement ignoré : les données en cours d’écriture sont peut-être perdues, mais les données sur le disque n’ayant pas changé, elles sont restées cohérentes. Il s’agit ni plus ni moins d’un mécanisme transactionnel appliqué au système de fichiers.</p>
</blockquote>

<p>Après le choix du type de partitionnement, le logiciel calcule une proposition, qu’il détaille à l’écran et que l’on peut au besoin modifier. On peut notamment choisir un autre système de fichiers si le choix standard (<em>ext4</em>) ne convient pas. Dans la plupart des cas, il suffit cependant d’accepter la proposition de partitionnement en validant l’option <strong>Terminer le partitionnement et appliquer les changements</strong>.</p>

<figure><img src="/assets/images/linux/inst-partman-validation.png" /><figcaption>Valider le partitionnement</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-partman-validation.png">Source de l’image</a></p>

<p><strong>Figure 10. Valider le partitionnement</strong></p>

<h4 id="3132partitionnement-manuel">3.13.2. Partitionnement manuel</h4>

<p>Le partitionnement manuel offre plus de souplesse et permet de choisir le rôle et la taille de chaque partition. Par ailleurs, ce mode est inévitable pour employer le RAID logiciel.</p>

<p>Le premier écran affiche les disques, les partitions qui les composent et tout éventuel espace libre non encore partitionné. On peut sélectionner chaque élément affiché ; une pression sur la touche <strong>Entrée</strong> donne alors une liste d’actions possibles.</p>

<p>On peut effacer toutes les partitions d’un disque en sélectionnant celui-ci.</p>

<p>En sélectionnant un espace libre d’un disque, on peut créer manuellement une nouvelle partition. Il est également possible d’y effectuer un partitionnement assisté, solution intéressante pour un disque contenant déjà un système d’exploitation mais que l’on souhaite partitionner pour Linux de manière standard.</p>

<blockquote>
  <p><strong>B.A.-BA Point de montage</strong></p>

  <p>Le point de montage est le répertoire de l’arborescence qui abritera le contenu du système de fichiers de la partition sélectionnée. Ainsi, une partition montée sur <code class="language-plaintext highlighter-rouge">/home/</code> est traditionnellement prévue pour contenir les données des utilisateurs.</p>

  <p>Si ce répertoire se nomme « <code class="language-plaintext highlighter-rouge">/</code> », on parle alors de la <em>racine</em> de l’arborescence, donc de la partition qui va réellement accueillir le système Debian.</p>
</blockquote>

<blockquote>
  <p><strong>B.A.-BA* Mémoire virtuelle, <em>swap</em></strong></p>

  <p>La mémoire virtuelle permet au noyau Linux en manque de mémoire vive (RAM) de libérer un peu de place en stockant sur la partition d’échange, donc sur le disque dur, une partie du contenu de la RAM restée inactive un certain temps.</p>

  <p>Pour simuler la mémoire supplémentaire, Windows emploie un fichier d’échange contenu directement sur un système de fichiers. À l’inverse, Linux emploie une partition dédiée à cet usage, d’où le terme de « partition d’échange ».</p>
</blockquote>

<p>En sélectionnant une partition, on peut indiquer la manière dont on va l’utiliser :</p>

<ul>
  <li>la formater et l’intégrer à l’arborescence en choisissant un point de montage ;</li>
  <li>l’employer comme partition d’échange <em>(swap)</em> ;</li>
  <li>en faire un <strong>volume physique pour chiffrement</strong> (pour protéger la confidentialité des données de certaines partitions, voir plus loin) ;</li>
  <li>en faire un <strong>volume physique pour LVM</strong> (notion détaillée plus loin dans ce chapitre) ;</li>
  <li>l’utiliser comme périphérique RAID (voir plus loin dans ce chapitre) ;</li>
  <li>ou ne pas l’exploiter et la laisser inchangée.</li>
</ul>

<h4 id="3133emploi-du-raid-logiciel">3.13.3. Emploi du RAID logiciel</h4>

<p>Certains types de RAID permettent de dupliquer les informations stockées sur des disques durs pour éviter toute perte de données en cas de problème matériel condamnant l’un d’entre eux. Le RAID de niveau 1 maintient une simple copie fidèle (miroir) d’un disque sur un autre, alors que le RAID de niveau 5 répartit sur plusieurs disques des informations redondantes qui permettront de reconstituer intégralement un disque défaillant.</p>

<p>Nous traiterons ici du RAID de niveau 1, le plus simple à mettre en œuvre. La première étape est de créer deux partitions de taille identique situées sur deux disques différents et de les étiqueter <strong>volume physique pour RAID</strong>.</p>

<p>Il faut ensuite choisir dans l’outil de partitionnement l’élément <strong>Configurer le RAID avec gestion logicielle</strong> pour transformer ces deux partitions en un nouveau disque virtuel et sélectionner <strong>Créer un périphérique multidisque</strong> dans cet écran de configuration. Suit alors une série de questions concernant ce nouveau périphérique. La première s’enquiert du niveau de RAID à employer — <strong>RAID1</strong> dans notre cas. La deuxième demande le nombre de périphériques actifs — deux ici, soit le nombre de partitions à intégrer dans ce périphérique RAID logiciel. La troisième question concerne le nombre de périphériques de réserve — zéro ; on n’a prévu aucun disque supplémentaire pour prendre immédiatement la relève d’un éventuel disque défectueux. La dernière question demande de choisir les partitions retenues pour le périphérique RAID — soit les deux qu’on a prévues à cet usage (on veillera bien à ne sélectionner que des partitions mentionnant explicitement <strong>raid</strong>).</p>

<p>Au retour dans le menu principal, un nouveau disque virtuel <strong>RAID</strong> apparaît. Ce disque est présenté avec une unique partition qu’on ne peut pas supprimer mais que l’on peut affecter à l’usage de son choix (comme n’importe quelle autre partition).</p>

<h4 id="3134emploi-de-lvm-logical-volume-manager">3.13.4. Emploi de LVM (<em>Logical Volume Manager</em>)</h4>

<p>LVM permet de créer des partitions « virtuelles » s’étendant sur plusieurs disques. L’intérêt est double : les tailles des partitions ne sont plus limitées par celles des disques individuels mais par leur volume cumulé et on peut à tout moment augmenter la taille d’une partition existante, en ajoutant au besoin un disque supplémentaire.</p>

<p>LVM emploie une terminologie particulière : une partition virtuelle est un « volume logique », lui-même compris dans un « groupe de volumes », ou association de plusieurs « volumes physiques ». Chacun de ces derniers correspond en fait à une partition « réelle » (ou à une partition RAID logicielle).</p>

<p>Cette technique fonctionne assez simplement : chaque volume, physique ou logique, est découpé en blocs de même taille, que LVM fait correspondre entre eux. L’ajout d’un nouveau disque entraîne la création d’un nouveau volume physique et ses nouveaux blocs pourront être associés à n’importe quel groupe de volumes. Toutes les partitions du groupe de volumes ainsi agrandi disposeront alors d’espace supplémentaire pour s’étendre.</p>

<p>L’outil de partitionnement configure LVM en plusieurs étapes. Il faut d’abord créer sur les disques existants des partitions qui seront les <strong>volumes physiques LVM</strong>. Pour activer LVM, on choisira <strong>Configurer le gestionnaire de volumes logiques (LVM)</strong>, puis dans cet écran de configuration, <strong>Créer un groupe de volumes</strong> — auquel on associera les volumes physiques existants. Enfin, on pourra créer des volumes logiques au sein de ce groupe de volumes. On notera que le système de partitionnement automatique est capable de faire toute cette mise en place.</p>

<p>Dans le menu du partitionneur, chaque volume logique apparaît comme un disque avec une seule partition que l’on ne peut pas supprimer mais que l’on peut affecter à l’usage de son choix.</p>

<h4 id="3135chiffrement-de-partitions">3.13.5. Chiffrement de partitions</h4>

<p>Pour garantir la confidentialité de vos données, par exemple en cas de perte ou de vol de votre ordinateur ou d’un disque dur, il est possible de chiffrer les données de partitions. Cette fonctionnalité peut se greffer très facilement en amont de n’importe quel système de fichiers puisque, comme pour LVM, Linux (et plus particulièrement le pilote <code class="language-plaintext highlighter-rouge">dm-crypt</code>) utilise le <em>Device Mapper</em> pour créer une partition virtuelle (dont le contenu sera protégé) en s’appuyant sur une partition sous-jacente qui stockera les données sous une forme chiffrée (grâce à LUKS — <em>Linux Unified Key Setup</em> soit « Configuration de clés unifiée pour Linux » — un format standard permettant de stocker les données chiffrées mais aussi des méta-informations indiquant les algorithmes de chiffrement employés).</p>

<blockquote>
  <p><strong>SÉCURITÉ Partition d’échange chiffrée</strong></p>

  <p>Lorsqu’une partition chiffrée est employée, la clé de chiffrement est stockée en mémoire vive. Obtenir cette clé permet également de déchiffrer les données. Il est donc vital de ne pas en laisser de copie accessible à l’éventuel voleur de l’ordinateur ou du disque, ou à un technicien de maintenance. C’est pourtant quelque chose qui peut facilement arriver avec un portable, puisque, lors d’une mise en veille prolongée, le contenu de la mémoire vive est stockée sur la partition d’échange. Si celle-ci n’est pas elle-même chiffrée, le voleur peut la récupérer et l’utiliser pour déchiffrer les données des partitions chiffrées. C’est pourquoi, lorsque vous employez des partitions chiffrées, il est impératif de chiffrer également la partition d’échange !</p>

  <p>L’installateur Debian prévient l’utilisateur lorsqu’il essaye de créer une partition chiffrée et que la partition d’échange ne l’est pas.</p>
</blockquote>

<p>Pour créer une partition chiffrée, il faut d’abord attribuer une partition disponible à cet usage. Pour cela, il convient de la sélectionner et d’indiquer qu’elle sera utilisée comme <strong>volume physique pour chiffrement</strong>. Ensuite, et après que le partitionnement du disque contenant ce volume physique a été effectué, vous devrez sélectionner <strong>Configurer les volumes chiffrés</strong>. Il sera alors proposé d’initialiser le volume physique avec des données aléatoires (rendant plus difficile la localisation des données réelles) puis de saisir une <strong>phrase secrète de chiffrement</strong> qu’il vous faudra saisir à chaque démarrage de votre ordinateur afin d’accéder au contenu de votre partition chiffrée. Une fois cette étape terminée et de retour au menu de l’outil de partitionnement, une nouvelle partition est disponible dans un <strong>volume chiffré</strong> et vous pouvez désormais la configurer comme n’importe quelle autre partition. Le plus souvent, cette partition sera utilisée comme volume physique pour LVM afin de pouvoir protéger plusieurs partitions (volumes logiques LVM) avec la même clé de chiffrement, dont notamment la partition d’échange.</p>

<h3 id="314installation-du-système-de-base-debian">3.14. Installation du système de base Debian</h3>

<p>Cette étape, qui ne demande pas d’interaction de la part de l’utilisateur, installe les paquets du « système de base » de Debian. Celui-ci comprend les outils <code class="language-plaintext highlighter-rouge">dpkg</code> et <code class="language-plaintext highlighter-rouge">apt</code>, qui gèrent les paquets Debian, ainsi que les utilitaires nécessaires pour démarrer le système et commencer à l’exploiter.</p>

<figure><img src="/assets/images/linux/inst-basesystem.png" /><figcaption>Installation du système de base</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-basesystem.png">Source de l’image</a></p>

<p><strong>Figure 11. Installation du système de base</strong></p>

<h3 id="315configuration-de-loutil-de-gestion-des-paquets-apt">3.15. Configuration de l’outil de gestion des paquets (<code class="language-plaintext highlighter-rouge">apt</code>)</h3>

<p>Pour que l’on puisse installer des logiciels supplémentaires, il est nécessaire de configurer APT, en lui indiquant où trouver les paquets Debian. Cette étape est aussi automatisée que possible. Elle commence par une question demandant s’il faut utiliser une source de paquets sur le réseau, ou s’il faut se contenter des seuls paquets présents sur le CD-Rom.</p>

<blockquote>
  <p><strong>NOTE* CD-Rom Debian dans le lecteur</strong></p>

  <p>Si l’installateur détecte un disque d’installation Debian dans le lecteur de CD-Rom, il n’est pas toujours nécessaire de configurer APT pour aller chercher des paquets sur le réseau : il est automatiquement configuré pour lire les paquets depuis ce lecteur. Si le disque fait partie d’un jeu de plusieurs, il proposera cependant d’« explorer » d’autres disques afin de référencer tous les paquets qu’ils stockent.</p>
</blockquote>

<p>S’il faut utiliser des paquets en provenance du réseau, les deux questions suivantes permettent de sélectionner un serveur sur lequel aller chercher ces paquets, en choisissant d’abord un pays, puis un miroir disponible dans ce pays (il s’agit d’un serveur public qui met à disposition une copie de tous les fichiers du serveur de Debian).</p>

<figure><img src="/assets/images/linux/inst-mirror.png" /><figcaption>Choix d'un miroir Debian</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-mirror.png">Source de l’image</a></p>

<p><strong>Figure 12. Choix d’un miroir Debian</strong></p>

<p>Enfin, le programme propose de recourir à un mandataire (proxy) HTTP. En son absence, l’accès à Internet sera direct. Si l’on tape <code class="language-plaintext highlighter-rouge">https://proxy.falcot.com:3128</code>, APT fera appel au <em>proxy/cache</em> de Falcot, un programme « Squid ». Il est possible de retrouver ces paramètres en consultant la configuration d’un navigateur web sur une autre machine connectée au même réseau.</p>

<p>Les fichiers <code class="language-plaintext highlighter-rouge">Packages.gz</code> et <code class="language-plaintext highlighter-rouge">Sources.gz</code> sont ensuite automatiquement téléchargés pour mettre à jour la liste des paquets reconnus par APT.</p>

<blockquote>
  <p><strong>B.A.-BA Mandataire HTTP, proxy</strong></p>

  <p>Un mandataire (ou proxy) HTTP est un serveur effectuant une requête HTTP pour le compte des utilisateurs du réseau. Il permet parfois d’accélérer les téléchargements en gardant une copie des fichiers ayant transité par son biais (on parle alors de <em>proxy/cache</em>). Dans certains cas, c’est le seul moyen d’accéder à un serveur web externe ; il est alors indispensable de renseigner la question correspondante de l’installation pour que le programme puisse récupérer les paquets Debian par son intermédiaire.</p>
</blockquote>

<h3 id="316concours-de-popularité-des-paquets">3.16. Concours de popularité des paquets</h3>

<p>Le système Debian contient un paquet popularity-contest, dont le but est de compiler des statistiques d’utilisation des paquets. Ce programme collecte chaque semaine des informations sur les paquets installés et ceux utilisés récemment et les envoie de manière anonyme aux serveurs du projet Debian. Le projet peut alors tirer parti de ces informations pour déterminer l’importance relative de chaque paquet, ce qui influe sur la priorité qui lui sera accordée. En particulier, les paquets les plus « populaires » se retrouveront sur le premier CD-Rom d’installation, ce qui en facilitera l’accès pour les utilisateurs ne souhaitant pas télécharger ou acheter le jeu complet.</p>

<p>Ce paquet n’est activé que sur demande, par respect pour la confidentialité des usages des utilisateurs.</p>

<h3 id="317sélection-des-paquets-à-installer">3.17. Sélection des paquets à installer</h3>

<p>L’étape suivante permet de choisir de manière très grossière le type d’utilisation de la machine ; les dix tâches présentées correspondent à des listes de paquets à installer. La liste des paquets réellement installés sera affinée et complétée par la suite, mais cette étape donne une bonne base très simplement.</p>

<p>Certains paquets sont par ailleurs automatiquement installés en fonction du matériel détecté (grâce au programme <code class="language-plaintext highlighter-rouge">discover-pkginstall</code> du paquet discover). Ainsi, s’il détecte une machine virtuelle VirtualBox, il installera le paquet virtualbox-guest-dkms permettant une meilleure intégration de la machine virtuelle avec son système hôte.</p>

<figure><img src="/assets/images/linux/inst-tasksel.png" /><figcaption>Choix des tâches</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/inst-tasksel.png">Source de l’image</a></p>

<p><strong>Figure 13. Choix des tâches</strong></p>

<h3 id="318installation-du-chargeur-damorçage-grub">3.18. Installation du chargeur d’amorçage GRUB</h3>

<p>Le chargeur d’amorçage est le premier programme démarré par le BIOS. Ce programme charge en mémoire le noyau Linux puis l’exécute. Souvent, il propose un menu permettant de choisir le noyau à charger et/ou le système d’exploitation à démarrer.</p>

<p>Le menu proposé par GRUB contient par défaut tous les noyaux Linux installés ainsi que tous les autres systèmes d’exploitation détectés. C’est pourquoi on acceptera la proposition de l’installer dans le <em>Master Boot Record</em> (MBR). Puisque garder les anciennes versions préserve la capacité à amorcer le système même si le dernier noyau installé est défectueux ou mal adapté au matériel, il est judicieux de conserver quelques anciennes versions de noyau.</p>

<p>GRUB est le chargeur d’amorçage installé en standard par Debian, en raison de sa supériorité technique : il traite la plupart des systèmes de fichiers et n’a donc pas besoin d’être mis à jour à chaque installation d’un nouveau noyau car, lors de l’amorçage, il lit sa configuration et retrouve la position exacte du nouveau noyau. Sa version 1 (désormais connue sous le nom « Grub Legacy ») ne gérait pas toutes les combinaisons de LVM et de RAID logiciel ; la version 2, installée par défaut, est plus complète. Il peut rester des situations où il faut recommander LILO (autre chargeur d’amorçage) ; l’installateur le proposera automatiquement.</p>

<blockquote>
  <p><strong>ATTENTION</strong> Chargeurs d’amorçage et architectures</p>

  <p>LILO et GRUB, mentionnés dans ce chapitre, sont des chargeurs d’amorçage pour les architectures <em>i386</em> et <em>amd64</em>. Si vous installez Debian sur une autre architecture, c’est un autre chargeur qui sera employé. Citons entre autres <code class="language-plaintext highlighter-rouge">yaboot</code> ou <code class="language-plaintext highlighter-rouge">quik</code> pour <em>powerpc</em>, <code class="language-plaintext highlighter-rouge">silo</code> pour <em>sparc</em>, <code class="language-plaintext highlighter-rouge">aboot</code> pour <em>alpha</em>, <code class="language-plaintext highlighter-rouge">arcboot</code> pour <em>mips</em>.</p>
</blockquote>

<h3 id="319terminer-linstallation-et-redémarrer">3.19. Terminer l’installation et redémarrer</h3>

<p>L’installation étant maintenant terminée, le programme vous invite à sortir le CD-Rom de son lecteur, puis à redémarrer le PC.</p>

<h2 id="4-tâches-après-installation">4. Tâches après-installation</h2>

<p>Mise à jour du système.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># apt-get update &amp;&amp; apt-get -y upgrade
</code></pre></div></div>

<h2 id="5-console-graphique">5. Console graphique</h2>

<p>Le domaine des bureaux graphiques connaît deux grandes familles de logiciels : GNOME et KDE, tous deux très populaires. C’est un phénomène que l’on ne retrouve pas dans tous les domaines du logiciel libre ; les concurrents d’Apache ne sont ainsi que des serveurs web marginaux.</p>

<p>Cette diversité a une origine historique, KDE fut le premier projet de bureau graphique mais son choix de la bibliothèque graphique Qt ne convenait pas à tous. À l’époque, Qt n’était pas encore un logiciel libre et GNOME a rapidement démarré en optant pour la bibliothèque graphique GTK+. Depuis, les projets évoluent en parallèle. Qt est depuis devenu libre, mais ces deux projets n’ont pas fusionné.</p>

<p>Ils collaborent cependant : par l’intermédiaire de FreeDesktop.org, ils ont défini des normes favorisant l’interopérabilité entre les différentes applications.</p>

<p>Nous ne nous aventurerons pas à répondre à l’épineuse question du choix du bureau graphique : ce chapitre passe rapidement en revue les différentes possibilités et fournit des éléments de réflexion sur le sujet. Il est toujours préférable d’essayer les différentes possibilités avant d’en adopter une.</p>

<h3 id="51gnome">5.1. GNOME</h3>

<p>Debian Jessie contient la version 3.14 de GNOME, qui s’installe simplement par la commande <code class="language-plaintext highlighter-rouge">apt-get install gnome</code> (et qui est automatiquement installée par la tâche <strong>Environnement graphique de bureau</strong>).</p>

<p>GNOME est intéressant de par ses efforts dans le domaine de l’ergonomie et de l’accessibilité. Des professionnels du design ont en effet rédigé des normes pour aider les développeurs à créer des interfaces graphiques satisfaisantes. Le projet est en outre encouragé par de grands acteurs de l’informatique comme Intel, IBM, Oracle, Novell, sans oublier des distributions Linux. Enfin, un grand nombre de langages de programmation sont exploitables pour développer des applications s’intégrant à GNOME.</p>

<figure><img src="/assets/images/linux/gnome.png" /><figcaption>Le bureau GNOME</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/gnome.png">Source de l’image</a></p>

<p><strong>Figure 13.1. Le bureau GNOME</strong></p>

<p>Pour les administrateurs, GNOME semble être mieux préparé à des déploiements massifs. La configuration des applications est gérée par l’interface GSettings et stockée dans la base de données DConf. De cette manière, les réglages de configuration peuvent être interrogés et modifiés par les utilitaires en ligne de commande <code class="language-plaintext highlighter-rouge">gsettings</code> et <code class="language-plaintext highlighter-rouge">dconf</code>, ou par l’interface graphique <code class="language-plaintext highlighter-rouge">dconf-editor</code>. L’administrateur peut donc modifier la configuration des utilisateurs par un simple script. Le site web suivant regroupe toutes les informations qui peuvent intéresser un administrateur en charge de stations employant GNOME :</p>

<p>→ <a href="https://help.gnome.org/admin/">https://help.gnome.org/admin/</a></p>

<h3 id="52kde">5.2. KDE</h3>

<p>La version 4.14 de KDE, intégrée à Debian Jessie, s’installe facilement avec la commande <code class="language-plaintext highlighter-rouge">apt-get install kde-standard</code>.</p>

<p>KDE a évolué rapidement en suivant une approche très pragmatique ; ses auteurs ont très vite obtenu d’excellents résultats, ce qui leur a permis de mettre en place une importante base d’utilisateurs… contribuant elle-même à la qualité du projet. Globalement, KDE est un bureau graphique parfaitement mûr, disposant d’une très large palette d’applications.</p>

<figure><img src="/assets/images/linux/kde.png" /><figcaption>Le bureau KDE</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/kde.png">Source de l’image</a></p>

<p><strong>Figure 13.2. Le bureau KDE</strong></p>

<p>Depuis la publication de Qt 4.0, le dernier problème de licence concernant KDE est résolu. Cette dernière est en effet soumise à la licence GPL, aussi bien sous Linux que sous Windows (alors qu’auparavant, la version Windows disposait d’une licence spécifique qui n’était pas libre). Notons enfin que le langage C++ est obligatoire pour développer une application KDE.</p>

<h3 id="53xfce-et-autres">5.3. Xfce et autres</h3>

<p>Xfce est un bureau graphique simple et allégé qui convient parfaitement aux ordinateurs limités en ressources. Il s’installe avec la commande <code class="language-plaintext highlighter-rouge">apt-get install xfce4</code>. Il s’appuie — comme GNOME — sur la bibliothèque graphique GTK+ et de nombreux composants sont communs avec ce dernier.</p>

<p>Contrairement à GNOME et KDE, Xfce n’est pas un projet très vaste. Outre les composants de base d’un bureau moderne (gestionnaire de fichiers, gestionnaire de fenêtres, gestionnaire de sessions, panneau démarreur d’applications, etc.), il ne fournit que quelques applications : un terminal, un calendrier (Orage), un visionneur d’images, un graveur de CD-Rom/DVD-Rom, un lecteur de fichiers multimédia (Parole), un contrôleur de volume (pour le son) et un éditeur de texte (Mousepad).</p>

<figure><img src="/assets/images/linux/xfce.png" /><figcaption>Le bureau Xfce</figcaption></figure>

<p><a href="https://debian-handbook.info/browse/fr-FR/stable/images/xfce.png">Source de l’image</a></p>

<p><strong>Figure 13.3. Le bureau Xfce</strong></p>

<p>Un autre bureau graphique fourni dans Jessie est LXDE, sa caractéristique principale est sa « légèreté ». Il peut être installé avec l’aide du métapaquet lxde.</p>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Introduction" /><category term="Administration" /><category term="introduction" /><summary type="html"><![CDATA[Il existe un guide complet pour répondre à toutes les questions concernant l'installation de Debian : Manuel d'installation pour la distribution Debian GNU/Linux. Ce document est tiré du livre Le cahier de l'administrateur Debian, Chapitre 4. Installation.]]></summary></entry><entry><title type="html">La ligne de commande</title><link href="https://linux.goffinet.org/administration/le-shell/la-ligne-de-commande/" rel="alternate" type="text/html" title="La ligne de commande" /><published>2018-01-01T00:00:00+01:00</published><updated>2021-05-28T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/le-shell/la-ligne-de-commande</id><content type="html" xml:base="https://linux.goffinet.org/administration/le-shell/la-ligne-de-commande/"><![CDATA[<h1 id="la-ligne-de-commande">La ligne de commande</h1>

<p>Voici une première approche de la ligne de commande du Shell Linux. On apprendra ici à manipuler les commandes du système et des alias des commandes.</p>

<h2 id="1-la-ligne-de-commande">1. La ligne de commande</h2>

<ul>
  <li>La ligne de commande est un moyen simple d’interagir avec un ordinateur.</li>
  <li>Le shell interprète les commandes tapées au clavier.</li>
  <li>Le <em>prompt</em>, ou l’invite de commande, qui se termine par un <code class="language-plaintext highlighter-rouge">$</code> pour un utilisateur standard ou un <code class="language-plaintext highlighter-rouge">#</code> pour l’administrateur du système (désigné <em>root</em>), indique que le shell attend les commandes de l’utilisateur.</li>
  <li>Le shell est également un langage de programmation que l’on peut utiliser pour lancer des tâches automatiquement.</li>
  <li>Les programmes shell sont appelés par des scripts.</li>
</ul>

<h3 id="11-définitions">1.1. Définitions</h3>

<ul>
  <li>Le terminal = l’environnement d’entrée/sortie</li>
  <li>La console = terminal physique</li>
</ul>

<p>Shell =</p>

<ul>
  <li>“Interpréteur” de commande : lancer des commandes,</li>
  <li>Environnement : confort de l’utilisateur, sécurité</li>
  <li>Langage de programmation : fonctionnalités</li>
  <li>Traitement du texte</li>
  <li>Interface avec le noyau</li>
  <li>…</li>
</ul>

<p>En informatique, le <strong>shell</strong> est le moyen le plus simple d’interagir avec le système d’exploitation. Sur Microsoft Windows, selon les versions, le shell est appelé par les commandes <code class="language-plaintext highlighter-rouge">CMD.EXE</code> ou <code class="language-plaintext highlighter-rouge">COMMAND.COM</code>, sans oublier <code class="language-plaintext highlighter-rouge">powershell.exe</code>. Sur Linux ou Unix, il existe une grande variété de shells comme <code class="language-plaintext highlighter-rouge">sh</code>, <code class="language-plaintext highlighter-rouge">bash</code>, <code class="language-plaintext highlighter-rouge">ksh</code>, etc. Un shell accepte des commandes frappées à partir d’une invite de commandes (l’entrée standard) et les exécute, généralement en temps réel; l’affichage des résultats est rendu en général sur un écran (la sortie standard).</p>

<h3 id="12-types-de-shells">1.2. Types de shells</h3>

<p>On obtient la liste des shells présents sur le système en affichant le fichier <code class="language-plaintext highlighter-rouge">/etc/shells</code> :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> /etc/shells
</code></pre></div></div>

<ul>
  <li><strong><code class="language-plaintext highlighter-rouge">sh</code></strong> : Bourn Shell, historique, standard, “portable”</li>
  <li><strong><code class="language-plaintext highlighter-rouge">csh</code></strong>/<strong>tcsh</strong> : C Shell</li>
  <li><strong><code class="language-plaintext highlighter-rouge">ksh</code></strong> : Korn Shell</li>
  <li><strong><code class="language-plaintext highlighter-rouge">bash</code></strong> : Bourn Again Shell Linux, le plus utilisé</li>
</ul>

<h3 id="13-normes">1.3. Normes</h3>

<ul>
  <li><a href="https://fr.wikipedia.org/wiki/POSIX">POSIX</a></li>
  <li><a href="https://www2.opengroup.org/ogsys/jsp/publications/PublicationsBySubjectType.jsp?limit=mainSubjectId-44:useInPublications-Y">Single Unix Specification (SUS)</a>.</li>
</ul>

<h3 id="14-bourne-again-shell">1.4. Bourne Again SHell</h3>

<p>Le projet GNU offre des outils pour l’administration de système de type UNIX qui sont libres et qui respectent les standards UNIX.</p>

<p>Bash est un Shell compatible avec sh qui incorpore des spécificités utiles du Korn Shell (ksh) et du C Shell (csh). Il est censé se conformer à la norme IEEE POSIX P1003.2/ISO 9945.2 Standards des Shell et Outils. Il offre des améliorations fonctionnelles par rapport à sh pour la programmation et l’utilisation interactive.</p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="15-le-shell-interactif">1.5. Le shell interactif</h3>

<p>Quand on obtient un terminal avec une ligne de commande, on se situe dans un environnement encadré par un programme “shell” qui a créé un processus sur le système. Il permet notamment d’exécuter des commandes.</p>

<h3 id="16-commande-echo">1.6. Commande echo</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ECHO(1)                  Manuel de l'utilisateur Linux                 ECHO(1)

NOM
       echo - Afficher une ligne de texte

SYNOPSIS
       echo [-neE] [message ...]
       echo {--help,--version}

DESCRIPTION
       Cette page de manuel documente la version GNU de echo.

       La  plupart  des  shells ont une commande intégrée ayant le même nom et
       les mêmes fonctionnalités.

       echo écrit chaque message sur la sortie standard, avec une espace entre
       chacun d'eux, et un saut de ligne après le dernier.
</code></pre></div></div>

<p>La commande <code class="language-plaintext highlighter-rouge">echo</code> permet d’afficher du texte à l’écran :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[francois@c7li ~]$ echo "affiche ce texte"
affiche ce texte
[francois@c7li ~]$
</code></pre></div></div>

<h3 id="17-prompt-invite-de-commande">1.7. Prompt, Invite de commande</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[francois@c7li ~]$
</code></pre></div></div>

<p>On remarque le “prompt”, “l’invite de commande” composée de :</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">francois</code> l’utilisateur connecté</li>
  <li><code class="language-plaintext highlighter-rouge">@</code> séparateur</li>
  <li><code class="language-plaintext highlighter-rouge">c7li</code> nom de l’ordinateur</li>
  <li><code class="language-plaintext highlighter-rouge">~</code> “titld” qui indique le dossier utilisateur comme dossier courant</li>
  <li><code class="language-plaintext highlighter-rouge">$</code> qui indique le type de connexion</li>
</ul>

<p><strong>Cette configuration de l’environnement est chargée sous forme de script au moment de la connexion de l’utilisateur.</strong></p>

<h3 id="18-commande-ls">1.8. Commande <code class="language-plaintext highlighter-rouge">ls</code></h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>LS(1)                    Manuel de l'utilisateur Linux                   LS(1)

NOM
       ls, dir, vdir - Afficher le contenu d'un répertoire

SYNOPSIS
       ls [options] [fichier...]
       dir [fichier...]
       vdir [fichier...]

       Options POSIX : [-CFRacdilqrtu1] [--]

       Options  GNU  (forme  courte) : [-1abcdfgiklmnopqrstuvwxABCDFGHLNQRSUX]
       [-w cols] [-T cols]  [-I  motif]  [--full-time]  [--show-control-chars]
       [--block-size=taille]      [--format={long,verbose,commas,across,verti‐
       cal,single-column}]                 [--sort={none,time,size,extension}]
       [--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]]
       [--help] [--version] [--]

DESCRIPTION
       La commande  ls  affiche  tout  d'abord  l'ensemble  de  ses  arguments
       fichiers  autres  que  des  répertoires. Puis ls affiche l'ensemble des
       fichiers contenus dans chaque répertoire  indiqué.  Si  aucun  argument
       autre  qu'une  option  n'est  fourni,  l'argument  « . » (répertoire en
       cours) est pris par défaut.
</code></pre></div></div>

<h2 id="2-entrer-des-commandes-dans-linvite">2. Entrer des commandes dans l’invite</h2>

<p>Pour entrer des commandes dans le shell, il faut :</p>

<ul>
  <li>une <strong>commande</strong> valide (dans le PATH ou précisée par un chemin)</li>
</ul>

<p>suivie <em>éventuellement</em> d’une ou plusieurs <strong>options</strong> notées</p>

<ul>
  <li>par un “dash”, le tiret, “<code class="language-plaintext highlighter-rouge">-</code>” en <strong>notation abrégée</strong> ou un double “dash”, double tiret, “<code class="language-plaintext highlighter-rouge">--</code>” en <strong>notation</strong> extensive,</li>
  <li>des <strong>arguments</strong>,</li>
  <li>et un <strong>retour chariot</strong> qui accepte la ligne entrée.</li>
</ul>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="21-syntaxe-des-commandes">2.1. Syntaxe des commandes</h3>

<p>Chaque commande dispose de sa propre syntaxe :</p>

<p>Sans options :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span>
</code></pre></div></div>

<p>Avec une option :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> <span class="nt">-l</span>
</code></pre></div></div>

<p>Avec plusieurs options :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> <span class="nt">-l</span> <span class="nt">-a</span> <span class="nt">-h</span> <span class="nt">-t</span>
<span class="nb">ls</span> <span class="nt">-laht</span>
</code></pre></div></div>

<h3 id="22-options-et-arguments">2.2. Options et arguments</h3>

<p>Options “double dash” :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> <span class="nt">--all</span>
<span class="nb">ls</span> <span class="nt">--help</span>
</code></pre></div></div>

<p>Donner un argument :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> <span class="nt">-l</span> /home
</code></pre></div></div>

<p>Donner plusieurs arguments :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> <span class="nt">-l</span> /home /var
</code></pre></div></div>

<h3 id="23-commandes-hors-du-path">2.3. Commandes hors du PATH</h3>

<p>A titre d’exemple la commande “<code class="language-plaintext highlighter-rouge">ls</code>” s’exécute car elle est située dans un des chemins indiqués dans la <strong>variable d’environnment PATH</strong>. On peut afficher ces chemins par défaut pour les fichiers exécutables via cette commande :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">echo</span> <span class="nv">$PATH</span>
</code></pre></div></div>

<p>peut afficher ce résultat :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
</code></pre></div></div>

<p>On peut exécuter le logiciel directement à partir de l’emplacement absolu :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/bin/ls
</code></pre></div></div>

<p>On peut exécuter le logiciel directement à partir de l’emplacement relatif :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> /bin
./ls <span class="nt">-l</span> <span class="nb">ls</span>
</code></pre></div></div>

<h3 id="24-entrer-des-commandes">2.4. Entrer des commandes</h3>

<p>On peut entrer des commandes sur plusieurs lignes :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> /var
<span class="nb">ls</span> /home
<span class="nb">ls</span> /usr
</code></pre></div></div>

<p>Ou on peut entrer des commandes sur une seule ligne on peut séparer les commandes par un “semicolon”, point-virgule, “<code class="language-plaintext highlighter-rouge">;</code>” :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> /var<span class="p">;</span> <span class="nb">ls</span> /home<span class="p">;</span> <span class="nb">ls</span> /usr
</code></pre></div></div>

<h3 id="25-séquences-de-commandes">2.5. Séquences de commandes</h3>

<p>Si les arguments diffèrent pour une même commande, on peut créer une boucle et profiter de variables :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for </span>arg <span class="k">in</span> /home /var /usr
<span class="k">do
  </span><span class="nb">echo</span> <span class="s2">"visualisation : "</span> <span class="nv">$arg</span>
  <span class="nb">ls</span> <span class="nt">-a</span> <span class="nv">$arg</span>
<span class="k">done</span>
</code></pre></div></div>

<p>Ou encore en une seule ligne</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for </span>arg <span class="k">in</span> /home /usr /var<span class="p">;</span> <span class="k">do </span><span class="nb">ls</span> <span class="nt">-la</span> <span class="nv">$arg</span><span class="p">;</span> <span class="k">done</span>
</code></pre></div></div>

<p>Mais cela était inutile :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> /home /var /usr
</code></pre></div></div>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="26-codes-de-retour">2.6. Codes de retour</h3>

<p>La variable spéciale <code class="language-plaintext highlighter-rouge">$?</code> contient le code de retour d’exécution de la commande précédente.</p>

<p>Une commande qui s’exécute avec succès rend un retour valorisé à <code class="language-plaintext highlighter-rouge">0</code>.
Par exemple la commande <code class="language-plaintext highlighter-rouge">true</code> rend toujours ce code de retour :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">true</span> <span class="p">;</span> <span class="nb">echo</span> <span class="nv">$?</span>
</code></pre></div></div>

<p>Une commande qui s’échoue rend un retour valorisé à <code class="language-plaintext highlighter-rouge">1</code>.
Par exemple la commande <code class="language-plaintext highlighter-rouge">false</code> rend toujours ce code de retour :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">false</span> <span class="p">;</span> <span class="nb">echo</span> <span class="nv">$?</span>
</code></pre></div></div>

<h3 id="27-exécutions-conditionnelles-de-base">2.7. Exécutions conditionnelles de base</h3>

<p><code class="language-plaintext highlighter-rouge">&amp;&amp;</code> et <code class="language-plaintext highlighter-rouge">||</code> sont des séparateurs de commandes conditionnels.</p>

<h4 id="opérateur-">Opérateur <code class="language-plaintext highlighter-rouge">&amp;&amp;</code></h4>

<p>Voyez-vous même :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">true</span> <span class="o">&amp;&amp;</span> <span class="nb">echo </span>la commande précédente a réussi
</code></pre></div></div>

<blockquote>
  <p>Ecrit le  message “la commande précédente a réussi” si la première commande est exécutée sans erreur.</p>
</blockquote>

<p>Par exemple sous Debian/Ubuntu :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt-get update <span class="o">&amp;&amp;</span> <span class="nb">sudo </span>apt-get <span class="nt">-y</span> upgrade
</code></pre></div></div>

<p>Par exemple sous Centos :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>yum <span class="nt">-y</span> <span class="nb">install </span>epel-release <span class="o">&amp;&amp;</span> <span class="nb">sudo </span>yum repolist
</code></pre></div></div>

<h4 id="opérateur--1">Opérateur <code class="language-plaintext highlighter-rouge">||</code></h4>

<p>Voyez-vous même :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">false</span> <span class="o">||</span> <span class="nb">echo </span>la commande précédente a échoué
</code></pre></div></div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>commande1 <span class="o">||</span> commande2
</code></pre></div></div>

<blockquote>
  <p>Ecrit le  message “la commande précédente a échoué” si la première commande a échoué.</p>
</blockquote>

<p>Par exemple :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt-get update <span class="o">||</span> <span class="nb">sudo </span>yum <span class="nt">-y</span> update
</code></pre></div></div>

<h3 id="27-historique-des-commandes">2.7. Historique des commandes</h3>

<p>Pour voir la liste des commandes que vous avez validées, vous pouvez utiliser la commande interne de bash <code class="language-plaintext highlighter-rouge">history</code> :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">history</span>
</code></pre></div></div>

<p>La commande <code class="language-plaintext highlighter-rouge">history</code> liste les commandes en cache ainsi que celles sauvées dans <code class="language-plaintext highlighter-rouge">~/.bash_history</code>. Lorsque l’utilisateur quitte le shell, les commandes en cache sont inscrites dans ce fichier.</p>

<p>Vous pouvez récupérer les commandes tapées en utilisant les flèches directionnelles (haut et bas) de votre clavier.</p>

<p>La commande <code class="language-plaintext highlighter-rouge">history -c</code> efface l’historique de la session courante.</p>

<h4 id="historique--raccourcis-emacs">Historique : raccourcis emacs</h4>

<p>Vous pouvez également utiliser des raccourcis emacs qui vous permettent d’exécuter et même de modifier ces lignes.</p>

<p>Par exemple <code class="language-plaintext highlighter-rouge">Ctrl-p</code>/<code class="language-plaintext highlighter-rouge">Ctrl-n</code> pour ligne précédente/ligne suivante ou <code class="language-plaintext highlighter-rouge">Ctrl-a</code> / <code class="language-plaintext highlighter-rouge">Ctrl-e</code> pour début/fin de ligne.</p>

<p>Pour en savoir plus sur Emacs : <a href="https://www.tuteurs.ens.fr/unix/editeurs/emacs.html">https://www.tuteurs.ens.fr/unix/editeurs/emacs.html</a></p>

<h4 id="historique--raccourcis-bang">Historique : raccourcis bang</h4>

<p>Les raccourcis bang reprennent les commandes précédentes, par exemple :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> <span class="nt">-a</span>
^ls^ps
<span class="o">!!</span>
<span class="nb">history</span>
<span class="o">!</span>2
</code></pre></div></div>

<h3 id="28-tabulation">2.8. Tabulation</h3>

<p>Selon la distribution la touche de tabulation offre des possibilités d’auto-complétion.</p>

<p>L’auto-complétion de certains binaires non natifs demandent l’installation et la configuration de scripts ou paquets supplémentaires.</p>

<h3 id="29-substitution-de-commandes">2.9. Substitution de commandes</h3>

<p>La commande <code class="language-plaintext highlighter-rouge">uname</code> permet de connaître la version du noyau courant. Comment la substituer dans une variable ?</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">uname</span> <span class="nt">-a</span>
</code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Linux c7li 3.10.0-327.4.5.el7.x86_64 #1 SMP Mon Jan 25 22:07:14 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
</code></pre></div></div>

<p>Mise en variable de la sortie de la commande de deux manières :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">system</span><span class="o">=</span><span class="si">$(</span><span class="nb">uname</span> <span class="nt">-a</span><span class="si">)</span>
</code></pre></div></div>

<p>ou</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">system</span><span class="o">=</span><span class="sb">`</span><span class="nb">uname</span> <span class="nt">-a</span><span class="sb">`</span>
</code></pre></div></div>

<p>Vérification.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">echo</span> <span class="nv">$system</span>
</code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Linux c7li 3.10.0-327.4.5.el7.x86_64 #1 SMP Mon Jan 25 22:07:14 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
</code></pre></div></div>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="210-alias">2.10. Alias</h3>

<p>Un alias est une autre manière de substituer des commandes.</p>

<p>Pour obtenir la liste des alias :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">alias</span>
</code></pre></div></div>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">alias </span><span class="nv">l</span><span class="o">=</span><span class="s1">'ls -CF'</span>
<span class="nb">alias </span><span class="nv">la</span><span class="o">=</span><span class="s1">'ls -A'</span>
<span class="nb">alias </span><span class="nv">ll</span><span class="o">=</span><span class="s1">'ls -alF'</span>
<span class="nb">alias ls</span><span class="o">=</span><span class="s1">'ls --color=auto'</span>
</code></pre></div></div>

<p>Créer un alias :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">alias </span><span class="nv">zozo</span><span class="o">=</span><span class="s2">"ls -a"</span>
<span class="nb">alias</span>
</code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>zozo
</code></pre></div></div>

<p>Les alias se chargent dans le profil de connexion de l’utilisateur.</p>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Le Shell" /><category term="Administration" /><category term="bash" /><category term="shell" /><category term="ligne de commande" /><category term="PATH" /><category term="echo" /><category term="historique des commandes" /><category term="substitution de commandes" /><summary type="html"><![CDATA[Voici une première approche de la ligne de commande du Shell Linux. On apprendra ici à manipuler les commandes du système et des alias des commandes.]]></summary></entry><entry><title type="html">Filtres sur les fichiers (globbing)</title><link href="https://linux.goffinet.org/administration/le-shell/filtres-sur-les-fichiers-globbing/" rel="alternate" type="text/html" title="Filtres sur les fichiers (globbing)" /><published>2018-01-01T00:00:00+01:00</published><updated>2020-09-22T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/le-shell/filtres-sur-les-fichiers-globbing</id><content type="html" xml:base="https://linux.goffinet.org/administration/le-shell/filtres-sur-les-fichiers-globbing/"><![CDATA[<h1 id="filtres-sur-les-fichiers-globbing">Filtres sur les fichiers (globbing)</h1>

<p>Les filtres sur les fichiers (globbing) permettent de les sélectionner de manière intelligente. En voici les principes.</p>

<h2 id="1-méta-caractères">1. Méta-caractères</h2>

<ul>
  <li>Les méta caractères ont un sens spécial pour le shell. Ils sont la plupart du temps utilisés comme jokers, pour correspondre à plusieurs noms de fichiers ou de dossiers en utilisant un minimum de lettres.</li>
  <li>Les caractères d’entrée (<code class="language-plaintext highlighter-rouge">&lt;</code>), de sortie (<code class="language-plaintext highlighter-rouge">&gt;</code>) et le tube (<code class="language-plaintext highlighter-rouge">|</code>) sont également des caractères spéciaux ainsi que le dollar (<code class="language-plaintext highlighter-rouge">$</code>) utilisé pour les variables. Notez que ces caractères sont rarement utilisés pour nommer des fichiers standards.</li>
</ul>

<h2 id="2-caractères-génériques-ou-jokers">2. Caractères génériques ou jokers</h2>

<h3 id="21-masque-générique-">2.1. Masque générique *</h3>

<p>Le caractère <code class="language-plaintext highlighter-rouge">*</code> remplace n’importe quel nombre de caractères :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ls  /usr/bin/b*
</code></pre></div></div>

<p>Liste tous les programmes commençant par “b”.</p>

<h3 id="22-masque-de-caractère-">2.2. Masque de caractère ?</h3>

<p>Le caractère <code class="language-plaintext highlighter-rouge">?</code> remplace n’importe quel caractère unique :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ls  /usr/bin/?b*
</code></pre></div></div>

<p>Liste tous les programmes ayant un “b” pour seconde lettre.</p>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="23-plage-de-valeurs--">2.3. Plage de valeurs <code class="language-plaintext highlighter-rouge">[ ]</code></h3>

<p><code class="language-plaintext highlighter-rouge">[ ]</code> est utilisé pour définir une plage de valeurs :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ls /usr/bin/linux[0-9][0-9]
</code></pre></div></div>

<p>liste tous les fichiers commençant par “linux” suivis de deux chiffres.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ls /usr/bin/[!Aa-Yy]*
</code></pre></div></div>

<p>liste tous les fichiers qui ne commencent pas par un “a” ni par un “A”  jusqu’à “y”/”Y”.</p>

<h3 id="24-filtre-chaîne1chaîne2">2.4. Filtre <code class="language-plaintext highlighter-rouge">{chaîne1,chaîne2}</code></h3>

<p><code class="language-plaintext highlighter-rouge">{chaîne1,chaîne2}</code> même si ce n’est pas simplement un joker de nom de fichiers, on peut l’utiliser pour filtrer des noms de fichiers :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ls  index.{htm,html}
</code></pre></div></div>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Le Shell" /><category term="Administration" /><category term="bash" /><category term="globbing" /><category term="fichier" /><summary type="html"><![CDATA[Les filtres sur les fichiers (globbing) permettent de les sélectionner de manière intelligente. En voici les principes.]]></summary></entry><entry><title type="html">Premier script shell</title><link href="https://linux.goffinet.org/administration/le-shell/premier-script-shell/" rel="alternate" type="text/html" title="Premier script shell" /><published>2018-01-01T00:00:00+01:00</published><updated>2020-09-22T00:00:00+02:00</updated><id>https://linux.goffinet.org/administration/le-shell/premier-script-shell</id><content type="html" xml:base="https://linux.goffinet.org/administration/le-shell/premier-script-shell/"><![CDATA[<h1 id="premier-script-shell">Premier script shell</h1>

<p>Voici un premier script shell qui vise à démontrer simplement l’environnement programmable du shell Linux.</p>

<h2 id="1-pourquoi-écrire-un-script-shell-">1. Pourquoi écrire un script shell ?</h2>

<ul>
  <li>Simplifier une procédure complexe</li>
  <li>Manipuler des scripts Init</li>
  <li>Déploiement logiciel : installateur de binaire, avec compilation, avec dépôts de paquetages</li>
  <li>Supervision de parc, Exploitation de journaux, Tâches de maintenances périodiques</li>
  <li>Configuration, gestion, maintenance, surveillance d’environnements virtualisés</li>
  <li>Gestion spécifique à la production :
    <ul>
      <li>Bases de données</li>
      <li>Services Web</li>
      <li>Services d’infra</li>
      <li>Services de traitement (batch)</li>
      <li>…</li>
    </ul>
  </li>
</ul>

<h2 id="2-editeur-de-texte">2. Editeur de texte</h2>

<p><strong>Un bon éditeur de texte est indispensable.</strong></p>

<p>On pourra changer l’éditeur par défaut sous Debian/Ubuntu avec la commande :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>update-alternatives <span class="nt">--config</span> editor
</code></pre></div></div>

<h3 id="21-vivim">2.1. vi/vim</h3>

<p><strong><code class="language-plaintext highlighter-rouge">vi/vim</code></strong>  : <code class="language-plaintext highlighter-rouge">vimtutor</code>, le tutoriel embarqué de <code class="language-plaintext highlighter-rouge">vim</code> est conseillé.</p>

<ul>
  <li>Trois modes : commandes, édition, dernière ligne</li>
  <li>Numérotation des lignes :  <strong><code class="language-plaintext highlighter-rouge">:set nu</code></strong></li>
  <li>Début du fichier : <strong><code class="language-plaintext highlighter-rouge">gg</code></strong></li>
  <li>Fin du fichier : <strong><code class="language-plaintext highlighter-rouge">G</code></strong></li>
  <li>Ligne 25 : <strong><code class="language-plaintext highlighter-rouge">25G</code></strong> ou <strong><code class="language-plaintext highlighter-rouge">:25</code></strong></li>
  <li>Insérer du texte, entrer en mode “insertion” : <strong><code class="language-plaintext highlighter-rouge">i</code></strong></li>
  <li>Sortir du mode “insertion” : <strong>touche ‘ESC’ (‘Echap’)</strong></li>
  <li>Quitter sans sauver : <strong><code class="language-plaintext highlighter-rouge">:q!</code></strong></li>
  <li>Sauver le document : <strong><code class="language-plaintext highlighter-rouge">:w</code></strong></li>
  <li>Quitter Vi et Sauver le document :  <strong><code class="language-plaintext highlighter-rouge">:x</code></strong> ou <strong><code class="language-plaintext highlighter-rouge">Shift ZZ</code></strong></li>
</ul>

<h3 id="22-nano">2.2. Nano</h3>

<p><code class="language-plaintext highlighter-rouge">nano</code> : “notepad like” devenu très populaire que l’on détaille pas ici.</p>

<h3 id="23-autres">2.3. Autres</h3>

<ul>
  <li><code class="language-plaintext highlighter-rouge">mcedit</code> : “norton commander like” est très utile pour débuter.</li>
  <li><code class="language-plaintext highlighter-rouge">emacs</code> : <a href="https://fr.wikipedia.org/wiki/Emacs">https://fr.wikipedia.org/wiki/Emacs</a></li>
</ul>

<h2 id="3-exécution-dun-script">3. Exécution d’un script</h2>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="31-invocation-de-linterpréteur">3.1. Invocation de l’interpréteur</h3>

<p>Créez un premier script nommé <code class="language-plaintext highlighter-rouge">monscript.sh</code> avec <code class="language-plaintext highlighter-rouge">nano</code> ou <code class="language-plaintext highlighter-rouge">vi</code> :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">echo</span> <span class="s2">"ceci est un mon premier script"</span>
</code></pre></div></div>

<p>Invoquez ce script <code class="language-plaintext highlighter-rouge">monscript.sh</code> avec sh :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sh monscript.sh
</code></pre></div></div>

<p>Renommez <code class="language-plaintext highlighter-rouge">monscript.sh</code> en <code class="language-plaintext highlighter-rouge">monscript</code> :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mv </span>monscript.sh monscript
</code></pre></div></div>

<p>Ajoutez une commande à <code class="language-plaintext highlighter-rouge">monscript</code> :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">echo</span> <span class="s2">"echo </span><span class="sb">`</span>ceci est ma seconde ligne<span class="sb">`</span><span class="s2">"</span> <span class="o">&gt;&gt;</span> monscript
</code></pre></div></div>

<p>Invoquez ce script <code class="language-plaintext highlighter-rouge">monscript</code> avec <code class="language-plaintext highlighter-rouge">sh</code>, l’extension qui dénomme le script n’a aucune portée pour le shell :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sh monscript
</code></pre></div></div>

<h3 id="32-appels-directs-du-script">3.2. Appels directs du script</h3>

<p><strong>Objectif : le script devrait rester accessible directement dans la ligne de commande :</strong></p>

<h4 id="première-méthode">Première méthode</h4>

<p>Par exemple, en plaçant le script dans un chemin du PATH :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
</code></pre></div></div>

<p>et dans</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>~/bin
</code></pre></div></div>

<h4 id="seconde-méthode">Seconde méthode</h4>

<p>En modifiant la variable PATH en ajoutant l’endroit du fichier soit l’emplacement local courant. Avec cette méthode, tout script à exécuter à partir l’endroit courant peut être appelé.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$PATH</span>:.
</code></pre></div></div>

<h4 id="troisième-méthode">Troisième méthode</h4>

<p>Appel depuis son emplacement original :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./monscript.sh
</code></pre></div></div>

<h4 id="rendre-le-script-exécutable">Rendre le script exécutable</h4>

<p>Il aussi nécessaire que le fichier soit exécutable :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">chmod </span>u+x monscript.sh
</code></pre></div></div>

<p><strong>NOTE</strong></p>

<p>Le <em>Shebang</em> indique au système l’interpréteur à utiliser pour lancer les commandes : <strong><code class="language-plaintext highlighter-rouge">#!/bin/sh</code></strong> ou <strong><code class="language-plaintext highlighter-rouge">#!/bin/bash</code></strong>. Si l’interpréteur de commandes n’est pas déclaré, le shell courant prend en charge les commandes du script.</p>

<h2 id="4-exercice">4. Exercice</h2>

<h3 id="41--prise-en-main-du-système">4.1. – Prise en main du système</h3>

<ul>
  <li>Lister les shells du système</li>
  <li>Choisir un éditeur de texte et manipuler un éditeur de texte</li>
</ul>

<h3 id="42--utilité-de-la-variable-path">4.2. – Utilité de la variable PATH</h3>

<p>Effacer le contenu de la variable PATH :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">PATH</span><span class="o">=</span>
</code></pre></div></div>

<p>Quel est l’effet produit ? Comment y remédier ?</p>

<h3 id="43--répertoire-courant-dans-le-path">4.3. – Répertoire courant dans le PATH</h3>

<p>Quelle est l’utilité d’ajouter le répertoire courant <code class="language-plaintext highlighter-rouge">.</code> (point) à la fin de votre variable PATH de cette manière :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">PATH</span><span class="o">=</span><span class="nv">$PATH</span>:.
</code></pre></div></div>

<h3 id="44--obtenir-la-liste-des-variables-denvironnement">4.4. – Obtenir la liste des variables d’environnement</h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">env</span>
</code></pre></div></div>

<div style="border-width:1px 1px 1px 1px; border-style:dashed; border-color:black; padding:10px 10px; text-align:center;">
      <a href="https://leanpub.com/b/linux-administration-complet" rel="nofollow" target="_blank">
            <i class="fas fa-cart-arrow-down"></i>
            En téléchargeant les livres du Guide Linux
      </a>
            vous encouragez son auteur !
      <a href="https://leanpub.com/b/linux-administration-complet">
      <img src="/assets/images/linux-bundle-cover.jpg" alt="Linux Administration Complet" />
      </a>
    </div>

<h3 id="45---afficher-la-date-dans-dautres-langues">4.5. - Afficher la date dans d’autres langues</h3>

<p>Afficher la date dans la langue courante :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">echo</span> <span class="nv">$LANG</span>
<span class="nb">date</span>
</code></pre></div></div>
<p>peut afficher ce résultat :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>fr_BE.UTF-8
dim fév 21 06:05:03 CET 2016
</code></pre></div></div>

<p>Afficher la date dans une autre langue, ici avec la  locale <code class="language-plaintext highlighter-rouge">en_US.UTF-8</code> :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">LANG</span><span class="o">=</span>en_US.UTF-8
<span class="nb">date</span>
</code></pre></div></div>

<p>affiche ce résultat :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Sun Feb 21 06:05:28 CET 2016
</code></pre></div></div>]]></content><author><name>François Goffinet</name><uri>https://www.goffinet.org</uri></author><category term="Le Shell" /><category term="Administration" /><category term="bash" /><category term="scripting" /><summary type="html"><![CDATA[Voici un premier script shell qui vise à démontrer simplement l'environnement programmable du shell Linux.]]></summary></entry></feed>