Lancement de la ligne de commande Linux sur iOS

Lancement de la ligne de commande Linux sur iOS

Saviez-vous qu'il est possible d'exécuter une ligne de commande Linux sur un appareil iOS ? Vous vous demandez peut-être : « Pourquoi devrais-je utiliser des applications textuelles sur mon iPhone ? » C'est une question légitime. Mais si vous lisez Opensource.com, vous savez probablement déjà pourquoi : les utilisateurs de Linux souhaitent pouvoir travailler avec sur n'importe quel appareil tout en gardant leurs propres configurations.

Mais surtout, ils aspirent à résoudre des problèmes complexes.

J'ai un iPad 2 Mini de sept ans qui est encore assez bon pour lire des livres électroniques et d'autres tâches. Cependant, je veux également l'utiliser pour avoir accès à la ligne de commande de mes applications avec mon ensemble de programmes et de scripts, sans lesquels je ne peux pas travailler. J'ai besoin d'un environnement auquel je suis habitué, ainsi que de mon environnement de développement standard. Voici comment j'ai réussi à l'obtenir.

Connexion au clavier

Travailler avec la ligne de commande pour la programmation via le clavier à l'écran du téléphone ou de la tablette est assez inconfortable. Je recommande de connecter un clavier externe, soit via Bluetooth, soit en utilisant un adaptateur de caméra pour brancher un clavier filaire (c'est ce que j'ai choisi). Lorsque je connecte un clavier séparé Kinesis Advantage à un iPhone 6, le résultat est un appareil étrange qui ressemble à un cyberdeck d'entreprise d'un classique jeu de rôle Shadowrun.

Installer un shell sur iOS

Pour exécuter un système Linux complet sur iOS, il existe deux options :

  • Secure shell (SSH), connecté à un ordinateur sous Linux
  • Exécuter un système virtuel avec Alpine Linux utilisant iSH, qui est open source, mais doit être installé via l'application propriétaire TestFlight d'Apple.

Alternativement, il existe deux applications émulateurs de terminal open source qui permettent de travailler avec des outils open source dans un environnement limité. C'est la version la plus minimaliste : en fait, vous ne lancez pas Linux, mais des outils Linux. En utilisant ces applications, il y a des limitations strictes, mais vous obtenez une fonctionnalité partielle de la ligne de commande.

Avant de passer à des solutions plus complexes, je vais examiner la manière la plus simple.

Option 1 : shell dans un « sandbox »

L'un des moyens les plus simples est d'installer une application pour iOS LibTerm. C'est open source. Un shell dans un environnement « sandbox » avec le support de plus de 80 commandes pour un prix de zéro dollars. Il est livré avec Python 2.7, Python 3.7, Lua, C, Clang et bien d'autres.

Une fonctionnalité à peu près équivalente est proposée par a-Shell, décrit par ses développeurs comme « une interface utilisateur de test pour une plateforme à entrée d'écran ». Les sources de a-Shell sont disponibles en open source, il est en développement actif, donne accès au système de fichiers et est livré avec Lua, Python, Tex, Vim, JavaScript, C et C++, ainsi qu'avec Clang et Clang++. Il permet même d'installer des packages Python via pip.

Option 2 : SSH

Un autre pas en avant par rapport au téléchargement d'application est la configuration d'un client SSH. Depuis longtemps, nous pouvons utiliser l'un des nombreux clients SSH disponibles sur iOS pour nous connecter à un serveur exécutant Linux ou BSD. L'avantage de l'utilisation de SSH est que sur le serveur, n'importe quelle distribution avec n'importe quel logiciel peut fonctionner. Vous travaillez à distance et les résultats sont simplement transmis à l'émulateur de terminal sur l'appareil iOS.

Blink shell — est une application SSH payante populaire sur open source. Si l'on ne tient pas compte de la petite taille de l'écran, l'utilisation de ce logiciel ressemble à une connexion à un serveur via n'importe quelle autre ligne de commande. Le terminal Blink est magnifique, propose de nombreux thèmes prêts à l'emploi et a une fonction permettant de créer les siens, y compris la possibilité de configurer et d'ajouter de nouvelles polices.

Option 3 : exécuter Linux

Utiliser SSH pour se connecter à un serveur sous Linux est un excellent moyen d'accéder à la ligne de commande, mais cela nécessite un serveur externe et une connexion réseau. Ce n'est pas le plus grand obstacle, mais on ne peut pas l'ignorer complètement, donc vous pourriez avoir besoin de travailler avec Linux sans serveur.

