- Ứng dụng mã nguồn mở cung cấp môi trường Linux và chức năng terminal trên Android, có thể mở rộng bằng cách cài đặt nhiều gói khác nhau
- Bổ sung tính năng thông qua nhiều ứng dụng plugin như Termux:API, Boot, Float, Styling, Tasker, Widget
- Có thể cài đặt từ F-Droid, GitHub, Google Play (thử nghiệm), và không thể dùng lẫn giữa các nguồn do khóa ký khác nhau
- Trên Android 12 trở lên, có thể xảy ra tình trạng không ổn định do giới hạn tiến trình, kèm liên kết tới issue liên quan và cách khắc phục
- Tài liệu cho nhà phát triển và người bảo trì như thư viện dùng chung (termux-shared), quy tắc commit message, hướng dẫn fork... được mô tả rõ ràng
Tổng quan về Termux
- Termux là ứng dụng giả lập terminal cung cấp môi trường Linux trên Android
- Bản thân ứng dụng bao gồm giao diện người dùng và chức năng giả lập terminal
- Các gói có thể cài đặt được quản lý trong kho riêng là termux/termux-packages
- Trên Android 12 trở lên, có thể phát sinh giới hạn 32 tiến trình và vấn đề tiến trình bị chấm dứt khi CPU sử dụng quá mức
- Issue liên quan và cách xử lý được hướng dẫn qua GitHub issue #2366 cùng liên kết tới tài liệu Android
Ứng dụng Termux và plugin
- Ngoài ứng dụng chính còn hỗ trợ các ứng dụng plugin sau
- Termux:API, Termux:Boot, Termux:Float, Termux:Styling, Termux:Tasker, Termux:Widget
- Tất cả plugin đều dùng cùng sharedUserId(com.termux), vì vậy chỉ có thể cài cùng với các APK được ký bằng cùng một khóa ký
Cách cài đặt
- Phiên bản mới nhất là v0.118.3, hỗ trợ đầy đủ từ Android 7 trở lên
- Hỗ trợ Android 5·6 đã kết thúc vào năm 2020, nhưng đến năm 2022 chỉ riêng ứng dụng đã được hỗ trợ lại qua nguồn GitHub
- Nếu cài lẫn từ các nguồn có khóa ký khác nhau (F-Droid, GitHub...) sẽ phát sinh lỗi
- Muốn cài từ nguồn khác thì cần gỡ toàn bộ Termux và các APK plugin hiện có rồi cài lại
F-Droid
- Có thể tải trực tiếp APK từ F-Droid; sau khi cài ứng dụng, việc cập nhật cần tự kiểm tra thủ công
- Bản build F-Droid do phía F-Droid quản lý chứ không phải nhà phát triển Termux, và dùng khóa ký khác
- Không cung cấp APK theo từng kiến trúc, chỉ phát hành một universal APK (~180MB)
GitHub
- APK được cung cấp qua GitHub Releases hoặc Build Action
- Android 7 trở lên dùng phiên bản
apt-android-7, Android 5·6 dùng apt-android-5
- APK build trên GitHub được ký bằng khóa thử nghiệm (testkey_untrusted.jks), và bất kỳ ai cũng có thể build bằng cùng khóa đó
- Do có rủi ro phát tán phiên bản độc hại, không khuyến nghị cài APK từ nguồn ngoài kho GitHub chính thức
- universal APK khoảng 180MB, APK theo từng kiến trúc khoảng 120MB
Google Play (thử nghiệm)
- Có phiên bản tương thích chính sách dành cho Android 11 trở lên trên Google Play, nhưng còn thiếu tính năng và có lỗi
- Phiên bản Play đang được phát triển trong kho riêng (termux-play-store)
- Không tương thích với bản F-Droid do đã loại bỏ sharedUserId, khuyến nghị tắt cập nhật tự động
Gỡ cài đặt và sao lưu
- Khi chuyển sang nguồn cài đặt khác hoặc xóa ứng dụng, cần gỡ hoàn toàn tất cả APK của Termux và plugin
- Trước khi gỡ, có thể sao lưu dữ liệu theo quy trình Backing up Termux
Cộng đồng và tài liệu
- Cộng đồng chính: Reddit(r/termux), kênh Matrix/Gitter, Twitter(@termuxdevs), email hỗ trợ(support@termux.dev)
- Tài liệu chính thức:
- Tài liệu bổ sung: FAQ, cấu trúc hệ thống tệp, truy cập từ xa, truy cập bộ nhớ Android, thiết lập terminal...
5 bình luận
Tôi thuộc thế hệ mới bắt đầu được dùng smartphone khi còn trong quân ngũ,
đã cài Termux để luyện tập phát triển web và còn thử tự viết interpreter nữa,
đồng thời mang sách Rust vào để học.
Lâu lâu mới thoát khỏi GUI
và đắm mình vào môi trường văn bản nên thấy rất thú vị.
Tôi cũng học dùng
vimkhi dùng Termux.Giống như các bình luận trên Hacker News,
đến giờ hễ có thiết bị Android mới
là tôi cài Termux trước tiên.
Cá nhân tôi đang thấy nó rất hữu ích để thỉnh thoảng SSH vào máy chủ khi cần theo dõi mã từ bên ngoài.
Mình đang dùng Pixel, mà trên các phiên bản Android mới nhất thì giờ đã có thể chính thức cài container Linux thông qua phần cài đặt nhà phát triển (không rõ trên điện thoại khác có làm được không. Chắc là cũng được nhỉ?)
Trước đây mình cũng có cài Termux để thỉnh thoảng lôi ra vọc, hoặc nếu cố lắm thì dùng để kiểm tra
pingcác kiểu, nhưng giờ có cảm giác là ngay cả những mục đích đó cũng không còn cần nữa.Đây là một ứng dụng khá thú vị, nên cũng thấy hơi tiếc khi phải nói lời tạm biệt.
Tôi đã để CopyParty nằm đó trong danh sách video xem sau trên YouTube, nhưng đọc phần bình luận ý kiến trên HN mới biết hóa ra cũng là của cùng một người o.o
Ý kiến trên Hacker News
Một trong những phần mềm tôi thích nhất là Copyparty, do người đã cài Termux lên điện thoại của mình tạo ra
Link GitHub ở đây, và cũng có video YouTube liên quan
Mỗi khi cầm một thiết bị Android mới trên tay, thứ đầu tiên tôi cài là Termux
Tôi kết nối case bàn phím Bluetooth để code từ xa bằng Neovim trên ghế sofa, quản lý ghi chú bằng vimwiki và đồng bộ lên GitHub
Hầu hết công cụ CLI đều có trong kho Termux, còn nếu không có thì tôi tự build bằng clang, cmake và các công cụ tương tự
Nhờ Termux mà tôi vẫn dùng Android làm máy chính
Trường hợp sử dụng Termux của tôi là tự động hóa sao lưu ảnh
Tôi sao lưu ảnh lên NAS nhưng một số ảnh bị thiếu, nên tôi chạy script trong Termux để tính checksum MD5 trên NAS và xóa các tệp tương ứng trên điện thoại
Làm vậy có thể giải phóng ổn định hàng chục GB dung lượng
Vấn đề Nextcloud liên quan ở đây
Khi phát triển dựa trên AI tăng lên, có lẽ sẽ có nhiều người dùng hơn các công cụ như Termux, tmux
Gõ trên điện thoại thì khó, nhưng nhờ các bàn phím như Unexpected Keyboard(link) và chế độ vim nên vẫn dùng khá ổn
Tôi dùng Termux để chạy SSH chỉ khi cần
Mở Termux thì SSH bật, đóng lại thì SSH tắt. Chừng đó là đủ để đồng bộ tệp bằng rsync
Tôi không cần để nó chạy liên tục nên không dùng các ứng dụng như LocalSend hay SyncThing. Trên desktop tôi chỉ chạy một script sync đơn giản và chỉ định hướng đồng bộ
Dạo này hầu như tôi không dùng các ứng dụng kiểu này vì không còn điện thoại Android có bàn phím phần cứng
Hồi xưa thời Motorola Droid, tôi từng tạo ra một môi trường làm việc rất năng suất với Termux và ConnectBot
Giờ tiềm năng cũng giảm đi, sự đa dạng phần cứng hay độ mở của bootloader cũng không còn như trước. Termux làm tôi nhớ lại thời đó
Trên Termux, có thể dùng nguyên bộ môi trường như tmux, fish, git, yazi
Thậm chí còn build được ứng dụng Rust, và thật ngạc nhiên khi các ứng dụng TUI phản hồi cả thao tác chạm
Tôi tò mò liệu trên iOS có terminal nào đạt tới mức này không
Nghe nói gần đây Android có môi trường Linux đầy đủ, vậy Termux còn cần thiết không?
Tôi thấy có nhiều thảo luận liên quan trên r/androidterminal
Ngược lại, Linux terminal mới chạy trong một VM riêng nên tốn nhiều dung lượng lưu trữ hơn
Với tôi, Termux là terminal emulator cho Android tốt nhất
Tôi sắp xếp ghi chú bằng fzf, Neovim, Git và cũng truy cập từ xa bằng SSH
Nếu build CLI hoặc TUI bằng Go rồi biên dịch bằng NDK thì có thể chạy trực tiếp trong Termux
Thật lòng mà nói tôi khá tò mò, làm sao có thể dùng môi trường terminal trên một màn hình cảm ứng nhỏ như vậy?
:help. Giờ thì đã hoàn toàn quen rồi