Εκκίνηση της γραμμής εντολών Linux στο iOS

Εκκίνηση της γραμμής εντολών Linux στο iOS

Γνωρίζατε ότι μπορείτε να εκτελέσετε μια γραμμή εντολών Linux σε μια συσκευή iOS; Ίσως ρωτάτε, "Γιατί να χρησιμοποιήσω εφαρμογές κειμένου στο iPhone;" Δίκαιη ερώτηση. Αλλά αν διαβάζετε το Opensource.com, πιθανότατα γνωρίζετε την απάντηση: οι χρήστες Linux θέλουν να μπορούν να το χρησιμοποιούν σε οποιαδήποτε συσκευή και θέλουν να χρησιμοποιούν τις δικές τους ρυθμίσεις.

Αλλά πάνω από όλα λαχταρούν να λύσουν σύνθετα προβλήματα.

Έχω ένα iPad 2 Mini επτά ετών που εξακολουθεί να είναι καλό για ανάγνωση ebook και άλλες εργασίες. Ωστόσο, θέλω επίσης να το χρησιμοποιήσω για πρόσβαση στη γραμμή εντολών των εφαρμογών με το σύνολο των προγραμμάτων και των σεναρίων μου, χωρίς τα οποία δεν μπορώ να εργαστώ. Χρειάζομαι ένα περιβάλλον στο οποίο έχω συνηθίσει, καθώς και το τυπικό περιβάλλον ανάπτυξης μου. Και να πώς κατάφερα να το πετύχω αυτό.

Σύνδεση σε πληκτρολόγιο

Η εργασία με τη γραμμή εντολών για προγραμματισμό μέσω του πληκτρολογίου οθόνης ενός τηλεφώνου ή tablet είναι αρκετά άβολη. Συνιστώ να συνδέσετε ένα εξωτερικό πληκτρολόγιο, είτε μέσω Bluetooth είτε χρησιμοποιώντας έναν προσαρμογέα σύνδεσης κάμερας για να συνδέσετε ένα ενσύρματο πληκτρολόγιο (εγώ επέλεξα το δεύτερο). Η σύνδεση ενός διαιρεμένου πληκτρολογίου Kinesis Advantage σε ένα iPhone 6 οδηγεί σε μια παράξενη συσκευή που μοιάζει εταιρικό cyberdeck από την κλασική παιχνίδι ρόλων σκιά τρέξιμο.

Εγκατάσταση του κελύφους σε iOS

Για να εκτελέσετε ένα πλήρως λειτουργικό σύστημα Linux σε iOS, υπάρχουν δύο επιλογές:

  • Ασφαλές κέλυφος (SSH) συνδεδεμένο σε μηχανή Linux
  • Εκτέλεση εικονικού συστήματος χρησιμοποιώντας Alpine Linux με iSH, το οποίο είναι ανοιχτού κώδικα αλλά πρέπει να εγκατασταθεί χρησιμοποιώντας την αποκλειστική εφαρμογή TestFlight της Apple

Εναλλακτικά, υπάρχουν δύο εφαρμογές εξομοιωτή τερματικού ανοιχτού κώδικα που παρέχουν τη δυνατότητα εργασίας με εργαλεία ανοιχτού κώδικα σε περιορισμένο περιβάλλον. Αυτή είναι η πιο απογυμνωμένη επιλογή - στην πραγματικότητα, δεν τρέχετε έτσι το Linux, αλλά τα εργαλεία Linux. Υπάρχουν σοβαροί περιορισμοί όταν εργάζεστε με αυτές τις εφαρμογές, αλλά έχετε μερική λειτουργικότητα γραμμής εντολών.

Πριν προχωρήσω σε πολύπλοκες λύσεις, θα εξετάσω τον απλούστερο τρόπο.

Επιλογή 1: Κέλυφος στο Sandbox

Ένας από τους ευκολότερους τρόπους είναι να εγκαταστήσετε την εφαρμογή iOS LibTerm. Το ανοιχτή πηγή Κέλυφος εντολών sandbox με υποστήριξη για περισσότερες από 80 εντολές με μηδέν δολάρια. Έρχεται με Python 2.7, Python 3.7, Lua, C, Clang και άλλα.

Περίπου η ίδια λειτουργικότητα πολύ, που περιγράφεται από τους προγραμματιστές ως "μια δοκιμαστική διεπαφή χρήστη για μια πλατφόρμα με είσοδο οθόνης." Αναρτήθηκαν πηγές της a-Shell ανοικτού κώδικα, βρίσκεται υπό ενεργό ανάπτυξη, παρέχει πρόσβαση στο σύστημα αρχείων και διατίθεται με Lua, Python, Tex, Vim, JavaScript, C και C++ και Clang και Clang++. Σας επιτρέπει ακόμη και να εγκαταστήσετε πακέτα Python με pip.

Επιλογή 2: SSH

Ένα άλλο βήμα πέρα ​​από τη λήψη μιας εφαρμογής είναι η ρύθμιση ενός προγράμματος-πελάτη SSH. Για μεγάλο χρονικό διάστημα, ήμασταν σε θέση να χρησιμοποιήσουμε οποιαδήποτε από τις πολλές εφαρμογές πελάτη iOS SSH για σύνδεση σε διακομιστή με Linux ή BSD. Το πλεονέκτημα της χρήσης SSH είναι ότι οποιαδήποτε διανομή μπορεί να εκτελεστεί στον διακομιστή με οποιοδήποτε λογισμικό. Εργάζεστε εξ αποστάσεως και τα αποτελέσματα της εργασίας σας απλώς μεταφέρονται στον εξομοιωτή τερματικού στη συσκευή σας iOS.

αναβοσβήνει το κέλυφος είναι μια δημοφιλής επί πληρωμή εφαρμογή SSH σε ανοικτού κώδικα. Εάν δεν προσέχετε τη μικρή οθόνη της συσκευής, τότε η χρήση αυτού του λογισμικού είναι σαν να συνδέεστε στον διακομιστή μέσω οποιασδήποτε άλλης γραμμής εντολών. Το τερματικό Blink φαίνεται υπέροχο, έχει πολλά έτοιμα θέματα και τη δυνατότητα να δημιουργήσετε τα δικά σας, συμπεριλαμβανομένης της δυνατότητας προσαρμογής και προσθήκης νέων γραμματοσειρών.

Επιλογή 3: Εκτελέστε Linux

Η χρήση SSH για σύνδεση σε διακομιστή υπό Linux είναι ένας πολύ καλός τρόπος πρόσβασης στη γραμμή εντολών, αλλά απαιτεί έναν εξωτερικό διακομιστή και μια σύνδεση δικτύου. Αυτό δεν είναι το μεγαλύτερο εμπόδιο, αλλά δεν μπορεί να αγνοηθεί εντελώς, επομένως μπορεί να χρειαστεί να εργαστείτε με Linux χωρίς διακομιστή.

Εάν αυτή είναι η περίπτωσή σας, τότε θα χρειαστεί να το κάνετε ένα βήμα παραπέρα. Testlight είναι μια ιδιόκτητη υπηρεσία για την εγκατάσταση εφαρμογών υπό ανάπτυξη πριν από την κυκλοφορία τους στο Apple App Store. Μπορείτε να εγκαταστήσετε την εφαρμογή TestFlight από το App Store και στη συνέχεια να χρησιμοποιήσετε τις δοκιμαστικές εφαρμογές. Οι εφαρμογές στο TestFlight επιτρέπουν σε περιορισμένο αριθμό δοκιμαστών beta (συνήθως έως 10) να συνεργάζονται μαζί τους για περιορισμένο χρονικό διάστημα. Για να κατεβάσετε τη δοκιμαστική εφαρμογή, πρέπει να αποκτήσετε πρόσβαση στον σύνδεσμο στη συσκευή σας, ο οποίος βρίσκεται συνήθως στον ιστότοπο του προγραμματιστή της δοκιμαστικής εφαρμογής.

Εκτέλεση Alpine Linux με iSH

