Avviare la riga di comando Linux su iOS

Avviare la riga di comando Linux su iOS

Sapevate che è possibile avviare la riga di comando Linux su un dispositivo iOS? Potreste chiedere: «Perché dovrei usare applicazioni testuali su iPhone?» È una domanda valida. Ma se state leggendo Opensource.com, probabilmente conoscete già la risposta: gli utenti Linux vogliono avere la possibilità di lavorare su qualsiasi dispositivo e utilizzare le proprie configurazioni.

Ma ciò che desiderano di più è risolvere problemi complessi.

Ho un iPad 2 Mini di sette anni che è ancora abbastanza buono per leggere e-book e svolgere altre attività. Tuttavia, voglio utilizzarlo anche per accedere alla riga di comando delle applicazioni con il mio set di programmi e script, senza i quali non riesco a lavorare. Ho bisogno di un ambiente a cui sono abituato, oltre alla mia consueta area di sviluppo. Ecco come ci sono riuscito.

Collegamento a una tastiera

Lavorare con la riga di comando per programmare tramite la tastiera su schermo del telefono o del tablet è piuttosto scomodo. Ti consiglio di collegare una tastiera esterna, attraverso Bluetooth o utilizzando un adattatore per il collegamento della fotocamera per connettere una tastiera cablata (ho scelto la seconda opzione). Collegando la tastiera divisa Kinesis Advantage a un iPhone 6 si ottiene un dispositivo strano che ricorda un cyberdeck aziendale dalla classica gioco di ruolo Shadowrun.

Installiamo la shell su iOS

Per eseguire un sistema Linux completamente funzionale su iOS ci sono due opzioni:

  • Secure shell (SSH), collegata a un computer con Linux
  • Avviare un sistema virtuale utilizzando Alpine Linux con iSH, che è open source, ma deve essere installato tramite l'app proprietaria TestFlight di Apple.

In alternativa, ci sono due applicazioni di emulazione del terminale open source che offrono la possibilità di lavorare con strumenti open source in un ambiente limitato. Questa è la versione più ridotta — in realtà non stai eseguendo Linux, ma strumenti Linux. Utilizzando queste applicazioni, ci sono rigide limitazioni sulle funzionalità, ma ottieni una funzionalità parziale della riga di comando.

Prima di passare a soluzioni più complesse, considererò il metodo più semplice.

Opzione 1: shell in un 'sandbox'

Uno dei modi più semplici è installare un’app per iOS LibTerm. Questa è un’applicazione shell open source in un 'sandbox' con supporto per oltre 80 comandi a costo zero. Include Python 2.7, Python 3.7, Lua, C, Clang e molto altro.

Una funzionalità simile è offerta da a-Shell, descritta dagli sviluppatori come "un'interfaccia utente da test per piattaforme con input touchscreen". I sorgenti di a-Shell sono disponibili open source, è in sviluppo attivo, fornisce accesso al file system e include Lua, Python, Tex, Vim, JavaScript, C e C++, insieme a Clang e Clang++. Consente anche l'installazione di pacchetti Python tramite pip.

Opzione 2: SSH

Un ulteriore passo avanti rispetto al download di un'app è la configurazione di un client SSH. Da tempo possiamo utilizzare qualsiasi delle numerose applicazioni client SSH per iOS per connetterci a un server in esecuzione su Linux o BSD. Il vantaggio dell'uso di SSH è che sul server può essere eseguito qualsiasi sistema operativo con qualsiasi software. Lavorate in remoto e i risultati vengono semplicemente trasferiti in un emulatore di terminale sul dispositivo iOS.

Blink shell è una popolare applicazione SSH a pagamento in open source. Se non si considera il piccolo schermo del dispositivo, l'utilizzo di questo software è simile a connettersi al server attraverso qualsiasi altra riga di comando. Il terminale Blink ha un aspetto magnifico, offre molte temi preimpostati e la possibilità di crearne di personalizzati, incluse opzioni per configurare e aggiungere nuovi caratteri.

Opzione 3: avviare Linux

