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