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
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
Har omtrent samme funksjonalitet
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.
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.
Kjører Alpine Linux med iSH
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
Installerer iSH
Start med installasjon
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.
Alpine bruker en pakkebehandler
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
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
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!
Sette opp Python og pip
Jeg bestemte meg for å legge til
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
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
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
apk add man man-pages less less-doc
I tillegg til mann bruker jeg storslått
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
mer informasjon
iSH Wiki har en side "
En annen wiki-side forklarer hvordan
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
Kilde: www.habr.com