L'utilizzo di SSH per connettersi a un server Linux è un ottimo modo per accedere alla linea di comando, ma richiede un server esterno e una connessione di rete. Non è un grande ostacolo, ma non può essere completamente ignorato, quindi potrebbe essere necessario lavorare con Linux senza un server.

Se questo è il tuo caso, dovrai fare un ulteriore passo avanti. TestFlight è un servizio proprietario per l'installazione di applicazioni in fase di sviluppo prima che vengano pubblicate su Apple App Store. L'app TestFlight può essere installata dall'App Store e successivamente utilizzata per le applicazioni di test. Le applicazioni su TestFlight consentono a un numero limitato di beta tester (di solito fino a 10.000) di utilizzare le applicazioni per un periodo limitato. Per scaricare un'applicazione di test, è necessario accedere dal proprio dispositivo a un link che di solito si trova sul sito web dello sviluppatore dell'applicazione di test.

Esecuzione di Alpine Linux con iSH

iSH è un'app open-source TestFlight che avvia una macchina virtuale con una distribuzione pronta all'uso Alpine Linux (con un po' di impegno, è possibile eseguire anche altre distribuzioni).

Caratteristica importante: l'app è sperimentale. Poiché iSH è attualmente un'applicazione in fase di test, non aspettarti funzionamento costante e affidabile. Le applicazioni TestFlight hanno un tempo limitato. La mia attuale versione funzionerà solo per 60 giorni. Ciò significa che dopo 60 giorni verrò escluso e dovrò nuovamente unirsi al prossimo fase di test di iSH. Inoltre, perderò tutti i miei file se non li esporto tramite Files su iOS o non li copio su un host Git o tramite SSH. In altre parole: Non contare sul fatto che tutto questo continui a funzionare! Non inserire nel sistema nulla che sia importante per te! Esegui il backup in un luogo separato!

Installazione di iSH

Inizia installando TestFlight dall'App Store. Quindi installa iSH, ottenendo il link per l'installazione dal sito web dell'app. C'è anche un altro modo di installare utilizzando AltStore, ma non l'ho provato. Oppure, se hai un account sviluppatore a pagamento, puoi scaricare il repository di iSH da GitHub e installarlo manualmente.

Utilizzando il link TestFlight, l'app iSH sarà installata sul tuo dispositivo. Come con qualsiasi altra app, apparirà un'icona sullo schermo.

Gestione dei pacchetti

iSH esegue un emulatore x86 con Alpine Linux. Alpine è una distribuzione piccola, inferiore ai 5 MB. Ho lavorato con Alpine per la prima volta e pensavo che un simile minimalismo sarebbe stato fastidioso, ma in realtà mi è piaciuto molto.

Avviare la riga di comando Linux su iOS
In Alpine si utilizza un gestore di pacchetti apk, che è più semplice di apt o pacman.

Come installare un pacchetto:

apk add package

Come rimuovere un pacchetto:

apk del package

Come sapere altre informazioni e comandi:

apk --help

Aggiornamento del gestore di pacchetti:

apk update
apk upgrade

Installazione di un editor di testo

L'editor di testo predefinito di Alpine è Vi, ma io preferisco Vim, quindi l'ho installato:

apk add vim

Se si desidera, si possono installare Nano o Emacs.

Cambiamento della shell

Non so voi, ma io avevo bisogno di fish shell. Altre persone preferiscono Bash o Zsh. Tuttavia, in Alpine si utilizza ash! Ash è un fork della shell Dash, che è a sua volta un fork dell'originale ash, o Almquist shell. Il suo obiettivo principale è la velocità. Ho deciso di scambiare velocità per completamento automatico integrato, colori, gestione dei tasti di Vim e evidenziazione della sintassi, che amo e conosco da fish shell.

Installazione di fish:

apk add fish

Se hai bisogno di Bash con il suo completamento automatico e le pagine man, installale:

apk add bash bash-doc bash-completion

L'ideologia minimalista di Alpine significa generalmente che alcuni programmi, che in altre distribuzioni sono un pacchetto unico, saranno suddivisi in più pacchetti più piccoli. Inoltre, questo permette di personalizzare e ridurre la dimensione del sistema esattamente come desideri.

Puoi ulteriormente scoprire come installare Bash da questo tutorial.

Cambia la shell predefinita

Dopo aver installato fish, puoi passare temporaneamente a essa digitando fish ed entrando nella shell. Ma voglio rendere fish la shell predefinita, e il comando chsh, che ho usato in altre distribuzioni, non ha funzionato.

Per prima cosa scopriamo dove è stata installata fish:

which fish

Ecco cosa ho ottenuto:

/usr/bin/fish

Poi cambiamo la login shell in fish. Puoi usare qualsiasi editor che ti è comodo. Se sei un principiante, installa Nano (con il comando apk add nano), così puoi modificare i file di configurazione e salvarli premendo CTRL+X, confermando e uscendo.

Ma io ho usato Vim:

vim /etc/passwd

La mia prima riga era così:

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

Per rendere fish la shell predefinita, cambiamo questa riga nella seguente:

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

Poi salviamo il file e usciamo.

Sono sicuro che ci sia un buon modo per modificare il percorso della shell in modo che possa essere utilizzata immediatamente. Ma non lo so, quindi consiglio di tornare al browser delle applicazioni, forzare l'uscita dalla shell e, per sicurezza, spegnere e riavviare l'iPad o l'iPhone. Apri di nuovo iSH e ora oltre al messaggio "Welcome to Alpine!" e alle informazioni di avvio con apk, vedrai il messaggio di benvenuto standard del login fish: Welcome to fish, the friendly interactive shell. Evviva!

Avviare la riga di comando Linux su iOS

Impostazione di Python e pip

Ho deciso di aggiungere Python (versione 3.x), non solo per scrivere codice, ma anche perché utilizzo diversi programmi in Python. Installiamolo:

apk add python3

Sebbene Python 2.x sia obsoleto, è possibile installarlo:

apk add python

Installiamo il gestore pacchetti Python chiamato pip e setuptools:

python3 -m ensurepip --default-pip

Per l'installazione e la configurazione del gestore pacchetti ci vorrà un po' di tempo, quindi aspettate semplicemente.

Dopo, sarà possibile scaricare uno strumento per il trasferimento di file sulla rete curl:

apk add curl

Leggiamo i manuali

Fish utilizza il completamento automatico integrato basato sulle man-page. Come altri utenti della riga di comando, utilizzo il manuale man, ma in Alpine non è installato. Quindi l'ho installato con il pager da terminale less:

apk add man man-pages less less-doc

In aggiunta a man, utilizzo il fantastico progetto tldr pages, che fornisce pagine man semplificate e gestite dalla comunità.

L'ho installato usando pip:

pip install tldr

Team tldr si collega al web per ottenere le pagine quando incontra una richiesta per una nuova pagina. Se hai bisogno di sapere come usare un comando, puoi scrivere qualcosa tipo tldr curl e ricevere una descrizione in un inglese semplice e buoni esempi sull'uso del comando.

Naturalmente, tutto questo lavoro di installazione può essere automatizzato usando dotfiles o un script di installazione, ma in realtà non si allinea molto con l'ideologia di Alpine — configurare un'installazione minimale chiaramente secondo le proprie esigenze. Inoltre, ci è voluto così tanto tempo, vero?

Informazioni aggiuntive

Nella Wiki iSH c'è una pagina "what works" con report su quali pacchetti funzionano attualmente. A proposito, sembra che npm non funzioni attualmente.

Su un'altra pagina wiki viene spiegato come accedere ai file iSH dall'app iOS Files. Questo è uno dei modi per spostare e copiare file.

È possibile anche installare Git (sì! apk add git ) e caricare il proprio lavoro in un repository remoto o trasferirlo sul server tramite SSH. E, naturalmente, è possibile scaricare ed eseguire un numero qualsiasi di fantastici progetti open source da GitHub.

Per saperne di più su iSH, visita questi link:

In pubblicità

VDS offre server virtuali su Linux o Windows. Utilizziamo esclusivamente hardware marchiato, il miglior pannello di controllo server sviluppato internamente e uno dei migliori data center in Russia e nell'UE. Affrettati a ordinare!

Avviare la riga di comando Linux su iOS

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster