Amusant avec le Sous-système Windows pour Linux

Lors de la version 2016, Microsoft a présenté au monde le Sous-système Windows pour Linux (Bêta), qui permet aux développeurs d’exécuter des binaires de console en mode utilisateur Ubuntu natifs via le shell Bash dans Windows 10. Si vous utilisez le programme Windows Insider, vous avez eu l’occasion d’essayer cette fonctionnalité à l’aide des dernières versions de Windows Anniversary Update Insider.

Les développeurs Web sont habitués à faire des choix difficiles sur les outils et bibliothèques qu’ils peuvent utiliser en fonction du système d’exploitation sur lequel ils travaillent activement. Le WSL a été conçu et construit par l’équipe du noyau Windows et livré en partenariat avec Canonical, pour aider les développeurs Windows 10 à utiliser le riche écosystème de développeurs Linux et les outils aux côtés des excellents outils qu’ils utilisent déjà dans Windows, sans avoir à démarrer dans un autre système d’exploitation ou une machine virtuelle. Il s’agit certainement d’une fonctionnalité « par les développeurs, pour les développeurs” de Windows 10, spécialement conçue pour éliminer un peu de friction du flux de travail quotidien des développeurs.

Dans cet article, je vais vous montrer quelques-unes des fonctionnalités de WSL que je trouve personnellement très intéressantes, ainsi que vous indiquer quelques ressources pour vous aider à en savoir plus. Tout d’abord, je vais montrer l’intégration de commandes d’agrafe comme ssh pour travailler avec des serveurs et des périphériques Linux. Deuxièmement, je vais démontrer la capacité d’utiliser les scripts Bash pour automatiser les tâches de manière très naturelle. Troisièmement, je vais m’amuser un peu avec les excellents compilateurs en ligne de commande, les autres outils et la compatibilité *nix offerte, et jouer un peu NetHack. Enfin, je vais vous montrer la possibilité d’utiliser Python existant et d’autres scripts disponibles sur le web.

Windows est mon système d’exploitation et mon environnement de développement principaux, et ce depuis Windows 3.0 sur mon premier 286. Néanmoins, j’ai toujours eu des serveurs ou des appareils Linux autour de chez moi. Des appareils IoT tels que le Raspberry Pi et les périphériques de routeur / passerelle dédiés aux serveurs Minecraft, ils ont tendance à se rassembler sur les étagères et les coins de mon bureau. Une chose que je dois toujours faire est de gérer et de configurer facilement ces ordinateurs Linux à partir de mon poste de travail principal.

Gestion des serveurs et des périphériques

Je gère actuellement un serveur Ubuntu Minecraft sans tête depuis ma maison. C’était mon cadeau de Noël à mon fils de 10 ans l’année dernière, mais il s’est avéré être mon jouet autant que le sien (ok, plus mon jouet). J’utilisais quelques applications clientes pour le gérer à partir de mon PC Windows 10 principal, mais maintenant j’utilise simplement ssh en ligne de commande depuis Bash sur Windows 10. Utiliser des applications comme PuTTY et Tera Term est bien sûr, tout comme utiliser les excellents outils fournis avec Cygwin, mais je voulais une expérience vraiment native et naturelle qui se déroule bien. Cygwin m’a toujours semblé un peu comme commander des sautés dans une pizzeria. C’était bien, mais l’exécution ne convenait tout simplement pas à l’environnement.

J’ai les paires de clés publiques / privées configurées à l’aide de ssh-keygen et ssh-copy-id à partir du WSL, donc pour ssh, je tape simplement:

sssh <nom d’utilisateur ><serveur >

J’ai créé un alias qui rend cela plus rapide. Ceci est une fonctionnalité standard Linux/Bash :

aliasalias mc=’ssh <utilisateur ><serveur >’

Maintenant, pour accéder au serveur Minecraft, je tape simplement « mc” à l’invite Bash dans Windows 10.

Cette même approche fonctionne, bien sûr, avec tous les serveurs Web ou de base de données basés sur Linux ou même avec des périphériques IoT similaires que vous utilisez dans le cadre de votre solution.

Pouvoir sécuriser proprement le shell à partir d’une invite de console est juste une commodité et une préférence. Cependant, une fois que vous vous habituez à travailler directement dans le shell, dans un environnement complet qui inclut des agrafes comme apt, node, Ruby, Python et autres, vous ouvrez toutes sortes de possibilités d’automatisation.

