Lanĉante la Linuksan komandlinion en iOS

Lanĉante la Linuksan komandlinion en iOS

Ĉu vi sciis, ke vi povas ruli Linuksan komandlinion en iOS-aparato? Vi eble demandas, "Kial mi uzu tekstajn apojn en iPhone?" Justa demando. Sed se vi legas Opensource.com, vi verŝajne scias la respondon: Linukso-uzantoj volas povi uzi ĝin en iu ajn aparato kaj volas uzi siajn proprajn agordojn.

Sed ĉefe ili deziras solvi kompleksajn problemojn.

Mi havas sepjaran iPad 2 Mini kiu ankoraŭ estas bona por ebook-legado kaj aliaj taskoj. Tamen mi ankaŭ volas uzi ĝin por aliri la komandlinion de aplikaĵoj kun mia aro da programoj kaj skriptoj, sen kiuj mi ne povas labori. Mi bezonas medion al kiu mi kutimas, same kiel mian norman evolumedion. Kaj jen kiel mi sukcesis atingi ĉi tion.

Konektante al klavaro

Labori kun la komandlinio por programado per la surekrana klavaro de telefono aŭ tablojdo estas sufiĉe maloportuna. Mi rekomendas konekti eksteran klavaron, ĉu per Bluetooth aŭ uzi fotilkonektan adaptilon por konekti kablan klavaron (mi elektis la lastan). Konekti Kinesis Advantage dividitan klavaron al iPhone 6 rezultigas strangan aparaton, kiu aspektas kiel kompania ciberdeko de klasika rolludo ombro kuras.

Instalante la ŝelon en iOS

Por funkciigi plene funkciantan Linuksan sistemon en iOS, ekzistas du opcioj:

  • Sekura ŝelo (SSH) konektita al Linukso-maŝino
  • Funkcii virtualan sistemon uzante Alpine Linukso kun iSH, kiu estas malfermfonta sed devas esti instalita per la proprieta aplikaĵo TestFlight de Apple.

Alternative, ekzistas du malfermfontaj terminalaj emulaj aplikoj, kiuj disponigas la kapablon labori kun malfermfontaj iloj en limigita medio. Ĉi tiu estas la plej malkonstruita opcio - fakte, tiel oni ne kuras Linukson, sed Linuksajn ilojn. Estas severaj limigoj kiam vi laboras kun ĉi tiuj aplikoj, sed vi ricevas partan komandlinian funkcion.

Antaŭ ol pluiri al kompleksaj solvoj, mi konsideros la plej simplan manieron.

Opcio 1: Ŝelo en la Sandbox

Unu el la plej facilaj manieroj estas instali la iOS-apon LibTerm. Ĉi malferma fonto sandbox komandŝelo kun subteno por pli ol 80 komandoj ĉe nul dolaroj. Ĝi venas kun Python 2.7, Python 3.7, Lua, C, Clang kaj pli.

Proksimume la sama funkcieco a-Konko, priskribita fare de la programistoj kiel "testa uzantinterfaco por platformo kun ekranenigo." a-Shell-fontoj afiŝitaj malferma fonto, ĝi estas sub aktiva evoluo, disponigas dosiersistemon aliron, kaj ekspediĝas kun Lua, Python, Tex, Vim, JavaScript, C kaj C++, kaj Clang kaj Clang++. Ĝi eĉ permesas vin instali Python-pakaĵojn kun pip.

Opcio 2: SSH

Alia paŝo preter elŝutado de aplikaĵo estas agordi SSH-klienton. Dum longa tempo, ni povis uzi iun ajn el la multaj iOS-SSH-klientaplikoj por konektiĝi al servilo funkcianta Linukso aŭ BSD. La avantaĝo uzi SSH estas, ke ĉiu distribuo povas funkcii en la servilo per iu ajn programaro. Vi laboras malproksime kaj la rezultoj de via laboro estas simple translokigitaj al la terminala emulilo sur via iOS-aparato.

palpebrumi ŝelo estas populara pagita SSH-apliko en malferma fonto. Se vi ne atentas la malgrandan ekranon de la aparato, tiam uzi ĉi tiun programaron estas kiel konekti al la servilo per iu ajn alia komandlinio. La Blink-terminalo aspektas bonege, havas multajn pretajn temojn kaj la eblon krei viajn proprajn, inkluzive de la kapablo personecigi kaj aldoni novajn tiparojn.

Opcio 3: Rulu Linukso

Uzi SSH por konekti al servilo sub Linukso estas bonega maniero por aliri la komandlinion, sed ĝi postulas eksteran servilon kaj retan konekton. Ĉi tio ne estas la plej granda obstaklo, sed ĝi ne povas esti tute ignorita, do vi eble bezonos labori kun Linukso sen servilo.

Se ĉi tio estas via kazo, tiam vi devos fari ĝin unu paŝon plu. TestFlight estas proprieta servo por instali aplikaĵojn evoluantaj antaŭ ol ili estas liberigitaj al la Apple App Store. Vi povas instali la TestFlight-apon el la App Store kaj poste uzi la testajn programojn. Aplikoj en TestFlight permesas limigitan nombron da beta-testiloj (tipe ĝis 10) labori kun ili dum limigita tempo. Por elŝuti la testan apon, vi devas aliri la ligilon en via aparato, kiu kutime troviĝas en la retejo de la testprogramo de la programisto.

Kurante Alpine Linukso kun iSH

ISH estas malfermfonta TestFlight-aplikaĵo kiu funkciigas virtualan maŝinon kun preta distribuo Linukso Alpa (kun iom da laboro, vi povas ruli aliajn distribuojn).

Grava trajto: aplikaĵo eksperimenta. Ĉar iSH estas nuntempe testa aplikaĵo, ne atendu konsekvencan kaj fidindan agadon. TestFlight-aplikoj estas templimigitaj. Mia nuna konstruo daŭros nur 60 tagojn. Ĉi tio signifas, ke post 60 tagoj mi estos forpelita kaj devos denove aliĝi al la sekva fazo de iSH-testado. Plie, mi perdos ĉiujn miajn dosierojn se mi ne eksportas ilin per Dosieroj en iOS aŭ ne kopios ilin al Git-gastiganto aŭ per SSH. Alivorte: Ne atendu, ke ĉio daŭre funkcias! Ne metu ion gravan por vi en la sistemon! Reiru al aparta loko!

iSH Instalado

Komencu kun instalado TestFlight de la App Store. Poste instalu iSH, ricevante ligilon por instali de la aplika retejo. Estas alia maniero instali uzante AltStore, sed mi ne provis ĝin. Aŭ, se vi havas pagitan programistan konton, vi povas elŝuti la iSH-deponejon de GitHub kaj instali ĝin mem.

Uzante la ligilon, TestFlight instalos la apon iSH sur via aparato. Kiel kun iu ajn alia aplikaĵo, ikono aperos sur la ekrano.

Pakaĵadministrado

iSH funkciigas x86-emulilon kun Alpine Linukso. Alpine estas eta distribuo kiu estas malpli ol 5MB en grandeco. Ĉi tio estis mia unua fojo laboranta kun Alpine, do mi pensis, ke la minimumismo ĝenus, sed mi tre ŝatis ĝin.

Lanĉante la Linuksan komandlinion en iOS
Alpine uzas pakaĵadministrilon apkkio estas pli facila ol eĉ apt aŭ pacman.

Kiel instali la pakaĵon:

apk add package

Kiel forigi pakaĵon:

apk del package

Kiel trovi aliajn komandojn kaj informojn:

apk --help

Ĝisdatigo de pakaĵmanaĝero:

apk update
apk upgrade

Instalado de tekstoredaktilo

La norma tekstredaktilo de Alpine estas Vi, sed mi preferas Vim, do mi instalis ĝin:

apk add vim

Se vi volas, vi povas instali Nanon aŭ Emakson.

Ŝanĝo de ŝelo

Mi ne scias pri vi, sed mi bezonis fiŝŝelo. Aliaj homoj preferas BashZsh. Tamen, Alpine uzas cindron! Cindro estas forko de la Dash-ŝelo, kio estas sin forko de la origina cindro, aŭ Almquist-ŝelo. Ŝia prioritato estas rapideco. Mi decidis komerci rapidecon por la enkonstruita aŭtomata kompletigo, koloroj, Vim-ŝlosila administrado kaj sintakso elstarigante, ke mi amas kaj konas el la fiŝa ŝelo.

Fiŝa instalado:

apk add fish

Se vi bezonas Bash kun ĝiaj aŭtokompletaj kaj manpaĝoj, tiam instalu ilin:

apk add bash bash-doc bash-completion

La minimumisma ideologio de Alpine kutime signifas, ke iuj programoj, kiuj estas ununura pakaĵo en aliaj distribuoj, estos dividitaj en plurajn pli malgrandajn pakaĵojn. Ĝi ankaŭ signifas, ke vi povas agordi kaj malpligrandigi la sistemon ĝuste kiel vi volas ĝin.

Por pliaj informoj pri instalo de Bash, vidu ĉi tiu lernilo.

Ŝanĝante la defaŭltan ŝelon

Post kiam fiŝo estas instalita, vi povas provizore ŝanĝi al ĝi tajpante fish kaj irante al la ŝelo. Sed mi volas fari fiŝon la defaŭltan ŝelon, kaj la komandon chsh, kiun mi uzis en aliaj distribuoj, ne funkciis.

