Wisten jo dat jo in Linux kommandorigel kinne útfiere op in iOS-apparaat? Jo kinne freegje: "Wêrom moat ik tekstapps op iPhone brûke?" Earlike fraach. Mar as jo Opensource.com lêze, witte jo wierskynlik it antwurd: Linux-brûkers wolle it op elk apparaat kinne brûke en wolle har eigen ynstellings brûke.
Mar it meast begeare se om komplekse problemen op te lossen.
Ik haw in sân jier âlde iPad 2 Mini dy't noch altyd goed is foar ebook-lêzen en oare taken. Ik wol it lykwols ek brûke om tagong te krijen ta de kommandorigel fan applikaasjes mei myn set fan programma's en skripts, sûnder dat ik net kin wurkje. Ik haw in omjouwing nedich dêr't ik oan wend bin, lykas myn standert ûntwikkelingsomjouwing. En hjir is hoe't ik it slagge om dit te berikken.
Ferbine mei in toetseboerd
Wurkje mei de kommandorigel foar programmearring fia it toetseboerd op it skerm fan in tillefoan of tablet is frijwat ûngemaklik. Ik advisearje it ferbinen fan in ekstern toetseboerd, itsij fia Bluetooth of it brûken fan in kameraferbiningsadapter om in bedrade toetseboerd te ferbinen (ik keas it lêste). It ferbinen fan in Kinesis Advantage split toetseboerd oan in iPhone 6 resultearret yn in nuver apparaat dat liket
Ynstallearje de shell op iOS
Om in folslein funksjoneel Linux-systeem op iOS út te fieren, binne d'r twa opsjes:
- Secure shell (SSH) ferbûn mei in Linux-masine
- In firtuele systeem útfiere mei Alpine Linux mei iSH, dat iepen boarne is, mar moat wurde ynstalleare mei Apple's proprietêre TestFlight-applikaasje
As alternatyf binne d'r twa iepen boarne terminalemulator-applikaasjes dy't de mooglikheid leverje om te wurkjen mei iepen boarne-ark yn in beheinde omjouwing. Dit is de meast stripped-down opsje - yn feite is dit net hoe't jo Linux útfiere, mar Linux-ark. D'r binne swiere beheiningen by it brûken fan dizze applikaasjes, mar jo krije in part kommandorigelfunksjonaliteit.
Foardat jo trochgean nei komplekse oplossingen, sil ik de ienfâldichste manier beskôgje.
Opsje 1: Shell yn 'e sânbak
Ien fan 'e maklikste manieren is om de iOS-app te ynstallearjen
Likernôch deselde funksjonaliteit
Opsje 2: SSH
In oare stap fierder as it downloaden fan in app is it ynstellen fan in SSH-kliïnt. Foar in lange tiid hawwe wy ien fan 'e protte iOS SSH-kliïntapplikaasjes kinne brûke om te ferbinen mei in server mei Linux of BSD. It foardiel fan it brûken fan SSH is dat elke distribúsje kin rinne op de tsjinner mei elke software. Jo wurkje op ôfstân en de resultaten fan jo wurk wurde gewoan oerbrocht nei de terminalemulator op jo iOS-apparaat.
Opsje 3: Linux útfiere
It brûken fan SSH om te ferbinen mei in server ûnder Linux is in geweldige manier om tagong te krijen ta de kommandorigel, mar it fereasket in eksterne server en in netwurkferbining. Dit is net it grutste obstakel, mar it kin net folslein negearre wurde, dus jo moatte miskien wurkje mei Linux sûnder in server.
As dit jo gefal is, dan moatte jo it ien stap fierder nimme.
Alpine Linux útfiere mei iSH
Wichtige funksje: applikaasje eksperiminteel. Sûnt iSH op it stuit in testapplikaasje is, ferwachtsje jo gjin konsekwinte en betroubere prestaasjes. TestFlight-applikaasjes binne tiid beheind. Myn hjoeddeistige build sil mar 60 dagen rinne. Dit betsjut dat ik nei 60 dagen útset wurde sil en wer meidwaan moat oan 'e folgjende faze fan iSH-testen. Boppedat sil ik al myn bestannen ferlieze as ik se net eksportearje mei bestannen op iOS of kopiearje nei in Git-host of
iSH Ynstallaasje
Begjin mei ynstallaasje
Mei de keppeling sil TestFlight de iSH-app op jo apparaat ynstallearje. Lykas by elke oare applikaasje sil in ikoan op it skerm ferskine.
Pakket behear
iSH rint in x86-emulator mei Alpine Linux. Alpine is in lytse ferdieling dy't minder dan 5MB yn grutte is. Dit wie myn earste kear dat ik mei Alpine wurke, dus ik tocht dat it minimalisme ferfelend soe wêze, mar ik fûn it echt leuk.
Alpine brûkt in pakketbehearder
Hoe kinne jo it pakket ynstallearje:
apk add package
Hoe kinne jo in pakket fuortsmite:
apk del package
Hoe kinne jo oare kommando's en ynformaasje fine:
apk --help
Pakketbehearder update:
apk update
apk upgrade
It ynstallearjen fan in tekstbewurker
Alpine's standert tekstbewurker is Vi, mar ik leaver Vim, dus ik haw it ynstalleare:
apk add vim
As jo wolle, kinne jo Nano of Emacs ynstallearje.
Shell feroarje
Ik wit net oer dy, mar ik hie it nedich
fisk ynstallaasje:
apk add fish
As jo Bash nedich hawwe mei syn autofoltôging en man-siden, ynstallearje se dan:
apk add bash bash-doc bash-completion
De minimalistyske ideology fan Alpine betsjut normaal dat guon programma's dy't ien pakket binne op oare distribúsjes sille wurde opdield yn ferskate lytsere pakketten. It betsjut ek dat jo it systeem kinne ôfstimme en ferminderje krekt sa't jo it wolle.
Foar mear ynformaasje oer it ynstallearjen fan Bash, sjoch
It feroarjen fan de standert shell
Ienris fisk is ynstalleare, kinne jo der tydlik nei oerskeakelje troch te typen fish
en gean nei de shell. Mar ik wol meitsje fisk de standert shell, en it kommando chsh
, dy't ik brûkte yn oare distribúsjes, wurke net.
Litte wy earst útfine wêr't fisk is ynstalleare:
which fish
Hjir is wat my bard:
/usr/bin/fish
Feroarje dan de oanmeldshell nei fisk. Jo kinne elke bewurker brûke dy't jo wolle. As jo in begjinner binne, ynstallearje dan Nano (mei it kommando apk add nano
) sadat jo de konfiguraasjetriemmen kinne bewurkje en opslaan fia CTRL+X, befêstigje en ôfslute.
Mar ik brûkte Vim:
vim /etc/passwd
Myn earste rigel wie:
root:x:0:0:root:/root:/bin/ash
Om fisk de standert shell te meitsjen, feroarje dizze line nei de folgjende:
root:x:0:0:root:/root:/usr/bin/fish
Bewarje dan it bestân en gean út.
Ik bin der wis fan dat der in goede manier om te feroarjen de shell paad sadat it kin brûkt wurde direkt. Mar ik ken him net, dus ik advisearje om werom te gean nei de applikaasjeblêder, twinge om de shell te ferlitten, en foar wis te wêzen, de iPad of iPhone útsette en opnij starte. Iepenje iSH wer en no, neist it berjocht "Wolkom by Alpine!" en ynformaasje oer it starten fan 'e apk, sille jo it standert wolkomberjocht foar fisk oanmelde: Wolkom by fisken, de freonlike ynteraktive skulp. Hoera!
Python en pip ynstelle
Ik besleat ta te foegjen
apk add python3
Hoewol Python 2.x ferâldere is, kinne jo it ek ynstallearje:
apk add python
Ynstallearje in Python-pakketbehearder neamd pip en
python3 -m ensurepip --default-pip
It sil wat tiid duorje om de pakketbehearder te ynstallearjen en te konfigurearjen, dus wês gewoan geduld.
Jo kinne dan in ark downloade om bestannen oer it netwurk oer te dragen
apk add curl
Lêze hânboeken
Fish brûkt ynboude autofolling basearre op man-siden. Lykas oare brûkers fan kommandorigels, brûk ik de hantlieding man
, en Alpine hat it net ynstallearre. Dat ik ynstallearre it mei in terminal pager
apk add man man-pages less less-doc
Neist de minske brûk ik de prachtige
Ik ynstallearre it mei pip:
pip install tldr
team tldr
ferbynt mei it web om siden op te heljen as it in fersyk foar in nije side tsjinkomt. As jo witte moatte hoe't jo in kommando brûke, kinne jo soksawat skriuwe tldr curl
en krije in beskriuwing yn gewoan Ingelsk en goede foarbylden oer hoe't jo it kommando brûke.
Fansels, al dit ynstallaasje wurk kin wurde automatisearre mei help
oanfoljende ynformaasje
De iSH Wiki hat in side "
In oare wiki-side leit út hoe
Jo kinne ek Git ynstallearje (ja! apk add git
) en triuw jo wurk nei in repository op ôfstân of triuw it nei de server fia SSH. En, fansels, kinne jo elk oantal grutte iepen boarne-projekten downloade en útfiere fan GitHub.
Mear ynformaasje oer iSH is te finen op dizze keppelings:
Oer de rjochten fan 'e advertinsje
Vdsina oanbiedingen
Boarne: www.habr.com