We starten de Linux-opdrachtprompt op iOS

We starten de Linux-opdrachtprompt op iOS

Wist je dat je de Linux-opdrachtprompt kunt draaien op een iOS-apparaat? Je vraagt je misschien af: "Waarom zou ik tekstapplicaties op mijn iPhone gebruiken?" Een eerlijke vraag. Maar als je Opensource.com leest, weet je waarschijnlijk wel het antwoord: Linux-gebruikers willen in staat zijn om erop te werken op elk apparaat en willen hun eigen instellingen gebruiken.

Maar het meest verlangen ze naar oplossingen voor complexe problemen.

Ik heb een zeven jaar oude iPad 2 Mini die nog steeds goed werkt voor het lezen van e-boeken en andere taken. Maar ik wil deze ook gebruiken om toegang te krijgen tot de commandoregel applicaties met mijn set programma’s en scripts, zonder welke ik niet kan werken. Ik heb een omgeving nodig waar ik aan gewend ben, evenals mijn standaard ontwikkelomgeving. En dit is hoe ik dat heb bereikt.

Aansluiten op een toetsenbord

Werken met de opdrachtprompt voor programmeren via het virtuele toetsenbord van je telefoon of tablet is behoorlijk onhandig. Ik raad aan om een extern toetsenbord aan te sluiten, of via Bluetooth, of met een camera-adapter om een bekabeld toetsenbord aan te sluiten (ik heb voor de laatste gekozen). Wanneer je het gesplitste Kinesis Advantage-toetsenbord op een iPhone 6 aansluit, krijg je een vreemd apparaat dat lijkt op een zakelijke cyberdeck uit de klassieke rollenspel Shadowrun.

We installeren de shell op iOS

Er zijn twee opties om een volwaardige Linux-systeem op iOS te draaien:

  • Secure shell (SSH), verbonden met een Linux-computer
  • Draai een virtueel systeem met Alpine Linux via iSH, dat open source is, maar moet worden geïnstalleerd met behulp van de propriëtaire TestFlight-app van Apple.

Als alternatief zijn er twee open-source terminalemulator-apps beschikbaar die het mogelijk maken om met open-source-tools in een beperkte omgeving te werken. Dit is de meest beperkte optie - je draait in feite geen Linux, maar Linux-tools. Bij gebruik van deze applicaties zijn er strikte beperkingen op de mogelijkheden, maar je krijgt gedeeltelijke functionaliteit van de opdrachtprompt.

Voordat ik overga op complexe oplossingen, bespreek ik de eenvoudigste manier.

Optie 1: shell in een 'sandbox'

Een van de eenvoudigste manieren is om een iOS-app te installeren LibTerm. Dit is open source Een command-line interface in een ‘sandbox’ met ondersteuning voor meer dan 80 commando's voor de prijs van nul dollar. Het wordt geleverd met Python 2.7, Python 3.7, Lua, C, Clang en nog veel meer.

Ongeveer dezelfde functionaliteit heeft a-Shell, die door de ontwikkelaars wordt beschreven als ‘een testgebruikersinterface voor platforms met scherminvoer’. De source code van a-Shell is vrijgegeven als open source, het bevindt zich in actieve ontwikkeling, biedt toegang tot het bestandssysteem en wordt geleverd met Lua, Python, Tex, Vim, JavaScript, C en C++, evenals met Clang en Clang++. Het stelt zelfs in staat om Python-pakketten te installeren met behulp van pip.

Optie 2: SSH

Een volgende stap vergeleken met het downloaden van een applicatie is het instellen van een SSH-client. Al geruime tijd kon je een van de vele SSH-client applicaties voor iOS gebruiken om verbinding te maken met een server waarop Linux of BSD draait. Het voordeel van het gebruik van SSH is dat op de server elke distributie met elke software kan draaien. Je werkt op afstand en de resultaten worden eenvoudig overgebracht naar de terminalemulator op het iOS-apparaat.

Blink shell — dit is een populaire betaalde SSH-applicatie in open source. Als je niet let op het kleine scherm van het apparaat, lijkt het gebruik van deze software op het verbinden met een server via elke andere command line. De Blink terminal ziet er geweldig uit, heeft veel kant-en-klare thema's en de functie om eigen thema's te maken, inclusief de mogelijkheid om nieuwe lettertypen in te stellen en toe te voegen.

Optie 3: Linux draaien

