測試環境:
- Android 14
- Termux 0.119
Termux自身的根目錄#
根據Termux Wiki,Termux並不符合FHS標準,跟一般電腦Linux發行版的目錄結構有差異。因此,如果你的軟體很依賴標準Linux目錄結構,那麼請考慮使用proot或chroot建立Linux容器環境較為保險。
Termux的檔案目錄(文件目錄)位於/data/data/com.termux/files/
這個目錄只有Termux可以存取。
Termux內提供二個環境變數:$TERMUX_PREFIX
和$PREFIX
,它們指向的都是/data/data/com.termux/files/usr
目錄。
Termux透過pkg安裝的軟體通常會放到/data/data/com.termux/files/usr/bin
Termux家目錄位於/data/data/com.termux/files/home
沒有Root權限的情況下,Termux無法存取Android系統的根目錄(/
)
Termux的家目錄#
需要注意的是,Termux只有單一使用者帳號(用whoami
指令確認),沒有root帳號。使用者也不能新增帳號。
Termux家目錄位於/data/data/com.termux/files/home
。執行指令的時候,家目錄路徑可以用~
替代。
家目錄只有Termux能存取,其他APP得透過Android Scoped Storage 才能夠讀取該目錄,如果有Root權限更好。(參見: 用質感檔案存取Termux家目錄的做法)
通常Termux家目錄下是沒有任何檔案的,不過用ls -a
可以看到隱藏檔案
~ $ ls -a
. .bash_history .ssh
.. .npm .termux storage
.Xauthority .npmrc .vnc
那些點開頭的目錄大部分是軟體的設定檔,例如.termux
就包含了程式行為和字體。
如果有安裝XFCE4桌面環境,Termux的家目錄便會自動生出符合XDG Base Directory標準的目錄。
如果要設定$PATH
環境變數,請將其放到~/.bashrc
或者~/.profile
。
若想要一款純文字的檔案管理軟體,你可以在Termux安裝ranger
套件,方便管理Termux家目錄下的檔案。
Termux存取Android內部儲存空間#
預設情況下Termux無法存取自身環境以外的Android使用者檔案。
在執行termux-setup-storage
指令之後,Termux便能夠存取Android內部儲存空間的檔案。
準確來說,Termux會將Android的/sdcard
路徑bind mount到Termux家目錄下的~/storage
Android內部儲存空間會掛載到Termux家目錄下的~/storage
~/storage/shared
底下目錄可看到Android內部儲存空間的所有檔案
~ $ ls ~/storage/shared/
Documents Android Download Movies Pictures
DCIM Music
不過,Termux沒有Root權限是無法存取Android/data
目錄的。
我們可以用cp指令複製Termux內的檔案到Android手機內部儲存空間
cp ~/file.txt ~/storage/shared/Download/
同樣也可以把Android手機內部儲存空間的檔案複製到Termux家目錄
cp ~/storage/shared/Download/file.txt ~
小心:執行rm -rf
是能把Android手機內部檔案儲存空間的檔案全部刪除的(除了需要root權限存取的目錄以外),請謹慎操作指令。
請不要將軟體或者指令稿放到Termux以外的Android內部儲存空間目錄執行,很容易出現權限問題。
proot-distro存取Android手機內部儲存空間#
執行
proot-distro指令進入Linux容器的時候,Termux預設會把~/storage/shared
掛載到容器內部的/sdcard
所以在proot環境內,可以從/sdcard
存取Android手機內部儲存空間的檔案。
Termux存取SD卡檔案#
Android手機插入SD卡與OTG裝置後通常會掛載在/storage
Termux無法存取外接SD卡與OTG裝置,必須使用Root權限才得以存取該目錄。
Termux使用Root權限存取Android系統目錄#
在有安裝Magisk或者KernelSU的情況下
使用sudo 指令提升權限便可以存取Android系統的任意目錄
sudo ls /
搭配BusyBox存取Termux環境?#
是否能在Root過的Android Shell使用Busybox執行Termux環境下安裝的套件?
有點困難,不建議這樣做,建議直接用chroot。
備份Termux環境的檔案#
最好的方式是直接複製到Android內部儲存空間
有Root權限更好
參見 Termux備份還原檔案