İOS'ta Linux komut satırını başlatma

İOS'ta Linux komut satırını başlatma

Linux komut satırını bir iOS cihazında çalıştırabileceğinizi biliyor muydunuz? “iPhone'umda neden mesajlaşma uygulamalarını kullanmalıyım?” diye soruyor olabilirsiniz. Adil soru. Ancak Opensource.com'u okursanız muhtemelen cevabı biliyorsunuzdur: Linux kullanıcıları onu herhangi bir cihazda kullanabilmek ve bunu kendileri özelleştirmek isterler.

Ama hepsinden önemlisi, karmaşık sorunları çözmeye can atıyorlar.

Yedi yaşında bir iPad 2 Mini'm var ve e-kitap okumak ve diğer görevler için hâlâ oldukça iyi. Ancak bunu, program setim ve komut dosyalarımla uygulamaların komut satırına erişmek için de kullanmak istiyorum; bunlar olmadan çalışamam. Standart geliştirme ortamımın yanı sıra alışık olduğum bir ortama da ihtiyacım var. Ve bunu şu şekilde başardım.

Klavyeye bağlanma

Bir telefonun veya tabletin ekran klavyesi aracılığıyla programlama yapmak için komut satırıyla çalışmak oldukça zahmetlidir. Kablolu bir klavyeyi bağlamak için Bluetooth aracılığıyla harici bir klavye bağlamanızı veya bir kamera bağlantı adaptörü kullanmanızı öneririm (ikincisini seçtim). Kinesis Advantage bölünmüş klavyeyi bir iPhone 6'ya bağladığınızda, şuna benzeyen tuhaf bir cihazla karşılaşıyorsunuz: kurumsal siber güverte klasikten rol oynamak Gölge Koşusu.

Kabuğu iOS'a yükleme

İOS'ta tam özellikli bir Linux sistemini çalıştırmak için iki seçenek vardır:

  • Linux bilgisayara bağlı güvenli kabuk (SSH)
  • Açık kaynak olan ancak Apple'ın tescilli TestFlight uygulaması kullanılarak kurulması gereken iSH ile Alpine Linux kullanarak sanal bir sistem çalıştırma

Alternatif olarak, kısıtlı bir ortamda açık kaynaklı araçlarla çalışma olanağı sağlayan iki adet açık kaynaklı terminal emülatör uygulaması bulunmaktadır. Bu en basitleştirilmiş seçenektir; aslında Linux araçlarını bu şekilde çalıştırırsınız, Linux'u değil. Bu uygulamalarla çalışırken ciddi özellik sınırlamaları vardır, ancak kısmi komut satırı işlevselliğine sahip olursunuz.

Karmaşık çözümlere geçmeden önce en basit yönteme bakacağım.

Seçenek 1: Korumalı alan kabuğu

En kolay yollardan biri iOS uygulamasını yüklemektir LibTerm. O açık kaynak Sıfır dolara 80'den fazla komutu destekleyen korumalı alan komut kabuğu. Python 2.7, Python 3.7, Lua, C, Clang ve çok daha fazlasıyla birlikte gelir.

Yaklaşık olarak aynı işlevselliğe sahiptir cehennem gibigeliştiriciler tarafından "ekran giriş platformu için bir test kullanıcı arayüzü" olarak tanımlandı. a-Shell kaynakları yayınlanır açık kaynak, aktif geliştirme aşamasındadır, dosya sistemi erişimi sağlar ve Lua, Python, Tex, Vim, JavaScript, C ve C++'nın yanı sıra Clang ve Clang++ ile birlikte gelir. Hatta Python paketlerini pip ile kurmanıza da olanak tanır.

Seçenek 2: SSH

Bir uygulamayı indirmenin bir diğer adımı, bir SSH istemcisi kurmaktır. Uzun bir süredir, Linux veya BSD çalıştıran bir sunucuya bağlanmak için iOS için birçok SSH istemci uygulamasından herhangi birini kullanabiliyoruz. SSH kullanmanın avantajı, sunucunun herhangi bir yazılımla herhangi bir dağıtımı çalıştırabilmesidir. Uzaktan çalışırsınız ve çalışmanızın sonuçları iOS cihazınızdaki terminal emülatörüne kolayca aktarılır.

Yanıp sönme kabuğu popüler bir ücretli SSH uygulamasıdır açık kaynak. Cihazın küçük ekranını görmezden gelirseniz, bu yazılımı kullanmak, sunucuya başka bir komut satırı üzerinden bağlanmaya benzer. Blink Terminal harika görünüyor, birçok hazır temaya ve yeni yazı tiplerini kişiselleştirme ve ekleme yeteneği de dahil olmak üzere kendinizinkini oluşturma yeteneğine sahip.

Seçenek 3: Linux'u başlatın

Bir Linux sunucusuna bağlanmak için SSH kullanmak, komut satırına erişmenin harika bir yoludur, ancak harici bir sunucu ve ağ bağlantısı gerektirir. Bu en büyük engel değil ama tamamen göz ardı edilemez, dolayısıyla Linux'u sunucusuz çalıştırmanız gerekebilir.

