Webブラウザ経由でCLI実行できるの助かる。
shellinabox/shellinabox: Official-ish Fork of Shell In A Box
ターミナル横に開けばええやないかいとか思われそうだが、いやブラウザで開けるところに価値がある。特にブラウザとしてVivaldi使っていると、Webパネルという機能でサイドバーにWebアプリを開けるのだけれど、この組み合わせが非常に強力。CLIの簡単さとブラウザの強力なGUIが組み合わさって非常に強い。
開発自体はだいぶ前に止まっている模様。また、日本語の入力が厳しそうな感じだったので、そのうち別アプリも試したい。本格的に開発で使うぞっていうのではなく、いくつかのCLIツールを実行できるだけでハッピーなので、とりあえずヨシ!
環境
- M2 Pro Mac mini
- macOS Sonoma 14.8.1
- ShellInABox 2.20
インストールと使い方
インストール
homebrewで一発だった。
brew install shellinabox使い方
そして利用はこれだけ。
shellinaboxd -t-tはhttpsの無効化。LANでしか使わないので。
http://IPアドレス:4200にブラウザアクセスしたら、あとは普通に使える。
LAN内の別PCからもアクセスできる。sshログインするより楽かもしれない。
オプション
以下は使いがち
-t: http接続(https無効)-h: ヘルプ表示--no-beap: ブラウザ経由で音を出さない-p ポート番号: 起動するポート番号を変更する--version: バージョン番号の表示
Macで自動起動するplist
こいつを例によって $(HOME)/Library/LaunchAgents/において launchctl loadする。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- ドメインは自分ので調整 -->
<key>Label</key>
<string>com.example.shellinabox-m2</string>
<key>ProgramArguments</key>
<!-- パスとオプション調整 -->
<array>
<string>/opt/homebrew/bin/shellinaboxd</string>
<string>-t</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<!-- ログも好きな場所に調整 -->
<key>StandardOutPath</key>
<string>/tmp/shellinabox-m2.log</string>
<key>StandardErrorPath</key>
<string>/tmp/shellinabox-m2-error.log</string>
</dict>
</plist>
日本語問題
そのままだと日本語が化けた。

LANGを設定すると表示できる。
export LANG=ja_JP.UTF-8
でも入力はつらそう

これは解決できていない。強いて言えば日本語を使わない。
VivaldiのWebパネルとの相性がよい
リアルで使っている人を自分以外見たことがない系マイナーブラウザの中ではメジャーブラウザVivaldiには、Webパネルという機能がある。このWebパネルは便利だ。サイドバーにWebサイトを表示できるのだが、これによってサイドバーにターミナルを出現させることが可能。
これは個人的に非常に便利だ。CLIの作業はけっこうブラウザで手順書を見ながらやることが多い。コンテナ作る時とかね。特にインフラ周りの作業だとけっこうあるはず。
また、自作のスクリプトなどはわざわざGUIにするのがめんどくさいなので、コマンドまんまだったりTUIだったりする。僕の場合はサイト管理のためにいくつかのツールを作っているのだが、サイトを閲覧しながらツールを実行できるのは、けっこう快適である。
たとえば以下は、記事を編集しながら、その隣でwp-mkimgなるWordPressサイト向けの自作コマンドを実行しようとしている。これができるのはけっこう嬉しかったりする。LAN内のどのPCからもできるし。

lazydockerとかhtopを使ってブラウザを見ながらリソース管理することも可能だ(やりたいかは知らない)。
所感
ブラウザ経由でよく使うCLIツールを使いたいという第一の欲求は満たせた。とりあえずよかった。日本語問題は今後困りそうなので、別のも試したい。
- tsl0922/ttyd: Share your terminal over the web
- butlerx/wetty: Terminal in browser over http/https. (Ajaxterm/Anyterm alternative, but much better)
っていうか、最初はttydを試したのだけれど、動かなかったんだよねぇ。

コメント