Het gebruik van SSH om verbinding te maken met een server onder Linux is een uitstekende manier om toegang te krijgen tot de command line, maar hiervoor is een externe server en een netwerkaansluiting vereist. Dit is niet de grootste hindernis, maar het kan niet volledig worden genegeerd, daarom moet je misschien met Linux werken zonder een server.

Als dit jouw geval is, moet je nog een stap verder gaan. TestFlight — dit is een proprietary service voor het installeren van ontwikkelde applicaties nog voordat ze zijn gepubliceerd in de Apple App Store. De TestFlight-app kan uit de App Store worden gedownload en vervolgens kunnen de testapplicaties worden gebruikt. Applicaties in TestFlight stellen een beperkt aantal bètatesters (meestal tot 10.000) in staat om tijdelijk met hen te werken. Om een testapplicatie te downloaden, moet je op je apparaat de link volgen die meestal op de website van de ontwikkelaar van de testapplicatie staat.

Starten van Alpine Linux met iSH

iSH — is een open-source TestFlight-app die een virtuele machine opstart met een kant-en-klaar besturingssysteem Alpine Linux (met een beetje moeite kan je ook andere distributies opstarten).

Belangrijke opmerking: de applicatie is experimenteel. Aangezien iSH momenteel een testapplicatie is, kun je geen constante en betrouwbare werking verwachten. TestFlight-applicaties zijn tijd beperkt. Mijn huidige build zal slechts 60 dagen werken. Dit betekent dat ik na 60 dagen zal worden uitgesloten en opnieuw zal moeten deelnemen aan de volgende fase van de iSH-test. Bovendien verlies ik al mijn bestanden als ik ze niet exporteer via Bestanden op iOS of niet naar een Git-host kopieer of via SSH. Met andere woorden: Verwacht niet dat dit allemaal blijft werken! Zet niets belangrijks voor jezelf in dit systeem! Maak back-ups op een aparte locatie!

Installeren van iSH

Begin met het installeren TestFlight uit de App Store. Installeer vervolgens iSH, door de installatielink te verkrijgen van de website van de applicatie. Er is ook een andere manier om te installeren via AltStore, maar die heb ik niet geprobeerd. Of, als je een betaald ontwikkelaarsaccount hebt, kun je de iSH-repo van GitHub downloaden en deze zelf installeren.

Met de link zal TestFlight de iSH-app op je apparaat installeren. Zoals met elke andere applicatie zal een pictogram op het scherm verschijnen.

Pakketten beheren

iSH draait een x86-emulator met Alpine Linux. Alpine is een kleine distributie van minder dan 5 MB. Ik heb voor het eerst met Alpine gewerkt, dus ik dacht dat die minimalisme irritant zou zijn, maar in werkelijkheid vond ik het erg leuk.

We starten de Linux-opdrachtprompt op iOS
In Alpine wordt de pakketbeheerder apk, die eenvoudiger is dan zelfs apt of pacman.

Hoe een pakket te installeren:

apk add package

Hoe een pakket te verwijderen:

apk del package

Hoe andere commando's en informatie te vinden:

apk --help

Pakketbeheerder bijwerken:

apk update
apk upgrade

Teksteditor installeren

De standaard teksteditor van Alpine is Vi, maar ik geef de voorkeur aan Vim, dus heb ik deze geïnstalleerd:

apk add vim

Desgewenst kunt u Nano of Emacs installeren.

De shell wijzigen

Ik weet niet hoe het met u zit, maar ik had een nodig fish shell. Andere mensen geven de voorkeur aan Bash of Zsh. Echter, in Alpine wordt ash gebruikt! Ash is een fork van de Dash-shell, die zelf een fork is van de originele ash, of Almquist shell. De prioriteit is snelheid. Ik besloot snelheid in te ruilen voor ingebouwde autocomplete, kleuren, Vim-toetsenbeheer en syntaxisaccentuering, die ik leuk vind en ken van fish shell.

Installatie van fish:

apk add fish

Als je Bash nodig hebt met zijn autocompletion en man-pagina's, installeer dan:

apk add bash bash-doc bash-completion

De minimalistische ideologie van Alpine betekent meestal dat sommige programma's die in andere distributies één pakket zijn, in meerdere kleinere pakketten zijn verdeeld. Dit betekent ook dat je het systeem kunt aanpassen en verkleinen precies zoals je wilt.

Meer over de installatie van Bash kun je lezen in deze tutorial.

De standaard shell wijzigen

