GNU/Linux >> Tutoriels Linux >  >> Linux

Exécutez la ligne de commande Linux sur votre iPad

Saviez-vous que vous pouvez exécuter une ligne de commande Linux sur votre appareil iOS ? Vous vous demandez peut-être "pourquoi voudrais-je utiliser des applications textuelles sur mon petit iPhone ?" OK très bien. C'est une question assez raisonnable. Mais si vous lisez Opensource.com, vous connaissez probablement la réponse :les utilisateurs de Linux veulent pouvoir utiliser n'importe quel appareil, et ils veulent également utiliser leurs propres personnalisations.

Et surtout, ils veulent un défi.

J'ai un iPad 2 Mini de sept ans qui fonctionne toujours bien pour lire des livres électroniques et d'autres tâches. Mais je veux aussi l'utiliser pour accéder à la ligne de commande des applications et à ma suite de programmes et de scripts dont je ne peux pas me passer. Je veux l'environnement auquel je suis habitué, ainsi que mon environnement de développement standard. Voici comment j'ai procédé.

Se connecter à un clavier

Utiliser la ligne de commande pour programmer sur le clavier à l'écran d'un téléphone ou d'une tablette n'est pas très amusant. Je recommande de connecter un clavier externe, soit via Bluetooth, soit en utilisant un adaptateur de kit de connexion d'appareil photo pour connecter un clavier filaire (ma préférence). Brancher mon clavier divisé Kinesis Advantage à mon iPhone 6 crée des optiques étranges, comme le cyberdeck d'une corp du jeu de rôle classique Shadowrun.

Obtenir un shell sur iOS

Vous avez deux options pour exécuter un système Linux complet sur iOS :

  • Secure shell (SSH) dans un ordinateur Linux
  • Exécutez un système virtualisé à l'aide d'Alpine Linux avec iSH, qui est open source, mais doit être installé à l'aide de l'application propriétaire TestFlight d'Apple

Alternativement, il existe deux applications d'émulation de terminal open source qui fournissent des outils open source dans un environnement restreint. C'est l'option la plus limitée - elle ne vous permet pas vraiment d'exécuter Linux, mais vous utilisez des outils Linux. Il existe de lourdes restrictions sur ce que vous pouvez faire sur l'appareil avec ces applications, mais elles vous offrent certaines fonctionnalités de ligne de commande.

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Je vais examiner l'approche la plus simple avant d'explorer des solutions plus complexes.

Option 1 :un shell en bac à sable

L'application iOS LibTerm est l'un des moyens les plus simples de démarrer. Il s'agit d'un shell de ligne de commande open source en bac à sable avec plus de 80 commandes regroupées dans une application à 0 $. Il est livré avec Python 2.7, Python 3.7, Lua, C, Clang, etc.

Dans le même ordre d'idées, a-Shell est décrit comme une "interface utilisateur textuelle pour une plate-forme à écran". a-Shell est open source, 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 que Clang et Clang++. Il vous permet même d'installer des packages Python avec pip.

Option 2 :SSH n'importe où

Une étape après le téléchargement d'une application consiste à configurer un client SSH. Depuis longtemps, il est possible d'utiliser l'une des nombreuses applications clientes SSH sur iOS pour se connecter à un serveur exécutant une distribution Linux ou BSD. L'avantage d'utiliser SSH est que votre serveur peut exécuter n'importe quelle distribution avec n'importe quel logiciel que vous aimez. Vous travaillez à distance et votre sortie est simplement redirigée vers l'émulateur de terminal de votre appareil iOS.

Blink shell est une application SSH open source payante populaire. En dehors du petit écran, l'utilisation de ce logiciel revient à se connecter à un serveur via n'importe quelle autre invite de commande. Le terminal de Blink est magnifique, avec un certain nombre de thèmes inclus et la possibilité de créer vos propres thèmes, y compris la personnalisation et l'ajout de nouvelles polices.

Option 3 :exécuter Linux

L'utilisation de SSH pour se connecter à un serveur exécutant Linux est un excellent moyen d'accéder à une invite, mais cela nécessite un accès à un serveur externe et une connexion. Ce n'est pas la pire barrière à l'entrée, mais ce n'est pas complètement négligeable, et vous voudrez peut-être utiliser Linux sans cette exigence de serveur.

Si tel est votre cas, vous devrez casser quelque chose d'un peu plus à la pointe de la technologie. TestFlight est un service propriétaire permettant de déployer des applications en cours de développement avant qu'elles ne soient soumises à l'App Store d'Apple. Vous pouvez télécharger l'application TestFlight à partir du magasin, puis vous inscrire à un certain nombre d'applications de test. Les applications dans TestFlight autorisent un nombre limité de bêta-testeurs externes (généralement jusqu'à 10 000) pendant une durée limitée. Pour télécharger une application de test, vous devez accéder à un lien directement depuis votre appareil, qui se trouve généralement sur le site Web du développeur de l'application de test.

Exécuter Alpine Linux avec iSH

iSH est une application TestFlight open source qui exécute une machine virtuelle avec la distribution Alpine Linux prête à l'emploi (mais vous pouvez exécuter d'autres distributions avec un peu plus de bricolage).

Une mise en garde importante :c'est expérimental . Étant donné qu'iSH est actuellement une application de test, ne vous attendez pas à un service permanent ou robuste. Les applications TestFlight sont limitées dans le temps. Ma version actuelle dure 60 jours. Cela signifie que dans 60 jours, je serai en lock-out et que je devrai rejoindre la prochaine phase de test d'iSH. De plus, je perdrai mes fichiers à moins de les exporter avec Files sur iOS ou de les sauvegarder sur un hôte Git ou avec SSH. Pour être clair :Ne vous fiez pas à cela pour continuer à travailler ! N'y mettez rien d'essentiel ! Sauvegardez votre travail ailleurs !

Installer iSH

Commencez par installer TestFlight via l'App Store. Ensuite, installez iSH en obtenant le lien d'installation via son site Web. Il existe une autre méthode d'installation qui utilise AltStore, mais je ne l'ai pas essayée. Ou, si vous avez un compte développeur payant, vous pouvez télécharger le référentiel d'iSH depuis GitHub et le déployer vous-même.

À l'aide du lien, TestFlight installe une application iSH sur votre appareil. Comme toute autre application, elle apparaît sur votre écran avec une icône.

Gérer les packages

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 j'utilisais Alpine, et je pensais que je serais frustré par une distribution aussi minimale, mais j'ai vraiment apprécié.

Alpine utilise le gestionnaire de packages apk, qui est plus simple que même apt ou pacman.

Pour installer un package :

apk add package

Pour supprimer un package :

apk del package

Trouvez d'autres commandes et informations avec :

apk --help

Mettez à jour le gestionnaire de packages :

apk update
apk upgrade

Obtenir un éditeur de texte

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

apk add vim

Vous pouvez installer Nano ou Emacs, si vous préférez.

Changer le shell

Je ne sais pas pour vous, mais j'ai besoin de la coquille de poisson. D'autres préfèrent Bash ou Zsh. Mais Alpine utilise de la cendre ! Ash est une fourchette de coquille Dash, elle-même une fourchette de la coquille originale de frêne ou d'Almquist. Il est conçu pour la vitesse. J'ai décidé d'échanger la vitesse en faveur de l'auto-complétion intégrée, de la couleur, du contrôle Vim-key et de la coloration syntaxique que je connais et que j'aime dans fish shell.

Installer le poisson :

apk add fish

Si vous préférez Bash, ses complétions et ses pages de manuel, vous devez les installer, ainsi que quelques éléments supplémentaires :

apk add bash bash-doc bash-completion

L'idéologie minimaliste d'Alpine signifie généralement que certains programmes qui constitueraient un seul package dans d'autres distributions sont divisés en plusieurs packages plus petits. Cela signifie également que vous pouvez personnaliser et alléger votre système exactement comme vous le souhaitez.

Vous pouvez trouver plus de détails sur l'installation de Bash dans ce tutoriel.

Changer le shell par défaut

Après avoir installé fish, vous pouvez y basculer temporairement et l'essayer en saisissant fish et tomber dans la coquille. Mais je veux faire du poisson mon shell par défaut, et le chsh la commande à laquelle j'ai l'habitude des autres distributions ne fonctionne pas.

Tout d'abord, découvrez où le poisson est installé :

which fish

Ma sortie :

/usr/bin/fish

