Suorita Linux-komentorivi iPadilla

Tiesitkö, että voit suorittaa Linux-komentorivin iOS-laitteellasi? Saatat kysyä, ” miksi haluaisin käyttää tekstipohjaisia sovelluksia minun pieni iPhone?”Hyvä on. Se on aika järkevä kysymys. Mutta jos luet Opensource.com, luultavasti tiedät vastauksen: Linux-käyttäjät haluavat käyttää mitä tahansa laitetta, ja he haluavat myös käyttää omia mukautuksia.

ja ennen kaikkea he haluavat haasteen.

minulla on seitsemän vuotta vanha iPad 2 Mini, joka toimii edelleen hyvin e-kirjojen lukemiseen ja muihin tehtäviin. Mutta haluan myös käyttää sitä käyttää komentorivi sovelluksia ja minun sarja ohjelmia ja skriptejä en voi näyttää tehdä ilman. Haluan ympäristön, johon olen tottunut, sekä normaalin kehitysympäristöni. Näin tein sen.

Yhdistä näppäimistöön

komentorivin käyttäminen ohjelmointiin puhelimen tai tabletin näytöllä näkyvällä näppäimistöllä ei ole hauskaa. Suosittelen ulkoisen näppäimistön liittämistä joko Bluetoothin kautta tai käyttämällä kameraliitäntäpakkaussovitinta Langallisen näppäimistön liittämiseksi (oma mieltymykseni). Kytkeminen minun Kinesis Advantage split näppäimistö minun iPhone 6 tekee outoja optiikka, kuten corp ’ s cyberdeck klassinen roolipeli Shadowrun.

Hanki komentotulkki iOS: lle

sinulla on kaksi vaihtoehtoa täydellisen Linux-järjestelmän ajamiseen iOS: ssä:

  • Secure shell (SSH) Linux-tietokoneeseen
  • Suorita virtualisoitu järjestelmä Alpine Linuxilla Ish: n kanssa, joka on avointa lähdekoodia, mutta on asennettava Applen omistaman TestFlight-sovelluksen avulla

vaihtoehtoisesti on olemassa kaksi avoimen lähdekoodin pääte-emulaattorisovellusta, jotka tarjoavat avoimen lähdekoodin työkaluja rajoitetussa ympäristössä. Tämä on rajoitetuin vaihtoehto-se ei oikeastaan anna sinun käyttää Linuxia, mutta käytät Linux-työkaluja. On olemassa raskaita rajoituksia, mitä voit tehdä laitteen näillä sovelluksilla, mutta ne saavat sinulle joitakin komentorivitoimintoja.

katson yksinkertaisinta lähestymistapaa ennen kuin tutkin haastavampia ratkaisuja.

vaihtoehto 1: sandboxed shell

yksi helpoimmista tavoista päästä alkuun on iOS-sovellus LibTerm. Tämä on sandboxed avoimen lähdekoodin komentorivi, jossa on 80 + komentoa nipussa 0 dollarin sovelluksessa. Se alukset Python 2.7, Python 3.7, Lua, C, Clang, ja enemmän.

samansuuntaisesti on a-Shell, jota kuvaillaan ”tekstipohjaiseksi käyttöliittymäksi näyttöpohjaiselle alustalle.”a-Shell on avointa lähdekoodia, aktiivisessa kehityksessä, myöntää pääsyn tiedostojärjestelmään, ja alukset Lua, Python, Tex, Vim, JavaScript, C ja C++, sekä Clang ja Clang++. Sen avulla voit jopa asentaa Python-paketteja pip: n kanssa.

Vaihtoehto 2: SSH missä tahansa

yksi askel ylöspäin sovelluksen lataamisesta on SSH-asiakkaan määrittäminen. Jo pitkään on ollut mahdollista käyttää yhtä monista SSH-asiakassovelluksista iOS: ssä yhteyden muodostamiseen palvelimeen, jossa on Linux-distro tai BSD. SSH: n käytön etuna on se, että palvelin voi ajaa mitä tahansa distroa millä tahansa ohjelmistolla, josta pidät. Työskentelet etänä, ja ulostulo vain saa johdetaan iOS-laitteen pääte-emulaattori.

Blink shell on suosittu maksullinen avoimen lähdekoodin SSH-sovellus. Ulkopuolella pieni näyttö, käyttämällä tätä ohjelmistoa on sukua yhteyden palvelimeen kautta muita komentokehote. Blinkin pääte näyttää kauniilta, sillä mukana on useita teemoja ja mahdollisuus luoda omia teemoja, kuten muokata ja lisätä uusia fontteja.