Unue, ni eksciu, kie fiŝoj estas instalitaj:

which fish

Jen kio okazis al mi:

/usr/bin/fish

Poste, ŝanĝu la ensalutan ŝelon al fiŝoj. Vi povas uzi ajnan redaktilon, kiun vi ŝatas. Se vi estas komencanto, tiam instalu Nano (kun la komando apk add nano) por ke vi povu redakti la agordajn dosierojn kaj konservi ilin per CTRL+X, konfirmi kaj eliri.

Sed mi uzis Vim:

vim /etc/passwd

Mia unua linio estis:

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

Por fari fiŝon la defaŭlta ŝelo, ŝanĝu ĉi tiun linion al la jena:

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

Poste konservu la dosieron kaj eliru.

Mi certas, ke ekzistas bona maniero ŝanĝi la ŝelan vojon por ke ĝi estu tuj uzata. Sed mi ne konas lin, do mi rekomendas reveni al la aplikaĵa retumilo, devigi eliri la ŝelon, kaj por esti certa, malŝalti kaj rekomenci la iPad aŭ iPhone. Malfermu iSH denove kaj nun, krom la mesaĝo "Bonvenon al Alpine!" kaj informoj pri lanĉo de la apk, vi vidos la norman fiŝo-ensalutan bonvenmesaĝon: Bonvenon al fiŝo, la amika interaga ŝelo. Hura!

Lanĉante la Linuksan komandlinion en iOS

Agordi Python kaj pip

Mi decidis aldoni python (versio 3.x), ne nur por skribi kodon, sed ankaŭ ĉar mi uzas plurajn Python-programojn. Ni instalu ĝin:

apk add python3

Kvankam Python 2.x estas malmoderna, vi ankaŭ povas instali ĝin:

apk add python

Instalu Python-pakaĵadministranton nomatan pip kaj instaliloj:

python3 -m ensurepip --default-pip

Necesos iom da tempo por instali kaj agordi la pakaĵadministrilon, do simple paciencu.

Vi povas tiam elŝuti ilon por translokigi dosierojn tra la reto buklo:

apk add curl

Legante manlibrojn

Fiŝo uzas enkonstruitan aŭtokompleton bazitan sur manpaĝoj. Kiel aliaj komandliniaj uzantoj, mi uzas la manlibron man, kaj Alpine ne havas ĝin instalita. Do mi instalis ĝin per terminala paĝilo malpli:

apk add man man-pages less less-doc

Krom homo, mi uzas la grandiozan tldr-paĝoj projekto, kiu disponigas simpligitajn kaj komunumajn manpaĝojn.

Mi instalis ĝin per pip:

pip install tldr

teamo tldr konektas al la reto por preni paĝojn kiam ĝi renkontas peton por nova paĝo. Se vi bezonas scii kiel uzi komandon, vi povas skribi ion similan tldr curl kaj ricevu priskribon en simpla angla kaj bonajn ekzemplojn pri kiel uzi la komandon.

Kompreneble, ĉio ĉi tiu instala laboro povas esti aŭtomatigita uzante punktodosieroj aŭ instala skripto, sed fakte ĉi tio ne tre kongruas kun la ideologio de Alpine - agordante la minimuman instaladon klare laŭ viaj bezonoj. Krome, ĝi daŭris tiom da tempo, ĉu ne?

aldona informo

La iSH-Vikio havas paĝon "kio funkcias" kun raportoj pri kiuj pakaĵoj nuntempe funkcias. Cetere, ĝi aspektas kiel npm ne funkcias nun.

Alia vikipaĝo klarigas kiel aliri iSH-dosierojn de la iOS Dosieroj-aplikaĵo. Ĉi tiu estas unu el la manieroj kiel vi povas movi kaj kopii dosierojn.

Vi ankaŭ povas instali Git (jes! apk add git ) kaj puŝu vian laboron al fora deponejo aŭ puŝu ĝin al la servilo per SSH. Kaj, kompreneble, vi povas elŝuti kaj ruli iujn ajn bonegajn malfermfontajn projektojn de GitHub.

Pliaj informoj pri iSH troveblas ĉe ĉi tiuj ligiloj:

Pri la Rajtoj de Reklamado

Vdsina ofertas virtualaj serviloj en Linukso aŭ Vindozo. Ni uzas ekskluzive marka ekipaĵo, la plej bona siaspeca endoma servila kontrolpanelo kaj unu el la plej bonaj datumcentroj en Rusio kaj EU. Rapidu mendi!

Lanĉante la Linuksan komandlinion en iOS

fonto: www.habr.com

Aldoni komenton