Si c'est votre cas, vous devrez faire un pas de plus. TestFlight — est un service propriétaire pour installer des applications en cours de développement avant qu'elles ne soient publiées sur l'Apple App Store. L'application TestFlight peut être installée depuis l'App Store, puis utilisée pour tester des applications. Les applications sur TestFlight permettent à un nombre limité de bêta-testeurs (généralement jusqu'à 10 000) de les utiliser pendant une période limitée. Pour télécharger une application de test, vous devez accéder à un lien depuis votre appareil, généralement situé sur le site Web du développeur de l'application de test.

Lancement d'Alpine Linux avec iSH

iSH — est une application open-source TestFlight qui exécute une machine virtuelle avec une distribution prête à l'emploi Alpine Linux (avec un peu d'effort, il est possible de lancer d'autres distributions).

Caractéristique importante : l'application est expérimentale. Comme iSH est actuellement une application de test, ne vous attendez pas à un fonctionnement constant et fiable. Les applications TestFlight sont limitées dans le temps. Ma version actuelle ne fonctionnera que pendant 60 jours. Cela signifie qu'après 60 jours, je serai exclu et je devrai me reconnecter au prochain cycle de tests d'iSH. De plus, je perds tous mes fichiers si je ne les exporte pas via Files sur iOS ou si je ne les copie pas sur un hébergeur Git ou via SSH. En d'autres termes : Ne comptez pas sur le fait que tout cela continuera à fonctionner ! N'y mettez rien d'important pour vous ! Faites des sauvegardes à un autre endroit !

Installation d'iSH

Commencez par installer TestFlight depuis l'App Store. Puis installez iSH, en obtenant un lien d'installation sur le site Web de l'application. Il existe également une autre méthode d'installation utilisant AltStore, mais je ne l'ai pas essayée. Ou, si vous avez un compte développeur payant, vous pouvez télécharger le dépôt iSH depuis GitHub et l'installer vous-même.

Avec le lien TestFlight, l'application iSH sera installée sur votre appareil. Comme pour toute autre application, une icône apparaîtra à l'écran.

Gestion des paquets

iSH exécute un émulateur x86 avec Alpine Linux. Alpine est une petite distribution de moins de 5 Mo. C'était la première fois que je travaillais avec Alpine, donc je pensais que ce minimalisme serait ennuyeux, mais en réalité, j'ai beaucoup aimé.

Lancement de la ligne de commande Linux sur iOS
Alpine utilise un gestionnaire de paquets apk, qui est plus simple que même apt ou pacman.

Comment installer un paquet :

apk add package

Comment supprimer un paquet :

apk del package

Comment connaître d'autres commandes et informations :

apk --help

Mise à jour du gestionnaire de paquets :

apk mise à jour
apk mise à niveau

Installation de l'éditeur de texte

L'éditeur de texte par défaut d'Alpine est Vi, mais je préfère Vim, alors je l'ai installé :

apk ajouter vim

Si vous le souhaitez, vous pouvez installer Nano ou Emacs.

Changement de shell

Je ne sais pas pour vous, mais j'avais besoin de fish shell. D'autres personnes préfèrent Bash ou Zsh. Cependant, Alpine utilise ash ! Ash est un fork du shell Dash, qui est lui-même un fork de l'original ash, ou Almquist shell. Sa priorité est la vitesse. J'ai décidé d'échanger la vitesse contre l'auto-complétion intégrée, les couleurs, les raccourcis clavier Vim et la coloration syntaxique que j'apprécie et que je connais grâce à fish shell.

Installation de fish :

apk ajouter fish

Si vous avez besoin de Bash avec son auto-complétion et ses pages man, alors installez-les :

apk ajouter bash bash-doc bash-completion

L'idéologie minimaliste d'Alpine signifie généralement que certains programmes, qui sont un seul paquet dans d'autres distributions, seront divisés en plusieurs petits paquets. Cela signifie également que vous pouvez personnaliser et réduire la taille du système exactement comme vous le souhaitez.

Pour en savoir plus sur l'installation de Bash, consultez ce tutoriel.

Changement de shell par défaut

Après l'installation de fish, vous pouvez temporairement passer à celui-ci en entrant fish et en passant dans le shell. Mais je veux faire de fish le shell par défaut, et la commande chsh, que j'ai utilisée dans d'autres distributions, n'a pas fonctionné.

Commençons par savoir où fish est installé :

which fish

Voici ce que j'ai obtenu :

/usr/bin/fish

Ensuite, changeons le shell de connexion en fish. Vous pouvez utiliser n'importe quel éditeur qui vous convient. Si vous êtes débutant, installez Nano (avec la commande apk ajouter nano), afin de pouvoir modifier les fichiers de configuration et les sauvegarder avec CTRL+X, confirmer et quitter.

Mais j'ai utilisé Vim :

vim /etc/passwd

Ma première ligne était comme suit :

root:x:0:0:root:/root:/bin/ash

Pour faire de fish le shell par défaut, modifions cette ligne comme suit :

root:x:0:0:root:/root:/usr/bin/fish

Puis sauvegardons le fichier et quittons.

Je suis sûr qu'il existe un moyen approprié de changer le chemin du shell pour qu'il puisse être utilisé immédiatement. Mais je ne le connais pas, donc je recommande de revenir dans le navigateur des applications, de forcer la déconnexion du shell et, pour plus de sécurité, d'éteindre et de redémarrer l'iPad ou l'iPhone. Ouvrez à nouveau iSH et maintenant, à part le message « Bienvenue dans Alpine ! » et les informations sur le démarrage avec apk, vous verrez le message de bienvenue standard de connexion de fish : Bienvenue dans fish, le shell interactif convivial. Youpi !

Lancement de la ligne de commande Linux sur iOS

Configuration de Python et pip

J'ai décidé d'ajouter Python (la version 3.x), non seulement pour écrire du code, mais aussi parce que j'utilise plusieurs programmes en Python. Installons-le :

apk add python3

Bien que Python 2.x soit obsolète, il est également possible de l'installer :

apk add python

Installons le gestionnaire de paquets Python appelé pip et setuptools:

python3 -m ensurepip --default-pip

L'installation et la configuration du gestionnaire de paquets prendront un certain temps, alors veuillez patienter.

Ensuite, vous pourrez télécharger un outil pour transférer des fichiers sur le réseau curl:

apk add curl

Consulter les manuels

Fish utilise l'auto-complétion intégrée basée sur les pages man. Comme d'autres utilisateurs de la ligne de commande, j'utilise le manuel man, mais dans Alpine, il n'est pas installé. C'est pourquoi je l'ai installé avec le pager terminal less:

apk add man man-pages less less-doc

En plus de man, j'utilise le superbe projet tldr pages, qui fournit des pages man simplifiées et gérées par la communauté.

Je l'ai installé avec pip :

pip install tldr

Commande tldr se connecte à Internet pour obtenir des pages lorsqu'il rencontre une demande pour une nouvelle page. Si vous souhaitez savoir comment utiliser une commande, vous pouvez écrire quelque chose comme tldr curl et obtenir une description en anglais simple avec de bons exemples d'utilisation de la commande.

Bien sûr, tout ce travail d'installation peut être automatisé à l'aide de dotfiles ou d'un script d'installation, mais en réalité, cela ne correspond pas vraiment à l'idéologie d'Alpine — la configuration d'une installation minimale clairement adaptée à vos besoins. De plus, cela a pris tellement de temps, non ?

Informations supplémentaires

Dans le Wiki iSH, il y a une page "ce qui fonctionne" avec des rapports sur les paquets qui fonctionnent actuellement. À propos, il semble que npm ne fonctionne pas actuellement.

Une autre page wiki explique comment accéder aux fichiers iSH depuis l'application iOS Files. C'est l'un des moyens de déplacer et de copier des fichiers.

Vous pouvez aussi installer Git (oui ! apk add git ) et pousser votre travail vers un dépôt distant ou le transmettre à un serveur via SSH. Et, bien sûr, vous pouvez télécharger et exécuter tout un tas de projets open-source formidables depuis GitHub.

Plus d'informations sur iSH sont disponibles via ces liens :

En tant que publicité

VDS propose serveurs virtuels sous Linux ou Windows. Nous n'utilisons que du matériel de marque, le meilleur panneau de contrôle de serveurs de sa catégorie, développé en interne, et l'un des meilleurs centres de données en Russie et en UE. Ne tardez pas à commander !

Lancement de la ligne de commande Linux sur iOS

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster