Melancarkan baris arahan Linux pada iOS

Melancarkan baris arahan Linux pada iOS

Adakah anda tahu bahawa anda boleh menjalankan baris arahan Linux pada peranti iOS? Anda mungkin bertanya, "Mengapa saya perlu menggunakan aplikasi teks pada iPhone saya?" Soalan yang adil. Tetapi jika anda membaca Opensource.com, anda mungkin tahu jawapannya: Pengguna Linux mahu boleh menggunakannya pada mana-mana peranti dan mahu menyesuaikannya sendiri.

Tetapi yang paling penting, mereka mendambakan menyelesaikan masalah yang kompleks.

Saya mempunyai iPad 2 Mini berusia tujuh tahun yang masih bagus untuk membaca e-buku dan tugasan lain. Walau bagaimanapun, saya juga mahu menggunakannya untuk mengakses baris arahan aplikasi dengan set program dan skrip saya, tanpanya saya tidak boleh berfungsi. Saya memerlukan persekitaran yang saya biasa, serta persekitaran pembangunan standard saya. Dan inilah cara saya berjaya mencapai ini.

Menyambung ke papan kekunci

Bekerja dengan baris arahan untuk pengaturcaraan melalui papan kekunci pada skrin telefon atau tablet agak menyusahkan. Saya mengesyorkan menyambungkan papan kekunci luaran, sama ada melalui Bluetooth atau menggunakan penyesuai sambungan kamera untuk menyambungkan papan kekunci berwayar (saya memilih yang terakhir). Apabila anda menyambungkan papan kekunci belah Kinesis Advantage ke iPhone 6, anda mendapat peranti pelik yang serupa dek siber korporat daripada klasik main peranan Shadowrun.

Memasang cangkerang pada iOS

Untuk menjalankan sistem Linux berciri penuh pada iOS, terdapat dua pilihan:

  • Cangkang selamat (SSH) disambungkan ke komputer Linux
  • Menjalankan sistem maya menggunakan Alpine Linux dengan iSH, yang merupakan sumber terbuka tetapi mesti dipasang menggunakan aplikasi TestFlight proprietari Apple

Sebagai alternatif, terdapat dua aplikasi emulator terminal sumber terbuka yang menyediakan keupayaan untuk berfungsi dengan alatan sumber terbuka dalam persekitaran terhad. Ini adalah pilihan yang paling dilucutkan - sebenarnya, ini adalah cara anda menjalankan alatan Linux, bukan Linux. Terdapat batasan ciri yang teruk apabila bekerja dengan aplikasi ini, tetapi anda mendapat fungsi baris arahan separa.

Sebelum beralih kepada penyelesaian yang kompleks, saya akan melihat kaedah yang paling mudah.

Pilihan 1: Cengkerang kotak pasir

Salah satu cara paling mudah ialah memasang apl iOS LibTerm. Ia sumber terbuka shell arahan kotak pasir dengan sokongan untuk lebih 80 arahan untuk $2.7. Ia disertakan dengan Python 3.7, Python XNUMX, Lua, C, Clang dan banyak lagi.

Mempunyai fungsi yang hampir sama a-Cangkang, diterangkan oleh pembangun sebagai "antara muka pengguna ujian untuk platform input skrin." a-Sumber Shell disiarkan sumber terbuka, ia sedang dalam pembangunan aktif, menyediakan akses sistem fail dan disertakan dengan Lua, Python, Tex, Vim, JavaScript, C dan C++, serta Clang dan Clang++. Ia juga membolehkan anda memasang pakej Python.

Pilihan 2: SSH

Satu lagi langkah daripada memuat turun aplikasi ialah menyediakan klien SSH. Untuk sekian lama, kami telah dapat menggunakan mana-mana apl klien SSH untuk iOS untuk menyambung ke pelayan yang menjalankan Linux atau BSD. Kelebihan menggunakan SSH ialah pelayan boleh menjalankan sebarang pengedaran dengan mana-mana perisian. Anda bekerja dari jauh dan hasil kerja anda hanya dipindahkan ke emulator terminal pada peranti iOS anda.

Kejap shell ialah aplikasi SSH berbayar yang popular di sumber terbuka. Jika anda mengabaikan skrin kecil peranti, maka menggunakan perisian ini adalah serupa dengan menyambung ke pelayan melalui mana-mana baris arahan lain. Terminal Blink kelihatan hebat, mempunyai banyak tema siap sedia dan keupayaan untuk mencipta sendiri, termasuk keupayaan untuk menyesuaikan dan menambah fon baharu.

Pilihan 3: Lancarkan Linux

Menggunakan SSH untuk menyambung ke pelayan Linux ialah cara terbaik untuk mengakses baris arahan, tetapi ia memerlukan pelayan luaran dan sambungan rangkaian. Ini bukan halangan terbesar, tetapi ia tidak boleh diabaikan sepenuhnya, jadi anda mungkin perlu menjalankan Linux tanpa pelayan.

