GNU/Linux >> Linux Esercitazione >  >> Linux

Esegui la riga di comando di Linux sul tuo iPad

Sapevi che puoi eseguire una riga di comando Linux sul tuo dispositivo iOS? Potresti chiederti "perché dovrei voler usare applicazioni basate su testo sul mio piccolo iPhone?" OK, abbastanza giusto. Questa è una domanda abbastanza ragionevole. Ma se stai leggendo Opensource.com, probabilmente conosci la risposta:gli utenti Linux vogliono essere in grado di utilizzare qualsiasi dispositivo e vogliono anche utilizzare le proprie personalizzazioni.

E soprattutto, vogliono una sfida.

Ho un iPad 2 Mini di sette anni che funziona ancora bene per leggere e-book e altre attività. Ma voglio anche usarlo per accedere alla riga di comando per le applicazioni e la mia suite di programmi e script di cui non riesco a fare a meno. Voglio l'ambiente a cui sono abituato, così come il mio ambiente di sviluppo standard. Ecco come ho fatto.

Connetti a una tastiera

L'utilizzo della riga di comando per la programmazione sulla tastiera su schermo di un telefono o tablet non è molto divertente. Consiglio di collegare una tastiera esterna, tramite Bluetooth o utilizzando un adattatore del kit di connessione della fotocamera per collegare una tastiera cablata (la mia preferenza). Collegare la mia tastiera divisa Kinesis Advantage al mio iPhone 6 crea delle strane ottiche, come il cyberdeck di un corp del classico gioco di ruolo Shadowrun.

Ottieni una shell su iOS

Hai due opzioni per eseguire un sistema Linux completo su iOS:

  • Secure shell (SSH) in un computer Linux
  • Esegui un sistema virtualizzato utilizzando Alpine Linux con iSH, che è open source, ma deve essere installato utilizzando l'app TestFlight proprietaria di Apple

In alternativa, sono disponibili due app di emulazione di terminale open source che forniscono strumenti open source in un ambiente limitato. Questa è l'opzione più limitata:in realtà non ti consente di eseguire Linux, ma stai utilizzando strumenti Linux. Esistono pesanti restrizioni su ciò che puoi fare sul dispositivo con queste app, ma ti offrono alcune funzionalità della riga di comando.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Esaminerò l'approccio più semplice prima di esplorare soluzioni più impegnative.

Opzione 1:una shell sandbox

Uno dei modi più semplici per iniziare è con l'app per iOS LibTerm. Questa è una shell della riga di comando open source sandbox con oltre 80 comandi in bundle in un'app da $ 0. Viene fornito con Python 2.7, Python 3.7, Lua, C, Clang e altro.

Seguendo linee simili c'è a-Shell, descritta come "un'interfaccia utente basata su testo per una piattaforma basata su schermo". a-Shell è open source, in fase di sviluppo attivo, garantisce l'accesso al filesystem e viene fornito con Lua, Python, Tex, Vim, JavaScript, C e C++, insieme a Clang e Clang++. Ti permette anche di installare pacchetti Python con pip.

Opzione 2:SSH ovunque

Un passo avanti rispetto al download di un'app è la configurazione di un client SSH. Da molto tempo è possibile utilizzare una delle tante app client SSH su iOS per connettersi a un server che esegue una distribuzione Linux o BSD. Il vantaggio dell'utilizzo di SSH è che il tuo server può eseguire qualsiasi distribuzione con qualsiasi software che ti piace. Lavori in remoto e il tuo output viene semplicemente reindirizzato all'emulatore di terminale del tuo dispositivo iOS.

Blink shell è una popolare app SSH open source a pagamento. Al di fuori del piccolo schermo, l'utilizzo di questo software è simile alla connessione a un server tramite qualsiasi altro prompt dei comandi. Il terminale di Blink ha un bell'aspetto, con una serie di temi inclusi e la possibilità di creare i tuoi temi, inclusa la personalizzazione e l'aggiunta di nuovi caratteri.

Opzione 3:esegui Linux

L'uso di SSH per connettersi a un server che esegue Linux è un ottimo modo per accedere a un prompt, ma richiede l'accesso a un server esterno e una connessione. Questa non è la peggiore barriera all'ingresso, ma non è del tutto trascurabile e potresti voler utilizzare Linux senza questo requisito del server.