ISH είναι μια εφαρμογή TestFlight ανοιχτού κώδικα που εκτελεί μια εικονική μηχανή με έτοιμη διανομή Alpine Linux (με λίγη δουλειά, μπορείτε να εκτελέσετε άλλες διανομές).

Σημαντικό χαρακτηριστικό: πειραματική εφαρμογή. Εφόσον το iSH είναι επί του παρόντος μια δοκιμαστική εφαρμογή, μην περιμένετε συνεπή και αξιόπιστη απόδοση. Οι εφαρμογές TestFlight είναι χρονικά περιορισμένες. Η τρέχουσα κατασκευή μου θα τρέξει μόνο 60 ημέρες. Αυτό σημαίνει ότι μετά από 60 ημέρες θα αποβληθεί και θα πρέπει να επανέλθω στην επόμενη φάση του τεστ iSH. Επιπλέον, θα χάσω όλα τα αρχεία μου εάν δεν τα εξαγάγω με τα Αρχεία στο iOS ή δεν τα αντιγράψω σε έναν κεντρικό υπολογιστή Git ή μέσω SSH. Με άλλα λόγια: Μην περιμένετε ότι όλα θα συνεχίσουν να λειτουργούν! Μην βάζετε τίποτα σημαντικό για εσάς στο σύστημα! Δημιουργήστε αντίγραφα ασφαλείας σε ξεχωριστή τοποθεσία!

Εγκατάσταση iSH

Ξεκινήστε με την εγκατάσταση Testlight από το App Store. Στη συνέχεια εγκαταστήστε το iSH, λήψη ενός συνδέσμου για εγκατάσταση από τον ιστότοπο της εφαρμογής. Υπάρχει άλλος τρόπος εγκατάστασης χρησιμοποιώντας το AltStore, αλλά δεν τον έχω δοκιμάσει. Ή, εάν έχετε λογαριασμό προγραμματιστή επί πληρωμή, μπορείτε να κάνετε λήψη του αποθετηρίου iSH από το GitHub και να το εγκαταστήσετε μόνοι σας.

Χρησιμοποιώντας τον σύνδεσμο, το TestFlight θα εγκαταστήσει την εφαρμογή iSH στη συσκευή σας. Όπως με κάθε άλλη εφαρμογή, στην οθόνη θα εμφανιστεί ένα εικονίδιο.

Διαχείριση πακέτων

Το iSH εκτελεί έναν εξομοιωτή x86 με το Alpine Linux. Το Alpine είναι μια μικροσκοπική διανομή που έχει μέγεθος μικρότερο από 5 MB. Αυτή ήταν η πρώτη μου φορά που δούλευα με την Alpine, οπότε σκέφτηκα ότι ο μινιμαλισμός θα ήταν ενοχλητικός, αλλά μου άρεσε πολύ.

Εκκίνηση της γραμμής εντολών Linux στο iOS
Η Alpine χρησιμοποιεί έναν διαχειριστή πακέτων apkπου είναι πιο εύκολο ακόμα και από το apt ή το pacman.

Πώς να εγκαταστήσετε το πακέτο:

apk add package

Πώς να αφαιρέσετε ένα πακέτο:

apk del package

Πώς να μάθετε άλλες εντολές και πληροφορίες:

apk --help

Ενημέρωση διαχείρισης πακέτων:

apk update
apk upgrade

Εγκατάσταση προγράμματος επεξεργασίας κειμένου

Ο τυπικός επεξεργαστής κειμένου της Alpine είναι το Vi, αλλά προτιμώ το Vim, οπότε το εγκατέστησα:

apk add vim

Εάν θέλετε, μπορείτε να εγκαταστήσετε το Nano ή το Emacs.

Αλλαγή κελύφους

Δεν ξέρω για εσάς, αλλά χρειαζόμουν κοχύλι ψαριού. Άλλοι προτιμούν Bash ή Zsh. Ωστόσο, η Alpine χρησιμοποιεί στάχτη! Το Ash είναι ένα πιρούνι του κελύφους Dash, το οποίο είναι από μόνο του ένα πιρούνι της αρχικής τέφρας, ή Κοχύλι Almquist. Προτεραιότητά της είναι η ταχύτητα. Αποφάσισα να ανταλλάξω την ταχύτητα με την ενσωματωμένη αυτόματη συμπλήρωση, τα χρώματα, τη διαχείριση πλήκτρων Vim και την επισήμανση σύνταξης που αγαπώ και γνωρίζω από το κέλυφος του ψαριού.

