การใช้งาน Termux บน Android กับ Linux Terminal ( บน Desktop / Server ) มีความใกล้เคียงกันมากในแง่ของความรู้สึก แต่ในทางเทคนิค “ไส้ใน” นั้นแตกต่างกันอย่างสิ้นเชิงครับ ถ้าผ่านการติดตั้งจาก ใช้ Linux ในมือถือ Android ที่ซ่อนอยู่ทุกเครื่อง มาแล้ว จะทำความเข้าในมันเพิ่มกัน
โครงสร้างระบบไฟล์ ( File System Hierarchy )
นี่คือจุดที่ต่างกันมากที่สุดครับ
- Linux ทั่วไป: ใช้มาตรฐาน FHS ( Filesystem Hierarchy Standard ) เช่น Binary อยู่ที่
/bin,/usr/binและ Library อยู่ที่/lib - Termux: เนื่องจาก Android ไม่อนุญาตให้แอปทั่วไปเขียนไฟล์ลงใน Root Directory (
/) ของระบบได้ Termux จึงต้องเก็บทุกอย่างไว้ใน Private Folder ของแอปเอง ซึ่งมักจะเป็น:$PREFIXหรือ/data/data/com.termux/files/usr/bin- ข้อควรระวัง: สคริปต์ที่เขียนแบบ Hard-code เส้นทางไฟล์ เช่น
#!/bin/bashอาจจะรันไม่ได้ใน Termux ( ต้องใช้termux-fix-shebangหรือเปลี่ยนเป็น#!/data/data/com.termux/files/usr/bin/bash)
- ข้อควรระวัง: สคริปต์ที่เขียนแบบ Hard-code เส้นทางไฟล์ เช่น
การจัดการสิทธิ์ ( Permissions & Root )
- Linux ทั่วไป: คุณคือพระเจ้าผ่านคำสั่ง
sudoสามารถเข้าถึงฮาร์ดแวร์ได้ทุกส่วน - Termux: รันภายใต้สิทธิ์ของ “User App” ใน Android
- ไม่มี
sudoโดยเริ่มต้น ( ยกเว้นเครื่องจะ Root มา ) - เข้าถึงไฟล์ใน SD Card หรือ Internal Storage ต้องใช้คำสั่ง
termux-setup-storageก่อน - ไม่สามารถจัดการระบบระดับ Kernel หรือแก้ไฟล์ระบบของ Android ได้โดยตรง
- ไม่มี
การจัดการแพ็กเกจ ( Package Manager )
- Linux ทั่วไป: ใช้
apt,dnf,pacmanซึ่งดึงไฟล์จาก Repository ของ Distro นั้น ๆ ( Debian, Ubuntu, Arch ) - Termux: ใช้
pkg( ซึ่งเป็น Wrapper ของaptอีกที ) แต่จะดึงข้อมูลจาก Repository เฉพาะของ Termux เอง ซึ่งแพ็กเกจถูก Compile มาให้รันบน Android โดยเฉพาะ
Library และการคอมไพล์ ( C Library )
- Linux ทั่วไป: ส่วนใหญ่ใช้ GNU C Library ( glibc )
- Termux: ใช้ Bionic libc ( ตัวเดียวกับที่ Android ใช้ )
- ผลคือ: คุณไม่สามารถเอาไฟล์ Binary ที่คอมไพล์จาก Ubuntu ( x86_64 ) มาวางแล้วรันใน Termux ( ARM / AArch64 ) ได้ทันที แม้จะเป็นสถาปัตยกรรม CPU เดียวกัน ก็อาจจะติดปัญหาเรื่อง Library ที่ไม่เหมือนกันครับ
ตารางสรุปเปรียบเทียบ
| หัวข้อ | Linux Terminal (Desktop) | Termux (Android) |
| ฐานระบบ | GNU / Linux | Android ( Linux Kernel + Bionic ) |
| Root Access | มี ( sudo ) | จำกัด ( ตามสิทธิ์ App / ต้อง Root เครื่อง ) |
| Path หลัก | /bin, /usr/bin | /data/data/com.termux/files/usr/bin |
| การแสดงผล GUI | รองรับ Native ( X11 / Wayland ) | ต้องผ่าน VNC หรือ XServer App เพิ่มเติม |
| ความเสถียร | สูงมาก สำหรับงาน Server | อาจถูก Android OS “ฆ่า Process” ทิ้งได้ถ้าใช้แรมเยอะ |
อ่านเพิ่มเติม
About the author