Termuxがいい

Termuxの画面

Android端末上でLinux環境が作れるアプリTermuxが面白い。

termuxの公式サイトには下記のように書いてある。

Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required.
A minimal base system is installed automatically - additional packages are available using the APT package manager.

簡単に要約するとこんな感じ。

「TermuxはAndroidのターミナルエミュレータで、Linux環境を作るアプリでゲスよ、ルートも不要ですぜ、旦那…」

Termuxの読み方がわからないのだが、たぶん「ターマックス」、または「ターミュックス」、それか「タームックス」、それとも「ターミュエックス」のどれかかそれとも別の読み方があるのか。

個人的には「ターミュエックス」が気に入っているが、たぶん違う。

なのでここでは英語表記のTermuxを使ってお茶を濁します。

Termuxとキーボードアプリのインストール

Android端末でGoogle Playを起動して、”Termux”で検索して一番上に出てきたのをインストールします。

それから今度は”CodeBoard”と検索して、それもインストールします。

“CodeBoard”はコーディング(プログラミング)とかターミナルの操作に便利な仮想キーボードで、Tabの入力が簡単にできます。キーボードを表示すると画面の半分くらいを占有しますがその分表示されるボタンがかなり多いです。

Androidの普通のキーボード入力だと、Tabの入力が難しい(できない?)のでCodeBoardは非常に便利です。

Termuxの起動

インストールしたTermuxを起動します。

おそらくデフォルトのキーボードが表示されるので、Spaceキーを長押ししてキーボードをCodeBoardに変更します。

1
2
3
4
5
6
7
8
9
10
# /homeにstorageディレクトリを作る。ここがTermuxのホームみたいになる
$ termux-setup-storage

# パッケージのアップデート
$ pkg update

# よく使いそうなパッケージのインストール
$ pkg install vim
$ pkg install git
$ pkg install openssh

普通にLinuxで使うパッケージであれば大体入るようです、Rubyとかも入れられます。

ディレクトリ構造をLinuxに近づける

TermuxはLinuxとは少し違うディレクトリ構造をしています、というよりもTermuxはAndroid内のディレクトリを間借りしているような感じで動くので$ ls /とかやっても”Permission denied”と出ます。おそらくAndroidのルートを見に行ってるのだと思います。

で、下記のパッケージをインストールすると、$ ls /とやってもPermission deniedとは出なくなります。
Linuxぽいディレクトリ構造をTemuxがエミュレートしてくれるので、Androidのディレクトリをあまり意識せずに色々できます。

1
2
3
4
5
6
# インストール
$ pkg install proot
# termux のルート?モードに入る
$ termux-chroot

Ctrl + Dで出る

Android内のファイルへのアクセス

1
2
# 下記を実行していないのであれば、実行する
$ termux-setup-storage
  • Termux内のディレクトリと外部SDカードのディレクトリの対応表
    ~/storage/external-1/dcim -> /storage/emulated/0/DCIM
    ~/storage/external-1/downloads -> /storage/emulated/0/Download
    ~/storage/external-1/external-1 -> /storage/0000-0000/Android/data/com.termux/files
    0000-0000は端末によって違うはず
    ~/storage/external-1/movies -> /storage/emulated/0/Movies
    ~/storage/external-1/music -> /storage/emulated/0/Music
    ~/storage/external-1/pictures -> /storage/emulated/0/Pictures
    ~/storage/external-1/shared -> /storage/emulated/0

Termux:APIで遊ぶ

Termux:APIというAndroidの端末のセンサーとかカメラをゴニョゴニョできる面白いものもあります。

Termuxを入れた後にGoogle Playで”Termux API”と検索して出てきたのをインストールします。

Termuxを起動します。

1
2
# Temux:APIを使えるようにする
$ pkg install termux-api

これでTermux:APIが使えるようになるはずです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# バッテリー状態を確認
$ termux-battery-status

# カメラ情報を表示
$ termux-camera-info

# 写真を撮る
$ termux-camera-photo <画像名.jpg>

# 端末上にダイアログを表示する
$ termux-dialog

# センサー情報を表示
$ termux-sensor

# バイブレーションを起動
$ termux-vibrate

# 電話をかける
$ termux-telephony-call

Termux経由で写真を撮れたり、電話をかけたりできます。
結構すごいですが、私の端末では写真がうまく撮れません、原因はまだ不明。

あと、地味にすごいのがセンサー情報を表示する機能です。
termux-sensorと打つと、延々とリアルタイムにGPSとかジャイロとかのセンサー情報が表示されます。
この情報を取得すればラズパイみたいなことが自分のスマホでできちゃいます。

OpenSSHをインストールするとPCからsshでTermuxに接続もできます。
接続方法の詳細は下記にまとめました。

他にも色々あるので、公式をチェックしてみてください。
Termux:API公式