Recommandé, 2020

Choix De L'Éditeur

Fonctionnement de Linux Bash Shell sous Windows 10

Avec la publication de la mise à jour d'anniversaire pour Windows 10, Microsoft a annoncé le système WSL ( Windows Subsystem for Linux ), un moyen d'exécuter de véritables Bash natifs sous Windows 10, qui prend en charge l'exécution de fichiers binaires Linux natifs. Pour ce faire, il exécute une image Linux Ubuntu en mode utilisateur par-dessus Windows.

Cela signifie que vous pouvez exécuter des outils de ligne de commande Linux tels que ls, grep, top et chmod . Puisque vous utilisez une véritable Ubuntu en dessous, exécuter lsb-release -a vous donnera le résultat suivant:

Vous pouvez utiliser apt-get and friends pour installer des utilitaires tels que vim, git, screen, tmux ou même jouer à un jeu de nethack:

Gardez toutefois à l'esprit que ce système est en version bêta et n'est pas destiné aux charges de travail du serveur. Il s’agit uniquement d’un outil permettant aux développeurs (et amateurs) de tester leurs applications Windows centrées sur Linux sans modifications. Ce n’est pas non plus un outil destiné à exécuter des applications ou des environnements d’interface graphique Linux tels que Gnome ou KDE, bien que cela soit également possible avec certains hacks. Cela fait, voyons comment fonctionne le shell Linux dans Windows 10.

Sous-système Windows pour Linux (WSL)

Selon la documentation officielle, «WSL est un ensemble de composants permettant aux binaires Linux ELF64 natifs de s'exécuter sous Windows». Pour ce faire, il implémente une interface de noyau Linux virtualisée au-dessus du noyau Windows NT. Autrement dit, il n’utilise aucun code du noyau Linux réel - chaque fois qu’une application effectue un appel système spécifique à Linux (syscall), WSL le traduit en l’appel système Windows équivalent, qui effectue ensuite toutes les tâches difficiles.

Différences entre les machines virtuelles et Cygwin

Voyons maintenant en quoi Linux Bash Shell sous Windows 10 est différent des machines virtuelles et de Cygwin.

Machines virtuelles

Vous pourriez penser: «Eh bien, pourquoi utiliser ceci? Pourquoi ne pas simplement utiliser une machine virtuelle Linux sous Windows? ”

Comparé à une machine virtuelle, WSL utilise moins de ressources . Il vous permet également de travailler avec vos fichiers comme vous le feriez sous Linux, tout en vous donnant un accès complet au système de fichiers Windows sous-jacent sans avoir à vous fier aux dossiers partagés ou aux partages réseau.

Cygwin

Cygwin est une autre méthode populaire d’exécution d’outils populaires de type Linux / Unix sous Windows. La plus grande différence entre les deux approches est que Cygwin n’est pas un moyen d’exécuter des fichiers binaires Linux natifs sous Windows. Il fournit uniquement un ensemble d'outils GNU et Open Source offrant des fonctionnalités similaires à celles d'une distribution Linux sous Windows.

D'autre part, les outils WSL sont des fichiers binaires natifs compilés pour Linux ELF-64 et exécutés sous Windows. Par exemple, l'exécution d'une commande apt-get install emacs dans WSL téléchargera et installera les mêmes fichiers que sur une installation Ubuntu 14.04, à partir des référentiels officiels Ubuntu.

Utilisateurs, autorisations et systèmes de fichiers dans WSL

Hiérarchie du système de fichiers

WSL est installé dans le %LocalAppData%\lxss\rootfs l'utilisateur actuel. Cet environnement, appelé environnement WSL, agit comme répertoire « / » (racine) Linux. Par exemple, si votre nom d'utilisateur sur Windows est beebom, le répertoire racine de Linux sera situé dans C:\Users\beebom\AppData\Local\lxss\rootfs. Cela signifie que chaque utilisateur Windows peut disposer de son propre environnement WSL et peut apporter des modifications telles que des packages logiciels apt-get install, sans affecter les autres utilisateurs Windows.

Il est possible d'accéder au système de fichiers Windows sous-jacent dans WSL. Tous les lecteurs sont montés sous /mnt. Par exemple, C:\ est monté sous /mnt/c, D:\ est monté sous /mnt/d, etc.

Utilisateurs et autorisations

Lorsque vous installez WSL pour la première fois, il vous sera demandé de créer un nouvel utilisateur Linux par défaut. Cet utilisateur n'a pas besoin du même nom que l'utilisateur Windows actuel et est traité comme une entité distincte en général. Vous pouvez même créer plusieurs utilisateurs Linux, contrôlés par un seul utilisateur Windows.

Il est possible d'obtenir les privilèges root à l'aide de la commande sudo . N'oubliez pas que le fait d'être root dans WSL n'affecte que les droits de l'utilisateur dans l'environnement et le système de fichiers Linux - ils n'ont aucune incidence sur les privilèges Windows accordés. Par exemple, une session WSL avec des privilèges d’administrateur Windows peut cd /mnt/c/Users/Administrator tandis qu’une session Bash sans privilèges d’administrateur devrait voir l’autorisation refusée. Si vous tapez sudo cd /mnt/c/Users/Administrator, l'accès au répertoire de l'administrateur ne sera pas autorisé, car les autorisations sont limitées par Windows.

Caractéristiques du système de fichiers spécifique à Linux

Linux est un système sensible à la casse . Cela signifie que photo.png et Photo.png sont traités comme deux fichiers différents. Bien que Windows ne soit pas sensible à la casse par défaut, il le reste. Ce qui signifie que bien que photo.png et Photo.png ne soient pas traités comme deux fichiers distincts, il est certainement conscient de la différence de casse.

WSL gère la sensibilité à la casse exactement comme sous Linux. Il est même possible de créer deux fichiers dont le nom ne diffère que par cas en dehors de l'environnement WSL. Gardez toutefois à l'esprit que de nombreuses applications Windows ne peuvent pas gérer ce type de situation et peuvent ne pas être en mesure d'ouvrir l'un des fichiers, voire les deux.

De même, les liens symboliques sont pris en charge, à condition que vous exécutiez un système de fichiers NTFS. Cependant, les liens symboliques ne fonctionneront que dans le WSL et ne peuvent pas être résolus par d'autres applications Windows.

Linux prend également en charge presque tous les caractères spéciaux dans les noms de fichiers, tandis que Windows est plus restrictif. WSL, cependant, permet d'utiliser de tels caractères spéciaux, à condition qu'ils soient limités à l'environnement du système Linux.

Prêt à exécuter la ligne de commande Linux sous Windows?

Voilà comment Ubuntu Bash ou Linux Bash Shell, également appelé Windows Subsystem for Linux, fonctionne sous Windows 10 (avec la mise à jour Anniversary). En plus de son fonctionnement, nous avons également appris en quoi il est différent et meilleur que les méthodes traditionnelles d’exécution de commandes spécifiques à Linux sous Windows. Donc, si vous avez toujours voulu utiliser les commandes Linux, lancez-vous et si vous avez des questions, des commentaires ou des astuces, veillez à nous le faire savoir dans la section commentaires.

Top