Lanzamiento de la línea de comandos de Linux en iOS

Lanzamiento de la línea de comandos de Linux en iOS

¿Sabía que puede ejecutar una línea de comandos de Linux en un dispositivo iOS? Es posible que se pregunte: "¿Por qué debería usar aplicaciones de texto en el iPhone?" Buena pregunta. Pero si está leyendo Opensource.com, probablemente sepa la respuesta: los usuarios de Linux quieren poder usarlo en cualquier dispositivo y quieren usar su propia configuración.

Pero sobre todo anhelan resolver problemas complejos.

Tengo un iPad 2 Mini de siete años que sigue siendo bueno para leer libros electrónicos y otras tareas. Sin embargo, también quiero usarlo para acceder a la línea de comandos de las aplicaciones con mi conjunto de programas y scripts, sin los cuales no puedo trabajar. Necesito un entorno al que estoy acostumbrado, así como mi entorno de desarrollo estándar. Y así es como me las arreglé para lograr esto.

Conexión a un teclado

Trabajar con la línea de comandos para programar a través del teclado en pantalla de un teléfono o tableta es bastante inconveniente. Recomiendo conectar un teclado externo, ya sea por Bluetooth o usando un adaptador de conexión de cámara para conectar un teclado con cable (yo elegí este último). Conectar un teclado dividido Kinesis Advantage a un iPhone 6 da como resultado un dispositivo extraño que parece ciberdeck corporativo del clásico juego de roles Carrera de las Sombras.

Instalación de la carcasa en iOS

Para ejecutar un sistema Linux completamente funcional en iOS, hay dos opciones:

  • Shell seguro (SSH) conectado a una máquina Linux
  • Ejecutar un sistema virtual usando Alpine Linux con iSH, que es de código abierto pero debe instalarse usando la aplicación TestFlight patentada de Apple

Como alternativa, hay dos aplicaciones de emulador de terminal de código abierto que brindan la capacidad de trabajar con herramientas de código abierto en un entorno limitado. Esta es la opción más simplificada; de hecho, no es así como ejecuta Linux, sino las herramientas de Linux. Existen severas limitaciones cuando se trabaja con estas aplicaciones, pero se obtiene una funcionalidad de línea de comandos parcial.

Antes de pasar a soluciones complejas, consideraré la forma más simple.

Opción 1: Shell en el Sandbox

Una de las formas más fáciles es instalar la aplicación iOS LibTerm. Lo fuente abierta shell de comandos sandbox con soporte para más de 80 comandos a cero dólares. Viene con Python 2.7, Python 3.7, Lua, C, Clang y más.

Aproximadamente la misma funcionalidad. como el infierno, descrito por los desarrolladores como "una interfaz de usuario de prueba para una plataforma con entrada de pantalla". Fuentes de a-Shell publicadas de código abierto, está en desarrollo activo, brinda acceso al sistema de archivos y se entrega con Lua, Python, Tex, Vim, JavaScript, C y C++, y Clang y Clang++. Incluso le permite instalar paquetes de Python con pip.

Opción 2: SSH

Otro paso más allá de descargar una aplicación es configurar un cliente SSH. Durante mucho tiempo, hemos podido usar cualquiera de las muchas aplicaciones de cliente SSH de iOS para conectarnos a un servidor que ejecuta Linux o BSD. La ventaja de usar SSH es que cualquier distribución puede ejecutarse en el servidor con cualquier software. Trabaja de forma remota y los resultados de su trabajo simplemente se transfieren al emulador de terminal en su dispositivo iOS.

concha parpadeante es una popular aplicación SSH de pago en de código abierto. Si no presta atención a la pequeña pantalla del dispositivo, usar este software es como conectarse al servidor a través de cualquier otra línea de comando. El terminal Blink se ve muy bien, tiene muchos temas listos para usar y la capacidad de crear los tuyos propios, incluida la capacidad de personalizar y agregar nuevas fuentes.

Opción 3: Ejecutar Linux

Usar SSH para conectarse a un servidor bajo Linux es una excelente manera de acceder a la línea de comandos, pero requiere un servidor externo y una conexión de red. Esta no es la mayor barrera, pero no se puede ignorar por completo, por lo que es posible que deba trabajar con Linux sin un servidor.

Si este es tu caso, entonces tendrás que dar un paso más allá. TestFlight es un servicio propietario para instalar aplicaciones en desarrollo antes de que se publiquen en Apple App Store. Puede instalar la aplicación TestFlight desde App Store y luego usar las aplicaciones de prueba. Las aplicaciones en TestFlight permiten que un número limitado de probadores beta (típicamente hasta 10) trabajen con ellas por un tiempo limitado. Para descargar la aplicación de prueba, debe acceder al enlace en su dispositivo, que generalmente se encuentra en el sitio web del desarrollador de la aplicación de prueba.

Ejecución de Alpine Linux con iSH

ISH es una aplicación TestFlight de código abierto que ejecuta una máquina virtual con una distribución preparada Alpine Linux (con un poco de trabajo, puede ejecutar otras distribuciones).

Característica importante: aplicación experimental. Dado que iSH es actualmente una aplicación de prueba, no espere un rendimiento consistente y confiable. Las aplicaciones de TestFlight tienen un límite de tiempo. Mi compilación actual solo funcionará durante 60 días. Esto significa que después de 60 días seré expulsado y tendré que reincorporarme a la siguiente fase de la prueba iSH. Además, perderé todos mis archivos si no los exporto con Archivos en iOS o los copio a un host Git o a través de SSH. En otras palabras: ¡No espere que todo siga funcionando! ¡No ponga nada importante para usted en el sistema! ¡Haz una copia de seguridad en una ubicación separada!

Instalación iSH

Empezar con la instalación TestFlight de la tienda de aplicaciones. Luego instale iSH, obtener un enlace para instalar desde el sitio web de la aplicación. Hay otra forma de instalar usando AltStore, pero no la he probado. O, si tiene una cuenta de desarrollador paga, puede descargar el repositorio iSH de GitHub e instalarlo usted mismo.

Usando el enlace, TestFlight instalará la aplicación iSH en su dispositivo. Como con cualquier otra aplicación, aparecerá un icono en la pantalla.

Gestión de paquetes

iSH ejecuta un emulador x86 con Alpine Linux. Alpine es una pequeña distribución que tiene menos de 5 MB de tamaño. Era la primera vez que trabajaba con Alpine, así que pensé que el minimalismo sería molesto, pero me gustó mucho.

Lanzamiento de la línea de comandos de Linux en iOS
Alpine usa un administrador de paquetes apkque es más fácil que incluso apt o pacman.

Cómo instalar el paquete:

apk add package

Cómo eliminar un paquete:

apk del package

Cómo encontrar otros comandos e información:

apk --help

Actualización del administrador de paquetes:

apk update
apk upgrade

Instalación de un editor de texto

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

apk add vim

Si lo desea, puede instalar Nano o Emacs.

Cambio de caparazón

No sé ustedes, pero yo necesitaba cáscara de pescado. Otras personas prefieren Comandos de Bash o Zsh. Sin embargo, ¡Alpine usa ceniza! Ash es una bifurcación del caparazón Dash, que a su vez es una bifurcación de la ceniza original, o Concha almquist. Su prioridad es la velocidad. Decidí cambiar la velocidad por el autocompletado incorporado, los colores, la gestión de claves de Vim y el resaltado de sintaxis que amo y conozco del caparazón de pescado.

instalación de pescado:

apk add fish

Si necesita Bash con sus páginas man y autocompletado, instálelas:

apk add bash bash-doc bash-completion

La ideología minimalista de Alpine generalmente significa que algunos programas que son un solo paquete en otras distribuciones se dividirán en varios paquetes más pequeños. También significa que puede ajustar y reducir el tamaño del sistema tal como lo desee.

Para obtener más información sobre la instalación de Bash, consulte este tutorial.

Cambiar el shell predeterminado

Una vez que Fish está instalado, puede cambiarlo temporalmente escribiendo fish y yendo a la concha. Pero quiero que fish sea el caparazón predeterminado, y el comando chsh, que usé en otras distribuciones, no funcionó.

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

which fish

Esto es lo que me pasó:

/usr/bin/fish

A continuación, cambie el shell de inicio de sesión a fish. Puedes usar cualquier editor que quieras. Si es un principiante, instale Nano (con el comando apk add nano) para que pueda editar los archivos de configuración y guardarlos mediante CTRL+X, confirmar y salir.

Pero usé Vim:

vim /etc/passwd

Mi primera línea fue:

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

Para hacer que el pescado sea el caparazón predeterminado, cambie esta línea a lo siguiente:

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

Luego guarde el archivo y salga.

Estoy seguro de que hay una buena manera de cambiar la ruta del shell para que pueda usarse de inmediato. Pero no lo conozco, así que recomiendo volver al navegador de la aplicación, forzar la salida del shell y, para estar seguro, apagar y reiniciar el iPad o iPhone. Abra iSH de nuevo y ahora, además del mensaje "¡Bienvenido a Alpine!" e información sobre el lanzamiento desde el apk, verá el mensaje de bienvenida estándar de inicio de sesión de Fish: Bienvenido a fish, la simpática concha interactiva. ¡Hurra!

Lanzamiento de la línea de comandos de Linux en iOS

Configurando Python y pip

decidí agregar Python (versión 3.x), no solo para escribir código, sino también porque uso varios programas de Python. Vamos a instalarlo:

apk add python3

Aunque Python 2.x está desactualizado, también puede instalarlo:

apk add python

Instale un administrador de paquetes de Python llamado pip y herramientas de configuración:

python3 -m ensurepip --default-pip

Tomará algún tiempo instalar y configurar el administrador de paquetes, así que tenga paciencia.

A continuación, puede descargar una herramienta para transferir archivos a través de la red. rizo:

apk add curl

Manuales de lectura

Fish utiliza el autocompletado integrado basado en páginas man. Al igual que otros usuarios de la línea de comandos, uso el manual many Alpine no lo tiene instalado. Así que lo instalé con un buscapersonas terminal menos:

apk add man man-pages less less-doc

Además del hombre, uso el magnífico proyecto de paginas tldr, que proporciona páginas man simplificadas y dirigidas por la comunidad.

Lo instalé con pip:

pip install tldr

Equipo tldr se conecta a la web para buscar páginas cuando encuentra una solicitud de una nueva página. Si necesita saber cómo usar un comando, puede escribir algo como tldr curl y obtenga una descripción en inglés sencillo y buenos ejemplos sobre cómo usar el comando.

Por supuesto, todo este trabajo de instalación se puede automatizar usando archivos de puntos o un script de instalación, pero de hecho esto no es muy consistente con la ideología de Alpine: personalizar la instalación mínima claramente según sus necesidades. Además, tomó tanto tiempo, ¿no?

información adicional

El iSH Wiki tiene una página "que funciona" con informes sobre qué paquetes se están ejecutando actualmente. Por cierto, parece npm no está funcionando en este momento.

Otra página wiki explica cómo acceder a archivos iSH desde la aplicación Archivos de iOS. Esta es una de las formas en que puede mover y copiar archivos.

También puedes instalar Git (¡sí! apk add git ) y envíe su trabajo a un repositorio remoto o envíelo al servidor a través de SSH. Y, por supuesto, puede descargar y ejecutar cualquier cantidad de excelentes proyectos de código abierto desde GitHub.

Puede encontrar más información sobre iSH en estos enlaces:

Sobre los derechos de publicidad

Vdsina ofertas servidores virtuales en Linux o ventanas. Usamos exclusivamente equipo de marca, el mejor panel de control de servidor interno de su tipo y uno de los mejores centros de datos en Rusia y la UE. ¡Date prisa para ordenar!

Lanzamiento de la línea de comandos de Linux en iOS

Fuente: habr.com

Añadir un comentario