Script à distance

Disons que vous avez tout un tas de périphériques Linux ou de serveurs, et que vous souhaitez exécuter une commande à distance sur eux. En supposant que vous avez déjà configuré vos paires de clés publiques / privées, vous pouvez simplement exécuter des commandes ssh distantes à partir de Bash.

Par exemple, pour voir quand la dernière heure de redémarrage a eu lieu sur un serveur distant, vous devez taper ceci:

sssh <utilisateur ><serveur > ‘redémarrage de last-x|grep’

Qui sécurise les shells sur le serveur serveur et exécute la commande last-x, et recherche les lignes contenant le mot « redémarrer.”Lorsque je l’exécute sur mon serveur Ubuntu Minecraft, j’obtiens ce résultat:

redémarrer le démarrage du système 4.4.0-28 – générique Jeu Juil 7 08:14 toujours en cours d’exécution

C’est un seul serveur. Si vous avez une liste de serveurs, vous pouvez également automatiser cette partie. J’ai créé un fichier nommé serveurs.txt dans mon répertoire personnel sur WSL. Il contient un tas de noms de serveur / périphérique Linux – un par ligne. J’ai ensuite lu ce fichier à partir d’un script que j’ai créé dans mon répertoire personnel sur WSL.

Après des années de travail avec des périphériques comme le Raspberry Pi, je suis un type nano (sur les machines virtuelles, j’étais une personne LSEdit), voici donc à quoi ressemble le script dans mon éditeur de console préféré:

Vous pouvez, bien sûr, utiliser vim ou emacs ou tout autre éditeur qui fonctionne dans une session de console Ubuntu.

Le langage utilisé est le script Bash (également appelé script shell Bash). Pour exécuter le script, je tape simplement :

$. /foreachserver.sh ‘last-x | grep reboot’

Et il parcourra chaque serveur / périphérique du fichier et exécutera cette commande à distance via ssh. C’est un exemple très simple, bien sûr, mais vous pouvez l’étendre pour rediriger dans des scripts locaux ou d’autres commandes utiles. Le langage de script Bash est suffisamment riche pour que vous puissiez accomplir la plupart des tâches d’administration à distance en l’utilisant. Vous pouvez également l’étendre avec d’autres applications que vous téléchargez sur le WSL ou les ordinateurs distants.

Que se passe-t-il si vous souhaitez utiliser des fichiers et des ressources Windows locaux avec votre flux de travail avec d’autres ordinateurs Linux? Ou, que se passe-t-il si vous n’utilisez pas Linux du tout? Bash est-il capable de travailler avec des fichiers et des ressources Windows locaux, ou s’agit-il d’un environnement complètement isolé?

Travailler avec des fichiers Windows

Le WSL a accès au système de fichiers de votre PC via /mnt/<lettre de lecteur >/ répertoires (ou points de montage). Par exemple, vos répertoires racine C: et D: dans Windows seraient disponibles via /mnt/c/ et /mnt/d/ respectivement dans le WSL. Cela peut être utile lorsque vous souhaitez incorporer vos fichiers de projet Windows, vos téléchargements ou d’autres fichiers dans un flux de travail basé sur Linux / Bash.

Ceux-ci sont mappés sur le SSD et le lecteur mécanique que j’ai sur le PC:

Ce sont des montages logiques, ils ne s’affichent donc pas actuellement lorsque vous utilisez des commandes comme mount dans le shell. Mais ils fonctionnent comme on peut s’y attendre. Par exemple, depuis Windows, j’ai placé un fichier texte nommé test.txt à la racine de mon lecteur C. Je peux y accéder depuis WSL comme ceci:

Pendant la tournée de construction, nous voulions nous assurer que les démos fonctionnaient toutes sans accès Internet (vous ne savez jamais à quoi ressemblera la mise en réseau des lieux). Donc, pour m’assurer que la démo Bash / WSL fonctionnerait pour la partie Git, et pour démontrer l’accès aux fichiers Windows sur le PC local, j’ai configuré un dépôt local à C: gitNetHack sur le PC Windows. Pour cloner cela dans WSL, j’ai exécuté ce qui suit:

filefichier git–clone: ///mnt/c/git/NetHack

Cette ligne de commande a dit à git d’utiliser le protocole file:// et de cloner le dépôt situé dans /mnt/c/git/NetHack. Vous pouvez accéder à tous vos fichiers Windows de la même manière.

Avertissement: Comme pour toute console, vous pouvez modifier / supprimer des fichiers de votre système de fichiers Windows à partir de Bash si vous ne faites pas attention. Par exemple, vous pouvez faire quelque chose comme ci-dessous et finir par effacer une bonne partie de votre installation Windows, en supposant que le compte Windows sous lequel vous exécutez a les droits de le faire:

$rm-rf/mnt/c/<strong ></strong >

J’apporte cela parce que les commandes Linux sont nouveaux pour beaucoup d’entre nous, alors que les commandes de la console Windows ne le sont pas.

La magie qui rend cette intégration de système de fichiers se produit s’appelle DrvFs. Si vous souhaitez en savoir plus sur le système de fichiers et son fonctionnement dans WSL, l’équipe WSL a rédigé un excellent article de blog avec tous les détails.

Bien sûr, l’accès au système de fichiers n’est qu’une partie de l’histoire. De nombreuses tâches de développement impliquent l’accès à des ressources distantes via HTTP ou d’autres protocoles réseau.

Faire des requêtes HTTP

Il est souvent utile de faire un appel REST ou autre HTTP (ou FTP) à partir d’un script ou d’une ligne de commande plutôt qu’à partir d’un programme compilé ou d’une page Web. Tout comme la plupart des distributions Linux, WSL inclut des utilitaires standard tels que curl et wget pour effectuer des appels HTTP et autres appels réseau. Par exemple, voici l’appel REST à GitHub pour obtenir mes informations de profil, en utilisant curl:

Vous pouvez combiner cela avec les scripts Bash pour créer des clients de test rapides pour les API REST, ou des utilitaires pour envoyer un ping aux pages Web sur les serveurs et signaler l’état. C’est aussi génial de télécharger un fichier sur le Web; vous pouvez simplement rediriger la sortie vers un fichier plutôt que de l’afficher à l’écran:

curlcurl-i https://api.github.com/users/Psychlist1972>pete.json

Je suis également un utilisateur de PowerShell, et j’ai même créé des extensions intéressantes pour utiliser Windows 10 MIDI dans PowerShell et aussi pour corriger une corruption de fichiers qui arrivait aux utilisateurs de certains matériels d’enregistrement sonore. En tant que développeur et fan de longue date de .NET, je continuerai à utiliser et à étendre PowerShell car cela a du sens pour mes projets. Mais PowerShell n’est pas le bon environnement pour exécuter tous ces utilitaires et exemples open source axés sur Bash et Linux sur le Web aujourd’hui. Je veux utiliser le moyen le plus simple et le plus sans friction pour accomplir n’importe quelle tâche, et parfois, cela signifie le faire en Bash.

J’ai à peine gratté la surface ici sur Bash, les scripts Bash et les tâches que vous pouvez accomplir à partir du shell. Jusqu’à présent, j’ai parlé de travaux utilitaires utiles mais auxiliaires au développement. Qu’en est-il du développement et de la compilation réels depuis WSL? Je l’ai démontré dans le cadre de la tournée de construction.

Bash at the Build Tour – NetHack

Plus tôt cet été, des conférenciers de Microsoft ont fait le tour du monde en démontrant certaines des nouvelles fonctionnalités intéressantes pour les développeurs de Windows et du Cloud Microsoft. Dans le cadre de cela, nous voulions démontrer le WSL d’une manière amusante, mais aussi d’une manière à laquelle les développeurs seraient liés.

Personnellement, je voulais montrer en utilisant git et certains outils de développement de console traditionnels. Quand j’ai écrit la démo de Bash, j’ai inclus les bases (« Hello World » en Python et Ruby), mais je voulais montrer quelque chose d’un peu plus hors des sentiers battus.

J’ai repensé à mon temps à l’université, quand nous avons rebondi entre Unix (DEC Ultrix et SunOS) et VAX/VMS. À l’époque, Unix était presque exclusivement un premier environnement en ligne de commande. Dans mon école, la plupart des utilisateurs de X sur la poignée de postes de travail graphiques viennent d’ouvrir plusieurs sessions de terminaux dans différentes fenêtres, mais avec un fond d’écran super cool en phase de lune en arrière-plan. La majorité des étudiants utilisaient des terminaux VT-220 pour leurs sessions (l’école n’était pas loin de Boston, nous avions donc beaucoup d’équipement DEC).

