プログラミング

GNU screen コマンドについて

linuxで使用できるscreenコマンドを活用すれば、一つのターミナルで複数のターミナルを仮想的に動かす事ができる。

 

screenコマンドを実行して、セッションを作成して、

「アタッチ」でそれに接続、 デタッチで接続解除

といったイメージで使う。

操作コマンド(主要なもの)

基本的な操作として、「 Ctrl + a 」(エスケープキーと呼ぶ。)を押してから、コマンドを入力する。

--- 
仮想ターミナルscreenの操作 

# screen起動 
$ screen 

# 新しいscreenを名前をつけて起動 
screen -S <name> 

# screenのリスト表示 
$ screen -ls 

# 起動中のscreenにアタッチする 
$ screen -x 

# デタッチしたsceenを再びアタッチする 
$ screen -r <name> 

例) 例えば、以下の一覧だったら、 
$ screen -ls 
There are screens on:
           1928.pty0.DESKTOP-4N4JKF9 (Dettached)
           234.pty0.DESKTOP-4N4JKF9 (Dead ???) 
Remove dead screens with 'screen -wipe'. 2 Sockets in /tmp/uscreens/S-moto.

$ screen -r 1928
で再びアタッチできる。

セッションが一つしかなければ、srceen -r だけでアタッチできる。

# 現在操作中のscreenをデタッチする
$ Ctrl + a d

--- 
仮想ターミナルscreenの中の、window(タブみたいなもの)の操作 

# 新規windowを作成 
$ Ctrl + a c 

# windowに名前をつける 
$ Ctrl + a A(ラージエー) 

# window の一覧を表示する 
$ Ctrl + a "(ダブルクォーテーション) 

# windowを縦2分割にする(ver4.02以降対応) 
$ Ctrl + a |(パイル) 

# windowを横2分割にする 
$ Ctrl + a S(ラージエス) 

# windowの分割をやめる 
$ Ctrl + a Q(ラージキュー) 

# 現在操作中のwindowを閉じる※windowはまだ起動したまま(推奨) 
$ Ctrl + a X(ラージエックス) 

# 現在のwindowを終了させる※windowは強制終了される(非推奨) 
$ Ctrl + a k 

# 起動中のwindowを全て終了させる 
$ Ctrl + a \(バックスラッシュまたは¥)

screen起動中の環境は、.screenrcで色々設定できる

ターミナルの下部に、現在立ち上げている仮想ターミナルをExcelのタブのように表示できたり、 表示色の設定を行ったり、新規で仮想ターミナルを立ち上げるときの流れを自動化させる設定を書く。

設置場所は、ホームディレクトリ。(motoユーザなら、/home/moto/ここ)

(参考)自分の設定は以下

screen起動中にマウスホイールで画面スクロールできるようにする設定

.screenrc に以下を入力する

termcapinfo xterm* ti@:te@

 

ABOUT ME
moto
約5年間勤めた公務員から転職しました。 日頃の学びをここにアウトプットしていきます。 御朱印集めと筋トレが好きです。