vaihtoehto 3: Suorita Linux

SSH: n käyttäminen yhteyden muodostamiseen Linuxia käyttävään palvelimeen on hyvä tapa käyttää kehotusta, mutta se vaatii pääsyn ulkoiseen palvelimeen ja yhteyden. Tämä ei ole pahin este sisäänpääsylle, mutta se ei ole täysin merkityksetön, ja saatat haluta käyttää Linuxia ilman tätä palvelinvaatimusta.

Jos se on sinun juttusi, sinun on puhkaistava jotain vähän enemmän kärjessä. TestFlight on oma palvelu kehitysohjelmien käyttöönottoon ennen niiden lähettämistä Applen App Storeen. Voit ladata TestFlight-sovelluksen kaupasta ja rekisteröityä sen jälkeen useisiin testisovelluksiin. Testflightin sovellukset mahdollistavat rajoitetun määrän ulkoisia beta-testaajia (yleensä jopa 10 000) rajoitetun ajan. Testisovelluksen lataamiseksi on käytettävä suoraan laitteelta löytyvää linkkiä, joka löytyy yleensä testisovelluskehittäjän sivuilta.

Run Alpine Linux with ish

iSH on avoimen lähdekoodin TestFlight-sovellus, joka pyörittää virtuaalikonetta Alpine Linux distron kanssa laatikosta (mutta voit ajaa muita jakeluja hieman näpertelemällä).

tärkeä varoitus: Tämä on kokeellista. Koska iSH on tällä hetkellä testisovellus, älä odota pysyvää tai vankkaa palvelua. TestFlight-sovellukset ovat ajallisesti rajattuja. Nykyinen rakenteeni kestää 60 päivää. Tämä tarkoittaa, että 60 päivän päästä minut lukitaan ulos ja minun on palattava ishin seuraavaan testausvaiheeseen. Lisäksi menetän tiedostoni, Ellen vie niitä iOS-tiedostoilla tai varmuuskopioi niitä Git-palvelimelle tai SSH: lle. Selvyyden vuoksi: älä luota tähän jatkaaksesi työskentelyä! Älä laita mitään oleellista yllesi! Tehkää töitänne muualla!

Asenna iSH

Aloita asentamalla TestFlight App Storen kautta. Asenna sitten iSH saamalla asennuslinkki verkkosivustonsa kautta. On toinenkin asennustapa, joka käyttää Altstorea, mutta en ole kokeillut sitä. Tai jos sinulla on maksettu kehittäjätili, voit ladata iSH: n repon GitHubista ja ottaa sen käyttöön itse.

linkin avulla TestFlight asentaa laitteellesi Ish-sovelluksen. Kuten mikä tahansa muu sovellus, se näkyy näytöllä kuvake.

Hallitse paketteja

iSH käyttää x86-emulaattoria Alpine Linuxilla. Alpine on pieni, alle 5MB distro. Tämä oli ensimmäinen kerta, kun juoksin alppihiihdossa, ja ajattelin turhautuvani näin pieneen distroon, mutta nautin siitä todella paljon.

ish-install.png

Alpine Linux iOS: llä

(Lee Tusman, CC BY-SA 4.0)

Alpine käyttää apk-paketinhallintaa, joka on yksinkertaisempi kuin edes apt tai pacman.

paketin asentaminen:

apk add package

paketin poistaminen:

apk del package

Etsi muita komentoja ja tietoja:

apk --help

Päivitä paketinhallinta:

apk updateapk upgrade

Hanki tekstieditori

Alppien oletustekstieditori on Vi, mutta mieluummin vim, joten asensin sen:

apk add vim

sinä voit asentaa nano tai emacs, jos haluat.

muuta kuorta

en tiedä sinusta, mutta tarvitsen kalan kuoren. Toiset pitävät enemmän Bashista tai Zsh: sta. Mutta Alpine käyttää tuhkaa! Ash on Dash-kuoren haarukka, itse alkuperäisen Ashin tai Almquistin kuoren haarukka. Se on suunniteltu nopeuteen. Päätin vaihtaa nopeuden hyväksi sisäänrakennetun automaattitäydennyksen, värin, vim-näppäinohjauksen ja syntaksin korostuksen, jonka tiedän ja rakastan kalan kuoressa.

Install fish:

apk add fish

Jos haluat Bashin ja sen täydennykset ja man-sivut tilalle, sinun on asennettava ne ja joitain ylimääräisiä asioita:

apk add bash bash-doc bash-completion

Alpinen minimalistinen ideologia tarkoittaa yleensä sitä, että jotkut ohjelmat, jotka olisivat yhtenä pakettina muissa distroissa, on jaettu useiksi pienemmiksi paketeiksi. Tämä tarkoittaa myös sitä, että voit muokata ja laihduttaa järjestelmääsi juuri niin kuin haluat.

lisätietoja Bashin asentamisesta löytyy tästä opetusohjelmasta.

Vaihda oletusasetusta

kun olet asentanut Fishin, voit tilapäisesti vaihtaa siihen ja kokeilla sitä kirjoittamalla fish ja pudottamalla komentotulkkiin. Mutta haluan tehdä kalasta oletuskuoreni, eikä chsh komento, johon olen tottunut muista distroista, toimi.

selvitä ensin, mihin kala on asennettu:

which fish

oma ulostulo:

/usr/bin/fish

seuraavaksi muokkaa login Shelliä käyttämään kalaa. Voit käyttää mitä tahansa editoria, jonka kanssa Olet sinut. Jos olet aloittelija, asenna Nano (kanssa apk add nano), jotta voit muokata asetustiedostoja ja tallentaa ne CTRL+X, vahvista ja lopeta.

mutta käytin Vim:

vim /etc/passwd

ensimmäinen rivini oli:

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

tehdä kalasta oletus:

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

sitten Tallenna ja lopeta.

olen varma, että on olemassa hyvä tapa ohjelmoida komentotulkki uudelleen niin, että voit aloittaa sen käytön heti. Mutta en ole varma, joten suosittelen palaamista app-selaimeen, pakota poistumaan komentotulkasta ja hyvää toimenpidettä, sulkemista ja iPadin tai iPhonen uudelleenkäynnistämistä. Reopen iSH, ja nyt, lisäksi ” Tervetuloa Alpine!”viesti ja tietoa aloittamisesta apk, näet oletuksena kala kirjautuminen Tervetuloa viesti: Tervetuloa kala, ystävällinen interaktiivinen kuori. Hurraa!

ish.png

Kalankuori Alpine Linuxissa

(Lee Tusman, CC BY-SA 4.0)

perustaa Pythonin ja pip

päätin lisätä Pythonin (versio 3.x), ei vain siksi, että voisin kirjoittaa koodia, mutta koska luotan useisiin Python-ohjelmiin. Asenna se:

apk add python3

vaikka Python 2.x on vanhentunut, voit silti asentaa sen:

apk add python

Asenna Python-paketinhallinta, pip ja setuptools:

python3 -m ensurepip --default-pip

paketinhallinta kestää jonkin aikaa, joten odota vain.

sitten, voit ladata curl, networking transfer tool:

apk add curl

lue käsikirja

kala käyttää sisäänrakennettua automaattista täydennystä man-sivujen perusteella. Muiden komentorivikäyttäjien tapaan luotan man manuaaliin, eikä Alpinen mukana tule sitä asennettuna. Niinpä asensin sen yhdessä vähemmän hakulaitteen kanssa:

apk add man man-pages less less-doc

man lisäksi käytän fabulous TLDR pages-projektia, joka tarjoaa yksinkertaistettuja, yhteisöllisiä man-sivuja.

asensin sen pip: llä:

pip install tldr

tldr komento kytkeytyy verkkoon noutamaan sivuja aina, kun se kohtaa uuden pyynnön. Jos haluat oppia käyttämään komentoa, voit kirjoittaa jotain kuten tldr curl saadaksesi selkokielisen selityksen ja hyviä esimerkkejä komennon käytöstä.

voit tietysti automatisoida kaiken tämän asennustyön dotfiles-tai install script-tiedostoilla, mutta se ei oikeastaan kuuluisi Alpine-tapaan räätälöidä minimaalista asennusta juuri Sinun toiveidesi mukaan. Eikä siinä kestänyt kauaa.

Lue lisää

iSH wiki Sisältää ”mikä toimii” – sivun, jossa kerrotaan, mitkä paketit tällä hetkellä toimivat. Npm ei näytä toimivan tällä hetkellä.

toinen wiki-sivu kertoo, miten voit käyttää ish-tiedostoja iOS Files-sovelluksesta. Tämä on yksi tapa voit siirtää ja siirtää tiedostoja.

Vastaa

Sähköpostiosoitettasi ei julkaista.