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

English version

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

為什麼要在手機上打指令? 有的時候手機並沒有對應的APP,你還是可以用命令列模式的軟體來達成目的。例如Termux可以跑SSH連線、影片轉檔、跑電腦的軟體、架伺服器、學習寫程式等等。

然而,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的人應該會有點概念。

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 安裝套件
pkg install <套件名稱>

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

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

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

# 自動移除用不到的套件
pkg autoclean

2.3. 切換鏡像站點

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

  1. 輸入以下指令
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)
  • NodeJS (nodejs)
  • .Net Framework (mono)
  • Rust (rust)
  • Go (golang)

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

3.2. 影像編輯

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

用Python安裝youtube-dl下載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系統

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

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

3.5. 遠端服務

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

在手機上執行ADB指令

3.6. 架設網站或伺服器

apache2 + php + mariadb架設網站。

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

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

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

4. Termux指令列表

Termux的指令跟Linux很像,但是Termux是在半虛擬的Linux環境執行指令,沒Root權限是無法存取Android系統內部的檔案的。詳情請見Termux與Linux的差別

Termux預設的shell是Bash,這邊介紹一些常用指令。如果執行錯誤Termux會提示你下載相關套件補全。

指令 說明 用法舉例
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 取消設定環境變數。

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

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

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

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

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

如果想知道怎麼用檔案管理器APP開啟Termux內部的檔案,請參閱:手機檔案管理器如何存取Termux的內部目錄

延伸閱讀

相關問題請到GithubReddit提問。

Termux Wiki亦有許多實用資訊。