Startar Linux-kommandoraden på iOS

Startar Linux-kommandoraden på iOS

Visste du att du kan köra Linux-kommandoraden på en iOS-enhet? Du kanske frågar, "Varför ska jag använda sms-appar på min iPhone?" Rättvis fråga. Men om du läser Opensource.com vet du förmodligen svaret: Linux-användare vill kunna använda det på vilken enhet som helst och vill anpassa det själva.

Men mest av allt längtar de efter att lösa komplexa problem.

Jag har en sju år gammal iPad 2 Mini som fortfarande är ganska bra för att läsa e-böcker och andra uppgifter. Men jag vill också använda den för att komma åt kommandoraden för applikationer med min uppsättning program och skript, utan vilka jag inte kan arbeta. Jag behöver en miljö som jag är van vid, samt min standardutvecklingsmiljö. Och här är hur jag lyckades uppnå detta.

Ansluter till ett tangentbord

Att arbeta med kommandoraden för programmering via skärmtangentbordet på en telefon eller surfplatta är ganska obekvämt. Jag rekommenderar att du ansluter ett externt tangentbord, antingen via Bluetooth, eller använder en kameraanslutningsadapter för att ansluta ett trådbundet tangentbord (jag valde det senare). När du ansluter Kinesis Advantage delade tangentbordet till en iPhone 6 får du en konstig enhet som liknar företags cyberdäck från klassikern rollspel Shadowrun.

Installera skalet på iOS

För att köra ett fullfjädrat Linux-system på iOS finns det två alternativ:

  • Secure shell (SSH) anslutet till en Linux-dator
  • Köra ett virtuellt system med Alpine Linux med iSH, som är öppen källkod men måste installeras med Apples proprietära TestFlight-applikation

Som ett alternativ finns det två terminalemulatorapplikationer med öppen källkod som ger möjlighet att arbeta med verktyg med öppen källkod i en begränsad miljö. Det här är det mest avskalade alternativet - det är faktiskt så här du kör Linux-verktyg, inte Linux. Det finns allvarliga funktionsbegränsningar när du arbetar med dessa applikationer, men du får delvis kommandoradsfunktionalitet.

Innan jag går vidare till komplexa lösningar kommer jag att titta på den enklaste metoden.

Alternativ 1: Sandlådeskal

Ett av de enklaste sätten är att installera iOS-appen LibTerm. Den öppen källa sandlådekommandoskal med stöd för över 80 kommandon för noll dollar. Den levereras med Python 2.7, Python 3.7, Lua, C, Clang och mycket mer.

Har ungefär samma funktionalitet som fan, beskrivs av utvecklarna som "ett testanvändargränssnitt för skärminmatningsplattformen." a-Shell-källor publiceras öppen källkod, den är i aktiv utveckling, ger filsystemåtkomst och kommer med Lua, Python, Tex, Vim, JavaScript, C och C++, samt Clang och Clang++. Det låter dig till och med pipinstallera Python-paket.

Alternativ 2: SSH

Ett annat steg upp från att ladda ner en app är att ställa in en SSH-klient. Under en lång tid nu har vi kunnat använda någon av de många SSH-klientapparna för iOS för att ansluta till en server som kör Linux eller BSD. Fördelen med att använda SSH är att servern kan köra vilken distribution som helst med vilken programvara som helst. Du arbetar på distans och resultatet av ditt arbete överförs helt enkelt till terminalemulatorn på din iOS-enhet.

Blinkande skal är en populär betald SSH-applikation i öppen källkod. Om du ignorerar enhetens lilla skärm liknar det att använda denna programvara som att ansluta till servern via vilken annan kommandorad som helst. Blink Terminal ser bra ut, har många färdiga teman och möjligheten att skapa egna, inklusive möjligheten att anpassa och lägga till nya typsnitt.

Alternativ 3: Starta Linux

Att använda SSH för att ansluta till en Linux-server är ett bra sätt att komma åt kommandoraden, men det kräver en extern server och en nätverksanslutning. Detta är inte det största hindret, men det kan inte ignoreras helt, så du kan behöva köra Linux utan en server.

Om detta är ditt fall måste du ta det ett steg längre. TestFlight är en patentskyddad tjänst för att installera utvecklade applikationer redan innan de publiceras i Apple App Store. Du kan installera TestFlight-appen från App Store och sedan använda testappar. Appar i TestFlight tillåter ett begränsat antal betatestare (vanligtvis upp till 10 000) att arbeta med dem under en begränsad tid. För att ladda ner en testapplikation måste du gå från din enhet till en länk som vanligtvis finns på webbplatsen för testapplikationsutvecklaren.

Kör Alpine Linux med iSH

ISH är en öppen källkod TestFlight-applikation som lanserar en virtuell maskin med en färdig distribution Alpine Linux (med lite ansträngning kan du köra andra distributioner).

Viktig funktion: experimentell tillämpning. Eftersom iSH för närvarande är en testapplikation, förvänta dig inte konstant och pålitlig drift. TestFlight-applikationer är tidsbegränsade. Mitt nuvarande bygge kommer bara att pågå i 60 dagar. Det betyder att jag efter 60 dagar kommer att elimineras och måste gå med i nästa omgång av iSH-testning igen. Dessutom kommer jag att förlora alla mina filer om jag inte exporterar dem med Files på iOS eller kopierar dem till en Git-värd eller via SSH. Med andra ord: Räkna inte med att det här fortsätter att fungera! Lägg inte in något viktigt för dig i systemet! Säkerhetskopiera till en separat plats!

Installerar iSH

Börja med installationen TestFlight från App Store. Installera sedan iSH, fick installationslänken från applikationswebbplatsen. Det finns en annan installationsmetod som använder AltStore, men jag har inte provat den. Eller, om du har ett betalt utvecklarkonto, kan du ladda ner iSH-förvaret från GitHub och installera det själv.

Genom att använda länken kommer TestFlight att installera iSH-applikationen på din enhet. Som med alla andra program kommer en ikon att visas på skärmen.

Pakethantering

iSH kör en x86-emulator med Alpine Linux. Alpine är en liten distro som mäter mindre än 5 MB i storlek. Det här var första gången jag jobbade med Alpine, så jag trodde att minimalismen skulle vara irriterande, men jag gillade den faktiskt.

Startar Linux-kommandoraden på iOS
Alpine använder en pakethanterare apk, vilket är lättare än till och med apt eller pacman.

Så här installerar du paketet:

apk add package

Så här tar du bort ett paket:

apk del package

Så här hittar du andra kommandon och information:

apk --help

Uppdatering av pakethanteraren:

apk update
apk upgrade

Installera en textredigerare

Alpines standardtextredigerare är Vi, men jag föredrar Vim, så jag installerade den:

apk add vim

Om så önskas kan du installera Nano eller Emacs.

Skalbyte

Jag vet inte med dig, men jag behövde fiskskal. Andra människor föredrar Bash eller zsh. Däremot använder Alpine aska! Ask är en gaffel av Dash-skalet, som i sig är en gaffel av den ursprungliga askan, eller Almquist skal. Hennes prioritet är hastighet. Jag bestämde mig för att byta hastighet mot den inbyggda autokompletteringen, färgerna, Vim-tangenterna och syntaxmarkeringen som jag älskar och känner till från fiskskalet.

Fiskinstallation:

apk add fish

Om du behöver Bash med dess autokompletterande och man-sidor, installera dem sedan:

apk add bash bash-doc bash-completion

Alpines minimalistiska ideologi innebär vanligtvis att vissa program som paketeras i andra distributioner kommer att delas upp i flera mindre paket. Det betyder också att du kan anpassa och minska storleken på ditt system precis som du vill.

För mer information om att installera Bash, se denna handledning.

Ändra standardskalet

Efter att ha installerat fisk kan du tillfälligt byta till den genom att gå in fish och går in i skalet. Men jag vill göra fisk till standardskalet och kommandot chsh, som jag använde på andra distributioner, fungerade inte.

Först tar vi reda på var fisken är installerad:

which fish

Här är vad jag fick:

/usr/bin/fish

Ändra sedan inloggningsskalet till fisk. Du kan använda vilken redigerare som helst som passar dig. Om du är nybörjare, installera sedan Nano (med kommandot apk add nano) så att du kan redigera konfigurationsfiler och spara dem via CTRL+X, bekräfta och avsluta.

Men jag använde Vim:

vim /etc/passwd

Min första rad var så här:

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

För att göra fisk till standardskal, ändra denna linje till följande:

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

Spara sedan filen och avsluta.

Jag är säker på att det finns ett bra sätt att ändra sökvägen till skalet så att det kan användas direkt. Men jag vet det inte, så jag rekommenderar att du går tillbaka till applikationswebbläsaren, tvingar dig ur skalet och för att vara på den säkra sidan, stäng av och starta om din iPad eller iPhone. Öppna iSH igen och nu, förutom meddelandet "Välkommen till Alpine!" och information om att starta från apk, kommer du att se det vanliga välkomstmeddelandet för fiskinloggning: Välkommen till fisk, det vänliga interaktiva skalet. Hurra!

Startar Linux-kommandoraden på iOS

Konfigurera Python och pip

Jag bestämde mig för att lägga till Python (version 3.x), inte bara för att skriva kod, utan också för att jag använder flera Python-program. Låt oss installera det:

apk add python3

Även om Python 2.x är föråldrat kan du installera det:

apk add python

Låt oss installera Python-pakethanteraren som heter pip och installationsverktyg:

python3 -m ensurepip --default-pip

Det kommer att ta lite tid att installera och konfigurera pakethanteraren, så vänta bara.

Du kan sedan ladda ner ett verktyg för att överföra filer över nätverket curl:

apk add curl

Läser manualerna

Fish använder inbyggd autokomplettering baserat på man-sidor. Precis som andra kommandoradsanvändare använder jag manualen man, men det är inte installerat i Alpine. Så jag installerade den med terminal personsökare mindre:

apk add man man-pages less less-doc

Förutom man använder jag magnifik tldr sidor projekt, som tillhandahåller förenklade och community-drivna man-sidor.

Jag installerade det med pip:

pip install tldr

Team tldr ansluter till webben för att hämta sidor när den stöter på en begäran om en ny sida. Om du behöver veta hur man använder ett kommando kan du skriva något liknande tldr curl och få en beskrivning på vanlig engelska och bra exempel på hur man använder kommandot.

Naturligtvis kan allt detta installationsarbete automatiseras med hjälp av dotfiler eller ett installationsskript, men i själva verket stämmer detta inte riktigt överens med Alpines ideologi - att anpassa en minimal installation precis för att passa dina behov. Dessutom tog det så lång tid, eller hur?

ytterligare information

iSH Wiki har en sida "vad fungerar" med rapporter om vilka paket som körs för närvarande. Det ser förresten ut som npm fungerar inte just nu.

En annan wikisida förklarar hur komma åt iSH-filer från iOS Files-appen. Detta är ett av sätten du kan flytta och kopiera filer.

Du kan också installera Git (ja! apk add git ) och skicka ditt arbete till ett fjärrlager eller överför det till servern via SSH. Och, naturligtvis, kan du ladda ner och köra valfritt antal fantastiska projekt med öppen källkod från GitHub.

Mer information om iSH finns på dessa länkar:

Om reklamens rättigheter

Vdsina erbjuder virtuella servrar på Linux eller Windows. Vi använder uteslutande märkesutrustning, den bästa i sitt slag serverkontrollpanel i egen design och ett av de bästa datacenterna i Ryssland och EU. Skynda dig att beställa!

Startar Linux-kommandoraden på iOS

Källa: will.com

Lägg en kommentar