
Visste du at du kan kjøre kommandolinjen for Linux på en iOS-enhet? Kanskje du lurer på: «Hvorfor skulle jeg bruke tekstapplikasjoner på iPhone?» Et rimelig spørsmål. Men hvis du leser Opensource.com, vet du sannsynligvis svaret: Linux-brukere ønsker å kunne bruke det på hvilken som helst enhet og vil ha tilgang til sine egne innstillinger.
Men mest av alt lengter de etter å løse komplekse oppgaver.
Jeg har en syv år gammel iPad 2 Mini, som fortsatt fungerer bra for å lese e-bøker og andre oppgaver. Men jeg vil også bruke den til å få tilgang til kommandolinjen for applikasjoner med mitt sett av programmer og skript som jeg ikke kan jobbe uten. Jeg trenger et miljø jeg er kjent med, samt min standard utviklingsmiljø. Og slik klarte jeg å oppnå dette.
Tilkobling til tastatur
Å jobbe med kommandolinjen for programmering via skjermtastaturet på telefonen eller nettbrettet er ganske upraktisk. Jeg anbefaler å koble til et eksternt tastatur, enten via Bluetooth, eller ved å bruke en kamerakoblingsadapter for å koble til et kablet tastatur (jeg valgte det siste). Når jeg kobler den delte tastaturen Kinesis Advantage til iPhone 6, får jeg en merkelig enhet som minner om fra den klassiske Shadowrun.
Installere et skall på iOS
For å kjøre et fullt funksjonelt Linux-system på iOS er det to alternativer:
- Sikker shell (SSH), kobler til en Linux-datamaskin
- Kjøre et virtuelt system med Alpine Linux via iSH, som er åpen kildekode, men må installeres med et proprietært TestFlight-program fra Apple
Alternativt finnes det to terminalemulator-applikasjoner i åpen kildekode som gir mulighet for arbeid med open-source-verktøy i et begrenset miljø. Dette er den mest avskårne varianten – du kjører faktisk ikke Linux, men Linux-verktøy. Når du jobber med disse applikasjonene finnes det strenge begrensninger i mulighetene, men du får delvis funksjonalitet av kommandolinjen.
Før jeg går videre til mer kompliserte løsninger, vil jeg ta for meg den enkleste metoden.
Alternativ 1: skall i «sandbox»
En av de enkleste måtene er å installere en applikasjon for iOS . This Kommando-skall i «sandkasse» med støtte for mer enn 80 kommandoer til prisen null dollar. Den leveres med Python 2.7, Python 3.7, Lua, C, Clang og mye mer.
Den har omtrent samme funksjonalitet som , beskrevet av utviklerne som «brukergrensesnitt for plattformer med skjerminngang». Kildekoden til a-Shell er utgitt som , den er under aktiv utvikling, gir tilgang til filsystemet og leveres med Lua, Python, Tex, Vim, JavaScript, C og C++, samt Clang og Clang++. Den tillater til og med installasjon av Python-pakker ved hjelp av pip.
Alternativ 2: SSH
Et annet skritt fremover sammenlignet med å laste ned applikasjonen er å sette opp en SSH-klient. I lang tid har vi kunnet bruke en av mange SSH-klientapplikasjoner for iOS for å koble oss til serveren som kjører Linux eller BSD. Fordelen med å bruke SSH er at hvilken som helst distribusjon med programvare kan kjøre på serveren. Du jobber eksternt, og resultatene sendes rett til terminalemulatoren på iOS-enheten.
— er en populær betalt SSH-applikasjon på . Hvis man ser bort fra den lille skjermen på enheten, ligner bruken av denne programvaren på å koble til serveren via en hvilken som helst annen kommandolinje. Blink-terminalen ser fantastisk ut, med mange ferdige temaer og mulighet for å lage egne, inkludert muligheten til å tilpasse og legge til nye skrifttyper.
Alternativ 3: kjøre Linux
Bruk av SSH for å koble til en server med Linux er en utmerket måte å få tilgang til kommandolinjen på, men det krever en ekstern server og tilkobling til nettverket. Dette er ikke den største hindringen, men den kan ikke overses helt, derfor kan det hende du må jobbe med Linux uten server.
Hvis dette er tilfelle for deg, må du ta enda et skritt fremover. — er en proprietær tjeneste for å installere utviklede applikasjoner før de er gjort tilgjengelige i Apple App Store. TestFlight-applikasjonen kan installeres fra App Store, og deretter bruke testapplikasjoner. Applikasjoner i TestFlight lar et begrenset antall beta-testere (vanligvis opptil 10 000) bruke dem i en begrenset tidsperiode. For å laste ned en testapplikasjon må du gå til lenken som vanligvis finnes på utviklerens nettsted fra enheten din.
Kjøring av Alpine Linux med iSH
— er en open-source applikasjon TestFlight som kjører en virtuell maskin med en ferdig distribusjon (med litt innsats kan man kjøre andre distribusjoner også).
Viktig funksjon: applikasjonen er eksperimentell. Siden iSH for tiden er en testapplikasjon, ikke forvent stabil og pålitelig drift. TestFlight-applikasjoner er tidsbegrensede. Min nåværende bygging vil bare fungere i 60 dager. Dette betyr at etter 60 dager vil jeg bli ekskludert og må bli med i neste testfase av iSH. I tillegg vil jeg miste alle mine filer med mindre jeg eksporterer dem via Files på iOS eller kopierer dem til en Git-host eller . Med andre ord: Ikke forvent at alt dette vil fortsette å fungere! Ikke legg noe viktig i systemet! Ta sikkerhetskopi et annet sted!
Installasjon av iSH
Begynn med å installere fra App Store. Installer deretter iSH, fra applikasjonens nettsted. Det er en annen installasjonsmetode ved bruk av AltStore, men jeg har ikke prøvd det. Eller hvis du har en betalt utviklerkonto, kan du laste ned iSH-repositoriet fra GitHub og installere det selv.
Ved hjelp av lenken installerer TestFlight iSH-applikasjonen på enheten din. Som med enhver annen applikasjon, vil et ikon vises på skjermen.
Pakkebehandling
iSH kjører en x86-emulator med Alpine Linux. Alpine er en liten distribusjon som er mindre enn 5 MB. Jeg arbeidet først med Alpine, så jeg trodde at et slikt minimalisme ville være irriterende, men jeg likte det faktisk veldig godt.

