Linux で複数の仮想端末を管理できる screen を使ってみた。Let’s user SCREEN! というサイトを参考に触ってみた。
設定
他アプリとの関連で、エスケープキャラクターがAになってると不便なのでZにしたほうが良い、と書いてあったので、いわれた通りに設定してみた。 .screenrc を、以下のように編集。ぼくの環境ではデフォルトではなかったので、作成した。1行目は、デフォルト文字コードをUTF8に、2行目はエスケープキャラクターをZに、3行目は開いている仮想端末一覧を常に画面最下部に表示するというオプション。多分、使っていくうちに増えるのだろうけど、初期はこれで使ってみた。
defencoding utf8 defutf8 on escape ^z^z hardstatus alwayslastline "%w" defscrollback 5000 startup_message off slowpaste off
起動
$ screen
として起動。仮想端末管理なので、一見なんも起こってないように見える。新しい仮想端末を作るには、^z ^c
として作成。^z ^w
とすると、今 screen で何が実行されているのかを見ることが出来る。次の仮想端末に移るには、 ^z [space]
とすれば良い。前の仮想端末に戻るには、^z ^h
または ^z p
または ^z [del]
とすれば良い。また、 ^z ^w
で一覧を見ると番号が出るのだが、^z {番号}
とすれば、その画面に瞬時に行ける。
バックスクロールやコピペ
コピー&ペーストやバックスクロールも可能。^z [
とすると、コピーモードになる。vi と同じ操作で画面を移動出来る。コピーしたい部分の始点に行き space を押して、終点で space を押すと、その部分がコピーされる。ペーストしたい部分で、 ^z ]
とすればはりつけられる。
デタッチ・アタッチ
現在の screen から切り離したり、切り離した screen から現在の screen にくっつける機能。デタッチは、^z ^d
とすればおk。現在の screen の状態は、 screen -ls
で確認できるようだ。くっつけるには、screen -r {PID}
で、シングルのアタッチ。 screen -x {PID}
でマルチのアタッチ。まだあんま使ってなくてよくわかってないけど、複数の端末立ち上げてマルチでアタッチすると、片側で操作してるのがもう片側でも見える。家と研究室から、同じサーバにログインする時はマルチでアタッチしとけば良いのかな。調査が必要(´・ω・`)
ちょこちょこいじってみた感じ、とりあえず screen しといて、ログアウトしたり他の端末に任せたいときは ^z ^d
とする。他のとこから続けたいときは、screen -r
とすれば大丈夫。二つ以上 screen があったら、PID が必要になるみたい。デタッチしないで端末閉じたり、回線切れた場合は勝手にデタッチされるので、もっかいscreen -r
とすれば続けられる。デタッチしてない screen につなぐには、screen -d -r
とすれば、元のscreenを強制的に終了させてこっちが操作を奪うことが出来るようだ。そんなことしなくても、 screen -x
としてマルチでアタッチすれば、同時に使うことも出来る。自分一人で使うのなら、マルチアタッチだけしてればいいのか、何か弊害があるのか…は、使ってみて調べようと思います。複数人で同じ端末にログインして vi で同じファイルをいじろうものなら、楽しい自体になりそうなことだけは分かります(´∀`)
ウィンドウ分割
^w S
で現在のウィンドウを上下二つに分割します。^z [tab]
で、分割された下の領域に移動します。分割しただけだと、そこには何もなくて操作できないので、^z ^c
として、新しい仮想端末を立ち上げる必要がある。分割した領域が不要になったら、 ^z X
として現在いる窓を閉じます。現在いる領域以外を閉じる場合は、^z Q
とすれば閉じられるようだ。これは便利!
puttyでログインしたら文字化け
putty(ごった煮版)でログインしたら文字化けしてしまった。そんなときは、以下のように -U をつけて起動すると強制的にUTF-8にしてくれるようで、文字化けしなくなった。
$ screen -U
GNU Screen いいですよね。
もうコレ無しではいられない身体になってしまいました。
ちなみに、自分は ^t 派。
ですね!
名前知ってたのに使ってなかった自分がアホみたいです(*´y`*)
ちょくちょく、 .screenrc の設定や便利な使いかたを学んでいきたいと思います〜