Comment exécuter un shell Linux sur iOS –
iSH est un projet actif pour exécuter un shell Linux sur iOS. Il offre un environnement Alpine Linux, avec le apk
directeur chargé d’emballage. L’application repose sur l’émulation x86 en mode utilisateur.
Vous pouvez télécharger iSH depuis l’App Store. Les nouvelles installations comprennent un apk
par défaut. Les utilisateurs d’applications existants peuvent avoir besoin d’installer manuellement apk
en suivant les étapes de la documentation.
Sommaire
Commencer
Commencez par installer iSH depuis l’App Store. Lancez l’application et vous serez directement placé dans un environnement de terminal Alpine Linux.
Vous pouvez commencer à exécuter des commandes Linux familières! Vous pouvez utiliser tous les utilitaires Unix fournis par BusyBox, y compris cat
, grep
, ls
, sed
et wget
.
iSH fournit sa propre bande d’icônes de clavier pour simplifier l’utilisation du terminal à écran tactile. Les quatre boutons à gauche de la bande sont respectivement les touches Tab, Control, Echap et Flèche. Faites glisser le bouton fléché dans la direction dans laquelle vous souhaitez que le curseur se déplace.
Les trois boutons sur la droite ouvrent l’interface des paramètres, collez le texte du presse-papiers iOS et masquent le clavier. Appuyez n’importe où pour ramener le clavier après l’avoir caché.
Paramètres iSH
Le menu Paramètres vous permet de personnaliser quelques options. La page Apparence vous permet de définir la police et de basculer entre les thèmes clairs et foncés. Sur la page Icône d’application, vous pouvez choisir parmi plusieurs icônes d’application. Ce choix vous permet de faire correspondre iSH au style visuel des autres applications sur votre écran d’accueil iOS.
Le clavier externe vous permet de contrôler la manière dont iSH doit gérer un clavier physique connecté via Bluetooth ou un adaptateur USB. En plus des options de remappage intégrées d’iOS, vous pouvez remapper les touches d’option et de backtick sur les touches méta et d’échappement iSH. Vous pouvez masquer la bande d’icônes d’iSH lorsque vous utilisez un clavier externe en activant le paramètre «Masquer avec un clavier externe».
Systèmes de fichiers
iSH prend en charge l’utilisation de plusieurs systèmes de fichiers. Rendez-vous sur la page «Systèmes de fichiers» dans le menu des paramètres pour les gérer. Pour commencer, vous verrez un seul système de fichiers «par défaut» contenant l’installation Alpine intégrée.
Appuyez sur « Parcourir les fichiers » pour ouvrir le système de fichiers dans l’application Fichiers d’iOS. Cela vous aide à copier rapidement des fichiers d’iSH vers d’autres emplacements sur votre appareil iOS.
Vous pouvez exporter l’ensemble du système de fichiers avec l’option «Exporter». Les systèmes de fichiers peuvent être importés dans iSH en utilisant le bouton «Importer» sur la page principale Systèmes de fichiers.
Le cas d’utilisation pratique des systèmes de fichiers vous permet d’exécuter plusieurs installations autonomes. À l’heure actuelle, seules les images alpines minimales similaires à l’original iSH fonctionneront.
Vous pouvez essayer le « Mini Root Filesystem » d’Alpine – téléchargez-le, importez-le et appuyez sur « Boot From This Filesystem » pour redémarrer iSH en utilisant le système de fichiers. Revenez au système de fichiers par défaut en sélectionnant son entrée de menu et en sélectionnant à nouveau «Boot From This Filesystem».
Ajout de packages
Vous pouvez utiliser des apk
commandes pour gérer les packages dans votre environnement iSH.
# Update the package lists apk update # Upgrade existing installed packages apk upgrade # Install SSH apk add openssh # Remove SSH apk del openssh
Sachez que iSH utilise par défaut ses propres référentiels de packages. Cela permet à l’application de passer l’examen de l’App Store en s’assurant qu’elle est entièrement autonome.
Vous pouvez basculer vers les référentiels officiels Alpine Linux si vous préférez. Cela vous donne accès à la liste complète des logiciels Alpine. De nombreux packages auront des versions plus récentes dans les principaux référentiels Alpine que celles proposées dans les référentiels iSH.
grep -v "file:///ish/apk/" /etc/apk/repositories | dd of=/etc/apk/repositories bs=4194304 echo https://dl-cdn.alpinelinux.org/alpine/v3.12/main >> /etc/apk/repositories echo https://dl-cdn.alpinelinux.org/alpine/v3.12/community >> /etc/apk/repositories
Exécutez les commandes ci-dessus pour remplacer le contenu des iSH /ish/apk
pseudo-système de fichiers avec les référentiels proposés par Alpine Linux. Vous devrez alors courir apk update
pour obtenir les nouvelles listes de paquets.
Utilisation de SSH
Vous pouvez installer OpenSSH avec apk add openssh
.
Le client fonctionnera immédiatement – essayez ssh me@myserver
.
Pour utiliser votre appareil iOS comme serveur SSH, exécutez les commandes suivantes:
ssh-keygen -A passwd echo "PermitRootLogin yes" >> /etc/ssh/sshd_config sshd
Cela générera des clés d’hôte SSH et vous invitera à définir un mot de passe pour le root
utilisateur. Le sshd
l’exécutable est appelé pour démarrer le serveur SSH. Vous pourrez désormais vous connecter à votre appareil en tant que root
utilisateur.
iSH ne prend pas en charge les services de démarrage automatique par défaut. Vous pouvez configurer cela en modifiant la troisième ligne de /etc/inittab
à ::sysinit:/sbin/openrc
. Prochaine exécution rc-update add sshd
pour que le serveur SSH démarre automatiquement lorsque vous lancez une session iSH.
Exécution d’un serveur Web
Comme le montre l’exemple SSH, iSH utilise la pile réseau de votre appareil. Vous pouvez héberger un serveur Web que vous pourrez parcourir sur vos autres appareils.
Courir apk install apache2
pour ajouter Apache. Utilisation httpd
pour démarrer le processus Apache. Ensuite, visitez l’adresse IP de votre appareil iOS dans un navigateur Web – vous devriez voir la valeur par défaut d’Apache « Ça marche! » texte.
iSH ne prend actuellement pas en charge l’exécution en arrière-plan. Cela signifie que vous ne pouvez pas passer à Safari et parcourir vos pages Web tout en utilisant un iPhone. Sur un iPad, il est possible d’ouvrir un navigateur en vue fractionnée – iSH reste actif sur le côté de l’écran.
Apache peut être configuré de la manière habituelle. Vous trouverez son fichier de configuration sur /etc/apache2/httpd.conf
. La racine du document par défaut – d’où les pages Web sont servies – est /var/www/localhost/htdocs
.
Et maintenant?
Vous exécutez maintenant un environnement Alpine Linux sur votre appareil iOS. Ajoutez les packages qui conviennent à votre travail. Il existe une liste croissante de logiciels de travail qui incluent des agrafes Unix et des langages de programmation complets. Node.js, Python, PHP, Ruby et Git sont tous opérationnels.
Cependant, tous les packages ne fonctionneront pas. Un logiciel qui effectue des appels système qui n’ont pas été traduits plantera. Comme iSH est un émulateur, les performances peuvent parfois être médiocres.
Vous pouvez exécuter un serveur VNC si vous souhaitez utiliser des applications graphiques. Les étapes détaillées sont fournies dans le wiki iSH. Les limites de performance deviendront claires avec une charge de travail graphique, mais c’est techniquement possible. Le processus consiste à installer xorg-server
, mettre en place une configuration sans tête puis ajouter un .xinitrc
fichier pour définir le gestionnaire de fenêtres à utiliser. Vous obtiendrez les meilleurs résultats avec un gestionnaire de fenêtres léger tel que i3
.
Conclusion
iSH semble en passe de devenir une application iOS incontournable pour les développeurs et les administrateurs système. Il existe déjà des applications de qualité comme a-Shell qui fournissent des outils Unix de base, ainsi que des clients SSH comme Termius qui vous permettent de vous connecter à une machine Linux distante. Cependant, iSH est la solution la plus complète à ce jour, offrant un environnement Linux prenant en charge une liste croissante de logiciels populaires.
Avec iSH sur votre iPhone ou iPad, vous pouvez utiliser le logiciel Linux x86 familier où que vous soyez. Associez-le à un clavier externe et vous obtenez un appareil de productivité portable qui pourrait véritablement remplacer votre ordinateur portable.