Why screen
screenはオワコン、時代はtmuxだと言われて久しいですが、tumuxにはシリアルコンソールに接続する機能がありません。
マイコンやらシングルボードコンピュータやらシスコルータやらをいじってるとシリアルコンソールを触る機会が多いので、同種のツールを2つ使うのもなんかだるいなあ・・・ということでscreenを使ってます。
.screenrc
vim ~/.screenrc
とかで編集する。
.screenrc
startup_message off
vbell off
caption always " %n %t $USER@%H"
termcapinfo xterm* ti@:te@
term xterm-color
shell bash
ローカルからワンコマンドでリモートのセッションにアタッチする
sshでログイン
↓
screen -r
あるいは screen -x
↓
ウィンドウ移動
とやるのがだるいので、以下のようにしてみた。
ssh hostname.io -t "screen -x -p 0"
-p ウィンドウ番号
でウィンドウを指定して一気にアタッチできる。
ここまでやって気づいたんだけど、sshでいきなりscreenにアタッチするなら、ウィンドウ複数開かなくても、Terminalのほうでタブ複数開いたらよいんではないか?
そしたらローカルのシェルを操作するのと同じ使い勝手になる。
以下のようにしてみた。
ssh hostname.io -t "screen -D -R session_name"
-D -R セッション名
でセッション名を指定してセッションにアタッチ、該当する名前のセッションがなければセッションを作成になるようだ。
これをそれぞれ別のセッション名で、Terminalの各タブから実行する。
ウィンドウの操作
ウィンドウの上下分割
Ctrl-a S
ウィンドウの左右分割
Ctrl-a |
ウィンドウ間の移動
Ctrl-a <TAB>
ウィンドウの分割をやめる
Ctrl-a Q
ウィンドウを閉じる
- ウィンドウ内のシェルはkillされます
Ctrl-a k