Starter Linux-kommandolinjen på iOS

Starter Linux-kommandolinjen på iOS

Visste du at du kan kjøre Linux-kommandolinjen på en iOS-enhet? Du spør kanskje: "Hvorfor skal jeg bruke tekstmeldinger på iPhone?" Greit 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 ønsker å tilpasse det selv.

Men mest av alt ønsker de å løse komplekse problemer.

Jeg har en syv år gammel iPad 2 Mini som fortsatt er ganske god til å lese e-bøker og andre oppgaver. Imidlertid vil jeg også bruke den til å få tilgang til kommandolinjen med applikasjoner med mitt sett med programmer og skript, uten som jeg ikke kan jobbe. Jeg trenger et miljø jeg er vant til, i tillegg til mitt standard utviklingsmiljø. Og her er hvordan jeg klarte å oppnå dette.

Koble til et tastatur

Å jobbe med kommandolinjen for programmering gjennom skjermtastaturet på en telefon eller nettbrett er ganske upraktisk. Jeg anbefaler å koble til et eksternt tastatur, enten via Bluetooth, eller bruke en kameratilkoblingsadapter for å koble til et kablet tastatur (jeg valgte det siste). Når du kobler Kinesis Advantage delt tastatur til en iPhone 6, får du en merkelig enhet som ligner bedriftens cyberdekk fra klassikeren rollespill Shadowrun.

Installere skallet på iOS

For å kjøre et fullverdig Linux-system på iOS, er det to alternativer:

  • Secure shell (SSH) koblet til en Linux-datamaskin
  • Kjøre et virtuelt system med Alpine Linux med iSH, som er åpen kildekode, men må installeres ved hjelp av Apples proprietære TestFlight-applikasjon

Som et alternativ er det to åpen kildekode-terminalemulatorapplikasjoner som gir muligheten til å jobbe med åpen kildekode-verktøy i et begrenset miljø. Dette er det mest avkledde alternativet - faktisk er det slik du kjører Linux-verktøy, ikke Linux. Det er alvorlige funksjonsbegrensninger når du arbeider med disse programmene, men du får delvis kommandolinjefunksjonalitet.

Før jeg går videre til komplekse løsninger, vil jeg se på den enkleste metoden.

Alternativ 1: Sandkasseskall

En av de enkleste måtene er å installere iOS-appen LibTerm. Den åpen kilde kommandoskall i sandkasse med støtte for over 80 kommandoer for null dollar. Den kommer sammen med Python 2.7, Python 3.7, Lua, C, Clang og mye mer.

Har omtrent samme funksjonalitet som helvete, beskrevet av utviklerne som "et testbrukergrensesnitt for en skjerminndataplattform." a-Shell-kilder er lagt ut åpen kildekode, den er i aktiv utvikling, gir filsystemtilgang, og kommer med Lua, Python, Tex, Vim, JavaScript, C og C++, samt Clang og Clang++. Det lar deg til og med pip-installere Python-pakker.

Alternativ 2: SSH

Et annet steg opp fra å laste ned en app er å sette opp en SSH-klient. I lang tid nå har vi vært i stand til å bruke hvilken som helst av de mange SSH-klientappene for iOS for å koble til en server som kjører Linux eller BSD. Fordelen med å bruke SSH er at serveren kan kjøre hvilken som helst distribusjon med hvilken som helst programvare. Du jobber eksternt, og resultatene av arbeidet ditt overføres ganske enkelt til terminalemulatoren på iOS-enheten din.

Blinke skallet er en populær betalt SSH-applikasjon i åpen kildekode. Hvis du ignorerer den lille skjermen på enheten, ligner bruken av denne programvaren på å koble til serveren via en hvilken som helst annen kommandolinje. Blink Terminal ser flott ut, har mange ferdige temaer og muligheten til å lage dine egne, inkludert muligheten til å tilpasse og legge til nye fonter.

Alternativ 3: Start Linux

Å bruke SSH for å koble til en Linux-server er en fin måte å få tilgang til kommandolinjen på, men det krever en ekstern server og en nettverkstilkobling. Dette er ikke det største hinderet, men det kan ikke ignoreres fullstendig, så du må kanskje kjøre Linux uten server.

Hvis dette er ditt tilfelle, må du ta det ett skritt videre. TestFlight er en proprietær tjeneste for å installere utviklede applikasjoner selv før de publiseres i Apple App Store. Du kan installere TestFlight-appen fra App Store og deretter bruke testapper. Apper i TestFlight lar et begrenset antall betatestere (vanligvis opptil 10 000) jobbe med dem i en begrenset periode. For å laste ned en testapplikasjon, må du gå fra enheten til en lenke som vanligvis er plassert på nettsiden til testapplikasjonsutvikleren.

Kjører Alpine Linux med iSH

ISH er en åpen kildekode TestFlight-applikasjon som lanserer en virtuell maskin med en ferdig distribusjon Alpine Linux (Med litt innsats kan du kjøre andre distribusjoner).

Viktig funksjon: eksperimentell applikasjon. Siden iSH for tiden er en testapplikasjon, forvent ikke konstant og pålitelig drift. TestFlight-applikasjoner er tidsbegrenset. Min nåværende konstruksjon vil bare vare i 60 dager. Dette betyr at etter 60 dager vil jeg bli eliminert og må bli med på neste runde med iSH-testing. Dessuten vil jeg miste alle filene mine med mindre jeg eksporterer dem ved hjelp av filer på iOS eller kopierer dem til en Git-vert eller via SSH. Med andre ord: Ikke forvent at dette skal fortsette å fungere! Ikke legg noe viktig for deg inn i systemet! Sikkerhetskopier til et eget sted!

Installerer iSH

Start med installasjon TestFlight fra App Store. Installer deretter iSH, mottatt installasjonslinken fra applikasjonsnettstedet. Det er en annen installasjonsmetode som bruker AltStore, men jeg har ikke prøvd den. Eller, hvis du har en betalt utviklerkonto, kan du laste ned iSH-depotet fra GitHub og installere det selv.

Ved å bruke lenken vil TestFlight installere iSH-applikasjonen på enheten din. Som med alle andre applikasjoner vil et ikon vises på skjermen.

Pakkehåndtering

iSH kjører en x86-emulator med Alpine Linux. Alpine er en liten distro, som måler mindre enn 5 MB i størrelse. Dette var første gang jeg jobbet med Alpine, så jeg trodde minimalismen ville være irriterende, men jeg likte den faktisk veldig godt.

Starter Linux-kommandolinjen på iOS
Alpine bruker en pakkebehandler apk, som er enklere enn til og med apt eller pacman.

Slik installerer du pakken:

apk add package

Slik fjerner du en pakke:

apk del package

Slik finner du andre kommandoer og informasjon:

apk --help

Pakkeadministratoroppdatering:

apk update
apk upgrade

Installere et tekstredigeringsprogram

Alpines standard tekstredigerer er Vi, men jeg foretrekker Vim, så jeg installerte det:

apk add vim

Om ønskelig kan du installere Nano eller Emacs.

Skalskifte

Jeg vet ikke med deg, men jeg trengte fiskeskall. Andre mennesker foretrekker Bash eller Zsh. Alpine bruker imidlertid aske! Ask er en gaffel av Dash-skallet, som i seg selv er en gaffel av den originale asken, eller Almquist-skall. Hennes prioritet er hastighet. Jeg bestemte meg for å bytte hastighet mot den innebygde autofullføringen, farger, Vim-tastkontroller og syntaksutheving som jeg elsker og kjenner fra fiskeskallet.

Installasjon av fisk:

apk add fish

Hvis du trenger Bash med autofullføring og man-sider, installer dem:

apk add bash bash-doc bash-completion

Alpines minimalistiske ideologi betyr vanligvis at noen programmer som er pakket i andre distribusjoner vil bli delt opp i flere mindre pakker. Det betyr også at du kan tilpasse og redusere størrelsen på systemet akkurat slik du vil.

For mer informasjon om installasjon av Bash, se denne opplæringen.

Endring av standard skall

Etter å ha installert fisk, kan du midlertidig bytte til den ved å gå inn fish og går inn i skallet. Men jeg vil gjøre fisk til standard skall og kommandoen chsh, som jeg brukte på andre distribusjoner, fungerte ikke.

Først finner vi ut hvor fisken er installert:

which fish

Her er hva jeg fikk:

/usr/bin/fish

Deretter endrer du påloggingsskallet til fisk. Du kan bruke hvilken som helst editor som er praktisk for deg. Hvis du er nybegynner, installer Nano (med kommandoen apk add nano) slik at du kan redigere konfigurasjonsfiler og lagre dem via CTRL+X, bekrefte og avslutte.

Men jeg brukte Vim:

vim /etc/passwd

Min første linje var slik:

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

For å gjøre fisk til standard skall, endre denne linjen til følgende:

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

Lagre deretter filen og avslutt.

Jeg er sikker på at det er en god måte å endre banen til skallet på, slik at det kan brukes med en gang. Men jeg vet det ikke, så jeg anbefaler å gå tilbake til applikasjonsnettleseren, tvinge ut av skallet, og for å være på den sikre siden, slå av og start iPad eller iPhone på nytt. Åpne iSH igjen og nå, i tillegg til meldingen "Velkommen til Alpine!" og informasjon om oppstart fra apk, vil du se standard velkomstmeldingen for fiskpålogging: Velkommen til fisk, det vennlige interaktive skallet. Hurra!

Starter Linux-kommandolinjen på iOS

Sette opp Python og pip

Jeg bestemte meg for å legge til Python (versjon 3.x), ikke bare for å skrive kode, men også fordi jeg bruker flere Python-programmer. La oss installere det:

apk add python3

Selv om Python 2.x er utdatert, kan du installere det:

apk add python

La oss installere Python-pakkebehandleren kalt pip og oppsettverktøy:

python3 -m ensurepip --default-pip

Det vil ta litt tid å installere og konfigurere pakkebehandlingen, så bare vent.

Du kan deretter laste ned et verktøy for å overføre filer over nettverket curl:

apk add curl

Leser manualene

Fish bruker innebygd autofullføring basert på man-sider. Som andre kommandolinjebrukere bruker jeg manualen man, men den er ikke installert i Alpine. Så jeg installerte den med terminal personsøker mindre:

apk add man man-pages less less-doc

I tillegg til mann bruker jeg storslått tldr sider prosjekt, som gir forenklede og fellesskapsdrevne man-sider.

Jeg installerte den ved å bruke pip:

pip install tldr

Lag 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 sånt som tldr curl og få en beskrivelse på vanlig engelsk og gode eksempler på hvordan du bruker kommandoen.

Selvfølgelig kan alt dette installasjonsarbeidet automatiseres ved hjelp av dotfiler eller et installasjonsskript, men dette samsvarer faktisk ikke med Alpines ideologi - å tilpasse en minimal installasjon nøyaktig for å passe dine behov. Dessuten tok det så lang tid, gjorde det ikke?

mer informasjon

iSH Wiki har en side "hva virker" med rapporter om hvilke pakker som kjører for øyeblikket. Det ser forresten ut som npm fungerer ikke akkurat nå.

En annen wiki-side forklarer hvordan få tilgang til iSH-filer fra iOS Files-appen. Dette er en av måtene du kan flytte og kopiere filer på.

Du kan også installere Git (ja! apk add git ) og skyv arbeidet ditt til et eksternt depot eller overfør det til serveren via SSH. Og selvfølgelig kan du laste ned og kjøre en rekke flotte åpen kildekode-prosjekter fra GitHub.

Mer informasjon om iSH finner du på disse lenkene:

Om rettighetene til annonsering

Vdsina tilbud virtuelle servere på Linux eller Windows. Vi bruker utelukkende merket utstyr, det beste i sitt slag serverkontrollpanel i eget design og et av de beste datasentrene i Russland og EU. Skynd deg å bestille!

Starter Linux-kommandolinjen på iOS

Kilde: www.habr.com

Legg til en kommentar