快轉到主要內容

Termux終端機使用教學:Android手機跑Linux指令

分類   智慧型手機 Termux教學
標籤   Linux Termux
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字

🇺🇸 English version

Android是基於Linux開發的系統,卻沒有終端機。而Termux這個開源終端機模擬器補全了這個缺口,不需要Root就可以使用,還有自己的套件管理員。

Termux為一款終端機模擬器APP,移植了許多Linux的常用命令行程式。為什麼要在手機上打指令? 有的時候手機並沒有對應的APP,你還是可以用命令列模式的軟體來達成目的。例如Termux可以跑SSH連線、影片轉檔、架伺服器、學習寫程式等等。並且Termux提供proot-distro,能夠建立Linux容器環境,執行更多Linux電腦版的程式。

然而,Termux無法幫你的手機Root。如果要用Termux修改Android系統內部的檔案,你還是需要先將手機Root。

本文會介紹Termux的安裝方式,並舉一些Termux的具體用途。

1. 如何安裝Termux
#

Termux系統要求為Android 7以上的Android裝置。

Termux的開發者說Google Play上的Termux已經沒在更新了,請到 F-Droid下載最新版。

點進F-Droid的連結,點選Download APK下載安裝檔。

2. 安裝Termux後建議做的事
#

2.1. 界面概覽
#

  1. 開啟Termux後就是終端機介面,點一下輸入框,手機鍵盤會自動開啟。Termux螢幕上還有顯示Ctrl、Esc之類的鍵盤快捷鍵,日後用終端機操作會常常用到他們。

  2. 從通知欄下拉,按Exit會立即終止Termux;Acquire Wakelock則是讓其保持在背景執行。

  3. 從螢幕左側滑進來,按New Session可開啟多個Termux終端機(工作階段);按Keyboard喚醒手機鍵盤。

2.2. 更新軟體套件
#

Linux系統安裝軟體通常是從軟體庫下載安裝,有用過Ubuntu的人應該會有點概念。

Termux的套件主要是deb格式,pkg指令其實就是APT的wrapper,但是您不能直接找Ubuntu/Debian系統的deb包來裝,Termux儲存庫的套件都是針對手機重新編譯過的版本。

  1. 剛安裝後,軟體套件需要更新才能正常使用。使用此指令更新Termux的全部套件 (在Termux空白處長按可貼上複製的指令)
pkg update
  1. Termux會自動下載更新並安裝套件。更新時可能會問要不要升級套件,一律輸入y按下enter。

  2. 安裝軟體常用的指令如下:

# 安裝套件
pkg install <套件名稱>

# 解除安裝套件
pkg uninstall <套件名稱>

# 搜尋套件
pkg search <套件名稱>

# 更新全部套件
pkg update && pkg upgrade

# 自動移除用不到的套件
pkg autoclean
  1. Termux的pkg指令其實是apt指令的前端,所以您也可以用apt update來更新套件。但是您不可以直接使用Ubuntu的套件庫,也不能隨便找個deb就用dpkg裝。

2.3. 切換鏡像站點
#

Termux有各國的鏡像站(mirror)可加快套件下載速度。此步驟為選擇性,如果不設定的話Termux每次下載套件都會遍歷全球鏡像站點才開始下載。

  1. 輸入以下指令
termux-change-repo
  1. 按Termux終端機顯示的上下鍵切換到Single mirror,再按下手機鍵盤的Enter。

  2. 選擇Mirrors in Asia,按下Enter。中國用戶可以選Mirrors in China

  3. Termux會重新整理軟體庫列表,輸入y就可以繼續使用。

2.4. 防止Termux被系統殺死
#

如果你的裝置系統為Android 12以上,且打算要用來跑Linux桌面等大型程式,請務必 停用Phantom Process Killing,防止Termux在背景的時候被系統殺掉。

3. Termux用途舉例
#

Termux究竟能做什麼?主要有以下各種用途和玩法。

藍色字代表相關教學文章,灰色框的字代表Termux有收錄該套件,能直接裝來用。

3.1. 寫程式
#

vimemacsnano寫程式。VIM是純文字模式下很好用的文字編輯器,建議安裝。

尚能用git管理Github或Gitlab的專案。

Termux支援編譯執行以下程式語言:

  • C/C++ (clang)
  • Java (openjdk-17)
  • Python (python3) 以及 Anaconda
  • NodeJS (nodejs)
  • .Net Framework (mono)
  • Rust (rust)
  • Go (golang)

如果需要QT Creator和Visual Studio Code那樣的圖形界面IDE,你得先安裝 proot-distro才行。

3.2. 影像處理
#

你可以用純文字工具ffmpegimagemagick給影片和圖片批次轉檔。

安裝 yt-dlp下載Youtube影片;用mpv播放Youtbe音樂。

或是使用 Termux X11跑圖形界面,用gimp修圖。

proot-distro用Kdenlive剪輯影片、跑建模軟體Blender。

3.3. 跑電腦軟體和遊戲
#

安裝 proot-distro後便等同有了隨身Linux系統,能夠跑各式各樣的電腦軟體,例如LibreOffice、GIMP、Firefox,以及部份電腦遊戲。

除此之外, 安裝Box86 + Wine還能在Android裝置跑Windows的exe程式。

