Kjør Linux kommandolinjen på iPad

visste du at du kan kjøre En Linux kommandolinje på iOS-enheten? Du kan spørre, » hvorfor skulle jeg ønske å bruke tekstbaserte programmer på min lille iPhone ?»Ok, greit nok. Det er et ganske rimelig spørsmål. Men hvis du leser Opensource.com, vet du sikkert svaret: Linux-brukere vil kunne bruke hvilken som helst enhet, og de vil også bruke sine egne tilpasninger.

og mest av alt, de vil ha en utfordring.jeg har en syv år gammel iPad 2 Mini som fortsatt fungerer fint for å lese e-bøker og andre oppgaver. Men jeg vil også bruke den til å få tilgang til kommandolinjen for applikasjoner og min pakke med programmer og skript jeg ikke kan synes å gjøre uten. Jeg vil ha miljøet jeg er vant til, så vel som mitt standard utviklingsmiljø. Her er hvordan jeg gjorde det.

Koble til et tastatur

Bruke kommandolinjen for programmering på en telefon eller nettbrett skjermtastatur er ikke mye moro. Jeg anbefaler å koble til et eksternt tastatur, Enten Via Bluetooth eller ved å bruke en adapter for kamerakoblingssett for å koble til et kablet tastatur (min preferanse). Plugging Av Kinesis Advantage split keyboard i min iPhone 6 gir litt merkelig optikk, som en corps cyberdeck fra det klassiske rollespillet Shadowrun.

Få et skall på iOS

du har to alternativer for å kjøre et komplett Linux-system på iOS:

  • Secure shell (SSH) i En Linux-datamaskin
  • Kjør et virtualisert system ved Hjelp Av Alpine Linux med iSH, som er åpen kildekode, Men må installeres ved Hjelp Av Apples proprietære TestFlight-app

Alternativt er det to åpen kildekode terminalemulatorapper som gir åpen kildekode-verktøy innenfor et begrenset miljø. Dette er det mest begrensede alternativet – det lar deg ikke kjøre Linux, men Du kjører Linux-verktøy. Det er store restriksjoner på hva du kan gjøre på enheten med disse appene, men de får deg noen kommandolinjefunksjonalitet.

jeg skal se på den enkleste tilnærmingen før jeg utforsker mer utfordrende løsninger.

Alternativ 1: et sandkasseskall

en av de enkleste måtene å komme i gang er med iOS-appen LibTerm. Dette er et sandkassert åpen kildekode kommandolinjeskall med 80 + kommandoer samlet i en $ 0 app. Den leveres Med Python 2.7, Python 3.7, Lua, C, Clang og mer.Langs lignende linjer er a-Shell, beskrevet som et » tekstbasert brukergrensesnitt for en skjermbasert plattform.»A-Shell er åpen kildekode, i aktiv utvikling, gir tilgang til filsystemet, og leveres Med Lua, Python, Tex, Vim, JavaScript, C og C++, sammen Med Clang og Clang++. Den lar deg til og med installere Python-pakker med pip.

Alternativ 2: SSH anywhere

Ett trinn opp fra å laste ned en app konfigurerer EN SSH-klient. I lang tid har det vært mulig å bruke en AV MANGE SSH-klientapper på iOS for å koble til en server som kjører En Linux distro eller BSD. Fordelen med Å bruke SSH er at serveren din kan kjøre noen distro med hvilken som helst programvare du liker. Du jobber eksternt, og produksjonen din blir bare sendt til iOS-enhetens terminalemulator.Blink shell Er en populær betalt ÅPEN kildekode SSH app. Utenfor den lille skjermen, ved hjelp av denne programvaren er beslektet med å koble til en server via en annen ledetekst. Blink terminal ser vakker, med en rekke inkluderte temaer og muligheten til å lage dine egne temaer, inkludert tilpasse og legge til nye fonter.

Alternativ 3: Kjør Linux

Å bruke SSH til å koble Til en server som kjører Linux, er en fin måte å få tilgang til en melding, men det krever tilgang til en ekstern server og en tilkobling. Dette er ikke den verste barrieren for oppføring, men det er ikke helt ubetydelig, og du vil kanskje bruke Linux uten dette serverkravet.

hvis det er tilfelle, må du bryte ut noe litt mer på kanten. TestFlight er en proprietær tjeneste for distribusjon av apper under utvikling før de sendes Til Apples App Store. Du kan laste Ned TestFlight-appen fra butikken, og deretter registrere deg for en rekke testapplikasjoner. Apper i TestFlight tillater et begrenset antall eksterne betatestere (vanligvis opptil 10 000) i en begrenset tidsperiode. For å laste ned en testapp må du ha tilgang til en kobling direkte fra enheten din, som vanligvis finnes på testapputviklerens nettsted.

Kjør Alpine Linux med iSH

iSH er en åpen kildekode TestFlight app som kjører en virtuell maskin Med Alpine Linux distro ut av boksen(men du kan kjøre andre distribusjoner med litt mer mekke).

en viktig advarsel: dette er eksperimentelt. Siden iSH er for tiden en test app, ikke forvent permanent eller robust tjeneste. TestFlight apps er tidsbegrenset. Min nåværende bygg varer 60 dager. Dette betyr at om 60 dager blir jeg låst ute og må bli med i ishs neste testfase. Videre mister jeg filene mine med mindre jeg eksporterer Dem Med Filer på iOS eller sikkerhetskopierer dem til En Git-vert eller MED SSH. For å være klar: ikke stol på dette for å fortsette å jobbe! Ikke legg noe på her som er viktig! Back up ditt arbeid andre steder!

Installer iSH

Kom i gang ved å installere TestFlight gjennom App Store. Deretter installere iSH ved å få installere linken gjennom sin hjemmeside. Det er en annen installasjonsmetode som bruker AltStore, men jeg har ikke prøvd det. Eller, hvis du har en betalt utviklerkonto, kan du laste ned ishs repo fra GitHub og distribuere det selv.

TestFlight installerer en iSH-app På enheten ved hjelp av koblingen. Som alle andre apper vises den på skjermen med et ikon.

Administrer pakker

ish kjører en x86 emulator Med Alpine Linux. Alpine er en liten, under-5mb distro. Dette var første gang Jeg kjørte Alpine,og jeg trodde jeg ville bli frustrert med en så minimal distro, men jeg likte det virkelig.

ish-installere.png

Alpine Linux på iOS

(Lee Tusman, CC by-SA 4.0)

Alpine bruker apk pakkebehandling, som er enklere enn selv apt eller pacman.

for å installere en pakke:

apk add package

for å fjerne en pakke:

apk del package

Finn andre kommandoer og info med:

apk --help

Oppdater pakkebehandleren:

apk updateapk upgrade

Få en tekstredigerer

Alpine standard tekstredigerer Er Vi, men jeg foretrekker Vim, så jeg installerte den:

apk add vim

Du kan installere nano eller emacs, hvis du foretrekker det.

Endre skallet

jeg vet ikke om deg, men jeg trenger fiskeskallet. Andre folk foretrekker Bash Eller Zsh. Men Alpine bruker aske! Ask er en gaffel Av Dash shell, selv en gaffel av den opprinnelige ash eller Almquist shell. Den er designet for fart. Jeg bestemte meg for å handle hastighet til fordel for den innebygde automatisk fullføring, farge, vim-nøkkelkontroll og syntaksutheving som jeg kjenner og elsker i fish shell.

Installer fish:

apk add fish

Hvis Du vil Bash og dens fullføringer og man sider i stedet, må du installere Dem og noen ekstra ting:

apk add bash bash-doc bash-completion

Alpine minimalistiske ideologi betyr generelt at noen programmer som ville være en enkelt pakke i andre distroer er delt inn i flere mindre pakker. Dette betyr også at du kan tilpasse og slanke systemet nøyaktig hvordan du vil.

du finner flere detaljer om å installere Bash i denne opplæringen.

Endre standard skallet

etter at du har installert fish, kan du midlertidig bytte til det og prøve det ved å skrive fish og slippe inn i skallet. Men jeg vil lage fisk min standard skall, og kommandoenchsh jeg er vant til fra andre distros virker ikke.

finn først ut hvor fisken er installert:

which fish

min utgang:

/usr/bin/fish

neste, rediger innloggingsskallet for å bruke fisk. Du kan bruke hvilken som helst redaktør du er komfortabel med. Hvis du er nybegynner, installer Nano (med apk add nano) slik at du kan redigere config-filer og lagre DEM MED CTRL + X, bekreft og avslutt.

Men jeg brukte Vim:

vim /etc/passwd

Min første linje var:

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

endre denne linjen til:

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

lagre og avslutt.

jeg er sikker på at det er en god måte å re-source skallet slik at du kan begynne å bruke det med en gang. Men jeg er ikke sikker, så jeg anbefaler å gå tilbake til appleseren, tvinge ut skallet, og for godt mål, slå av og starte iPad eller iPhone på nytt. Åpne iSH, og nå, i tillegg til «Velkommen Til Alpine!»melding og info om å komme i gang med apk, vil du se standard fish login velkomstmelding: Velkommen til fish, den vennlige interaktive shell. Hurra!

ish.png

fiskeskall på Alpine Linux

(Lee Tusman, CC BY-SA 4.0)

Sett Opp Python og pip

jeg bestemte Meg for å legge Til Python (versjon 3.x), ikke bare så jeg kunne skrive kode, men fordi jeg stoler på flere Python-programmer. Installer den:

apk add python3

Selv Om Python 2.det:

apk add python

Installer Python package manager, pip og setuptools:

python3 -m ensurepip --default-pip

det tar litt tid å installere og sette opp pakkebehandleren, så bare vent.

deretter, du kan laste ned curl, verktøyet nettverk overføring:

apk add curl

Les håndboken

Fisk bruker innebygd automatisk fullføring basert på man-sider. Som andre kommandolinjebrukere stoler jeg påman manuell, Og Alpine kommer ikke med den installert. Så jeg installerte den sammen med den mindre personsøkeren:

apk add man man-pages less less-doc

i tillegg til man bruker jeg fabulous tldr pages project, som gir forenklede, fellesskapsdrevne man-sider.

jeg installerte den med pip:

pip install tldr

kommandoentldr kobles til nettet for å hente sider når det møter en forespørsel om en ny. Hvis du trenger å lære å bruke en kommando, kan du bare skrive noe som tldr curl for å få en vanlig engelsk forklaring og gode eksempler på hvordan du bruker kommandoen.

du kan selvfølgelig automatisere alt dette installasjonsarbeidet med dotfiles eller et installasjonsskript, men det ville egentlig ikke falle innenfor Den Alpine måten å tilpasse en minimal installasjon nøyaktig til dine spesifikasjoner. Dessuten tok det ikke så lang tid, gjorde det vel?

Lær mer

ish-wikien inneholder en» hva som fungerer » – side med rapporter om hvilke pakker som for øyeblikket fungerer. Npm ser ikke ut til å fungere på dette tidspunktet.

En annen wiki-side forklarer hvordan du kan få tilgang til iSH-filer fra iOS-Filer-appen. Dette er en måte du kan flytte og overføre filer.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.