Tahukah Anda bahwa Anda dapat menjalankan baris perintah Linux di perangkat iOS Anda? Anda mungkin bertanya, "mengapa saya ingin menggunakan aplikasi berbasis teks di iPhone kecil saya?" OK cukup adil. Itu adalah pertanyaan yang cukup masuk akal. Tetapi jika Anda membaca Opensource.com, Anda mungkin tahu jawabannya:Pengguna Linux ingin dapat menggunakan perangkat apa pun, dan mereka juga ingin menggunakan penyesuaian mereka sendiri.
Dan yang terpenting, mereka menginginkan tantangan.
Saya memiliki iPad 2 Mini berusia tujuh tahun yang masih berfungsi dengan baik untuk membaca e-book dan tugas lainnya. Tetapi saya juga ingin menggunakannya untuk mengakses baris perintah untuk aplikasi dan rangkaian program dan skrip saya yang sepertinya tidak dapat saya lakukan tanpanya. Saya ingin lingkungan yang biasa saya gunakan, serta lingkungan pengembangan standar saya. Begini cara saya melakukannya.
Hubungkan ke keyboard
Menggunakan baris perintah untuk pemrograman pada keyboard layar ponsel atau tablet tidak terlalu menyenangkan. Saya sarankan menghubungkan keyboard eksternal, baik melalui Bluetooth atau dengan menggunakan adaptor kit koneksi kamera untuk menghubungkan keyboard kabel (pilihan saya). Memasukkan keyboard split Kinesis Advantage ke iPhone 6 menghasilkan beberapa optik aneh, seperti dek cyber perusahaan dari game role-playing klasik Shadowrun.
Dapatkan shell di iOS
Anda memiliki dua opsi untuk menjalankan sistem Linux lengkap di iOS:
- Amankan shell (SSH) ke dalam komputer Linux
- Jalankan sistem virtual menggunakan Alpine Linux dengan iSH, yang merupakan open source, tetapi harus diinstal menggunakan aplikasi TestFlight milik Apple
Atau, ada dua aplikasi emulator terminal sumber terbuka yang menyediakan alat sumber terbuka dalam lingkungan terbatas. Ini adalah opsi yang paling terbatas—ini tidak benar-benar memungkinkan Anda menjalankan Linux, tetapi Anda menjalankan alat Linux. Ada batasan ketat pada apa yang dapat Anda lakukan di perangkat dengan aplikasi ini, tetapi mereka memberi Anda beberapa fungsionalitas baris perintah.
Lebih banyak sumber daya Linux
- Lembar contekan perintah Linux
- Lembar contekan perintah Linux tingkat lanjut
- Kursus online gratis:Ikhtisar Teknis RHEL
- Lembar contekan jaringan Linux
- Lembar contekan SELinux
- Lembar contekan perintah umum Linux
- Apa itu container Linux?
- Artikel Linux terbaru kami
Saya akan melihat pendekatan paling sederhana sebelum menjelajahi solusi yang lebih menantang.
Opsi 1:Cangkang kotak pasir
Salah satu cara termudah untuk memulai adalah dengan aplikasi iOS LibTerm. Ini adalah shell baris perintah open source sandbox dengan 80+ perintah yang dibundel dalam aplikasi $0. Ini dikirimkan dengan Python 2.7, Python 3.7, Lua, C, Dentang, dan banyak lagi.
Sejalan dengan itu adalah a-Shell, yang digambarkan sebagai "antarmuka pengguna berbasis teks untuk platform berbasis layar". a-Shell adalah open source, dalam pengembangan aktif, memberikan akses ke sistem file, dan dikirimkan dengan Lua, Python, Tex, Vim, JavaScript, C, dan C++, bersama dengan Clang dan Clang++. Bahkan memungkinkan Anda untuk menginstal paket Python dengan pip.
Opsi 2:SSH di mana saja
Satu langkah dari mengunduh aplikasi adalah mengonfigurasi klien SSH. Untuk waktu yang lama sekarang, dimungkinkan untuk menggunakan salah satu dari banyak aplikasi klien SSH di iOS untuk terhubung ke server yang menjalankan distro Linux atau BSD. Keuntungan menggunakan SSH adalah server Anda dapat menjalankan distro apa pun dengan perangkat lunak apa pun yang Anda suka. Anda bekerja dari jarak jauh, dan output Anda baru saja disalurkan ke emulator terminal perangkat iOS Anda.
Blink shell adalah aplikasi SSH open source berbayar yang populer. Di luar layar kecil, menggunakan perangkat lunak ini mirip dengan menghubungkan ke server melalui command prompt lainnya. Terminal Blink terlihat cantik, dengan sejumlah tema yang disertakan dan kemampuan untuk membuat tema Anda sendiri, termasuk menyesuaikan dan menambahkan font baru.
Opsi 3:Jalankan Linux
Menggunakan SSH untuk terhubung ke server yang menjalankan Linux adalah cara yang bagus untuk mengakses prompt, tetapi itu membutuhkan akses ke server eksternal dan koneksi. Ini bukan penghalang terburuk untuk masuk, tetapi tidak sepenuhnya dapat diabaikan, dan Anda mungkin ingin menggunakan Linux tanpa persyaratan server ini.
Jika itu kasus Anda, Anda harus membuat sesuatu yang lebih canggih. TestFlight adalah layanan berpemilik untuk menyebarkan aplikasi dalam pengembangan sebelum dikirimkan ke App Store Apple. Anda dapat mengunduh aplikasi TestFlight dari toko, lalu mendaftar ke sejumlah aplikasi uji. Aplikasi di TestFlight memungkinkan penguji beta eksternal dalam jumlah terbatas (umumnya hingga 10.000) untuk waktu yang terbatas. Untuk mengunduh aplikasi pengujian, Anda harus mengakses tautan langsung dari perangkat Anda, yang biasanya ditemukan di situs web pengembang aplikasi pengujian.
Jalankan Alpine Linux dengan iSH
iSH adalah aplikasi TestFlight open source yang menjalankan mesin virtual dengan distro Alpine Linux di luar kotak (tetapi Anda dapat menjalankan distribusi lain dengan sedikit lebih banyak mengutak-atik).
Peringatan penting:ini eksperimental . Karena iSH saat ini merupakan aplikasi pengujian, jangan mengharapkan layanan permanen atau tangguh. Aplikasi TestFlight dibatasi waktu. Build saya saat ini bertahan selama 60 hari. Ini berarti bahwa dalam 60 hari, saya akan terkunci dan harus bergabung kembali dengan fase pengujian iSH berikutnya. Selain itu, saya akan kehilangan file saya kecuali saya mengekspornya dengan File di iOS atau mencadangkannya ke host Git atau dengan SSH. Untuk lebih jelasnya:Jangan mengandalkan ini untuk terus bekerja! Jangan menaruh apa pun di sini yang penting! Cadangkan pekerjaan Anda di tempat lain!
Instal iSH
Mulailah dengan menginstal TestFlight melalui App Store. Kemudian instal iSH dengan mendapatkan tautan instal melalui situs webnya. Ada metode penginstalan lain yang menggunakan AltStore, tetapi saya belum mencobanya. Atau, jika Anda memiliki akun pengembang berbayar, Anda dapat mengunduh repo iSH dari GitHub dan menerapkannya sendiri.
Menggunakan tautan, TestFlight menginstal aplikasi iSH di perangkat Anda. Seperti aplikasi lainnya, aplikasi ini muncul di layar Anda dengan ikon.
Kelola paket
iSH menjalankan emulator x86 dengan Alpine Linux. Alpine adalah distro kecil di bawah 5MB. Ini adalah pertama kalinya saya menjalankan Alpine, dan saya pikir saya akan frustrasi dengan distro yang begitu minim, tetapi saya benar-benar menikmatinya.
Alpine menggunakan pengelola paket apk, yang lebih sederhana daripada apt atau pacman.
Untuk menginstal sebuah paket:
apk add package
Untuk menghapus paket:
apk del package
Temukan perintah dan info lainnya dengan:
apk --help
Perbarui pengelola paket:
apk update
apk upgrade
Dapatkan editor teks
Editor teks default Alpine adalah Vi, tetapi saya lebih suka Vim, jadi saya menginstalnya:
apk add vim
Anda dapat menginstal Nano atau Emacs, jika Anda mau.
Ubah cangkang
Saya tidak tahu tentang Anda, tetapi saya membutuhkan kulit ikan. Orang lain lebih suka Bash atau Zsh. Tapi Alpine menggunakan abu! Ash adalah garpu dari cangkang Dash, itu sendiri merupakan garpu dari abu asli atau cangkang Almquist. Ini dirancang untuk kecepatan. Saya memutuskan untuk menukar kecepatan demi pelengkapan otomatis bawaan, warna, kontrol tombol Vim, dan penyorotan sintaks yang saya kenal dan sukai di cangkang ikan.
Pasang ikan:
apk add fish
Jika Anda menginginkan Bash dan pelengkapnya serta halaman manual, Anda perlu menginstalnya dan beberapa hal tambahan:
apk add bash bash-doc bash-completion
Ideologi minimalis Alpine umumnya berarti bahwa beberapa program yang akan menjadi satu paket di distro lain dipecah menjadi beberapa paket yang lebih kecil. Ini juga berarti Anda dapat menyesuaikan dan merampingkan sistem persis seperti yang Anda inginkan.
Anda dapat menemukan detail lebih lanjut tentang menginstal Bash di tutorial ini.
Ubah shell default
Setelah memasang ikan, Anda dapat beralih sementara dan mencobanya dengan mengetik fish
dan jatuh ke dalam cangkang. Tapi saya ingin menjadikan ikan sebagai cangkang default saya, dan chsh
perintah yang biasa saya gunakan dari distro lain tidak berfungsi.
Pertama, cari tahu di mana ikan dipasang:
which fish
Hasil saya:
/usr/bin/fish
Selanjutnya, edit shell login untuk menggunakan fish. Anda dapat menggunakan editor apa pun yang Anda sukai. Jika Anda seorang pemula, instal Nano (dengan apk add nano
) sehingga Anda dapat mengedit file konfigurasi dan menyimpannya dengan CTRL+X, konfirmasi, dan keluar.
Tapi saya menggunakan Vim:
vim /etc/passwd
Baris pertama saya adalah:
root:x:0:0:root:/root:/bin/ash
Untuk menjadikan ikan sebagai default, ubah baris tersebut menjadi:
root:x:0:0:root:/root:/usr/bin/fish
Kemudian simpan dan keluar.
Saya yakin ada cara yang baik untuk membuat ulang shell sehingga Anda dapat langsung menggunakannya. Tapi saya tidak yakin, jadi saya sarankan untuk kembali ke browser aplikasi, menutup paksa shell, dan untuk ukuran yang baik, matikan dan mulai ulang iPad atau iPhone Anda. Buka kembali iSH, dan sekarang, selain "Selamat datang di Alpine!" pesan dan info tentang memulai dengan apk, Anda akan melihat pesan selamat datang login ikan default:Selamat datang di ikan, cangkang interaktif yang ramah . Hore!
Menyiapkan Python dan pip
Saya memutuskan untuk menambahkan Python (versi 3.x), bukan hanya agar saya dapat menulis kode, tetapi karena saya mengandalkan beberapa program Python. Instal:
apk add python3
Meskipun Python 2.x tidak digunakan lagi, Anda masih dapat menginstalnya:
apk add python
Instal pengelola paket Python, pip, dan alat penyiapan:
python3 -m ensurepip --default-pip
Perlu beberapa waktu untuk menginstal dan menyiapkan pengelola paket, jadi tunggu saja.
Kemudian, Anda dapat mengunduh curl, alat transfer jaringan:
apk add curl
Baca manual
Fish menggunakan pelengkapan otomatis bawaan berdasarkan halaman manual. Seperti pengguna baris perintah lainnya, saya mengandalkan man
manual, dan Alpine tidak datang dengan itu diinstal. Jadi, saya menginstalnya bersama dengan pager yang lebih sedikit:
apk add man man-pages less less-doc
Selain man, saya menggunakan proyek halaman tldr yang luar biasa, yang menyediakan halaman manual berbasis komunitas yang disederhanakan.
Saya menginstalnya dengan pip:
pip install tldr
tldr
perintah terhubung ke web untuk mengambil halaman setiap kali menemukan permintaan untuk yang baru. Jika Anda perlu mempelajari cara menggunakan perintah, Anda cukup mengetikkan sesuatu seperti tldr curl
untuk mendapatkan penjelasan bahasa Inggris yang sederhana dan contoh yang baik tentang cara menggunakan perintah.
Anda tentu saja dapat mengotomatiskan semua pekerjaan penginstalan ini dengan dotfiles atau skrip penginstalan, tetapi itu tidak akan benar-benar termasuk dalam cara Alpine untuk menyesuaikan penginstalan minimal persis dengan spesifikasi Anda. Lagipula, tidak butuh waktu lama, kan?
Pelajari lebih lanjut
Wiki iSH berisi halaman "apa yang berhasil" dengan laporan tentang paket apa yang saat ini berfungsi. Sebagai catatan, npm tampaknya tidak berfungsi saat ini.
Halaman wiki lain menjelaskan bagaimana Anda dapat mengakses file iSH dari aplikasi File iOS. Ini adalah salah satu cara Anda dapat memindahkan dan mentransfer file.
Anda juga dapat menginstal Git (ya! apk add git
) dan Dorong pekerjaan Anda ke repo jarak jauh atau transfer ke server melalui SSH. Dan, tentu saja, Anda dapat mengunduh dan menjalankan sejumlah proyek sumber terbuka yang luar biasa dari GitHub di sistem Anda.
Untuk informasi lebih lanjut tentang iSH, lihat tautan berikut:
- situs web iSH
- Subreddit
- Masalah GitHub
- Wiki