À l’époque, il y avait deux grands jeux auxquels toutes les majors de l’informatique jouaient: MUDs (lpMUD et le tout nouveau DikuMUD de l’époque, principalement) et NetHack. NetHack et d’autres Roguelikes ont été considérés comme l’un des jeux les plus influents de l’histoire, étant les précurseurs des nombreux jeux d’exploration de donjon et de rôle que nous apprécions aujourd’hui.

NetHack a une longue histoire et contient aujourd’hui plus de cent mille lignes de code nix vieux de plusieurs décennies, ainsi que des ajouts modernes. Le jeu lui-même utilise des malédictions (ou ses remplacements) pour l’interaction du terminal, nécessite lex et yacc (ou flex et bison) et cc (ou gcc), et une multitude d’autres outils de développement à construire.

Il est écrit en C et comprend un certain nombre d’utilitaires de configuration fortement scriptés écrits pour le shell Bourne. J’ai pensé que ce serait un bon test amusant d’exercer les capacités de développement de WSL et Bash sur Windows 10. En raison de l’utilisation de malédictions (libncurses sur Linux et WSL), cela aiderait également à démontrer les capacités de l’émulation de terminal intégrée à la fenêtre de la console Windows 10.

À l’époque, la construction de NetHack à partir de la source prenait une éternité sur notre serveur Ultrix en tranches de temps. Maintenant, cela prend une minute sur mon PC et tout est terminé. J’aime le progrès. Il existe des moyens simples et difficiles de configurer et de compiler NetHack sur Linux ou WSL. Pour vous faire gagner du temps, je vous guiderai à travers l’approche facile.

Prérequis

Tout d’abord, mettez à jour votre environnement WSL pour vous assurer que vous pointez vers le dernier catalogue de logiciels et que l’installation de base est également à jour. C’est généralement une bonne idée de le faire avant d’installer de nouveaux paquets.

updatesudo apt update
upgradesudo apt upgrade

Ensuite, installez les outils de développement essentiels. La façon la plus simple de le faire est d’utiliser le package build-essential. Cela inclut presque tous les programmes de console dont un développeur Linux aurait besoin pour créer des applications en C / C++.

susudo apt install build-essential

Cela prendra quelques minutes. Si vous voulez être plus chirurgical, vous pouvez installer séparément gcc, gdb, make, flex, bison et les autres outils demandés dans les documents NetHack. Mais si vous êtes un développeur, vous voudrez probablement les autres outils à un moment donné. Le package build-essential élimine les conjectures de l’installation de l’ensemble d’outils.

Ensuite, installez git. Comme vous pouvez l’imaginer, c’est aussi simple que:

su sudo apt install git

Tout comme avec Linux, vous pouvez ajouter un PPA git pour obtenir une version plus récente, mais celle-ci fera ce que nous faisons ici.

Et enfin, nous voulons avoir des malédictions (ncurses, en fait) installées pour l’interaction de l’écran de la console:

su sudo apt install libncurses-dev

Une fois ces étapes terminées, vous êtes prêt à construire NetHack.

Construire NetHack

Le dépôt officiel de NetHack est sur GitHub. Tout d’abord, nous allons le saisir et le placer dans un sous-dossier de notre répertoire personnel.

cdcd~
clonegit clone http://github.com/NetHack/NetHack

Parce que NetHack prend en charge tant de systèmes d’exploitation différents, vous devrez faire une configuration de base pour lui dire que nous utilisons Linux en ligne de commande et que nous substituons des outils libres et open source aux classiques d’Unix comme gcc pour cc.

Comme je l’avais mentionné, il y a plusieurs façons de le faire. Quelqu’un était assez réfléchi pour encapsuler une grande partie de la configuration dans un fichier de conseils. Croyez-moi ici, l’utilisation du fichier hints vous fera économiser des heures de mal de tête en configuration par rapport aux étapes décrites sur le dépôt GitHub. Il n’est pas immédiatement évident d’utiliser les conseils si vous regardez les fichiers README ou toute autre documentation, alors voilà:

cdcd NetHack/sys/unix
$. /setup.sh hints/linux