Alpine bruker pakkebehandleren , som er enklere enn selv apt eller pacman.
Hvordan installere en pakke:
apk add packageHvordan slette en pakke:
apk del packageHvordan finne andre kommandoer og informasjon:
apk --helpOppdatering av pakkebehandleren:
apk update
apk upgradeInstallasjon av teksteditor
Standard teksteditoren i Alpine er Vi, men jeg foretrekker Vim, så jeg installerte det:
apk add vimHvis ønskelig kan du installere Nano eller Emacs.
Bytte skall
Jeg vet ikke hvordan det er med deg, men jeg måtte ha . Andre foretrekker eller . Men i Alpine brukes ash! Ash er en fork av Dash, som igjen er en fork av den originale ash, eller . Dets prioritet er hastighet. Jeg valgte å bytte hastighet mot innebygd autocompletion, farger, Vim-tastaturkontroller og syntaksutheving, som jeg elsker og kjenner fra fish shell.
Installasjon av fish:
apk add fishHvis du trenger Bash med autocompletion og man-sider, installer dem:
apk add bash bash-doc bash-completionDen minimalistiske ideologien til Alpine betyr vanligvis at noen programmer som i andre distribusjoner er én pakke, blir delt opp i flere mindre pakker. Dette betyr også at du kan tilpasse og redusere systemstørrelsen akkurat som du ønsker.
Mer om installasjon av Bash kan du lese i .
Bytte standard skall
Etter installasjon av fish kan du midlertidig bytte til den ved å skrive fish og bytte til skallet. Men jeg vil gjøre fish til standard skall, og kommandoen chsh, som jeg har brukt i andre distribusjoner, fungerte ikke.
først finner vi ut hvor fish er installert:
which fishHer er hva jeg fikk:
/usr/bin/fish Deretter endrer vi login shell til fish. Du kan bruke hvilken som helst redaktør du ønsker. Hvis du er nybegynner, installer Nano (med kommandoen apk add nano), slik at du kan redigere konfigurasjonsfiler og lagre dem med CTRL+X, bekrefte og avslutte.
Men jeg brukte Vim:
vim /etc/passwdMin første linje var slik:
root:x:0:0:root:/root:/bin/ashFor å gjøre fish til standard skall, endrer vi denne linjen til:
root:x:0:0:root:/root:/usr/bin/fishSå lagrer vi filen og avslutter.
Jeg er sikker på at det finnes en god måte å endre stien til skallet på, så den kan brukes umiddelbart. Men jeg vet det ikke, så jeg anbefaler å gå tilbake til applikasjonsnettleseren, tvinge utlogging fra skallet og for sikkerhets skyld slå av og starte iPad eller iPhone på nytt. Åpne iSH igjen, og nå, i tillegg til meldingen «Welcome to Alpine!» og informasjon om oppstart med apk, vil du se den standard velkomstmeldingen til login fish: Velkommen til fish, den vennlige interaktive kommandolinjen. Hurra!

Innstilling av Python og pip
Jeg har bestemt meg for å legge til (versjon 3.x), ikke bare for å skrive kode, men også fordi jeg bruker flere programmer på Python. La oss installere det:
apk add python3Selv om Python 2.x er foreldet, kan vi også installere det:
apk add pythonLa oss installere Python-pakkeadministratoren kalt pip og :
python3 -m ensurepip --default-pipFor å installere og konfigurere pakkeadministratoren vil det ta litt tid, så bare vent.
Deretter kan vi laste ned verktøyet for filoverføring over nettverket :
apk add curlLeser manualene
Fish bruker innebygd autocompletion basert på man-sider. Som andre terminalbrukere, bruker jeg manualen man, men i Alpine er det ikke installert. Så jeg installerte det med terminalpageren :
apk add man man-pages less less-docI tillegg til man bruker jeg det flotte , som gir forenklede og samfunnsstyrte man-sider.
Jeg installerte det med pip:
pip install tldr Laget tldr kobler til nettet for å hente sider når den møter en forespørsel om en ny side. Hvis du trenger å vite hvordan du bruker en kommando, kan du skrive noe som tldr curl og få en beskrivelse på enkel engelsk og gode eksempler på hvordan å bruke kommandoen.
Selvfølgelig kan alt dette installasjonsarbeidet automatiseres med eller et installasjonsskript, men det passer egentlig ikke helt med ideologien til Alpine — å tilpasse en minimal installasjon klart til sine behov. Dessuten tok det jo så mye tid, ikke sant?
Ytterligere informasjon
På WIkien til iSH er det en side "" med rapporter om hvilke pakker som fungerer nå. Forresten, det ser ut til at .
På en annen wiki-side forklares det hvordan fra iOS Files-appen. Dette er en av metodene for å flytte og kopiere filer.
Du kan også installere Git (ja! apk add git ) og pushe arbeidet ditt til et eksternt depot eller overføre det til en server via SSH. Og selvsagt kan du laste ned og kjøre et hvilket som helst antall flotte open-source-prosjekter fra GitHub.
Du kan lære mer om iSH fra disse lenkene:
Advertising
VDS-servere tilbyr eller Windows. Vi bruker utelukkende , den beste i sitt slag serveradministrasjonspanel av eget design og noen av de beste datasentrene i Russland og EU. Skynd deg å bestille!
Kilde: habr.com
