- เป็นแอปโอเพนซอร์สที่มอบ สภาพแวดล้อม Linux และความสามารถของเทอร์มินัล บน Android และสามารถขยายความสามารถได้ด้วยการติดตั้งแพ็กเกจต่าง ๆ
- เสริมความสามารถผ่านแอปปลั๊กอินหลายตัว เช่น Termux:API, Boot, Float, Styling, Tasker, Widget
- ติดตั้งได้จาก F-Droid, GitHub, Google Play (เวอร์ชันทดลอง) เป็นต้น โดย คีย์ลายเซ็นของแต่ละแหล่งแตกต่างกันจึงไม่สามารถใช้ปะปนกันได้
- บน Android 12 ขึ้นไป อาจเกิด ความไม่เสถียรจากข้อจำกัดของโปรเซส พร้อมลิงก์ไปยังปัญหาที่เกี่ยวข้องและแนวทางแก้ไข
- มีการจัดทำเอกสารไว้อย่างชัดเจนสำหรับนักพัฒนาและผู้ดูแล เช่น ไลบรารีที่ใช้ร่วมกัน (
termux-shared), กฎการเขียน commit message, แนวทางการ fork เป็นต้น
ภาพรวมของ Termux
- Termux คือ แอปโปรแกรมจำลองเทอร์มินัล ที่มอบสภาพแวดล้อม Linux บน Android
- ตัวแอปมีส่วนติดต่อผู้ใช้และความสามารถด้านการจำลองเทอร์มินัลในตัว
- แพ็กเกจที่ติดตั้งเพิ่มได้จะถูกดูแลในคลังแยก termux/termux-packages
- บน Android 12 ขึ้นไป อาจเกิด ข้อจำกัดโปรเซส 32 ตัวและปัญหาโปรเซสถูกปิดเมื่อใช้ CPU มากเกินไป
- ปัญหาที่เกี่ยวข้องและวิธีแก้มีคำแนะนำผ่าน GitHub issue #2366 และลิงก์เอกสาร Android
แอป Termux และปลั๊กอิน
- นอกจากแอปหลักแล้ว ยังรองรับ แอปปลั๊กอิน ดังต่อไปนี้
- Termux:API, Termux:Boot, Termux:Float, Termux:Styling, Termux:Tasker, Termux:Widget
- ปลั๊กอินทั้งหมดใช้ sharedUserId(com.termux) เดียวกัน ดังนั้นจึงติดตั้งร่วมกันได้เฉพาะ APK ที่เซ็นด้วยคีย์ลายเซ็นเดียวกันเท่านั้น
วิธีติดตั้ง
- เวอร์ชันล่าสุดคือ v0.118.3 และรองรับ Android 7 ขึ้นไปอย่างสมบูรณ์
- การรองรับ Android 5·6 สิ้นสุดในปี 2020 แต่ในปี 2022 มีการกลับมารองรับเฉพาะตัวแอปอีกครั้งผ่านซอร์สบน GitHub
- หากติดตั้งจาก แหล่งที่ใช้คีย์ลายเซ็นต่างกัน (เช่น F-Droid, GitHub) ปะปนกัน จะเกิดข้อผิดพลาด
- หากต้องการติดตั้งจากแหล่งอื่น ต้องลบ APK ของ Termux และปลั๊กอินเดิมทั้งหมดก่อนแล้วจึงติดตั้งใหม่
F-Droid
- สามารถดาวน์โหลด APK ได้โดยตรงจาก F-Droid และหลังติดตั้งแล้วจำเป็นต้องตรวจสอบอัปเดตด้วยตนเอง
- บิลด์ของ F-Droid ดูแลโดยฝั่ง F-Droid ไม่ใช่นักพัฒนา Termux และ ใช้คีย์ลายเซ็นคนละชุด
- ไม่มี APK แยกตามสถาปัตยกรรม โดยแจกจ่ายเฉพาะ universal APK เดียว (~180MB)
GitHub
- มีการแจกจ่าย APK ผ่าน GitHub Releases หรือ Build Action
- Android 7 ขึ้นไปใช้เวอร์ชัน
apt-android-7 และ Android 5·6 ใช้ apt-android-5
- GitHub build APK ถูกเซ็นด้วยคีย์ทดสอบ (
testkey_untrusted.jks) และใครก็สามารถบิลด์ด้วยคีย์เดียวกันได้
- เนื่องจากมีความเสี่ยงในการเผยแพร่เวอร์ชันที่เป็นอันตราย จึง ไม่แนะนำให้ติดตั้ง APK จากแหล่งอื่นที่ไม่ใช่คลัง GitHub ทางการ
- universal APK มีขนาดประมาณ 180MB ส่วน APK แยกตามสถาปัตยกรรมมีขนาดประมาณ 120MB
Google Play (ทดลอง)
- มี เวอร์ชันที่ปรับให้สอดคล้องกับนโยบาย สำหรับ Android 11 ขึ้นไปบน Google Play แต่ยังมีฟังก์ชันที่หายไปและมีบั๊ก
- เวอร์ชันบน Play กำลังพัฒนาอยู่ในคลังแยก (termux-play-store)
- ไม่สามารถใช้งานร่วมกับเวอร์ชัน F-Droid ได้ เนื่องจาก มีการเอา
sharedUserId ออก และแนะนำให้ปิดการอัปเดตอัตโนมัติ
การลบและการสำรองข้อมูล
- เมื่อต้องการสลับแหล่งติดตั้งอื่นหรือลบแอป จำเป็นต้อง ลบ APK ของ Termux และปลั๊กอินทั้งหมดให้หมด
- ก่อนลบสามารถสำรองข้อมูลได้ตามขั้นตอนใน Backing up Termux
ชุมชนและเอกสาร
- ชุมชนหลัก: Reddit(r/termux), ช่อง Matrix/Gitter, Twitter(@termuxdevs), อีเมลสนับสนุน (support@termux.dev)
- เอกสารทางการ:
- ข้อมูลเพิ่มเติม: FAQ, โครงสร้างระบบไฟล์, การเข้าถึงระยะไกล, การเข้าถึงที่เก็บข้อมูล Android, การตั้งค่าเทอร์มินัล เป็นต้น
5 ความคิดเห็น
เป็นคนรุ่นที่เพิ่งเริ่มได้ใช้สมาร์ตโฟนตอนอยู่ในกองทัพ
ก็ลง Termux แล้วฝึกพัฒนาเว็บกับลองเขียนอินเทอร์พรีเตอร์ด้วย
เอาหนังสือ Rust เข้าไปอ่านศึกษาเหมือนกันครับ
พอได้ออกห่างจาก GUI มานาน ๆ
แล้วจมอยู่กับสภาพแวดล้อมแบบข้อความ ก็รู้สึกสนุกดี
ผมก็หัดใช้
vimตอนใช้ Termux นี่แหละครับเหมือนคอมเมนต์ใน Hacker News
ทุกวันนี้ถ้าได้อุปกรณ์ Android เครื่องใหม่มา
ผมจะติดตั้ง Termux ก่อนเลยแบบไม่ต้องคิด
ส่วนตัวแล้ว ผมใช้งานมันได้สะดวกมากเวลาอยู่นอกสถานที่แล้วต้องคอยมอนิเตอร์โค้ด โดยใช้ SSH เข้าเซิร์ฟเวอร์เป็นช่วงสั้น ๆ
ผมใช้ Pixel อยู่ และใน Android เวอร์ชันล่าสุด ตอนนี้สามารถติดตั้งคอนเทนเนอร์ Linux ได้อย่างเป็นทางการผ่านการตั้งค่านักพัฒนาแล้ว (ไม่แน่ใจว่าเครื่องอื่นทำได้ด้วยไหม น่าจะได้นะ?)
เดิมทีผมก็ติดตั้ง Termux ไว้ใช้เป็นเหมือนของเล่นที่หยิบมาใช้เป็นครั้งคราว หรือถ้าจะให้พูดจริง ๆ ก็แค่เอาไว้ใช้ทดสอบ
pingประมาณนั้น แต่ตอนนี้ก็รู้สึกว่าแม้แต่การใช้งานแบบนั้นก็คงไม่จำเป็นแล้วมันเป็นแอปที่น่าสนใจ เลยรู้สึกเสียดายนิดหน่อยที่ต้องบอกลา
ผมเคยดอง CopyParty ไว้ในลิสต์วิดีโอ "ดูภายหลัง" บน YouTube อยู่เหมือนกัน แต่พอไปอ่านคอมเมนต์ใน HN ถึงได้รู้ว่าเป็นคนเดียวกันนี่เอง o.o
ความคิดเห็นจาก Hacker News
หนึ่งในซอฟต์แวร์ที่ฉันชอบที่สุดคือ Copyparty ที่สร้างโดยคนเดียวกับที่ติดตั้ง Termux ไว้บนโทรศัพท์
ลิงก์ GitHub อยู่ที่นี่ และมีวิดีโอ YouTubeเกี่ยวกับมันด้วย
ทุกครั้งที่ได้เครื่อง Android ใหม่มา สิ่งแรกที่ฉันทำคือ ติดตั้ง Termux
ฉันต่อเคสคีย์บอร์ดบลูทูธแล้วรีโมตโค้ดจากโซฟาด้วย Neovim จัดการโน้ตด้วย vimwiki และซิงก์ขึ้น GitHub
เครื่องมือ CLI ส่วนใหญ่มีอยู่ในคลังแพ็กเกจของ Termux อยู่แล้ว และถ้าไม่มี ฉันก็บิลด์เองด้วย clang, cmake เป็นต้น
Termux เป็นเหตุผลที่ทำให้ฉันยังใช้ Android เป็นเครื่องหลักอยู่
กรณีใช้งาน Termux ของฉันคือทำระบบสำรองรูปอัตโนมัติ
ฉันแบ็กอัปรูปไปที่ NAS แต่มีบางไฟล์หายไป เลยรันสคริปต์ใน Termux ให้คำนวณ MD5 checksum บน NAS แล้วลบไฟล์เดียวกันออกจากโทรศัพท์
แบบนี้ช่วยคืนพื้นที่ได้อย่างเสถียรเป็นหลักหลายสิบ GB
ประเด็นปัญหา Nextcloud ที่เกี่ยวข้องอยู่ที่นี่
พอการพัฒนาแบบใช้ AI มากขึ้น ฉันคิดว่าคนจะหันมาใช้เครื่องมืออย่าง Termux, tmux กันมากขึ้น
พิมพ์บนโทรศัพท์อาจลำบาก แต่ด้วยคีย์บอร์ดอย่าง Unexpected Keyboard(ลิงก์) และ vim mode ก็ใช้งานได้ดีพอตัว
ฉันใช้ Termux เพื่อ รัน SSH เฉพาะเวลาที่ต้องใช้
เปิด Termux เมื่อไรก็เปิด SSH เมื่อนั้น และปิดก็จบ แค่นี้ก็พอสำหรับซิงก์ไฟล์ด้วย rsync
ไม่จำเป็นต้องเปิดทิ้งไว้ตลอด เลยไม่ใช้แอปอย่าง LocalSend หรือ SyncThing และใช้สคริปต์ sync ง่ายๆ บนเดสก์ท็อประบุทิศทางแล้วรันแทน
เดี๋ยวนี้แทบไม่มีโทรศัพท์ Android ที่มีฮาร์ดแวร์คีย์บอร์ดแล้ว เลยแทบไม่ได้ใช้แอปแบบนี้
สมัย Motorola Droid ฉันเคยสร้าง สภาพแวดล้อมการทำงานที่มีประสิทธิภาพสูง ด้วย Termux และ ConnectBot
ตอนนี้ทั้งศักยภาพ ความหลากหลายของฮาร์ดแวร์ และความเปิดของบูตโหลดเดอร์ก็น้อยลงกว่าเมื่อก่อนมาก Termux ทำให้นึกถึงยุคนั้น
ใน Termux คุณสามารถใช้สภาพแวดล้อมอย่าง tmux, fish, git, yazi ได้ตามเดิม
บิลด์แอป Rust ได้ด้วย และน่าทึ่งที่แอป TUI ตอบสนองกับการสัมผัสได้
เลยสงสัยว่าบน iOS มีเทอร์มินัลระดับนี้ไหม
ได้ยินมาว่าตอนนี้ Android มี สภาพแวดล้อม Linux เต็มรูปแบบ แล้ว งั้น Termux ยังจำเป็นอยู่ไหม?
มีการคุยเรื่องนี้กันเยอะใน r/androidterminal
ส่วน Linux terminal แบบใหม่รันอยู่ใน VM แยกต่างหาก เลยใช้พื้นที่เก็บข้อมูลมากกว่า
สำหรับฉัน Termux คือ เทอร์มินัลอีมูเลเตอร์บน Android ที่ดีที่สุด
ฉันใช้ fzf, Neovim, Git จัดระเบียบโน้ต และใช้ SSH สำหรับเชื่อมต่อระยะไกล
ถ้าสร้าง CLI หรือ TUI ด้วย Go แล้วคอมไพล์ด้วย NDK ก็เอามารันใน Termux ได้ทันที
พูดตรงๆ คือสงสัยว่า ในจอสัมผัสเล็กๆ แบบนี้จะใช้ สภาพแวดล้อมเทอร์มินัล กันอย่างไร?
:helpดู ตอนนี้คุ้นมือไปหมดแล้ว