εγκατάσταση ψαριών:

apk add fish

Εάν χρειάζεστε το Bash με την αυτόματη συμπλήρωση και τις σελίδες man, εγκαταστήστε τα:

apk add bash bash-doc bash-completion

Η μινιμαλιστική ιδεολογία της Alpine συνήθως σημαίνει ότι ορισμένα προγράμματα που αποτελούν ένα ενιαίο πακέτο σε άλλες διανομές θα χωριστούν σε πολλά μικρότερα πακέτα. Σημαίνει επίσης ότι μπορείτε να συντονίσετε και να μειώσετε το μέγεθος του συστήματος ακριβώς όπως το θέλετε.

Για περισσότερες πληροφορίες σχετικά με την εγκατάσταση του Bash, βλ αυτό το σεμινάριο.

Αλλαγή του προεπιλεγμένου κελύφους

Μόλις εγκατασταθεί το ψάρι, μπορείτε να μεταβείτε προσωρινά σε αυτό πληκτρολογώντας fish και πηγαίνοντας στο κέλυφος. Αλλά θέλω να κάνω τα ψάρια το προεπιλεγμένο κέλυφος και την εντολή chsh, που χρησιμοποίησα σε άλλες διανομές, δεν λειτούργησε.

Αρχικά, ας μάθουμε πού είναι εγκατεστημένα τα ψάρια:

which fish

Να τι μου συνέβη:

/usr/bin/fish

Στη συνέχεια, αλλάξτε το κέλυφος σύνδεσης σε ψάρι. Μπορείτε να χρησιμοποιήσετε όποιο πρόγραμμα επεξεργασίας θέλετε. Εάν είστε αρχάριοι, τότε εγκαταστήστε το Nano (με την εντολή apk add nano) ώστε να μπορείτε να επεξεργαστείτε τα αρχεία διαμόρφωσης και να τα αποθηκεύσετε μέσω CTRL+X, να επιβεβαιώσετε και να βγείτε.

Αλλά χρησιμοποίησα το Vim:

vim /etc/passwd

Η πρώτη μου γραμμή ήταν:

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

Για να κάνετε τα ψάρια το προεπιλεγμένο κέλυφος, αλλάξτε αυτήν τη γραμμή ως εξής:

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

Στη συνέχεια αποθηκεύστε το αρχείο και βγείτε.

Είμαι βέβαιος ότι υπάρχει ένας καλός τρόπος για να αλλάξετε τη διαδρομή του κελύφους ώστε να μπορεί να χρησιμοποιηθεί αμέσως. Αλλά δεν τον γνωρίζω, γι' αυτό συνιστώ να επιστρέψετε στο πρόγραμμα περιήγησης της εφαρμογής, να εξαναγκάσετε την έξοδο από το κέλυφος και για να είστε σίγουροι, απενεργοποιήστε και επανεκκινήστε το iPad ή το iPhone. Ανοίξτε το iSH ξανά και τώρα, εκτός από το μήνυμα "Καλώς ήρθατε στο Alpine!" και πληροφορίες σχετικά με την εκκίνηση από το apk, θα δείτε το τυπικό μήνυμα καλωσορίσματος σύνδεσης ψαριών: Καλώς ορίσατε στα ψάρια, το φιλικό διαδραστικό κέλυφος. Ζήτω!

Εκκίνηση της γραμμής εντολών Linux στο iOS

Ρύθμιση Python και pip

αποφάσισα να προσθέσω Python (έκδοση 3.x), όχι μόνο για να γράφω κώδικα, αλλά και επειδή χρησιμοποιώ αρκετά προγράμματα Python. Ας το εγκαταστήσουμε:

apk add python3

Αν και το Python 2.x είναι ξεπερασμένο, μπορείτε να το εγκαταστήσετε επίσης:

apk add python

Εγκαταστήστε έναν διαχειριστή πακέτων Python που ονομάζεται pip and εργαλεία εγκατάστασης:

python3 -m ensurepip --default-pip

Θα χρειαστεί λίγος χρόνος για να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους του διαχειριστή πακέτων, γι' αυτό να είστε υπομονετικοί.

Στη συνέχεια, μπορείτε να κάνετε λήψη ενός εργαλείου για τη μεταφορά αρχείων μέσω του δικτύου μπούκλα:

apk add curl

Διαβάζοντας εγχειρίδια

Το Fish χρησιμοποιεί ενσωματωμένη αυτόματη συμπλήρωση με βάση τις σελίδες man. Όπως και άλλοι χρήστες της γραμμής εντολών, χρησιμοποιώ το εγχειρίδιο man, και η Alpine δεν το έχει εγκαταστήσει. Το εγκατέστησα λοιπόν με τερματικό τηλεειδοποιητή μείον:

apk add man man-pages less less-doc

Εκτός από τον άνθρωπο, χρησιμοποιώ το υπέροχο έργο σελίδων tldr, το οποίο παρέχει απλοποιημένες και βασισμένες στην κοινότητα σελίδες ανθρώπου.

Το εγκατέστησα με το pip:

pip install tldr

Ομάδα tldr συνδέεται στον ιστό για να ανακτήσει σελίδες όταν αντιμετωπίζει ένα αίτημα για μια νέα σελίδα. Εάν χρειάζεται να ξέρετε πώς να χρησιμοποιείτε μια εντολή, μπορείτε να γράψετε κάτι σαν tldr curl και λάβετε μια περιγραφή σε απλά αγγλικά και καλά παραδείγματα για τον τρόπο χρήσης της εντολής.

Φυσικά, όλες αυτές οι εργασίες εγκατάστασης μπορούν να αυτοματοποιηθούν χρησιμοποιώντας dotfiles ή ένα σενάριο εγκατάστασης, αλλά στην πραγματικότητα αυτό δεν είναι πολύ συνεπές με την ιδεολογία της Alpine - προσαρμόζοντας την ελάχιστη εγκατάσταση σαφώς στις ανάγκες σας. Άλλωστε, πήρε τόσο καιρό, έτσι δεν είναι;

Επιπλέον χαρακτηριστικά

Το iSH Wiki έχει μια σελίδα "τι δουλεύει" με αναφορές σχετικά με τα πακέτα που εκτελούνται αυτήν τη στιγμή. Παρεμπιπτόντως, φαίνεται Το npm δεν λειτουργεί αυτήν τη στιγμή.

Μια άλλη σελίδα wiki εξηγεί πώς πρόσβαση σε αρχεία iSH από την εφαρμογή Αρχεία iOS. Αυτός είναι ένας από τους τρόπους με τους οποίους μπορείτε να μετακινήσετε και να αντιγράψετε αρχεία.

Μπορείτε επίσης να εγκαταστήσετε το Git (ναι! apk add git ) και σπρώξτε την εργασία σας σε ένα απομακρυσμένο χώρο αποθήκευσης ή σπρώξτε την στον διακομιστή μέσω SSH. Και, φυσικά, μπορείτε να κατεβάσετε και να εκτελέσετε οποιονδήποτε αριθμό σπουδαίων έργων ανοιχτού κώδικα από το GitHub.

Περισσότερες πληροφορίες για το iSH μπορείτε να βρείτε στους παρακάτω συνδέσμους:

Σχετικά με τα Δικαιώματα Διαφήμισης

Βδίνα προσφέρει εικονικούς διακομιστές σε Linux ή Windows. Χρησιμοποιούμε αποκλειστικά επώνυμο εξοπλισμό, ο καλύτερος στο είδος του πίνακας ελέγχου διακομιστή και ένα από τα καλύτερα κέντρα δεδομένων στη Ρωσία και την ΕΕ. Βιαστείτε να παραγγείλετε!

Εκκίνηση της γραμμής εντολών Linux στο iOS

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο