« PYTHON - Les bases » et « WSL - Installation » : différence entre les pages

De PedroWiki
(Différence entre les pages)
Aller à la navigationAller à la recherche
imported>Jules
Aucun résumé des modifications
 
imported>Jules
 
Ligne 1 : Ligne 1 :
= Introduction =
= Introduction =


Cet article sert de bloc note lors de mon apprentissage du langage Python.
Cet article traite des différentes méthodes disponibles pour l'installation de Windows Subsystem for Linux (WSL) sur un poste Windows (10).
Il a plus vocation à être un pense bête qu'un vrai support de formation.


= Liens utiles =
Les guides d'installation Microsoft servent de référence, l'objectif est de mieux identifier les méthodes alternatives.


* [https://www.python.org/about/gettingstarted/ Python pour les débutants].
= Tips PowerShell utile =
* [https://www.learnpython.org/ Learn Python].
* [https://github.com/gto76/python-cheatsheet Python CheatSheet].


= Généralités =
== Informations du système ==


* Langage fortement objet.
Pour déterminer les informations de son système (architecture processeur, version de build Windows, etc), vous pouvez procéder de 2 façons:
* Non typé.
* via les '''paramètres => Système => A propos de'''.
* Pas de déclaration des variables nécessaire.
* via la commande PowerShell suivante: <pre>systeminfo</pre>
* Indentation "standard" python: 4 espaces.


= Le couteau suisse: Print =
Ex:
<pre>
PS C:\Users\j.pedrono> systeminfo


* La BASE: Commande d'affichage.
Nom de l’hôte:                             901180281M
Nom du système d’exploitation:              Microsoft Windows 10 Professionnel
Version du système:                        10.0.19042 N/A version 19042
Fabricant du système d’exploitation:        Microsoft Corporation
Configuration du système d’exploitation:    Station de travail membre
Type de version du système d’exploitation:  Multiprocessor Free
Propriétaire enregistré:                    XXXXXXX
Organisation enregistrée:                  XXXXXXX
Identificateur de produit:                  XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX
Date d’installation originale:              01/09/2021, 09:55:49
Heure de démarrage du système:              08/09/2021, 14:04:42
Fabricant du système:                      HP
Modèle du système:                          HP EliteBook 840r G4
Type du système:                            x64-based PC
Processeur(s):                              1 processeur(s) installé(s).
                                            [01] : Intel64 Family 6 Model 142 Stepping 9 GenuineIntel ~2511 MHz
Version du BIOS:                            HP Q80 Ver. 01.14.01, 16/10/2020
Répertoire système:                        C:\WINDOWS\system32
Périphérique d’amorçage:                    \Device\HarddiskVolume5
Option régionale du système:                fr;Français (France)
Paramètres régionaux d’entrée:              fr;Français (France)
Fuseau horaire:                            (UTC+01:00) Bruxelles, Copenhague, Madrid, Paris
Mémoire physique totale:                    12 131 Mo
Mémoire physique disponible:                6 127 Mo
Mémoire virtuelle : taille maximale:        14 563 Mo
Mémoire virtuelle : disponible:            7 349 Mo
Mémoire virtuelle : en cours d’utilisation: 7 214 Mo
Emplacements des fichiers d’échange:        C:\pagefile.sys
Domaine:                                    directory.XXXXXXX.com
Serveur d’ouverture de session:            \\XXXXXXX
Correctif(s):                              9 Corrections installées.
                                            [01]: KB5004331
                                            [02]: KB4562830
                                            [03]: KB4570334
                                            [04]: KB4577266
                                            [05]: KB4577586
                                            [06]: KB4589212
                                            [07]: KB4598481
                                            [08]: KB5005033
                                            [09]: KB5005260
Carte(s) réseau:                            3 carte(s) réseau installée(s).
                                            [01]: Intel(R) Ethernet Connection (4) I219-V
                                                  Nom de la connexion : Ethernet
                                                  État :                Support déconnecté
                                            [02]: Intel(R) Dual Band Wireless-AC 8265
                                                  Nom de la connexion : Wi-Fi
                                                  DHCP activé :        Oui
                                                  Serveur DHCP :        XXXXXXX
                                                  Adresse(s) IP
                                                  [01]: XXXXXXX
                                                  [02]: XXXXXXX
                                            [03]: Bluetooth Device (Personal Area Network)
                                                  Nom de la connexion : Connexion réseau Bluetooth
                                                  État :                Support déconnecté
Configuration requise pour Hyper-V:        Un hyperviseur a été détecté. Les fonctionnalités nécessaires à Hyper-V ne seront pas affichées.
</pre>


Usage:
== Information de version WSL par distribution Linux ==
print("chaine de caractère")
ou
print(variable)


* Affichage d'une variable en forçant le type:
<pre>
wsl --list --verbose
</pre>


Usage:
ou
stringVar = "toto"
print("String: %s" % stringVar)
intVar = 1
print("Int: %d" % intVar)
floatVar = 15.0
print("Float: %f" % floatVar)
 
= Variables =
 
== Affectation ==
 
Simple:
myvar = value
print(myvar)
 
Multiple:
varA, varB = 1, 2
print(varA)
print(varB)
 
== Chaînes de caractères / strings ==
 
=== Généralités ===
 
* Délimitées par des simples quotes ' ou des doubles quotes ".
* L'utilité des doubles quotes est de pouvoir inclure des apostrophes dans ses chaînes.
 
=== Opérateurs ===
 
* On peut utiliser l'opérateur '''+''' pour concaténer des chaines.
 
string = "Hello" + " " + "world"
 
* On peut utiliser l'opérateur '''*''' pour "multiplier" une chaîne.
 
string = "Hello" * 5
 
=== Formatage ===


* Python utilise une syntaxe de formatage de chaînes de caractère similaire à celle du langage C, pour générer de nouvelles chaînes basées sur:
<pre>
** Une chaîne de formatage, mélangeant du texte et des spécifieurs d'arguments (%s, %d...)
wsl -l -v
** Un opérateur '''%''' qui va instancier les variables d'un tuple à la place des spécifieux d'arguments.
</pre>


nom = "Jules"
Ex:
age = 46
print("Hello %s!" % nom)
print("Are we sure %s is %d?" % (nom,age))


* '''NB:''' on peut utiliser le spécifieur %s sur un object de type liste. L'affichage fait alors appel à la méthode repr de l'objet liste pour l'afficher sous forme de chaine.
<pre>
PS C:\Users\j.pedrono> wsl -l -v
  NAME      STATE          VERSION
* Debian    Running        1
</pre>


myList = [1,2]
== Changer de version WSL par distribution Linux ==
print("Ma liste: %s" % myList)


* les spécifieurs d'arguments les plus basiques sont:
<pre>
** '''%s''': Une chaîne ou n'importe quel objet ayant une représentation de type chaîne.
wsl --set-version <distribution name> <versionNumber>
** '''%d''': Un entier.
</pre>
** '''%f''': Un flottant.
** '''%.<number of digits>f''': Un flottant avec un nombre fixe de chiffres après la virgule.
** '''%x/%X''': Représentation Hexadécimale d'un entier (minuscule/majuscule).


== Nombres ==
= Installation de WSL =


=== Integers ===
== Installation standard ==


number1 = 1
Cf [https://docs.microsoft.com/en-us/windows/wsl/install-win10 cette documentation Microsoft sur le sujet].
print(number1)


=== Floats ===
* Si vous avez accès au Windows Store sur votre poste Windows, suivez cette méthode, considérée comme la plus simple.
* Une technique équivalente en ligne de commande PowerShell: <pre>wsl --install</pre>
* '''NB:''' cette méthode requiert de faire partie du programme '''Windows Insider'''.


number2 = float(7)
== Sans accès au Windows Store (App) ==
number3 = 7.2
print(number2)
print(number3)


= Structures de données =
Sans accès à Windows Store, l'installation manuelle est possible (cf le lien du paragraphe [https://docs.microsoft.com/en-us/windows/wsl/install-win10 "installation standard"]):


== Listes ==
Les étapes en résumé sont:
* activation de WSL dans une console PowerShell en tant qu'administrateur (du poste): <pre>dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart</pre>
* '''OPTIONNEL WSL2''': vérification des pré requis pour l'utilisation de WSL 2 (au lieu de WSL 1) => cette feature nécessite un certain niveau de build Windows en fonction de l'architecture.
* '''OPTIONNEL WSL2''': activation de la fonctionnalité Virtual Machine dans une console PowerShell en tant qu'administrateur (du poste): <pre>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart</pre> (cette action '''nécessite ensuite un reboot''').
* '''OPTIONNEL WSL2''': téléchargement et installation du [https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi Linux kernel update package]. L'installation nécessite '''une élévation de privilège'''.
* '''OPTIONNEL WSL2''': déclarer WSL 2 comme version par défaut. Dans une fenêtre PowerShell: <pre>wsl --set-default-version 2</pre>. '''NB''': ce n'est que la version par défaut, il est ensuite possible de sélectionner une version de WSL par distribution Linux installée sur le système.
* Télécharger depuis le site Microsoft la distribution Linux qui vous intéresse (dans mon cas, [https://www.microsoft.com/store/apps/9MSVKQC78PK6 Debian]).


<u>Généralités:</u>
== Sans accès au Windows Store (y compris sites de téléchargement Microsoft) ==
* Les listes sont assez similaire à des tableaux.
* Les listes peuvent contenir tout type de variable.
* Les listes peuvent contenir autant d'item qu'on le souhaite.
* L'accès à un index qui n'existe pas provoque une erreur/une exception.
* On peut utiliser l'opérateur '''+''' pour concaténer 2 listes.


list1 = [1,2,3]
Si comme moi, pour une raison non encore identifiée liée à la sécurisation du poste Windows ou du réseau d'entreprise, vous ne pouvez pas télécharger les distributions Linux en cliquant sur '''Obtenir''' (ou '''Get''') sur par exemple [https://www.microsoft.com/fr-fr/p/debian/9msvkqc78pk6?rtc=1&activetab=pivot:overviewtab ce lien], il existe encore des méthodes d'installation alternatives: cf [https://docs.microsoft.com/en-us/windows/wsl/install-manual cette documentation d'installation manuelle].
list2 = [4,5,6]
print(list1 + list2)


* On peut utiliser l'opérateur '''*''' pour "multiplier" une liste.
Les étapes:
 
* Déterminer le nom de sa distribution via les URLs de téléchargement.
list = [1,2,3]
* Téléchargement d'une distribution, via une commande PowerShell: <pre>Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing</pre>
print(list * 3)
* Exemple pour Debian: <pre>Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile Debian.appx -UseBasicParsing</pre>
 
* Installer le package, via une commande PowerShell: <pre>Add-AppxPackage .\Ubuntu.appx</pre>
<u>Syntaxe:</u>
* Info utile: le package est téléchargé en principe dans <pre>C:\Windows\System32\</pre>
 
Initialisation:
AList = []
ou
AList = [1,2,3]
 
Méthode d'ajout d'un élément dans la liste:
AList.append(<element>)
 
Accès à un élément:
print(AList[0])
 
Exception sur accès à un index inexistant:
IndexError: list index out of range
 
Longueur d'une liste:
len(AList)
 
Méthode de comptage d'occurence d'un élément dans une liste:
x = object()
x_list = [x] * 10
if x_list.count(x) == 10:
    print("La liste contient 10 éléments x")
 
= Operators =
 
== Comparaison ==
 
* Opérateur: '''=='''
 
== Sum / Concatenation ==
 
* Opérateur: '''+'''
 
<u>Example:</u>
one = 1
two = 2
three = one + two
print(three)
ou
str1 = "Hello"
str2 = "World"
strFull = str1 + " " + str2
print(strFull)


* '''ATTENTION''' cela implique qu'on ne peut pas mélanger les variables numbers et strings lors de l'usage de cet opérateur.
= Quel que soit le mode d'installation =


<u>Example non fonctionnel:</u>
* [https://docs.microsoft.com/en-us/windows/wsl/user-support Créer le compte utilisateur] au premier lancement de votre nouvelle distribution.
one = 1
two = 2
string = "chaine"
print(one + two + string)


== Logical AND ==
= Ajout de Windows Terminal =


* Opérateur: '''and'''
Il y a de nombreux intérêts à l'installation de Windows Terminal en complément de WSL:
* Cet outil permet notamment de faire cohabiter de nombreuses sessions en onglets au sein d'une seule fenêtre.
* Il permet de lancer de nombreux terminaux: terminal PowerShell, l'intégralité des distributions Linux installées sur WSL, une console Azure PowerShell...


== Opérateurs arithmétiques ==
Cf [https://www.microsoft.com/fr-fr/p/debian/9msvkqc78pk6?rtc=1&activetab=pivot:overviewtab cette partie de la documentation officielle Microsoft].


* Somme: '''+'''
Cf [https://www.microsoft.com/fr-fr/p/windows-terminal-preview/9n8g5rfz9xk3?rtc=1#activetab=pivot:overviewtab cette documentation spécifique pour installer la version Preview].


number = 1 + 2
== Avec le Windows Store ==


* Produit: '''*'''
Installation directe avec le Windows Store, ou en lançant le téléchargement depuis la [https://docs.microsoft.com/en-us/windows/terminal/get-started documentation d'installation Microsoft].


number = 2 * 3
== Sans le Windows Store ==


* Puissance/power: '''**'''
Sans accès au Windows Store, il existe un [https://github.com/microsoft/terminal/releases dépôt Github] pour la publication des versions successives de Windows Terminal.


number = 2 ** 3
'''NB''': la contrainte dans ce cas est qu'il faut gérer soi même les mises à jour du Windows Terminal.


* Division: '''/'''
Vous téléchargez un fichier dont l'extension est msibundle: cf [https://github.com/Microsoft/Terminal#via-github cette documentation spécifique pour l'installation].


number = 4 / 2
En résumé: <pre>Add-AppxPackage Microsoft.WindowsTerminal_<versionNumber>.msixbundle</pre>


* [https://fr.wikipedia.org/wiki/Modulo_(op%C3%A9ration) Modulo]: '''%'''
Exemple: <pre>Add-AppxPackage .\Microsoft.WindowsTerminalPreview_1.11.2421.0_8wekyb3d8bbwe.msixbundle</pre>


number = 11 % 3
= Diagnostiquer les problèmes d'installation ou de fonctionnement de WSL sur votre système =


* '''ATTENTION:''' ces opérateurs ont une priorité d'évaluation entre eux.
Microsoft met à disposition [https://docs.microsoft.com/en-us/windows/wsl/troubleshooting ce guide de troubleshooting] assez complet.


= Structures de contrôle =
== Problème pour utiliser la commande ping ==


== If ==
A l'installation, et fonction de la version de votre build Windows et de WSL, vous pouvez rencontrer l'erreur suivante lors d'un ping:


<u>Usage:</u>
<pre>
if (condition):
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ ping 8.8.8.8
    action
ping: socket: Operation not permitted
</pre>


<u>Example:</u>
D'après les liens suivants, plus ou moins fiable, il s'agit d'un problème de droit de l'utilisateur de votre distribution sur le binaire ping:
if stringVar == "Value":
* [https://github.com/microsoft/WSL/issues/5109 Un échange sur le dépôt Github de Microsoft].
    print("Chaine: %s" % stringVar)
* [https://www.incredigeek.com/home/how-to-fix-ping-socket-operation-not-permitted/ Une autre méthode de résolution basée sur un simple chmod].
* [https://forum.artixlinux.org/index.php/topic,1809.0.html Une autre méthode de résolution basée sur l'élargissement des GID autorisés à utiliser ping].


<u>Conditions multiples:</u>
Dans mon cas, application de la 1ere méthode puisqu'à priori émise par des personnes au sein de l'équipe MS WSL:
numVar = 3
if isinstance(numVar, int) and numVar == 3:
    print("Valeur numérique: %d" % numVar)


== For ==
<pre>
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ getcap /bin/ping
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ sudo setcap cap_net_raw+p /bin/ping
[sudo] password for jpedrono:
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ getcap /bin/ping
/bin/ping = cap_net_raw+p
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=112 time=10.7 ms
^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 10.728/10.728/10.728/0.000 ms
</pre>


<u>Usage:</u>
= Une fois votre setup terminé... =
for x in <values>:
    print x


<u>Example:</u>
Une fois WSL installé, vous pouvez ensuite [[WSL - Packages utiles|procéder à l'installation des packages essentiels]].
AList = []
AList.append(1)
AList.append(2)
AList.append(3)
for x in AList:
    print(x)


[[Category:Python]]
[[Category:Howto]]
[[Category:Language]]
[[Category:Linux]]
[[Category:Scripting]]
[[Category:Systeme]]
[[Category:Devops]]
[[Category:Windows]]
[[Category:WSL]]

Version du 2 novembre 2021 à 13:55

Introduction

Cet article traite des différentes méthodes disponibles pour l'installation de Windows Subsystem for Linux (WSL) sur un poste Windows (10).

Les guides d'installation Microsoft servent de référence, l'objectif est de mieux identifier les méthodes alternatives.

Tips PowerShell utile

Informations du système

Pour déterminer les informations de son système (architecture processeur, version de build Windows, etc), vous pouvez procéder de 2 façons:

  • via les paramètres => Système => A propos de.
  • via la commande PowerShell suivante:
    systeminfo

Ex:

PS C:\Users\j.pedrono> systeminfo

Nom de l’hôte:                              901180281M
Nom du système d’exploitation:              Microsoft Windows 10 Professionnel
Version du système:                         10.0.19042 N/A version 19042
Fabricant du système d’exploitation:        Microsoft Corporation
Configuration du système d’exploitation:    Station de travail membre
Type de version du système d’exploitation:  Multiprocessor Free
Propriétaire enregistré:                    XXXXXXX
Organisation enregistrée:                   XXXXXXX
Identificateur de produit:                  XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX
Date d’installation originale:              01/09/2021, 09:55:49
Heure de démarrage du système:              08/09/2021, 14:04:42
Fabricant du système:                       HP
Modèle du système:                          HP EliteBook 840r G4
Type du système:                            x64-based PC
Processeur(s):                              1 processeur(s) installé(s).
                                            [01] : Intel64 Family 6 Model 142 Stepping 9 GenuineIntel ~2511 MHz
Version du BIOS:                            HP Q80 Ver. 01.14.01, 16/10/2020
Répertoire système:                         C:\WINDOWS\system32
Périphérique d’amorçage:                    \Device\HarddiskVolume5
Option régionale du système:                fr;Français (France)
Paramètres régionaux d’entrée:              fr;Français (France)
Fuseau horaire:                             (UTC+01:00) Bruxelles, Copenhague, Madrid, Paris
Mémoire physique totale:                    12 131 Mo
Mémoire physique disponible:                6 127 Mo
Mémoire virtuelle : taille maximale:        14 563 Mo
Mémoire virtuelle : disponible:             7 349 Mo
Mémoire virtuelle : en cours d’utilisation: 7 214 Mo
Emplacements des fichiers d’échange:        C:\pagefile.sys
Domaine:                                    directory.XXXXXXX.com
Serveur d’ouverture de session:             \\XXXXXXX
Correctif(s):                               9 Corrections installées.
                                            [01]: KB5004331
                                            [02]: KB4562830
                                            [03]: KB4570334
                                            [04]: KB4577266
                                            [05]: KB4577586
                                            [06]: KB4589212
                                            [07]: KB4598481
                                            [08]: KB5005033
                                            [09]: KB5005260
Carte(s) réseau:                            3 carte(s) réseau installée(s).
                                            [01]: Intel(R) Ethernet Connection (4) I219-V
                                                  Nom de la connexion : Ethernet
                                                  État :                Support déconnecté
                                            [02]: Intel(R) Dual Band Wireless-AC 8265
                                                  Nom de la connexion : Wi-Fi
                                                  DHCP activé :         Oui
                                                  Serveur DHCP :        XXXXXXX
                                                  Adresse(s) IP
                                                  [01]: XXXXXXX
                                                  [02]: XXXXXXX
                                            [03]: Bluetooth Device (Personal Area Network)
                                                  Nom de la connexion : Connexion réseau Bluetooth
                                                  État :                Support déconnecté
Configuration requise pour Hyper-V:         Un hyperviseur a été détecté. Les fonctionnalités nécessaires à Hyper-V ne seront pas affichées.

Information de version WSL par distribution Linux

wsl --list --verbose

ou

wsl -l -v

Ex:

PS C:\Users\j.pedrono> wsl -l -v
  NAME      STATE           VERSION
* Debian    Running         1

Changer de version WSL par distribution Linux

wsl --set-version <distribution name> <versionNumber>

Installation de WSL

Installation standard

Cf cette documentation Microsoft sur le sujet.

  • Si vous avez accès au Windows Store sur votre poste Windows, suivez cette méthode, considérée comme la plus simple.
  • Une technique équivalente en ligne de commande PowerShell:
    wsl --install
  • NB: cette méthode requiert de faire partie du programme Windows Insider.

Sans accès au Windows Store (App)

Sans accès à Windows Store, l'installation manuelle est possible (cf le lien du paragraphe "installation standard"):

Les étapes en résumé sont:

  • activation de WSL dans une console PowerShell en tant qu'administrateur (du poste):
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • OPTIONNEL WSL2: vérification des pré requis pour l'utilisation de WSL 2 (au lieu de WSL 1) => cette feature nécessite un certain niveau de build Windows en fonction de l'architecture.
  • OPTIONNEL WSL2: activation de la fonctionnalité Virtual Machine dans une console PowerShell en tant qu'administrateur (du poste):
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    (cette action nécessite ensuite un reboot).
  • OPTIONNEL WSL2: téléchargement et installation du Linux kernel update package. L'installation nécessite une élévation de privilège.
  • OPTIONNEL WSL2: déclarer WSL 2 comme version par défaut. Dans une fenêtre PowerShell:
    wsl --set-default-version 2
    . NB: ce n'est que la version par défaut, il est ensuite possible de sélectionner une version de WSL par distribution Linux installée sur le système.
  • Télécharger depuis le site Microsoft la distribution Linux qui vous intéresse (dans mon cas, Debian).

Sans accès au Windows Store (y compris sites de téléchargement Microsoft)

Si comme moi, pour une raison non encore identifiée liée à la sécurisation du poste Windows ou du réseau d'entreprise, vous ne pouvez pas télécharger les distributions Linux en cliquant sur Obtenir (ou Get) sur par exemple ce lien, il existe encore des méthodes d'installation alternatives: cf cette documentation d'installation manuelle.

Les étapes:

  • Déterminer le nom de sa distribution via les URLs de téléchargement.
  • Téléchargement d'une distribution, via une commande PowerShell:
    Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
  • Exemple pour Debian:
    Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile Debian.appx -UseBasicParsing
  • Installer le package, via une commande PowerShell:
    Add-AppxPackage .\Ubuntu.appx
  • Info utile: le package est téléchargé en principe dans
    C:\Windows\System32\

Quel que soit le mode d'installation

Ajout de Windows Terminal

Il y a de nombreux intérêts à l'installation de Windows Terminal en complément de WSL:

  • Cet outil permet notamment de faire cohabiter de nombreuses sessions en onglets au sein d'une seule fenêtre.
  • Il permet de lancer de nombreux terminaux: terminal PowerShell, l'intégralité des distributions Linux installées sur WSL, une console Azure PowerShell...

Cf cette partie de la documentation officielle Microsoft.

Cf cette documentation spécifique pour installer la version Preview.

Avec le Windows Store

Installation directe avec le Windows Store, ou en lançant le téléchargement depuis la documentation d'installation Microsoft.

Sans le Windows Store

Sans accès au Windows Store, il existe un dépôt Github pour la publication des versions successives de Windows Terminal.

NB: la contrainte dans ce cas est qu'il faut gérer soi même les mises à jour du Windows Terminal.

Vous téléchargez un fichier dont l'extension est msibundle: cf cette documentation spécifique pour l'installation.

En résumé:

Add-AppxPackage Microsoft.WindowsTerminal_<versionNumber>.msixbundle

Exemple:

Add-AppxPackage .\Microsoft.WindowsTerminalPreview_1.11.2421.0_8wekyb3d8bbwe.msixbundle

Diagnostiquer les problèmes d'installation ou de fonctionnement de WSL sur votre système

Microsoft met à disposition ce guide de troubleshooting assez complet.

Problème pour utiliser la commande ping

A l'installation, et fonction de la version de votre build Windows et de WSL, vous pouvez rencontrer l'erreur suivante lors d'un ping:

jpedrono@901180281M:/mnt/c/Users/j.pedrono$ ping 8.8.8.8
ping: socket: Operation not permitted

D'après les liens suivants, plus ou moins fiable, il s'agit d'un problème de droit de l'utilisateur de votre distribution sur le binaire ping:

Dans mon cas, application de la 1ere méthode puisqu'à priori émise par des personnes au sein de l'équipe MS WSL:

jpedrono@901180281M:/mnt/c/Users/j.pedrono$ getcap /bin/ping
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ sudo setcap cap_net_raw+p /bin/ping
[sudo] password for jpedrono:
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ getcap /bin/ping
/bin/ping = cap_net_raw+p
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=112 time=10.7 ms
^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 10.728/10.728/10.728/0.000 ms

Une fois votre setup terminé...

Une fois WSL installé, vous pouvez ensuite procéder à l'installation des packages essentiels.