آیا می دانستید که می توانید خط فرمان لینوکس را در دستگاه iOS اجرا کنید؟ ممکن است بپرسید "چرا باید از برنامه های متنی در آیفون استفاده کنم؟" سوال منصفانه اما اگر Opensource.com را می خوانید، احتمالاً پاسخ را می دانید: کاربران لینوکس می خواهند بتوانند از آن در هر دستگاهی استفاده کنند و می خواهند از تنظیمات خود استفاده کنند.
اما بیشتر از همه آنها آرزوی حل مشکلات پیچیده را دارند.
من یک iPad 2 Mini هفت ساله دارم که هنوز هم برای خواندن کتاب الکترونیکی و کارهای دیگر خوب است. با این حال، من همچنین می خواهم از آن برای دسترسی به خط فرمان برنامه ها با مجموعه برنامه ها و اسکریپت های خود استفاده کنم که بدون آن نمی توانم کار کنم. من به محیطی که به آن عادت کرده ام و همچنین محیط توسعه استاندارد خود نیاز دارم. و در اینجا این است که چگونه توانستم به این هدف برسم.
اتصال به صفحه کلید
کار با خط فرمان برای برنامه نویسی از طریق صفحه کلید روی صفحه گوشی یا تبلت بسیار ناخوشایند است. من توصیه می کنم یک صفحه کلید خارجی را یا از طریق بلوتوث یا با استفاده از آداپتور اتصال دوربین برای اتصال یک صفحه کلید سیمی وصل کنید (من دومی را انتخاب کردم). اتصال کیبورد اسپلیت Kinesis Advantage به آیفون 6 منجر به دستگاه عجیبی می شود که به نظر می رسد
نصب پوسته در iOS
برای اجرای یک سیستم لینوکس کاملاً کاربردی در iOS، دو گزینه وجود دارد:
- پوسته امن (SSH) متصل به یک ماشین لینوکس
- اجرای یک سیستم مجازی با استفاده از Alpine Linux با iSH، که منبع باز است اما باید با استفاده از برنامه اختصاصی TestFlight اپل نصب شود.
از طرف دیگر، دو برنامه کاربردی شبیه ساز ترمینال منبع باز وجود دارد که توانایی کار با ابزارهای منبع باز را در یک محیط محدود فراهم می کند. این ناکارآمدترین گزینه است - در واقع، نحوه اجرای لینوکس اینگونه نیست، بلکه ابزارهای لینوکس است. هنگام کار با این برنامه ها محدودیت های شدیدی وجود دارد، اما عملکرد خط فرمان جزئی را دریافت می کنید.
قبل از رفتن به راه حل های پیچیده، ساده ترین راه را در نظر خواهم گرفت.
گزینه 1: پوسته در Sandbox
یکی از ساده ترین راه ها نصب اپلیکیشن iOS است
تقریباً همان عملکرد
گزینه 2: SSH
مرحله دیگر فراتر از دانلود یک برنامه، راه اندازی یک کلاینت SSH است. برای مدت طولانی، ما میتوانیم از هر یک از بسیاری از برنامههای سرویس گیرنده iOS SSH برای اتصال به سروری که لینوکس یا BSD دارد استفاده کنیم. مزیت استفاده از SSH این است که هر توزیعی می تواند با هر نرم افزاری روی سرور اجرا شود. شما از راه دور کار می کنید و نتایج کار شما به سادگی به شبیه ساز ترمینال در دستگاه iOS شما منتقل می شود.
گزینه 3: لینوکس را اجرا کنید
استفاده از SSH برای اتصال به سرور تحت لینوکس یک راه عالی برای دسترسی به خط فرمان است، اما به یک سرور خارجی و یک اتصال شبکه نیاز دارد. این بزرگترین مانع نیست، اما نمی توان آن را به طور کامل نادیده گرفت، بنابراین ممکن است لازم باشد بدون سرور با لینوکس کار کنید.
اگر این مورد شماست، پس باید یک قدم جلوتر بروید.
اجرای لینوکس آلپاین با iSH
ویژگی مهم: کاربرد تجربی. از آنجایی که iSH در حال حاضر یک برنامه آزمایشی است، انتظار عملکرد ثابت و قابل اعتماد را نداشته باشید. برنامه های TestFlight زمان محدودی دارند. ساخت فعلی من فقط 60 روز اجرا خواهد شد. یعنی بعد از 60 روز من اخراج خواهم شد و باید دوباره به مرحله بعدی آزمایش iSH بپیوندم. علاوه بر این، اگر آنها را با Files در iOS صادر نکنم یا آنها را در یک میزبان Git یا کپی نکنم، همه فایلهایم را از دست خواهم داد.
نصب iSH
با نصب شروع کنید
با استفاده از پیوند، TestFlight برنامه iSH را روی دستگاه شما نصب می کند. مانند هر برنامه دیگری، یک نماد روی صفحه ظاهر می شود.
مدیریت بسته
iSH یک شبیه ساز x86 را با Alpine Linux اجرا می کند. Alpine یک توزیع کوچک است که اندازه آن کمتر از 5 مگابایت است. این اولین باری بود که با Alpine کار میکردم، بنابراین فکر میکردم مینیمالیسم آزاردهنده خواهد بود، اما واقعاً آن را دوست داشتم.
Alpine از یک مدیریت بسته استفاده می کند
نحوه نصب پکیج:
apk add package
نحوه حذف یک بسته:
apk del package
نحوه یافتن دستورات و اطلاعات دیگر:
apk --help
بروزرسانی مدیر بسته:
apk update
apk upgrade
نصب ویرایشگر متن
ویرایشگر متن استاندارد Alpine Vi است، اما من Vim را ترجیح می دهم، بنابراین آن را نصب کردم:
apk add vim
در صورت تمایل می توانید Nano یا Emacs را نصب کنید.
تغییر پوسته
من شما را نمی دانم، اما من نیاز داشتم
نصب ماهی:
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 را دوباره و اکنون باز کنید، علاوه بر این پیام "به آلپاین خوش آمدید!" و اطلاعات مربوط به راه اندازی از apk، پیام خوش آمدگویی استاندارد ورود به سیستم ماهی را مشاهده خواهید کرد: به ماهی ، پوسته تعاملی دوستانه خوش آمدید. هورا!
راه اندازی پایتون و پیپ
تصمیم گرفتم اضافه کنم
apk add python3
اگرچه Python 2.x قدیمی است، می توانید آن را نیز نصب کنید:
apk add python
یک مدیریت بسته پایتون به نام pip and را نصب کنید
python3 -m ensurepip --default-pip
نصب و پیکربندی بسته منیجر مدتی طول می کشد، پس فقط صبور باشید.
سپس می توانید ابزاری برای انتقال فایل ها از طریق شبکه دانلود کنید
apk add curl
خواندن کتابچه های راهنما
فیش از تکمیل خودکار داخلی بر اساس صفحات man استفاده می کند. مانند سایر کاربران خط فرمان، من از دفترچه راهنما استفاده می کنم man
، و Alpine آن را نصب نکرده است. بنابراین من آن را با یک پیجر ترمینال نصب کردم
apk add man man-pages less less-doc
علاوه بر انسان، من از با شکوه استفاده می کنم
من با پیپ نصبش کردم:
pip install tldr
تیم tldr
هنگامی که با درخواست صفحه جدید مواجه می شود، برای واکشی صفحات به وب متصل می شود. اگر نیاز به دانستن نحوه استفاده از دستور دارید، می توانید چیزی شبیه به آن بنویسید tldr curl
و توضیحاتی را به زبان انگلیسی ساده و مثال های خوب در مورد نحوه استفاده از دستور دریافت کنید.
البته، تمام این کار نصب را می توان با استفاده از خودکار انجام داد
اطلاعات اضافی
iSH ویکی یک صفحه دارد
یک صفحه ویکی دیگر توضیح می دهد که چگونه
شما همچنین می توانید Git را نصب کنید (بله! apk add git
) و کار خود را به یک مخزن راه دور فشار دهید یا آن را از طریق SSH به سرور فشار دهید. و البته، می توانید هر تعداد پروژه منبع باز عالی را از GitHub دانلود و اجرا کنید.
اطلاعات بیشتر در مورد iSH را می توانید در این پیوندها مشاهده کنید:
در حقوق تبلیغات
ودیسینا پیشنهادات
منبع: www.habr.com