Ensuite, modifiez le shell de connexion pour utiliser fish. Vous pouvez utiliser n'importe quel éditeur avec lequel vous êtes à l'aise. Si vous êtes débutant, installez Nano (avec apk add nano ) afin que vous puissiez modifier les fichiers de configuration et les enregistrer avec CTRL+X, confirmer et quitter.

Mais j'ai utilisé Vim :

vim /etc/passwd

Ma première ligne était :

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

Pour définir le poisson par défaut, remplacez cette ligne par :

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

Puis enregistrez et quittez.

Je suis sûr qu'il existe un bon moyen de réapprovisionner le shell afin que vous puissiez commencer à l'utiliser immédiatement. Mais je n'en suis pas sûr, je vous recommande donc de revenir au navigateur de l'application, de forcer la fermeture du shell et, pour faire bonne mesure, d'éteindre et de redémarrer votre iPad ou iPhone. Rouvrez iSH, et maintenant, en plus du message "Bienvenue chez Alpine !" message et des informations sur la prise en main d'apk, vous verrez le message de bienvenue par défaut de fish login :Welcome to fish, the friendly interactive shell . Hourra !

Configurer Python et pip

J'ai décidé d'ajouter Python (version 3.x), non seulement pour pouvoir écrire du code, mais parce que je m'appuie sur plusieurs programmes Python. Installez-le :

apk add python3

Bien que Python 2.x soit obsolète, vous pouvez toujours l'installer :

apk add python

Installez le gestionnaire de packages Python, pip et setuptools :

python3 -m ensurepip --default-pip

L'installation et la configuration du gestionnaire de packages prennent un certain temps, alors attendez.

Ensuite, vous pouvez télécharger curl, l'outil de transfert de réseau :

apk add curl

Lire le manuel

Fish utilise l'auto-complétion intégrée basée sur les pages de manuel. Comme les autres utilisateurs de la ligne de commande, je compte sur le man manuel, et Alpine n'est pas livré avec celui-ci installé. Donc, je l'ai installé avec le moins pager :

apk add man man-pages less less-doc

En plus de man, j'utilise le fabuleux projet de pages tldr, qui fournit des pages de manuel simplifiées et pilotées par la communauté.

Je l'ai installé avec pip :

pip install tldr

Le tldr La commande se connecte au Web pour récupérer des pages chaque fois qu'elle rencontre une demande pour une nouvelle. Si vous avez besoin d'apprendre à utiliser une commande, vous pouvez simplement taper quelque chose comme tldr curl pour obtenir une explication en anglais simple et de bons exemples d'utilisation de la commande.

Vous pouvez, bien sûr, automatiser tout ce travail d'installation avec des fichiers de points ou un script d'installation, mais cela ne relèverait pas vraiment de la manière Alpine de personnaliser une installation minimale exactement selon vos spécifications. En plus, ça n'a pas pris si longtemps, n'est-ce pas ?

En savoir plus

Le wiki iSH contient une page "ce qui fonctionne" avec des rapports sur les packages qui fonctionnent actuellement. Il convient de noter que npm ne semble pas fonctionner pour le moment.

Une autre page wiki explique comment vous pouvez accéder aux fichiers iSH à partir de l'application iOS Files. C'est une façon de déplacer et de transférer des fichiers.

Vous pouvez également installer Git (yep ! apk add git ) et transférez votre travail vers un référentiel distant ou transférez-le vers un serveur via SSH. Et, bien sûr, vous pouvez télécharger et exécuter un nombre illimité de fabuleux projets open source depuis GitHub sur votre système.

Pour plus d'informations sur iSH, consultez ces liens :

  • site Web iSH
  • Sous-reddit
  • Problèmes liés à GitHub
  • Wiki

Linux
  1. 6 métacaractères Linux que j'aime utiliser en ligne de commande

  2. 4 façons d'éditer des photos sur la ligne de commande Linux

  3. 8 conseils pour la ligne de commande Linux

  4. Comment exécuter des requêtes MySQL/MariaDB directement à partir de la ligne de commande Linux

  5. 7 conseils pour accélérer votre navigation en ligne de commande Linux

Patch dans The Matrix à la ligne de commande Linux

Planifiez votre propre calendrier de vacances en ligne de commande Linux

3 gestionnaires de mots de passe pour la ligne de commande Linux

Maîtrisez la ligne de commande Linux

Critique de livre :La ligne de commande Linux

Afficher le contenu d'un fichier dans la ligne de commande Linux