0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Termuxの内部構造を整理、Android共有ストレージへのアクセス手順も確認

0
Posted at

Termuxの中身はどこにあるのか Androidストレージとの境界線を整理

TermuxはAndroidアプリの専用ディレクトリ内にLinux系の実行環境を構築する仕組み。
「Termux専用の領域」と「Androidの共有ストレージ」を切り分けて理解すると、ファイル操作で迷いにくくなる。
本記事では、Termuxの基本ディレクトリ構成、HOMEPREFIX の役割、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が提供するコマンドやライブラリが配置される領域である。
bashpkgpythongit などの実行ファイルや、関連ライブラリの多くはここに入る。

# 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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?