Android/ChromeOSをTerminalとして使えるTermuxですが、いつも設定するのが面倒なので、ここにメモします。
Termuxのインストール
まずは、自分で書いた記事をメモ。Termux上でPythonのインストール方法を紹介している。
手順は以下の通り
- Google PlayStoreでTermuxとTermux APIをインストール
内部ストレージにつなげる
Termuxの~/
は/data/data/com.termux/files/home
なので、内部ストレージにつなぐ方法。以下のコマンドを実行。
termux-setup-storage
これで、~/
にstorage
ディレクトリができて、Downloadsなどに手軽にアクセスできる。
最低限必要なパッケージのインストール
pkg update
pkg install git vim wget tmux
sshd の設定
Androidスマホの場合、小さな画面でやるの大変なので、sshdを設定してPCから設定を行いましょう。
あるいは、Chromebookの場合、Termuxで日本語入力ができません。そこで、sshdを起動して、別途Chrome拡張のSecure Shellを使ってTermuxにログインして作業します。すると、日本語が入力できます。
# sshdをインストール
pkg install openssh
# 公開鍵の作成
ssh-keygen -t rsa
何度かEnterキーを押してキーを作る。
なお、PC側でも公開鍵を作成する。そして作成して公開鍵をTermux側に登録します。
例えば、LINEやメールなどの方法で、PCの公開鍵の内容をスマホに送信して、Termux内の~/.ssh/authorized_keys
に追記します。
そして、TermuxでIPアドレスを調べます。
ifconfig | grep inet
PC側で上記IPアドレス(例えば 192.168.0.5など)に接続できます。
Termuxにパスワードを設定します。
passwd
ただし、Termuxでは1024以下のポートが利用できないため、8022番ポートを使うようになっている。ログイン時には上記で指定したパスワードが必要です。
ssh hoge@192.168.0.5 -p8022
ChromebookでSecure Shellから接続する場合、最初にプライベートキーの~/.ssh/id_rsaを~/storage/downloadなどにコピーしておいて、Secure ShellのIDでそのファイルを選びます。
クリップボードをAndroidと共有できるようにする
Androidとクリップボードを共有できると便利。termux-apiのアプリをインストールし、その後、以下のコマンドを実行する。
pkg install termux-api
何かをコピーするには、以下のように書く。
termux-clipboard-set hoge
コピーしたテキストを表示するには、以下のようにする。
termux-clipboard-get
開発環境をインストール
その他、PythonとNode.js入れておけば、いろいろ便利だろうという感じ。
pkg install python nodejs
GitHubに公開鍵を登録する
GitHubに公開鍵(~/.ssh/id_rsa.pub
)を登録する。
公開鍵の内容は以下のようにして表示できるので、これをコピーして、GitHubの設定で追加する。
cat ~/.ssh/id_rsa.pub
そして、vimでプログラムを書きまくる。
vimでクリップボードをAndroidと共有する
以下に書いてあるのだが、VimのクリップボードをAndroidと共有できる。Termux APIを有効にしてあることが前提。
具体的には、~/.vimrc に以下を追加する。
au TextYankPost * call system('termux-clipboard-set &', @")
function Paste(p)
let sysclip=system('termux-clipboard-get')
if sysclip != @"
let @"=sysclip
endif
return a:p
endfunction
noremap <expr> p Paste('p')
noremap <expr> P Paste('P')
termux-openでいろいろ開く
macOSでいうところのopenにあたるのがtermux-open
です。
これを使うと標準アプリでいろいろ開けます。
例えば、サーバーを起動しておいてIPアドレスを指定してChromeでアプリをブラウザ上で試したい場合など以下のようにかけます。
# IPアドレスを調べる
ifconfig | grep inet
# ブラウザでWebアプリを開く
termux-open http://192.168.0.5:8888
なでしこ3を入れる
日本語でプログラムが作れる「なでしこ3」は入れておくべき(たぶん)。
# なでしこのリポジトリをクローン
git clone git clone https://github.com/kujirahand/nadesiko3.git
# あるいは以下
# git clone git@github.com:kujirahand/nadesiko3.git
# インストール
cd nadesiko3
npm install --production
# Web用のなでしこをビルド
npm run build
# サーバーを起動
npm start
するとAndroid側のWebブラウザ(localhost:3000)でプログラムを作れる。ただしChromebookの場合はアドレスが異なるので、ifconfig | grep inet
で確認する。
テキスト音楽サクラを入れる (2020/08/19 手順変わりました)
みんな、きっとAndroidで作曲したいはず。テキスト音楽「サクラ」を動かすには golang が必要。
pkg install golang
環境変数GOPATHを確認
cd `go env GOPATH`
pwd
mkdir -p src/github.com/kujirahand
cd src/github.com/kujirahand
リポジトリをクローン
git clone https://github.com/kujirahand/sakuramml-go.git
# あるいは ... git clone git@github.com:kujirahand/sakuramml-go.git
サクラをコンパイル
cd sakuramml-go
go build csakura.go
すると、csakuraというバイナリができる。ドレミのテキストで作曲して、MIDIファイルにコンパイルする。
./csakura a.mml
すると、a.midiができる。音楽を再生するには、以下のコマンドを実行。(ただしMIDIが再生できるかどうかは機種依存。IdeaPad Duetは再生できず。)
termux-media-player play a.mid
bashの設定ファイル
bashの設定ファイルを作る。
# 各種バッチを保存するディレクトリを準備
mkdir ~/bin
# 設定ファイルを編集する
vi ~/.bashrc
以下のような設定を書く。
# ls
alias ll='ls -laF'
alias l='ls'
# path
export PATH=$PATH:$HOME/bin
# なでしこ3にパスを通す
export PATH=$PATH:$HOME/repos/nadesiko3/bin
# テキスト音楽サクラ用
GOPATH=`go env GOPATH`
PATH=$PATH:$GOPATH/src/github.com/kujirahand/sakuramml-go
設定を反映させる。
source ~/.bashrc