# ترمكس

ترمكس (بالإنجليزية: termux)‏ هو محاكي طرفية (terminal emulator)، يعد تطبيق مفتوح المصدر يتيح بيئة أوامر لينكس على هواتف أندرويد، ويوفر العديد من الحزم (Packages) الإضافية، باستخدام مدير الحزم APT، ولكن يُوصى باستخدام pkg كمدير حزم رسمي ويعد مغلف بـAPT نفسه.
يأتي تطبيق ترمكس مُجهزًا بالحد الأدنى من البرمجيات والحزم مطلوبة، وتستطيع إضافة المزيد من البرمجيات عن طريق مدير الحزم.

## نظرة عامة

يقدم ترمكس محاكاة لطرفية أنظمة لينكس، بمجرد تثبيته مثل أي تطبيق آخر، في الوقت الحالي الإصدار المتوافر على متجر قوقل بلاي لم يعد مدعومًا وتوقف فريق ترمكس عن تحديث النسخة في متجر قوقل بلاي، ويجب تثبيت النسخة من F-Droid أو Github release بسبب بعض المشاكل في سياسات أندرويد 10، أغلبية أوامر Bash ستعمل في التطبيق بشكل طبيعي، وكذلك الأوامر الإعتيادية في طرفية Unix-Like الإعتيادية مثل ls و mkdir وغيرها...
توجد حزم (Packages) رسمية يطورها المجتمع الذي يعمل على التطبيق، وتتواجد مئات الحزم على مستودع مدير الحزم الخاص بالتطبيق:

### بعض أهم الحزم

* Nano، وهو محرر ملفات نصية بسيط بالتعامل والاستخدام (أصبح يأتي مثبتًا مسبقًا في إصدارات ترمكس الحديثة).
* Ffmpeg، حزمة شهيرة للتعامل مع الوسائط، كتحويل صيغ مقاطع الفيديو أو قص جزء منه.
* Python، تثبيتك لحزمة بايثون يمكنك من البرمجة باستخدامها وتفيذ سكربتات بايثون وحتى استخدام مدير الحزم الخاص ببايثون pip.
* NodeJS، يُمكنك من البرمجة باستخدام لغة جافاسكربت، ويتيح لك استخدام مدير الحزم npm.
* OpenSSH، تمكنك هذه الحزمة من الاتصال عن بعد بحاسوب آخر لتنفيذ عمليات برمجية عليه من خلال بروتوكول SSH.
* Proot، تمكنك هذه الحزمة من مُحاكاة نظام لينكس افتراضي وتشغيله على هاتفك بتثبيت إحدى التوزيعات مثل ديبان وأرتش، مما يتيح استخدام العديد من برمجيات لينكس وحتى الوصول إلى واجهة مستخدم والتحكم بها من خلال تطبيقات وسيطة مثل VNC Viewer أو Remote Desktop.

### الإضافات

يقدم ترمكس بعض الإضافات يمكنك تثبيتها كتطبيقات منفصلة عن مُحاكي الطرفية Termux App مثل:
* Termux:API التي تمكنك من الوصول لبعض الـ API في نظام أندرويد على سبيل المثال: عرض الإشعارات في شريط التنبيهات العلوي وعرض النوافذ المنبثقة (Modal window)، الوصول إلى بعض المعلومات عن الجهاز كحالة الاتصال بالشبكة، مستوى البطارية، الكاميرات، حساسات الجهاز كمستشعر البصمة على سبيل المثال وغير ذلك، المثال أدناه يوضح كيفية أظهار اشعار في شريط التنبيهات باستخدام termux-notification: termux-notification -c "❤" --type default --title "I love Wikipedia Arabic"
* Termux:Widget تمكنك هذه الإضافة من وضع وَدجَة في شاشة هاتفك الرئيسية، بحيث تقوم من خلاله بتشغيل سكربت ما ويتم تنفيذه مباشرة في تطبيق ترمكس، المثال أدناه هو لإنشاء سكربت Bash وسيتم تنفيذه حين الضغط عليه من الودجة: echo '#!/data/data/com.termux/files/usr/bin/bash\ntermux-notification -c "❤️" --type default --title "I love Wikipedia Arabic"' > ~/.shortcuts/test_notification.sh && chmod +x ~/.shortcuts/test_notification.sh

## آلية عمل ترمكس

يعد ترمكس مجرد محاكي طرفية، لا يتبع نظام ملفات لينكس المعتاد (FHS)، وهو لا يعتمد على حزم Debian أوUbuntu ذاتها، لن تجد فيه مجلدات مثل /bin, /etc, /usr, /tmp المعتادة في توزيعات لينكس ولذلك تحتاج إلى تعديل مصدر الحزمة ومن ثم بنائها (patched and recompiled) لتوافق نظام الملفات المتبع في ترمكس، ولو كنت بحاجة إلى نظام ملفات لينكس الاعتيادية؛ لتشغيل برمجية ما تعتمد عليه، فيجب عليك تحميل حزمة proot وتنفيذ الأمر chroot ليوفر لك بيئة مناسبة لذلك.
أغلب الحزم الشهيرة يقوم المُجتمع مفتوح المصدر بتوفيرها وتجهيزها على مدير حزم ترمكس نفسه ويمكن الإطلاع عليها في مستودع حزم ترمكس على غيث هوب.

### آلية العمل

ترمكس مجرد تطبيق، وقد تسبب كلمة محاكي طرفية إشكالًا ولبس في فهم آلية عمل ترمكس، بحيث أنها تعتمد على تنفيذ التعليمات البرمجية من خلال JNI native code library في جافا عبر Android NDK، ترمكس لا يحاكي بيئة لينكس وهو ليس نظام افتراضي، أو حاوية، ترمكس ينفذ البرمجيات بشكل طبيعي معتمدًا على نظام أندرويد نفسه. هذا يعطي ترمكس أداء أفضل وسرعة في التنفيذ.

### بناء الحزم

وفر مجتمع ترمكس دليلًا لكيفية بناء الحزم مخصصة لترمكس، بشكل صحيح على غيث هوب ويكي في المستودع الخاص بالحزم، وتشرح آلية تجهيز البيئة المناسبة لبناء حزمة ما، وكيفية بناء الحزم، لتمكين الأشخاص من المساهمة في بناء الحِزم لتشغيلها على ترمكس وإضافتها إلى المستودع ومتابعة المشكلات والعلل وحلها.

## ترمكس والاختراق

غالبًا ما يروج على أن ترمكس من قبل أطفال السكربتات، أنه مخصص للإختراق أو يساعد في عمليات الاختراق في الحقيقة التطبيق قد يساعدك في هذه الأمور بشكل أو بأخر في حال كانت لديك الخبرة الكفاية وفهم جيد للشيء الذي تفعله وعواقبه، ولكن بشكل عام التطبيق ليس مُختص لهذه الأمور، وغالبًا يُمنع التكلم عنها في مجتمعات ترمكس الرسمية.

## معلومات عن التطبيق

* الاسم على جوجل بلاي: Termux.
* المطور: Fredrik Fornwall.
* الموقع الرسمي: termux.com.
* يدعم فقط: Android 7.0 - 11.0.