Start af Linux-kommandolinjen på iOS

Start af Linux-kommandolinjen på iOS

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 virksomhedens cyberdæk fra klassisk rollespil skyggeløb.

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 LibTerm. Det åben kildekode sandbox-kommandoskall med understøttelse af over 80 kommandoer til nul dollars. Den kommer med Python 2.7, Python 3.7, Lua, C, Clang og mere.

Omtrent samme funktionalitet som helvede, beskrevet af udviklerne som "en testbrugergrænseflade til en platform med skærminput." a-Shell kilder indsendt open source, det er under aktiv udvikling, giver filsystemadgang og leveres med Lua, Python, Tex, Vim, JavaScript, C og C++ og Clang og Clang++. Det giver dig endda mulighed for at installere Python-pakker med pip.

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.

blink skal er en populær betalt SSH-applikation i open source. Hvis du ikke er opmærksom på enhedens lille skærm, er det at bruge denne software som at oprette forbindelse til serveren via en hvilken som helst anden kommandolinje. Blink-terminalen ser godt ud, har mange færdige temaer og muligheden for at lave dine egne, herunder muligheden for at tilpasse og tilføje nye skrifttyper.

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. TestFlight er en proprietær service til installation af programmer under udvikling, før de frigives til Apple App Store. Du kan installere TestFlight-appen fra App Store og derefter bruge test-apps. Applikationer i TestFlight tillader et begrænset antal betatestere (typisk op til 10) at arbejde med dem i en begrænset periode. For at downloade test-appen skal du tilgå linket på din enhed, som normalt findes på test-app-udviklerens hjemmeside.

Kører Alpine Linux med iSH

ISH er en open source TestFlight-applikation, der kører en virtuel maskine med en færdig distribution Alpine Linux (med lidt arbejde kan du køre andre distributioner).

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 via SSH. Med andre ord: Forvent ikke, at det hele fortsætter med at virke! Læg ikke noget vigtigt for dig ind i systemet! Sikkerhedskopiér til et separat sted!

iSH installation

Start med installationen TestFlight fra App Store. Installer derefter iSH, få et link til at installere fra ansøgningswebstedet. Der er en anden måde at installere ved hjælp af AltStore, men jeg har ikke prøvet det. Eller, hvis du har en betalt udviklerkonto, kan du downloade iSH-lageret fra GitHub og installere det selv.

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.

Start af Linux-kommandolinjen på iOS
Alpine bruger en pakkehåndtering apkhvilket er nemmere end selv apt eller pacman.

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 fiskeskal. Andre mennesker foretrækker Bash eller zsh. Alpine bruger dog aske! Ask er en gaffel af Dash-skallen, som i sig selv er en gaffel af den originale ask, eller Almquist skal. Hendes prioritet er hastighed. Jeg besluttede at bytte hastighed for den indbyggede autofuldførelse, farver, Vim-nøglestyring og syntaksfremhævning, som jeg elsker og kender fra fiskeskallen.

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 denne tutorial.

Æ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!

Start af Linux-kommandolinjen på iOS

Opsætning af Python og pip

Jeg besluttede at tilføje Python (version 3.x), ikke kun for at skrive kode, men også fordi jeg bruger flere Python-programmer. Lad os installere det:

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 installationsværktøjer:

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 krølle:

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 mindre:

apk add man man-pages less less-doc

Udover mand bruger jeg den storslåede tldr sider projekt, som giver forenklede og fællesskabsdrevne man-sider.

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 dotfiler eller et installationsscript, men faktisk er dette ikke særlig i overensstemmelse med Alpines ideologi – at tilpasse minimumsinstallationen klart til dine behov. Desuden tog det så lang tid, ikke?

yderligere oplysninger

iSH Wiki har en side "hvad der fungerer" med rapporter om hvilke pakker der kører i øjeblikket. Det ser i øvrigt ud til npm virker ikke lige nu.

En anden wiki-side forklarer hvordan få adgang til iSH-filer fra iOS Files-appen. Dette er en af ​​måderne, du kan flytte og kopiere filer på.

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 virtuelle servere på Linux eller Windows. Vi bruger udelukkende mærket udstyr, det bedste af sin slags in-house serverkontrolpanel og et af de bedste datacentre i Rusland og EU. Skynd dig at bestille!

Start af Linux-kommandolinjen på iOS

Kilde: www.habr.com

Tilføj en kommentar