Jika ini adalah kes anda, maka anda perlu mengambilnya selangkah lagi. ujian Penerbangan ialah perkhidmatan proprietari untuk memasang aplikasi yang dibangunkan walaupun sebelum ia diterbitkan dalam Apple App Store. Anda boleh memasang apl TestFlight daripada App Store dan kemudian menggunakan apl ujian. Apl dalam TestFlight membenarkan bilangan penguji beta yang terhad (biasanya sehingga 10) bekerja dengan mereka untuk masa yang terhad. Untuk memuat turun aplikasi ujian, anda perlu pergi dari peranti anda ke pautan yang biasanya terletak di tapak web pembangun aplikasi ujian.

Menjalankan Alpine Linux dengan iSH

ISH ialah aplikasi TestFlight sumber terbuka yang melancarkan mesin maya dengan pengedaran siap sedia Alpine Linux (dengan sedikit usaha, anda boleh menjalankan pengedaran lain).

Ciri penting: aplikasi eksperimen. Memandangkan iSH kini merupakan aplikasi ujian, jangan mengharapkan operasi yang berterusan dan boleh dipercayai. Aplikasi TestFlight adalah terhad masa. Binaan semasa saya hanya akan bertahan selama 60 hari. Ini bermakna selepas 60 hari saya akan disingkirkan dan perlu menyertai semula ujian iSH pusingan seterusnya. Selain itu, saya akan kehilangan semua fail saya melainkan saya mengeksportnya menggunakan Fail pada iOS atau menyalinnya ke hos Git atau melalui SSH. Dalam kata lain: Jangan harap ini akan terus berfungsi! Jangan masukkan apa-apa yang penting kepada anda ke dalam sistem! Sandarkan ke lokasi yang berasingan!

Memasang iSH

Mulakan dengan pemasangan ujian Penerbangan daripada App Store. Kemudian pasang iSH, menerima pautan pemasangan daripada laman web aplikasi. Terdapat kaedah pemasangan lain menggunakan AltStore, tetapi saya belum mencubanya. Atau, jika anda mempunyai akaun pembangun berbayar, anda boleh memuat turun repositori iSH daripada GitHub dan memasangnya sendiri.

Menggunakan pautan, TestFlight akan memasang aplikasi iSH pada peranti anda. Seperti mana-mana aplikasi lain, ikon akan muncul pada skrin.

Pengurusan Pakej

iSH menjalankan emulator x86 dengan Alpine Linux. Alpine ialah distro kecil, bersaiz kurang daripada 5MB. Ini adalah kali pertama saya bekerja dengan Alpine, jadi saya fikir minimalisme akan menjengkelkan, tetapi saya sebenarnya sangat menyukainya.

Melancarkan baris arahan Linux pada iOS
Alpine menggunakan pengurus pakej apk, yang lebih mudah daripada apt atau pacman.

Cara memasang pakej:

apk add package

Cara mengalih keluar pakej:

apk del package

Cara mencari arahan dan maklumat lain:

apk --help

Kemas kini pengurus pakej:

apk update
apk upgrade

Memasang editor teks

Editor teks lalai Alpine ialah Vi, tetapi saya lebih suka Vim, jadi saya memasangnya:

apk add vim

Jika mahu, anda boleh memasang Nano atau Emacs.

Perubahan cangkang

Saya tidak tahu tentang awak, tetapi saya perlukan shell ikan. Orang lain lebih suka Bash atau Zsh. Walau bagaimanapun, Alpine menggunakan abu! Abu ialah garpu cengkerang Dash, yang dengan sendirinya ialah garpu abu asal, atau Cangkang Almquist. Keutamaan dia adalah kelajuan. Saya memutuskan untuk menukar kelajuan untuk autolengkap terbina dalam, warna, kawalan kekunci Vim dan penyerlahan sintaks yang saya suka dan ketahui daripada cangkerang ikan.

Pemasangan ikan:

apk add fish

Jika anda memerlukan Bash dengan autolengkap dan halaman manualnya, kemudian pasangkannya:

apk add bash bash-doc bash-completion

Ideologi minimalis Alpine biasanya bermaksud bahawa beberapa program yang dibungkus dalam pengedaran lain akan dibahagikan kepada beberapa pakej yang lebih kecil. Ini juga bermakna anda boleh menyesuaikan dan mengurangkan saiz sistem anda dengan cara yang anda mahukan.

Untuk maklumat lanjut tentang memasang Bash, lihat tutorial ini.

Menukar shell lalai

Selepas memasang ikan, anda boleh beralih kepadanya buat sementara waktu dengan memasukkan fish dan masuk ke dalam cangkerang. Tetapi saya mahu menjadikan ikan sebagai cangkerang lalai dan arahan chsh, yang saya gunakan pada pengedaran lain, tidak berfungsi.

Mula-mula kita mengetahui di mana ikan dipasang:

which fish

Inilah yang saya dapat:

/usr/bin/fish

Seterusnya, tukar shell log masuk kepada ikan. Anda boleh menggunakan mana-mana editor yang sesuai untuk anda. Jika anda seorang pemula, kemudian pasang Nano (dengan arahan apk add nano) supaya anda boleh mengedit fail konfigurasi dan menyimpannya melalui CTRL+X, sahkan dan keluar.

Tetapi saya menggunakan Vim:

vim /etc/passwd

Baris pertama saya adalah seperti ini:

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

Untuk menjadikan ikan sebagai cangkerang lalai, tukar baris ini kepada yang berikut:

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

Kemudian simpan fail dan keluar.

Saya pasti ada cara yang baik untuk menukar laluan ke shell supaya ia boleh digunakan dengan segera. Tetapi saya tidak mengetahuinya, jadi saya syorkan kembali ke penyemak imbas aplikasi, paksa keluar dari cangkerang, dan untuk berada di bahagian yang selamat, matikan dan mulakan semula iPad atau iPhone anda. Buka iSH sekali lagi dan sekarang, sebagai tambahan kepada mesej "Selamat Datang ke Alpine!" dan maklumat tentang pelancaran daripada apk, anda akan melihat mesej alu-aluan log masuk ikan standard: Selamat datang ke ikan, cengkerang interaktif yang mesra. Hooray!

Melancarkan baris arahan Linux pada iOS

Menyediakan Python dan pip

Saya memutuskan untuk menambah Python (versi 3.x), bukan sahaja untuk menulis kod, tetapi juga kerana saya menggunakan beberapa program Python. Mari pasang:

apk add python3

Walaupun Python 2.x sudah lapuk, anda boleh memasangnya:

apk add python

Mari pasang pengurus pakej Python yang dipanggil pip dan alat persediaan:

python3 -m ensurepip --default-pip

Ia akan mengambil sedikit masa untuk memasang dan mengkonfigurasi pengurus pakej, jadi tunggu sahaja.

Anda kemudian boleh memuat turun alat untuk memindahkan fail melalui rangkaian curl:

apk add curl

Membaca manual

Fish menggunakan autolengkap terbina dalam berdasarkan halaman manual. Seperti pengguna baris arahan lain, saya menggunakan manual man, tetapi ia tidak dipasang di Alpine. Jadi saya memasangnya dengan pager terminal kurang:

apk add man man-pages less less-doc

Sebagai tambahan kepada lelaki yang saya gunakan megah projek halaman tldr, yang menyediakan halaman manual yang ringkas dan dipacu komuniti.

Saya memasangnya menggunakan pip:

pip install tldr

Pasukan tldr menyambung ke web untuk mendapatkan semula halaman apabila ia menemui permintaan untuk halaman baharu. Jika anda perlu tahu cara menggunakan arahan, anda boleh menulis sesuatu seperti tldr curl dan dapatkan penerangan dalam bahasa Inggeris biasa dan contoh yang baik tentang cara menggunakan arahan.

Sudah tentu, semua kerja pemasangan ini boleh digunakan secara automatik dotfiles atau skrip pemasangan, tetapi sebenarnya ini tidak benar-benar sepadan dengan ideologi Alpine - menyesuaikan pemasangan minimum dengan ketat untuk memenuhi keperluan anda. Selain itu, ia mengambil masa yang lama, bukan?

maklumat tambahan

Wiki iSH mempunyai halaman "apa yang berkesan" dengan laporan mengenai pakej yang sedang dijalankan. By the way, ia kelihatan seperti npm tidak berfungsi sekarang.

Halaman wiki lain menerangkan caranya akses fail iSH daripada apl Fail iOS. Ini adalah salah satu cara anda boleh mengalih dan menyalin fail.

Anda juga boleh memasang Git (ya! apk add git ) dan tolak kerja anda ke repositori jauh atau pindahkannya ke pelayan melalui SSH. Dan, sudah tentu, anda boleh memuat turun dan menjalankan sebarang projek sumber terbuka yang hebat daripada GitHub.

Maklumat lanjut tentang iSH boleh didapati di pautan ini:

Sebagai iklan

Vdsina menawarkan pelayan maya di Linux atau Windows. Kami menggunakan secara eksklusif peralatan berjenama, panel kawalan pelayan terbaik seumpamanya dengan reka bentuknya sendiri dan salah satu pusat data terbaik di Rusia dan EU. Cepat-cepat order!

Melancarkan baris arahan Linux pada iOS

Sumber: www.habr.com

Tambah komen