Eğer durum buysa, o zaman bir adım daha ileri gitmeniz gerekecek. Test uçuşu geliştirilen uygulamaların Apple App Store'da yayınlanmadan önce yüklenmesine yönelik tescilli bir hizmettir. TestFlight uygulamasını App Store'dan yükleyebilir ve ardından test uygulamalarını kullanabilirsiniz. TestFlight'taki uygulamalar, sınırlı sayıda beta testçisinin (genellikle 10'e kadar) sınırlı bir süre boyunca onlarla çalışmasına izin verir. Bir test uygulamasını indirmek için cihazınızdan genellikle test uygulaması geliştiricisinin web sitesinde bulunan bir bağlantıya gitmeniz gerekir.

Alpine Linux'u iSH ile Çalıştırmak

ISH hazır dağıtıma sahip bir sanal makineyi başlatan açık kaynaklı bir TestFlight uygulamasıdır Alp Linux (biraz çaba harcayarak diğer dağıtımları çalıştırabilirsiniz).

Önemli özelliği: deneysel uygulama. iSH şu anda bir test uygulaması olduğundan sürekli ve güvenilir bir çalışma beklemeyin. TestFlight uygulamalarının süresi sınırlıdır. Şu anki kurulumum yalnızca 60 gün sürecek. Bu, 60 gün sonra eleneceğim ve bir sonraki iSH testi turuna yeniden katılmak zorunda kalacağım anlamına geliyor. Üstelik iOS'taki Dosyalar'ı kullanarak dışa aktarmadığım veya bir Git ana bilgisayarına kopyalamadığım sürece tüm dosyalarımı kaybedeceğim veya SSH aracılığıyla. Başka bir deyişle: Bunun çalışmaya devam etmesini beklemeyin! Sizin için önemli olan hiçbir şeyi sisteme koymayın! Ayrı bir konuma yedekleyin!

iSH'yi yükleme

Kurulumla başlayın Test uçuşu App Store'dan. Ardından iSH'yi yükleyin, kurulum bağlantısını aldım Uygulama web sitesinden. AltStore kullanarak başka bir kurulum yöntemi daha var ama onu denemedim. Veya ücretli bir geliştirici hesabınız varsa iSH deposunu GitHub'dan indirip kendiniz kurabilirsiniz.

Bağlantıyı kullanarak TestFlight, iSH uygulamasını cihazınıza yükleyecektir. Diğer uygulamalarda olduğu gibi ekranda bir simge görünecektir.

Paket Yönetimi

iSH, Alpine Linux ile bir x86 öykünücüsü çalıştırır. Alpine, boyutu 5 MB'tan küçük olan küçük bir dağıtımdır. Bu benim Alpine ile ilk çalışmamdı, bu yüzden minimalizmin sinir bozucu olacağını düşünmüştüm ama aslında gerçekten hoşuma gitti.

İOS'ta Linux komut satırını başlatma
Alpine bir paket yöneticisi kullanıyor apkapt veya pacman'den bile daha kolaydır.

Paket nasıl kurulur:

apk add package

Bir paket nasıl kaldırılır:

apk del package

Diğer komutlar ve bilgiler nasıl bulunur:

apk --help

Paket yöneticisi güncellemesi:

apk update
apk upgrade

Bir metin düzenleyicinin kurulması

Alpine'ın varsayılan metin düzenleyicisi Vi'dir, ancak ben Vim'i tercih ediyorum, bu yüzden onu yükledim:

apk add vim

İstenirse Nano veya Emacs kurabilirsiniz.

Kabuk değişikliği

Seni bilmem ama benim ihtiyacım vardı balık kabuğu. Başkaları tercih ediyor Cümbüş veya zsh. Ancak Alp kül kullanıyor! Kül, kendisi de orijinal külün çatalı olan Dash kabuğunun bir çatalıdır veya Almquist kabuğu. Önceliği hızdır. Balık kabuğundan sevdiğim ve bildiğim yerleşik otomatik tamamlama, renkler, Vim tuş kontrolleri ve sözdizimini vurgulayarak hızdan vazgeçmeye karar verdim.

Balık kurulumu:

apk add fish

Otomatik tamamlama ve kılavuz sayfalarıyla Bash'e ihtiyacınız varsa bunları yükleyin:

apk add bash bash-doc bash-completion

Alpine'ın minimalist ideolojisi genellikle diğer dağıtımlarda paketlenmiş bazı programların birkaç küçük pakete bölüneceği anlamına gelir. Bu aynı zamanda sisteminizin boyutunu tam olarak istediğiniz şekilde özelleştirebileceğiniz ve azaltabileceğiniz anlamına da gelir.

Bash'i yükleme hakkında daha fazla bilgi için bkz. bu eğitim.

Varsayılan kabuğu değiştirme

Balıkları kurduktan sonra geçici olarak girerek ona geçebilirsiniz. fish ve kabuğa giriyorum. Ama balığı varsayılan kabuk ve komut yapmak istiyorum chshDiğer dağıtımlarda kullandığım işe yaramadı.

İlk önce balığın nereye kurulduğunu öğreniyoruz:

which fish

İşte elde ettiklerim:

/usr/bin/fish

Daha sonra oturum açma kabuğunu balık olarak değiştirin. Size uygun herhangi bir düzenleyiciyi kullanabilirsiniz. Yeni başlayan biriyseniz Nano'yu yükleyin (komutla) apk add nano) böylece konfigürasyon dosyalarını düzenleyebilir ve CTRL+X ile kaydedebilir, onaylayıp çıkabilirsiniz.

Ama Vim'i kullandım:

vim /etc/passwd

İlk satırım şöyleydi:

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

Balığı varsayılan kabuk yapmak için bu satırı aşağıdaki şekilde değiştirin:

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

Daha sonra dosyayı kaydedin ve çıkın.

Eminim hemen kullanılabilmesi için kabuğun yolunu değiştirmenin iyi bir yolu vardır. Ancak bunu bilmiyorum, bu yüzden uygulama tarayıcısına dönmenizi, kabuktan çıkmaya zorlamanızı ve güvenli tarafta olmak için iPad veya iPhone'unuzu kapatıp yeniden başlatmanızı öneririm. “Alpine'e Hoş Geldiniz!” mesajına ek olarak iSH'yi tekrar ve şimdi açın. ve apk'den başlatmayla ilgili bilgiler için standart balık girişine hoş geldiniz mesajını göreceksiniz: Dost canlısı interaktif kabuk olan balıklara hoş geldiniz. Yaşasın!

İOS'ta Linux komut satırını başlatma

Python ve pip'i kurma

eklemeye karar verdim Python (sürüm 3.x), yalnızca kod yazmak için değil, aynı zamanda birkaç Python programı kullandığım için de kullanıyorum. Hadi kuralım:

apk add python3

Python 2.x güncelliğini kaybetmiş olmasına rağmen onu yükleyebilirsiniz:

apk add python

Pip adlı Python paket yöneticisini kuralım ve kurulum araçları:

python3 -m ensurepip --default-pip

Paket yöneticisini kurmak ve yapılandırmak biraz zaman alacaktır, o yüzden bekleyin.

Daha sonra dosyaları ağ üzerinden aktarmak için bir araç indirebilirsiniz. kıvırmak:

apk add curl

Kılavuzları okumak

Fish, man sayfalarına dayalı yerleşik otomatik tamamlamayı kullanır. Diğer komut satırı kullanıcıları gibi ben de kılavuzu kullanıyorum man, ancak Alpine'da yüklü değil. Bu yüzden onu terminal çağrı cihazıyla kurdum az:

apk add man man-pages less less-doc

Adama ek olarak muhteşem kullanıyorum tldr sayfaları projesibasitleştirilmiş ve topluluk odaklı kılavuz sayfaları sağlayan.

Pip kullanarak kurdum:

pip install tldr

Ekip tldr yeni bir sayfa isteğiyle karşılaştığında sayfaları almak için web'e bağlanır. Bir komutun nasıl kullanılacağını bilmeniz gerekiyorsa, şöyle bir şey yazabilirsiniz: tldr curl ve sade İngilizce bir açıklama ve komutun nasıl kullanılacağına dair iyi örnekler alın.

Elbette tüm bu kurulum çalışmaları kullanılarak otomatikleştirilebilir. nokta dosyaları veya bir kurulum senaryosu, ancak aslında bu Alpine'ın ideolojisine pek uymuyor - minimal kurulumu tam olarak ihtiyaçlarınıza uyacak şekilde özelleştirmek. Ayrıca çok uzun sürdü değil mi?

ek bilgi

iSH Wiki'nin bir sayfası var "ne çalışıyor" şu anda hangi paketlerin çalıştığına dair raporlarla. Bu arada, öyle görünüyor npm şu anda çalışmıyor.

Başka bir wiki sayfası nasıl olduğunu açıklıyor iSH dosyalarına erişme iOS Dosyalar uygulamasından. Bu, dosyaları taşımanın ve kopyalamanın yollarından biridir.

Git'i de yükleyebilirsiniz (evet! apk add git ) ve çalışmanızı uzak bir depoya gönderin veya SSH aracılığıyla sunucuya aktarın. Ve tabii ki GitHub'dan istediğiniz sayıda harika açık kaynaklı projeyi indirip çalıştırabilirsiniz.

iSH hakkında daha fazla bilgiyi şu bağlantılarda bulabilirsiniz:

Reklam gibi

Vdsina sunar Linux'ta sanal sunucular veya Windows'u seçin. Sadece kullanıyoruz markalı ekipmanKendi tasarımıyla türünün en iyisi olan sunucu kontrol paneli ve Rusya ve AB'deki en iyi veri merkezlerinden biri. Sipariş vermek için acele edin!

İOS'ta Linux komut satırını başlatma

Kaynak: habr.com

Yorum ekle