Na de installatie van fish kun je tijdelijk naar deze overstappen door fish in te voeren en naar de shell te gaan. Maar ik wil fish de standaard shell maken, en het commando chsh, dat ik in andere distributies gebruikte, werkte niet.

Eerst bekijken we waar fish is geïnstalleerd:

which fish

Dit is wat ik heb gekregen:

/usr/bin/fish

Vervolgens zullen we de login shell naar fish wijzigen. Je kunt elke editor gebruiken die je prettig vindt. Als je een beginner bent, installeer dan Nano (met het commando apk add nano), zodat je configuratiebestanden kunt bewerken en deze kunt opslaan via CTRL+X, bevestigen en afsluiten.

Maar ik gebruikte Vim:

vim /etc/passwd

Mijn eerste regel was als volgt:

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

Om fish de standaard shell te maken, zullen we deze regel als volgt wijzigen:

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

Daarna zullen we het bestand opslaan en afsluiten.

Ik weet zeker dat er een goede manier is om het pad naar de shell te veranderen, zodat het meteen kan worden gebruikt. Maar ik weet het niet, dus ik raad aan om terug te keren naar de applicatiebrowser, forceer de uitlog uit de shell en voor de zekerheid de iPad of iPhone uit en weer aan te zetten. Open iSH opnieuw en nu, behalve het bericht 'Welcome to Alpine!' en de opstartinformatie met apk, zie je het standaard welkomsbericht van de fish login: Welkom bij fish, de vriendelijke interactieve shell. Hoera!

We starten de Linux-opdrachtprompt op iOS

Python en pip instellen

Ik besloot om toe te voegen Python (versie 3.x), niet alleen om code te schrijven, maar ook omdat ik verschillende programma's in Python gebruik. Laten we het installeren:

apk add python3

Hoewel Python 2.x verouderd is, kunnen we het ook installeren:

apk add python

Laten we de Python-pakketbeheerder genaamd pip en setuptools:

python3 -m ensurepip --default-pip

Voor de installatie en configuratie van de pakketbeheerder is enige tijd nodig, dus wacht gewoon even.

Daarna kun je het bestandsoverdrachtsprogramma downloaden via het netwerk curl:

apk add curl

Lees de handleidingen

Fish gebruikt ingebouwde autocompletion op basis van man-pagina's. Net als andere terminalgebruikers maak ik gebruik van de handleiding man, maar deze is niet geïnstalleerd in Alpine. Daarom heb ik het geïnstalleerd met de terminalpager less:

apk add man man-pages less less-doc

Naast man gebruik ik de geweldige TLDR-pagina's, die vereenvoudigde en door de gemeenschap beheerde man-pagina's bieden.

Ik heb het geïnstalleerd met pip:

pip install tldr

Opdracht tldr maakt verbinding met het web om pagina's te krijgen wanneer het een aanvraag voor een nieuwe pagina tegenkomt. Als je wilt weten hoe je een opdracht moet gebruiken, kun je iets schrijven als tldr curl en een beschrijving in eenvoudige Engelse taal krijgen met goede voorbeelden van hoe je de opdracht kunt gebruiken.

Natuurlijk kan al dit installatiewerk geautomatiseerd worden met behulp van dotfiles of een installatiescript, maar in feite past dat niet goed bij de filosofie van Alpine - het opzetten van een minimale installatie die duidelijk aan jouw behoeften is aangepast. Bovendien kostte dit veel tijd, niet waar?

Aanvullende informatie

In de iSH-wiki is er een pagina "wat werkt" met rapporten over welke pakketten momenteel werken. Trouwens, het lijkt erop dat npm momenteel niet werkt.

Op een andere wiki-pagina wordt uitgelegd hoe je toegang krijgt tot bestanden in iSH vanuit de iOS-bestandenapp. Dit is een van de manieren waarop je bestanden kunt verplaatsen en kopiëren.

Je kunt ook Git installeren (ja! apk add git ) en je werk naar een externe repository pushen of het via SSH naar de server overdragen. En natuurlijk kun je een onbeperkt aantal geweldige open-source projecten van GitHub downloaden en uitvoeren.

Meer over iSH kun je vinden op deze links:

Adverteervermelding

VDS Wat betreft de tweede IT-gigant, hun virtuele servers op Linux of Windows. We gebruiken uitsluitend merkapparatuur, het beste in zijn soort serverbeheer paneel dat we zelf ontwikkeld hebben en een van de beste datacenters in Rusland en de EU. Wees er snel bij om te bestellen!

We starten de Linux-opdrachtprompt op iOS

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster