Vidste du, at du kan køre en Linux-kommandolinje på en iOS-enhed? Du spørger måske: "Hvorfor skal jeg bruge tekstapps på iPhone?" Fair spørgsmål. Men hvis du læser Opensource.com, kender du sikkert svaret: Linux-brugere vil gerne kunne bruge det på enhver enhed og vil bruge deres egne indstillinger.
Men mest af alt higer de efter at løse komplekse problemer.
Jeg har en syv år gammel iPad 2 Mini, som stadig er god til e-bogslæsning og andre opgaver. Jeg vil dog også bruge det til at få adgang til kommandolinjen med applikationer med mit sæt programmer og scripts, uden hvilke jeg ikke kan arbejde. Jeg har brug for et miljø, som jeg er vant til, samt mit standard udviklingsmiljø. Og her er hvordan jeg formåede at opnå dette.
Tilslutning til et tastatur
At arbejde med kommandolinjen til programmering gennem skærmtastaturet på en telefon eller tablet er ret ubelejligt. Jeg anbefaler at tilslutte et eksternt tastatur, enten via Bluetooth eller ved at bruge en kameraforbindelsesadapter til at tilslutte et kablet tastatur (jeg valgte det sidste). Tilslutning af et Kinesis Advantage split-tastatur til en iPhone 6 resulterer i en mærkelig enhed, der ligner
Installation af shell på iOS
For at køre et fuldt funktionelt Linux-system på iOS er der to muligheder:
- Secure shell (SSH) forbundet til en Linux-maskine
- Kører et virtuelt system ved hjælp af Alpine Linux med iSH, som er open source, men skal installeres ved hjælp af Apples proprietære TestFlight-applikation
Alternativt er der to open source-terminalemulatorapplikationer, der giver mulighed for at arbejde med open source-værktøjer i et begrænset miljø. Dette er den mest afklædte mulighed - faktisk er det ikke sådan, du kører Linux, men Linux-værktøjer. Der er alvorlige begrænsninger, når du arbejder med disse applikationer, men du får delvis kommandolinjefunktionalitet.
Før jeg går videre til komplekse løsninger, vil jeg overveje den enkleste måde.
Mulighed 1: Skal i sandkassen
En af de nemmeste måder er at installere iOS-appen
Omtrent samme funktionalitet
Mulighed 2: SSH
Et andet skridt ud over at downloade en app er at konfigurere en SSH-klient. I lang tid har vi været i stand til at bruge en hvilken som helst af de mange iOS SSH-klientapplikationer til at oprette forbindelse til en server, der kører Linux eller BSD. Fordelen ved at bruge SSH er, at enhver distribution kan køre på serveren med enhver software. Du arbejder eksternt, og resultaterne af dit arbejde overføres simpelthen til terminalemulatoren på din iOS-enhed.
Mulighed 3: Kør Linux
Brug af SSH til at oprette forbindelse til en server under Linux er en fantastisk måde at få adgang til kommandolinjen, men det kræver en ekstern server og en netværksforbindelse. Dette er ikke den største hindring, men det kan ikke ignoreres fuldstændigt, så du skal muligvis arbejde med Linux uden en server.
Hvis dette er dit tilfælde, så bliver du nødt til at tage det et skridt videre.
Kører Alpine Linux med iSH
Vigtigt træk: anvendelse eksperimentel. Da iSH i øjeblikket er en testapplikation, skal du ikke forvente ensartet og pålidelig ydeevne. TestFlight-applikationer er tidsbegrænsede. Min nuværende build kører kun 60 dage. Det betyder, at jeg efter 60 dage bliver bortvist og skal genindtræde i den næste fase af iSH-testning. Desuden vil jeg miste alle mine filer, hvis jeg ikke eksporterer dem med filer på iOS eller kopierer dem til en Git-vært eller
iSH installation
Start med installationen
Ved at bruge linket installerer TestFlight iSH-appen på din enhed. Som med enhver anden applikation vises et ikon på skærmen.
Pakkestyring
iSH kører en x86-emulator med Alpine Linux. Alpine er en lille distribution, der er mindre end 5 MB i størrelse. Det var første gang, jeg arbejdede med Alpine, så jeg troede, at minimalismen ville være irriterende, men jeg kunne virkelig godt lide den.
Alpine bruger en pakkehåndtering
Sådan installeres pakken:
apk add package
Sådan fjerner du en pakke:
apk del package
Sådan finder du ud af andre kommandoer og oplysninger:
apk --help
Pakkeadministratoropdatering:
apk update
apk upgrade
Installation af en teksteditor
Alpines standard teksteditor er Vi, men jeg foretrækker Vim, så jeg installerede det:
apk add vim
Hvis det ønskes, kan du installere Nano eller Emacs.
Skalskifte
Jeg ved ikke med dig, men jeg havde brug for
installation af fisk:
apk add fish
Hvis du har brug for Bash med dens autofuldførelse og man-sider, så installer dem:
apk add bash bash-doc bash-completion
Alpines minimalistiske ideologi betyder normalt, at nogle programmer, der er en enkelt pakke på andre distributioner, vil blive opdelt i flere mindre pakker. Det betyder også, at du kan tune og reducere systemet, lige som du ønsker det.
For mere information om installation af Bash, se
Ændring af standard shell
Når fisk er installeret, kan du midlertidigt skifte til det ved at skrive fish
og går til skallen. Men jeg vil gøre fisk til standardskallen og kommandoen chsh
, som jeg brugte i andre distributioner, virkede ikke.
Lad os først finde ud af, hvor fisk er installeret:
which fish
Her er hvad der skete for mig:
/usr/bin/fish
Skift derefter login-skallen til fisk. Du kan bruge enhver editor, du kan lide. Hvis du er nybegynder, så installer Nano (med kommandoen apk add nano
), så du kan redigere konfigurationsfilerne og gemme dem via CTRL+X, bekræfte og afslutte.
Men jeg brugte Vim:
vim /etc/passwd
Min første linje var:
root:x:0:0:root:/root:/bin/ash
For at gøre fisk til standardskallen skal du ændre denne linje til følgende:
root:x:0:0:root:/root:/usr/bin/fish
Gem derefter filen og afslut.
Jeg er sikker på, at der er en god måde at ændre shell-stien på, så den kan bruges med det samme. Men jeg kender ham ikke, så jeg anbefaler at vende tilbage til applikationsbrowseren, tvinge ud af skallen, og for at være sikker skal du slukke og genstarte iPad eller iPhone. Åbn iSH igen og nu, ud over beskeden "Velkommen til Alpine!" og information om lancering fra apk'en, vil du se velkomstmeddelelsen til standardfiskelogin: Velkommen til fisk, den venlige interaktive skal. Hurra!
Opsætning af Python og pip
Jeg besluttede at tilføje
apk add python3
Selvom Python 2.x er forældet, kan du også installere det:
apk add python
Installer en Python-pakkemanager kaldet pip og
python3 -m ensurepip --default-pip
Det vil tage noget tid at installere og konfigurere pakkehåndteringen, så bare vær tålmodig.
Du kan derefter downloade et værktøj til at overføre filer over netværket
apk add curl
Læse manualer
Fish bruger indbygget autofuldførelse baseret på man-sider. Ligesom andre kommandolinjebrugere bruger jeg manualen man
, og Alpine har det ikke installeret. Så jeg installerede det med en terminalpersonsøger
apk add man man-pages less less-doc
Udover mand bruger jeg den storslåede
Jeg installerede det med pip:
pip install tldr
Team tldr
opretter forbindelse til internettet for at hente sider, når den støder på en anmodning om en ny side. Hvis du har brug for at vide, hvordan du bruger en kommando, kan du skrive noget som f.eks tldr curl
og få en beskrivelse på almindeligt engelsk og gode eksempler på, hvordan man bruger kommandoen.
Selvfølgelig kan alt dette installationsarbejde automatiseres vha
yderligere oplysninger
iSH Wiki har en side "
En anden wiki-side forklarer hvordan
Du kan også installere Git (ja! apk add git
) og skub dit arbejde til et fjernlager eller skub det til serveren via SSH. Og selvfølgelig kan du downloade og køre et vilkårligt antal fantastiske open source-projekter fra GitHub.
Mere information om iSH kan findes på disse links:
Om reklamernes rettigheder
Vdsina tilbud
Kilde: www.habr.com