Linux/screenの機能で履歴をスクロールして見るには
こんにちは。匠技術研究所の谷山 亮治です。
今日は「screenの機能で出力履歴をスクロールする」方法を紹介します。
screenはLinux等様々なUNIX由来の基本ソフトを操作する際に便利な、キャラクタ端末内で複数の画面を持つためのコマンドです。多くの場合、デフォルトでは入っていないのでインストールする必要があります。
日常のサーバー管理ではscreenに慣れると「何故もっと早くに使い始めなかったんだろう」と感じること請け合いです。ただ、取っつきは悪いので、慣れるまでにはある程度修練が必要です。
screen上で仕事をすると、手元の端末ソフトを「×」や「終了」で終了しても、作業は継続されます。再度ログインして継続動作中のscreenに再接続すると、手元の端末ソフトを終了したシェルが仕事を続けています。その為、時間がかかる処理を走らせたまま、安全に一旦離れることができます。
このscreenで表示された様々なテキスト情報を、手元のPC上のドキュメントに貼り付ける際は、いわゆるコピペをします。しかし、screenではキャラクタ端末画面を切り替えながら作業を進めるので、裏側で走っているプログラムの画面出力など、コピペしたい情報が手元の端末ソフト(PuTTY,TeraTerm等)のスクロールバッファにないケースが出てきます。
それを改善するのが、以下の設定と操作です。コマンドライン行の履歴をマウスでクリクリと行き来する設定も入っています。
1.~/.screenrcに設定
nanoエディタなどで編集します。私の環境では新たにファイルを作りました。
[root@okavms ~]# cat ~/.screenrc
termcapinfo linux ti@:te@
termcapinfo xterm ti@:te@
termcapinfo xterm-color ti@:te@
defscrollback 1024
2.反映する
screenを起動するか
$ reset
でscreenを初期化します。
3.コマンドを実行する
普通に操作します。
4.画面出力の履歴を遡る
screenのデフォルト設定でのキー操作です。
4.1.スクロール可能なモードに遷移
[CTRL]+[A] + [ESC]
で画面がCopyモードに遷移します。
4.2.スクロールとスクロール終了
[↑]キーでカーソルが移動できます。端末の一番上まで行っても押し続けると過去の履歴が見えてきます。
[PageUP]/[PageDown]で大きくスクロールすることができます。
このモードを抜けるには
[ESC]
5.過去の履歴を保持する行数
過去の履歴を保存する行数は設定中の
defscrollback 1024
の数字を調整します。
これで、長時間の作業履歴も失うことはありません。安心して離れることができます。