3.4. 跑Linux和Windows系統
#

Termux儲存庫沒有您要的軟體套件?

proot-distro安裝Ubuntu、Fedora、Arch Linux等Linux發行版容器吧,這樣您就有更多現成的軟體套件能用。

如果你很無聊的話, 用QEMU虛擬機跑Windows 7也是可行的。

3.5. 遠端服務
#

用SSH跟電腦連線,分享、同步檔案

在手機上執行ADB指令

3.6. 架設網站或伺服器
#

apache2 + php + mariadb架設網站。

以靜態網頁生成器hugo配合git管理個人網站也是可行的。

安裝Java後就能 架設Minecraft Java版伺服器

修改手機核心加上有Root權限的話, 跑docker容器也不是問題。

3.7. 當作Android殼層的終端機
#

Termux可以充當Android殼層(shell)的終端機。

手機有Root的話,搭配Busybox就可以在Android上跑指令,比如修改Magisk模組檔案、 安裝chroot Linux發行版等等。

4. 如何學習使用Termux
#

如果真要「精通」Termux,要學的東西很多的,除了要知道命令行指令如何運作以外,您還要學習如何使用Termux API、Termux X11、Termux Python bindings…

先來看指令部份,Termux預設的shell是Bash,指令跟Linux很像,但Termux不是Linux系統。注意Termux的權限跟普通APP是一樣的,裝置沒有Root的話是無法存取Android系統內部的檔案的。

Termux的Bash有以下指令可用:

指令說明用法舉例
pkg
apt
更新、安裝、刪除軟體套件,PKG用法類似APT,執行不需要加sudo。pkg update && pkg upgrade更新全部套件;pkg install python安裝Python3套件。
help查看可用指令和個別指令用法,manpage要另外安裝套件。help alias顯示alisa這個指令的參數與用法。
alias建立指令別名。alias ls="ls -l"會讓執行ls時等同執行ls -l
bg將行程設成背景執行,效果類似&bg ping google.com將ping指令設成背景執行。
cd切換目錄cd ~會切換回Termux家目錄
cp複製檔案或目錄。cp foo.txt ~/new將foo.txt複製到new目錄。
echo輸出訊息,也可以給檔案輸入文字。echo "Hello"會在螢幕上輸出Hello。
exec執行程式exec startxfce4執行xfce4
export宣告環境變數。export DISPLAY=:0指定在該螢幕顯示圖像。
fg將行程設成前景執行。fg ping google.com將ping指令設成前景執行。
history查看過去打的指令歷史。history 3會顯示最近打的三個指令。
jobs列出目前執行中的行程。
kill中止行程。kill vncserver會中止vncserver。
ls列出目錄下的所有檔案。ls -al會列出目前目錄下所有的檔案和檔案大小。
mv移動檔案、重新命名檔案。mv foo.txt new會把檔案foo.txt移動到new目錄。
pwd顯示目前所在的工作目錄。
rm刪除檔案或目錄。rm foo.txt移除foo.txt檔案。
su
sudo
以超級使用者權限執行程式,手機必須Root過才有效。
sleep讓程式等個幾秒後再執行指令。sleep 5 && time會等個5秒後才執行time指令。
time顯示執行程式花費的時間。time pkg update會回傳指令執行所花的秒數。
touch更新檔案的變更時間、建立空白檔案。touch foo.txt會建立一個空白檔案。
unalias取消設定別名。
unset取消設定環境變數。

光這樣指令就很多了,如果我是您,完全不懂Linux的新手的話,我會建議不要一直盯著手機小螢幕來學命令行,很傷視力的。

鑑於Termux跟一般的Linux系統仍有差距(詳情請見 wiki),能做的事情有限。我建議您從基礎開始:在電腦用Virtualbox或WSL,安裝真正的Linux發行版(例如Ubuntu),並搜尋相關課程來正式學習如何使用Linux與命令行。這樣一來,您就能將學習到的經驗套用到Termux上,比較能知道程式背後的執行原理。

5. Termux存取手機內部儲存空間的檔案
#

「手機內部儲存空間」指的是DCIMDownloadDocumentAndroid這些目錄所在的位置。用檔案管理員APP就能看到。

  1. 輸入以下指令同意Termux存取手機內部儲存空間
termux-setup-storage
  1. 在允許Termux存取手機儲存空間後,它會被掛載到Termux家目錄的storage/shared目錄。輸入ls指令確認下:

  2. 如果要切換到手機內部儲存空間/Download這個目錄,你只要輸入:

cd storage/shared/Download
  1. 再用ls指令查看該目錄的所有檔案。

如果想知道怎麼用檔案管理器APP開啟Termux內部的檔案,請參閱: 淺談Termux檔案管理

延伸閱讀
#

相關問題請到 Github Reddit提問。

Termux Wiki亦有許多實用資訊。

相關文章

用Termux Proot在Android手機玩Minecraft Java版
分類   智慧型手機 Termux教學
標籤   Minecraft Java
在手機上跑X server,Termux + XSDL使用教學
分類   智慧型手機 Termux教學
標籤   X Window
免電腦在手機上執行ADB指令,Termux + ADB Wifi無線偵錯
分類   智慧型手機 Termux教學
標籤   Android Debug Bridge

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。