Qui configurera le makefile pour utiliser les bons outils, bibliothèques et chemins pour Linux. Les scripts d’installation sont des scripts shell non triviaux qui font beaucoup de configuration; je suis heureux de signaler qu’ils fonctionnent parfaitement en WSL. Si vous êtes curieux de connaître les scripts shell, assurez-vous de les ouvrir dans votre éditeur préféré.

Ensuite, la construction finale:

cdcd~/NetHack
makemake all

Après la construction, vous voudrez créer l’installation. Il s’agit vraiment de copier l’exécutable vers un emplacement connu:

makemake install

Qui vous laissera alors avec un dossier nommé ~/nh. Nethack se trouve dans le répertoire ~/nh/install/games et s’appelle simplement nethack. Pour l’exécuter, accédez à ce répertoire (ou tapez le chemin complet) et tapez:

cdcd~/nh/install/games
netnethack

Une fois que vous avez fait cela, l’écran s’effacera et vous serez invité à commencer à jouer à NetHack. Notez que tout ce qui est fait ici est exactement comme cela se ferait sur une installation Linux Ubuntu vanilla; rien de spécifique à Windows n’était nécessaire.

Jouer à NetHack

Compte tenu des limites d’un jeu sur console et de la complexité de NetHack, cela peut prendre un peu de temps pour y entrer. Dire que c’est un peu cryptique au début serait un euphémisme, mais je n’ai jamais rencontré un développeur qui a évité un bon défi.

Les touches de navigation sont les mêmes que celles utilisées dans VI(M), donc HJKL pour Left, Down, Up et Right respectivement. Pour quitter, vous pouvez trouver les escaliers au niveau supérieur et les utiliser, ou appuyez sur Control-C pour forcer à quitter le jeu.

Dans NetHack, vous êtes le symbole @. Chaque niveau est composé de chambres, de couloirs, de portes et d’escaliers montant et descendant. Les monstres, les trésors et les objets sont représentés sous la forme de divers personnages ASCII avec lesquels vous vous familiariserez au fur et à mesure que vous jouez. Comme c’est la norme avec les Roguelikes, il n’y a pas de sauvegarde et vous n’obtenez qu’une seule vie. Si vous mourez et jouez à nouveau, le donjon est généré de manière aléatoire et les objets sont brouillés.

Le but de NetHack est de survivre aux donjons, de collecter de l’or et des objets et de tuer autant de monstres que possible. Il y a des objectifs bien au-delà, mais vous devrez jouer pendant un certain temps (ou lire) pour les découvrir. Les règles suivent vaguement les donjons &Règles des dragons pour les armes, les compétences, etc.

Voici une capture d’écran de NetHack avec trois salles et deux couloirs visibles. Les escaliers se trouvent dans la pièce en haut à gauche, et je suis actuellement dans la pièce en haut à droite, avec des trésors et d’autres objets.

Si vous n’avez pas de couleur dans votre version, créez un fichier nommé ~/.nethackrc et y mettre ce qui suit:

OPTIONS=color: true, dark_room:true, menucolors:true

De côté: Si les graphiques de caractères ASCII ne sont pas votre truc, mais que vous aimez le concept, recherchez « roguelike” dans le Microsoft Store et profitez des jeux les plus visuels de ce genre populaire.

Bien sûr, NetHack est une base de code ancienne, très chère à ceux d’entre nous d’un certain âge. Cependant, la construction informatique exerce un nombre important d’outils de développement et de fonctionnalités importants des systèmes d’exploitation *nix, ainsi que l’émulation des terminaux. C’est génial de voir que tout cela, de gcc, gdb, make, bison et flex à git plus moderne, fonctionne sur WSL aujourd’hui.

Si vous souhaitez voir la démo ci-dessus telle qu’elle a été réalisée lors du Build Tour, regardez cette keynote du Build Tour Canada. La démo WSL commence vers 6h20. (Et oui, c’est un sous-système Windows pour Linux, malgré ce que j’ai dit dans cette vidéo.)

https://channel9.msdn.com/Events/Build/Build-Tour-2016-Toronto/Keynote

J’espère que vous apprécierez votre excursion dans les donjons de NetHack!

C et C++ sont excellents, tout comme tous ces outils de développement classiques. Vous pouvez même faire beaucoup avec des scripts Bash simples. Mais de nombreuses tâches de développeur impliquent des langages de script comme Python.

Python

Vous pouvez trouver des exemples de scripts Python sur le Web, ce qui implique que Python est à la fois populaire et utile pour de nombreux développeurs. La plupart de ces exemples, bien sûr, supposent que vous utilisez Linux. Dans le passé, cela signifiait les exécuter dans une installation Linux sur une autre machine, une machine virtuelle ou une option de démarrage, ou apporter les modifications nécessaires pour les exécuter en utilisant les distributions Windows de Python.

Ce ne sont pas des problèmes insurmontables, mais dans la vie quotidienne d’un développeur, de petits points de friction comme celui-ci s’additionnent. Avec WSL, vous disposez toujours d’un sous-système et d’un shell compatibles Python, sans avoir à sortir de votre zone.

Pour installer la dernière version de développement de Python et le programme d’installation du paquet python « pip », exécutez ce qui suit à l’invite du shell Bash:

su sudo apt install python-pip python-dev
su sudo pip install–upgrade pip

Maintenant que Python est installé, je voulais montrer comment vous pouvez récupérer un exemple typique de Python Linux à partir d’un site et travailler avec lui directement. Je suis allé sur le site de recettes Python Activestate et j’ai choisi le meilleur exemple de Python. D’accord, j’ai menti. Le premier est pour imprimer des noms d’entiers, et cela ne semblait pas super excitant, alors j’ai choisi le second: Tetris. Je pensais que vous voyiez tous assez de Python pratique tous les jours, alors je vais aller pour un autre jeu.

J’ai ouvert nano, copié les 275 lignes de code Python directement à partir de la page de mon navigateur sous Windows, les ai collées dans nano dans ma fenêtre de console WSL, enregistrées sous tetris.py et puis simplement exécuté:

python python tetris.py

Qui a immédiatement effacé l’écran et fait apparaître une application Tetris de base. Comme c’était le cas avec NetHack, vous utilisez les mêmes touches de mouvement standard VI. (Dans les jours précédant les touches souris et WASD pour le mouvement, la main droite était sur les touches HJKL du clavier.)

Comme je l’ai mentionné, vous pouvez bien sûr exécuter Python sur Windows sans WSL. Cependant, pour les utilitaires et les exemples rapides, pouvoir exécuter un exemple Linux Python sans modifications simplement en collant du code à partir d’une source connue est un gros coup de pouce de productivité pour les développeurs.

C’est le but, vraiment. Il ne s’agit pas de remplacer d’autres outils natifs de Windows tels que Python, PowerShell, C # et plus encore. Il s’agit d’éliminer les frictions lorsque vous avez juste besoin de faire des choses rapidement et efficacement dans un flux de travail de développement moderne.

Entre Bash, Python et tous les outils de développement Linux en ligne de commande natifs, WSL couvre mes besoins en flux de travail Linux. Ce n’est pas un serveur Linux ou même un client Linux complet. Au lieu de cela, c’est exactement ce dont j’ai besoin pour réduire les frictions quotidiennes et rendre le développement sur Windows encore plus productif et agréable.

Réinitialisation de votre environnement WSL

N’hésitez pas à expérimenter. Si vous endommagez votre installation WSL, il est assez facile à réinstaller. Assurez-vous de conserver des copies de tout ce qui est important.

C: > lxrun.exe/uninstall/full
C: > lxrun.exe/install

Comment utilisez-vous Bash et le WSL?

Nous espérons qu’avoir WSL, et Bash en particulier, sur Windows 10 vous aidera à être un peu plus efficace et à éliminer un peu de friction de vos tâches de développement quotidiennes.

Comment utilisez-vous le WSL sous Windows 10? Comment aimeriez-vous l’utiliser?

L’équipe fait beaucoup de travail pour s’assurer que WSL est un excellent outil de console pour les développeurs. Si vous avez des commentaires ou rencontrez des problèmes, nous vous recommandons de consulter la page Problèmes de GitHub ainsi que le site de commentaires et de vote UserVoice. Nous aimerions vraiment avoir de vos nouvelles.

Références supplémentaires et lectures supplémentaires

Les scripts shell Linux sont un sujet énorme et il existe de nombreux tutoriels sur le Web. Si vous ne le connaissez pas déjà et que vous souhaitez en savoir plus, la plupart des tutoriels Bash fonctionneront pour vous. En voici un pour commencer.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *