Ejecute la línea de comandos de Linux en su iPad

¿Sabía que puede ejecutar una línea de comandos de Linux en su dispositivo iOS? Usted podría estar preguntando, » ¿por qué querría usar aplicaciones basadas en texto en mi pequeño iPhone?»De acuerdo, es justo. Esa es una pregunta bastante razonable. Pero si estás leyendo Opensource.com, probablemente conozcas la respuesta: los usuarios de Linux quieren poder usar cualquier dispositivo, y también quieren usar sus propias personalizaciones.

Y, sobre todo, quieren un desafío.

Tengo un iPad 2 Mini de siete años que todavía funciona bien para leer libros electrónicos y otras tareas. Pero también quiero usarlo para acceder a la línea de comandos para aplicaciones y mi conjunto de programas y scripts de los que no puedo prescindir. Quiero el entorno al que estoy acostumbrado, así como mi entorno de desarrollo estándar. Así es como lo hice.

Conectarse a un teclado

Usar la línea de comandos para programar en el teclado en pantalla de un teléfono o tableta no es muy divertido. Recomiendo conectar un teclado externo, ya sea a través de Bluetooth o utilizando un adaptador de kit de conexión de cámara para conectar un teclado con cable (mi preferencia). Conectar mi teclado dividido Kinesis Advantage a mi iPhone 6 crea una óptica extraña, como el cyberdeck de un cuerpo del clásico juego de rol Shadowrun.

Obtener un shell en iOS

Tiene dos opciones para ejecutar un sistema Linux completo en iOS:

  • Secure shell (SSH) en un equipo Linux
  • Ejecute un sistema virtualizado utilizando Alpine Linux con iSH, que es de código abierto, pero debe instalarse utilizando la aplicación TestFlight patentada de Apple

Alternativamente, hay dos aplicaciones emuladoras de terminal de código abierto que proporcionan herramientas de código abierto dentro de un entorno restringido. Esta es la opción más limitada: realmente no le permite ejecutar Linux, pero está ejecutando herramientas de Linux. Hay fuertes restricciones sobre lo que puedes hacer en el dispositivo con estas aplicaciones, pero te dan algunas funciones de línea de comandos.

Analizaré el enfoque más simple antes de explorar soluciones más desafiantes.

Opción 1: Un shell aislado

Una de las formas más fáciles de comenzar es con la aplicación para iOS LibTerm. Este es un shell de línea de comandos de código abierto aislado con más de 80 comandos incluidos en una aplicación de 0 0. Incluye Python 2.7, Python 3.7, Lua, C, Clang y más.

En líneas similares se encuentra a-Shell, descrito como una » interfaz de usuario basada en texto para una plataforma basada en pantalla.»a-Shell es de código abierto, en desarrollo activo, otorga acceso al sistema de archivos, y se distribuye con Lua, Python, Tex, Vim, JavaScript, C y C++, junto con Clang y Clang++. Incluso le permite instalar paquetes de Python con pip.

Opción 2: SSH en cualquier lugar

Un paso más desde la descarga de una aplicación es configurar un cliente SSH. Durante mucho tiempo, ha sido posible usar una de las muchas aplicaciones cliente SSH en iOS para conectarse a un servidor que ejecuta una distribución de Linux o BSD. La ventaja de usar SSH es que su servidor puede ejecutar cualquier distro con cualquier software que desee. Trabajas de forma remota, y tu salida se canaliza al emulador de terminal de tu dispositivo iOS.

Blink shell es una popular aplicación SSH de código abierto de pago. Fuera de la pantalla pequeña, usar este software es similar a conectarse a un servidor a través de cualquier otro símbolo del sistema. El terminal de Blink se ve hermoso, con una serie de temas incluidos y la capacidad de crear tus propios temas, incluida la personalización y la adición de nuevas fuentes.

Opción 3: Ejecutar Linux

Usar SSH para conectarse a un servidor que ejecute Linux es una excelente manera de acceder a un mensaje, pero requiere acceso a un servidor externo y una conexión. Esta no es la peor barrera de entrada, pero no es completamente insignificante, y es posible que desee usar Linux sin este requisito de servidor.

Si ese es tu caso, tendrás que crear algo un poco más vanguardista. TestFlight es un servicio exclusivo para implementar aplicaciones en desarrollo antes de enviarlas a la App Store de Apple. Puedes descargar la aplicación TestFlight de la tienda y, a continuación, registrarte en varias aplicaciones de prueba. Las aplicaciones de TestFlight permiten un número limitado de probadores beta externos (generalmente hasta 10.000) durante un tiempo limitado. Para descargar una aplicación de prueba, debe acceder a un enlace directamente desde su dispositivo, que generalmente se encuentra en el sitio web del desarrollador de la aplicación de prueba.

Ejecutar Alpine Linux con iSH

iSH es una aplicación TestFlight de código abierto que ejecuta una máquina virtual con la distribución Alpine Linux lista para usar(pero puede ejecutar otras distribuciones con un poco más de retoque).

Una advertencia importante: esto es experimental. Dado que iSH es actualmente una aplicación de prueba, no espere un servicio permanente o sólido. Las aplicaciones de TestFlight tienen un tiempo limitado. Mi constitución actual dura 60 días. Esto significa que en 60 días, estaré bloqueado y tendré que volver a la próxima fase de pruebas de iSH. Además, perderé mis archivos a menos que los exporte con Archivos en iOS o los haga copias de seguridad en un host Git o con SSH. Para ser claros: ¡No confíes en esto para seguir funcionando! ¡No pongas nada aquí que sea esencial! ¡Respalde su trabajo en otro lugar!

Instalar iSH

Comience instalando TestFlight a través de la Tienda de aplicaciones. A continuación, instale iSH obteniendo el enlace de instalación a través de su sitio web. Hay otro método de instalación que utiliza el AltStore, pero no lo he probado. O, si tienes una cuenta de desarrollador de pago, puedes descargar el repositorio de iSH desde GitHub e implementarlo tú mismo.

Usando el enlace, TestFlight instala una aplicación iSH en tu dispositivo. Al igual que cualquier otra aplicación, aparece en la pantalla con un icono.

Gestionar paquetes

iSH ejecuta un emulador x86 con Alpine Linux. Alpine es una pequeña distribución de menos de 5 MB. Esta fue mi primera vez corriendo Alpine, y pensé que me frustraría con una distribución tan mínima, pero en realidad lo disfruté mucho.

ish-install.png

Alpine Linux en iOS

(Lee Tusman, CC BY-SA 4.0)

Alpine utiliza el paquete apk manager, que es más simple que incluso apt o pacman.

Para instalar un paquete:

apk add package

Para eliminar un paquete:

apk del package

Encontrar otros comandos y la información con:

apk --help

Actualice el administrador de paquetes:

apk updateapk upgrade

Obtenga un editor de texto

El editor de texto predeterminado de Alpine es Vi, pero prefiero Vim, así que lo instalé:

apk add vim

podría instalar Nano o Emacs, si lo prefiere.

Cambiar la concha

No se usted, pero necesito la concha de pez. Otras personas prefieren Bash o Zsh. ¡Pero Alpine usa ceniza! La ceniza es un tenedor de cáscara de tablero, en sí un tenedor de la cáscara original de ceniza o Almquist. Está diseñado para la velocidad. Decidí cambiar la velocidad a favor del autocompletado integrado, el color, el control de teclas Vim y el resaltado de sintaxis que conozco y amo en fish shell.

Install fish:

apk add fish

Si desea Bash y sus terminaciones y páginas de manual en su lugar, debe instalarlas y algunas cosas adicionales:

apk add bash bash-doc bash-completion

La ideología minimalista de Alpine generalmente significa que algunos programas que serían un solo paquete en otras distribuciones se dividen en varios paquetes más pequeños. Esto también significa que puede personalizar y adelgazar su sistema exactamente como lo desee.

Puede encontrar más detalles sobre la instalación de Bash en este tutorial.

Cambiar el shell predeterminado

Después de instalar fish, puede cambiar temporalmente a él y probarlo escribiendo fish y colocándolo en el shell. Pero quiero que fish sea mi shell predeterminado, y el comando chsh al que estoy acostumbrado de otras distribuciones no funciona.

Primero, averigüe dónde está instalado fish:

which fish

Mi salida:

/usr/bin/fish

A continuación, edite el shell de inicio de sesión para usar fish. Puedes usar cualquier editor con el que te sientas cómodo. Si eres un principiante, instala Nano (con apk add nano) para que puedas editar archivos de configuración y guardarlos con CTRL+X, confirmar y salir.

Pero he usado Vim:

vim /etc/passwd

Mi primera línea fue:

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

Para hacer pescado a la predeterminada, cambie la línea:

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

a Continuación, guardar y salir.

Estoy seguro de que hay una buena manera de volver a obtener el shell para que pueda comenzar a usarlo de inmediato. Pero no estoy seguro, por lo que recomiendo volver al navegador de la aplicación, forzar el cierre del shell y, en buena medida, apagar y reiniciar su iPad o iPhone. Reabrir iSH, y ahora, además del » Bienvenido a Alpine!»mensaje e información sobre cómo comenzar con el apk, verá el mensaje de bienvenida de inicio de sesión de fish predeterminado: Bienvenido a fish, la cáscara interactiva amigable. ¡Hurra!

ish.png

Concha de pez en Alpine Linux

(Lee Tusman, CC BY-SA 4.0)

Configurar Python y pip

decidí añadir Python (versión 3.x), no solo para poder escribir código, sino porque confío en varios programas Python. Instalarlo:

apk add python3

Aunque Python 2.x está obsoleto, aún puede instalarlo:

apk add python

Instalar el administrador de paquetes de Python, pip y setuptools:

python3 -m ensurepip --default-pip

Se necesita algún tiempo para instalar y configurar el administrador de paquetes, así que solo espere.

A continuación, puede descargar curl, la herramienta de transferencia de redes:

apk add curl

Leer el manual

Fish utiliza autocompletado integrado basado en páginas de manual. Al igual que otros usuarios de línea de comandos, confío en el manual man, y Alpine no viene con él instalado. Por lo tanto, lo instalé junto con el buscapersonas menos:

apk add man man-pages less less-doc

Además de man, uso el fabuloso proyecto de páginas tldr, que proporciona páginas man simplificadas y dirigidas por la comunidad.

Lo instalé con pip:

pip install tldr

El comando tldr se conecta a la web para obtener páginas cada vez que encuentra una solicitud para una nueva. Si necesita aprender a usar un comando, puede escribir algo como tldr curl para obtener una explicación en inglés sencillo y buenos ejemplos de cómo usar el comando.

Por supuesto, podría automatizar todo este trabajo de instalación con dotfiles o un script de instalación, pero eso no entraría en la forma alpina de personalizar una instalación mínima exactamente según sus especificaciones. Además, no tardó tanto, ¿verdad?

Más información

El wiki de iSH contiene una página de «qué funciona» con informes sobre qué paquetes funcionan actualmente. Cabe señalar que el mecanismo nacional de prevención no parece funcionar en este momento.

Otra página wiki explica cómo puedes acceder a los archivos iSH desde la aplicación iOS Files. Esta es una forma de mover y transferir archivos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.