Se questo è il tuo caso, dovrai tirare fuori qualcosa di un po' più all'avanguardia. TestFlight è un servizio proprietario per la distribuzione di app in fase di sviluppo prima che vengano inviate all'App Store di Apple. Puoi scaricare l'app TestFlight dallo store e quindi iscriverti a una serie di applicazioni di test. Le app in TestFlight consentono un numero limitato di beta tester esterni (in genere fino a 10.000) per un periodo di tempo limitato. Per scaricare un'app di prova, devi accedere a un collegamento direttamente dal tuo dispositivo, che generalmente si trova sul sito Web dello sviluppatore dell'app di prova.

Esegui Alpine Linux con iSH

iSH è un app TestFlight open source che esegue una macchina virtuale con la distribuzione Alpine Linux pronta all'uso (ma puoi eseguire altre distribuzioni con un po' più di ritocco).

Un avvertimento importante:questo è sperimentale . Poiché iSH è attualmente un'app di prova, non aspettarti un servizio permanente o affidabile. Le app TestFlight sono limitate nel tempo. La mia build attuale dura 60 giorni. Ciò significa che tra 60 giorni sarò bloccato e dovrò rientrare nella prossima fase di test di iSH. Inoltre, perderò i miei file a meno che non li esporti con File su iOS o ne eseguo il backup su un host Git o con SSH. Per essere chiari:Non fare affidamento su questo per continuare a lavorare! Non mettere niente qui che è essenziale! Fai il backup del tuo lavoro altrove!

Installa iSH

Inizia installando TestFlight tramite l'App Store. Quindi installa iSH ottenendo il collegamento di installazione tramite il suo sito Web. Esiste un altro metodo di installazione che utilizza AltStore, ma non l'ho provato. Oppure, se hai un account sviluppatore a pagamento, puoi scaricare il repository di iSH da GitHub e distribuirlo tu stesso.

Utilizzando il collegamento, TestFlight installa un'app iSH sul tuo dispositivo. Come qualsiasi altra app, viene visualizzata sullo schermo con un'icona.

Gestisci pacchetti

iSH esegue un emulatore x86 con Alpine Linux. Alpine è una piccola distribuzione con meno di 5 MB. Questa è stata la mia prima volta che ho eseguito Alpine e ho pensato che mi sarei sentito frustrato da una distribuzione così minimale, ma in realtà mi è davvero piaciuto.

Alpine usa il gestore di pacchetti apk, che è più semplice anche di apt o pacman.

Per installare un pacchetto:

apk add package

Per rimuovere un pacchetto:

apk del package

Trova altri comandi e informazioni con:

apk --help

Aggiorna il gestore pacchetti:

apk update
apk upgrade

Ottieni un editor di testo

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

apk add vim

Puoi installare Nano o Emacs, se preferisci.

Cambia la shell

Non so voi, ma ho bisogno del guscio di pesce. Altre persone preferiscono Bash o Zsh. Ma Alpine usa la cenere! Ash è un fork di Dash shell, a sua volta un fork dell'originale ash o Almquist shell. È progettato per la velocità. Ho deciso di scambiare la velocità a favore del completamento automatico integrato, del colore, del controllo del tasto Vim e dell'evidenziazione della sintassi che conosco e amo in guscio di pesce.

Installa pesce:

apk add fish

Se invece vuoi Bash e i suoi completamenti e le pagine man, devi installarli e alcune cose extra:

apk add bash bash-doc bash-completion

L'ideologia minimalista di Alpine generalmente significa che alcuni programmi che sarebbero un unico pacchetto in altre distribuzioni sono suddivisi in più pacchetti più piccoli. Ciò significa anche che puoi personalizzare e snellire il tuo sistema esattamente come desideri.

Puoi trovare maggiori dettagli sull'installazione di Bash in questo tutorial.

Cambia la shell predefinita

Dopo aver installato fish, puoi passare temporaneamente ad esso e provarlo digitando fish e cadere nel guscio. Ma voglio fare del pesce il mio guscio predefinito e il chsh il comando a cui sono abituato da altre distribuzioni non funziona.

Innanzitutto, scopri dove è installato fish:

which fish

Il mio risultato:

/usr/bin/fish

Quindi, modifica la shell di accesso per utilizzare il pesce. Puoi usare qualsiasi editor con cui ti senti a tuo agio. Se sei un principiante, installa Nano (con apk add nano ) in modo da poter modificare i file di configurazione e salvarli con CTRL+X, confermare ed uscire.

Ma ho usato Vim:

vim /etc/passwd

La mia prima riga è stata:

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

Per impostare il pesce come predefinito, cambia quella linea in:

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

Quindi salva ed esci.

Sono sicuro che esiste un buon modo per reperire risorse della shell in modo che tu possa iniziare a utilizzarla immediatamente. Ma non ne sono sicuro, quindi consiglio di tornare al browser dell'app, uscire forzatamente dalla shell e, per buona misura, spegnere e riavviare l'iPad o l'iPhone. Riapri iSH e ora, oltre al "Benvenuto in Alpine!" messaggio e informazioni su come iniziare con apk, vedrai il messaggio di benvenuto predefinito per l'accesso a fish:Benvenuto in fish, il simpatico guscio interattivo . Evviva!

Configura Python e pip

Ho deciso di aggiungere Python (versione 3.x), non solo per poter scrivere codice, ma perché mi affido a diversi programmi Python. Installalo:

apk add python3

Sebbene Python 2.x sia deprecato, puoi comunque installarlo:

apk add python

Installa il gestore di pacchetti Python, pip e setuptools:

python3 -m ensurepip --default-pip

Ci vuole del tempo per installare e configurare il gestore pacchetti, quindi aspetta.

Quindi, puoi scaricare curl, lo strumento di trasferimento in rete:

apk add curl

Leggi il manuale

Fish utilizza il completamento automatico integrato basato sulle pagine man. Come altri utenti della riga di comando, mi affido a man manuale e Alpine non viene fornito con esso installato. Quindi, l'ho installato insieme al cercapersone less:

apk add man man-pages less less-doc

Oltre a man, utilizzo il favoloso progetto tldr pages, che fornisce pagine man semplificate e guidate dalla community.

L'ho installato con pip:

pip install tldr

Il tldr comando si connette al Web per recuperare le pagine ogni volta che incontra una richiesta per una nuova. Se hai bisogno di imparare a usare un comando, puoi semplicemente digitare qualcosa come tldr curl per ottenere una spiegazione in inglese semplice e buoni esempi di come utilizzare il comando.

Ovviamente potresti automatizzare tutto questo lavoro di installazione con dotfile o uno script di installazione, ma ciò non rientrerebbe davvero nel modo alpino di personalizzare un'installazione minima esattamente secondo le tue specifiche. Inoltre, non ci è voluto molto, vero?

Ulteriori informazioni

Il wiki iSH contiene una pagina "cosa funziona" con rapporti su quali pacchetti funzionano attualmente. Da notare che npm non sembra funzionare in questo momento.

Un'altra pagina wiki spiega come accedere ai file iSH dall'app File iOS. Questo è un modo per spostare e trasferire file.

Potresti anche installare Git (sì! apk add git ) e invia il tuo lavoro a un repository remoto o trasferiscilo a un server tramite SSH. E, naturalmente, puoi scaricare ed eseguire un numero qualsiasi di favolosi progetti open source da GitHub sul tuo sistema.

Per maggiori informazioni su iSH, consulta questi link:

  • sito web iSH
  • Subreddit
  • Problemi con GitHub
  • Wiki

Linux
  1. 6 metacaratteri Linux che amo usare sulla riga di comando

  2. 4 modi per modificare le foto sulla riga di comando di Linux

  3. Genera password sulla riga di comando di Linux

  4. 8 suggerimenti per la riga di comando di Linux

  5. Usando la forza sulla riga di comando di Linux

Patch in The Matrix dalla riga di comando di Linux

Pianifica il tuo calendario delle vacanze dalla riga di comando di Linux

3 gestori di password per la riga di comando di Linux

Padroneggia la riga di comando di Linux

Recensione del libro:La riga di comando di Linux

Visualizza il contenuto di un file nella riga di comando di Linux