Termuxの中身はどこにあるのか Androidストレージとの境界線を整理
TermuxはAndroidアプリの専用ディレクトリ内にLinux系の実行環境を構築する仕組み。
「Termux専用の領域」と「Androidの共有ストレージ」を切り分けて理解すると、ファイル操作で迷いにくくなる。
本記事では、Termuxの基本ディレクトリ構成、HOME と PREFIX の役割、Android側ストレージへのアクセス方法、共有ストレージを扱う際の注意点をまとめます。
Termuxのディレクトリ構成とAndroid側ストレージの全体像
Termuxを使い始めた直後につまずきやすいのは、「いま見ているファイルがTermux内部のものなのか、それともAndroidの共有ストレージ上のものなのか」が直感的に分かりにくい点にある。
まず押さえたいのは、Termuxの中心となる領域が次の2つであること。
-
HOME=/data/data/com.termux/files/home -
PREFIX=/data/data/com.termux/files/usr
参考: Termux file system layout · termux/termux-packages Wiki · GitHub
構造を簡略化すると、全体像は次のようになる。
/data/data/com.termux/files/
├── home/ # ユーザーが作業する場所
└── usr/ # コマンドやライブラリが入る場所
⭐️ 最初は「作業する場所は home、Termux本体の道具箱は usr、写真やDownloadは別の共有ストレージ」と整理しておくと分かりやすいです。
🏠 HOME は日常の作業場所
$HOME は、普段の作業ファイルを置く場所である。
設定ファイル、シェルスクリプト、Gitの作業ディレクトリ、メモ、検証用ファイルなど、ユーザーが直接扱うものは基本的にここへ置く。
デフォルトの位置は次の通りだ。
# 現在のホームディレクトリを確認します
echo $HOME
# ホームディレクトリの中身を確認します
ls -la $HOME
実際の運用では、作業用ディレクトリを HOME 配下に作っておくと扱いやすい。
# 作業用ディレクトリを作成します
mkdir -p ~/work
# 作業場所へ移動します
cd ~/work
# 現在位置を確認します
pwd
ソースコードの編集、スクリプトの保存、Git操作などは、基本的に HOME 側で完結させるのが安定する。
🧰 PREFIX はコマンドとライブラリの置き場
$PREFIX は、Termuxが提供するコマンドやライブラリが配置される領域である。
bash、pkg、python、git などの実行ファイルや、関連ライブラリの多くはここに入る。
# Termuxの主要パスを確認します
echo $PREFIX
# コマンドの実体がどこにあるか確認します
which bash
which pkg
which python
PREFIX は「自分のファイル置き場」ではなく、「Termuxが動くための土台」に近い場所だ。
ふだん直接編集する機会は少ないが、コマンドの実体や環境の構成を確認したいときに役立つ。
📁 Android側ストレージへアクセスするには
Termux内部の領域と、Androidの共有ストレージは別物である。
そのため、写真、動画、Download、Documents などへアクセスするには、ストレージ権限の付与とリンクの作成が必要になる。
その入口になるのが termux-setup-storage だ。
# Android共有ストレージへのアクセス設定を行います
termux-setup-storage
# 作成されたリンクを確認します
ls -la ~/storage
このコマンドを実行すると、権限要求が行われ、~/storage 以下に共有ストレージへ向かうシンボリックリンクが作成される。
関連情報: termux-setup-storage broken on Android 8 · Issue #449 · termux/termux-app · GitHub
よく使うのは次のパスだ。
-
~/storage/shared→ Androidの共有ストレージ -
実体としては
/storage/emulated/0や/sdcardを指すことが多い
たとえば、Download や DCIM に触る場合は次のようになる。
# Download ディレクトリへ移動します
cd ~/storage/shared/Download
# DCIM ディレクトリの中身を確認します
ls ~/storage/shared/DCIM
⭐️ Androidの写真やDownloadへ触りたいだけなら、まず ~/storage/shared を確認するのが最短です。
📱 よく使うパスの感覚
実用上は、次の対応で覚えると迷いにくい。
$HOME = Termux専用の作業場所
$PREFIX = Termuxのコマンド置き場
~/storage/shared = Androidの共有ストレージへの入口
/storage/emulated/0 = Android共有ストレージの実体に近い場所
/sdcard = 共有ストレージの別名として使われることがある
この整理が頭に入ると、どこに何を置くべきか判断しやすくなる。
-
開発用のファイルを置く →
HOME -
実行環境を整える →
PREFIX配下のコマンドを利用 -
完成したファイルをスマホ側へ渡す →
~/storage/shared/Download -
写真や動画を読む →
~/storage/shared/DCIM
⚠️ 共有ストレージは便利だが、作業場には向かない
共有ストレージは、Androidアプリとのファイル受け渡しには非常に便利である。
一方で、Termuxのメイン作業場所としては向いていない。
その理由は、共有ストレージ側がLinuxネイティブなファイルシステムとは挙動が異なるためだ。
Termux公式の説明でも、外部ストレージ系はエミュレートされた fat 系として扱われることがあり、実行属性や特殊ファイルの扱いで問題が起きやすいとされている。
参考: Termux file system layout · termux/termux-packages Wiki · GitHub
⚠️ スクリプトの実行環境や開発プロジェクトを共有ストレージ上に直接置くと、権限や挙動の違いで詰まりやすいです。
そのため、使い分けは次の形が定番になる。
-
ソースコード編集や実行環境 →
HOME -
写真、動画、Download との入出力 →
~/storage/shared
実際の流れは次のようになる。
# HOME 側で作業ディレクトリを作成します
mkdir -p ~/work
cd ~/work
# サンプルファイルを作成します
echo "hello from termux" > result.txt
# 完成物だけ Android 側へコピーします
cp result.txt ~/storage/shared/Download/
⭐️ 「作る・動かす」は HOME、「渡す・保存する」は shared と分けると安定しやすいです。
🔍 まず確認したいコマンド
Termuxのファイル配置で迷ったら、最初に次の3つを確認すると状況を把握しやすい。
# HOME と PREFIX を確認します
echo $HOME
echo $PREFIX
# Android共有ストレージのリンクを確認します
ls -la ~/storage
~/storage/shared が見当たらない場合は、まず次を実行する。
# ストレージ権限の付与とリンク作成を行います
termux-setup-storage
それでも使えない場合は、Android側でTermuxにストレージ権限が許可されているかも確認しておきたい。
まとめ
Termuxの内部構造は、ユーザーの作業場所である HOME と、コマンドやライブラリの置き場である PREFIX を軸に理解すると整理しやすい。
一方、Android側の写真やDownloadへアクセスする場合は、termux-setup-storage を実行し、~/storage/shared を入口として使うのが基本になる。
Termux内部とAndroid共有ストレージは、似ているようで役割が異なる。
この境界線を最初に理解しておくと、ファイルをどこへ置くべきか、どこで作業すべきかが一気に分かりやすくなる。
用語解説
-
HOME: ユーザーが日常的に作業するホームディレクトリ -
PREFIX: Termuxのコマンド、ライブラリ、実行環境が置かれる領域 -
共有ストレージ : Androidで写真、動画、Download などを他アプリと共有する保存領域
-
シンボリックリンク : 別の場所を指し示すリンク。
~/storage/sharedはその代表例 -
/storage/emulated/0: Android共有ストレージの実体に近い代表的なパス -
/sdcard: 共有ストレージを指す互換的な別名として使われることがあるパス -
termux-setup-storage: TermuxからAndroid共有ストレージへアクセスするための初期設定コマンド -
参考資料 : Termux file system layout, termux-setup-storage related issue