今回は、Cygwinで最新のGNU Screenをインストールしてターミナルの画面を縦分割、横分割を行ってみます。
Cygnus Solutions社(現在ではRed Hat社の一部門)が開発したWindows用の開発ツールのセットで、GNU Cygnus Windows から名づけられています。
なんといっても、Microsoft のWindows上で動作するUNIXライクな環境としては、代表的なフリーソフトです。 ライセンスが、GNU GPL version 2で提供されていて Cygwinで作成されたアプリケーションは、GNU GPL2に準拠する必要があります。
ただ、利用する分には、何も問題ありません。それを配布しようとするとGNU GPL2が適用されソースコードの開示が求められます。
GNUによって開発されたフリーな端末多重接続ソフトウェアで、 screenコマンドを使うと、1つのターミナルで複数のスクリーン(ウィンドウ)を開き、ウィンドウを切り替えることができます。
一般にWindowsのターミナルで有名なTeraTermなどの画面分割ができるようになるソフトウェアです。
- 目次
- 履歴
2013年1月25日 初版
GNU Screenをインストール
まずは、GNU Screenをインストールします。
Cygwin でデフォルトでインストールできるのは、バージョンが4.0で縦分割できません。(横分割はできます。)
縦分割ができるのは、バージョンが4.1以降になります。このバージョンは、開発バージョンですから、自力でインストールしなければなりません。
そのため、GNU Screenをソースコードからコンパイルすることになります。
ちょっと敷居が高そうですが、環境さえ整えれば、インストールできますので、ちょっとやってみます。
- Cygwin環境にgcc4をインストールします。
$ apt-cyg install gcc4 ...
apt-cygは、Debian系のaptコマンド(CentOSではyumに相当)と ほぼ同じようにパッケージのインストール、アンインストールすることができるcygwinツールです。
Bashスクリプトファイルなので、簡単にインストールできます。
$ svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/ $ chmod +x /bin/apt-cyg
インストールを終えたら、デフォルトで gcc → gcc4 を使用するように設定しておきます。
$ set-gcc-default-4.sh
- 必要なライブラリとツールをインストールします。
GNU Screenをインストールするのに必要なライブラリ、ツールは以下のとおりです。
- autoconf – Autotools(ソフトウェアパッケージ開発を行うための、ツール及びフレームワーク)の中の1つのツールで、configureの自動化を行うためのツールです。
- automake – Autotools(ソフトウェアパッケージ開発を行うための、ツール及びフレームワーク)の中の1つのツールで、Makefileの自動化を行うためのツールです。
- libncurses-devel – 端末に依存しない形式でテキストユーザインタフェース(TUI)を作成するためのAPIを提供するライブラリです。
この3つをインストールします。やり方は、上記のgccと同じように apt-cyg を使ってインストールするだけです。
$ apt-cyg install autoconf automake libncurses-devel ...
- GNU Screen を環境一式をダウンロードします。
# GNU Screen の環境一式をgitでダウンロードします。 $ git clone git://git.sv.gnu.org/screen.git ... # screen というディレクトリが自動的に作成され、そこに最新のソースコード一式がダウンロードされます。 $ ls screen
- GNU Screen をmakeしてインストールします。
Cygwin 1.7 + Windows 8では、makeでやたらとエラーが出力されることがあります。
(1.7.17-1 の時点では、Windows8 上で 少なくとも fork() を使うツール( 例 Make )が異常終了してしまう。 出典:Wikipedia)
bash なら、以下のように環境変数のLANGを暫定的にCにしておきます。インストールを終えたら、”ja_JP.UTF-8″ へ戻しておきましょう。$ export LANG=C
# screenのディレクトリへ移動します。 $ cd screen/src # screenの環境設定を行います。 # screenをmakeする環境が整備されているかチェックされます。 [screen/src]$ ./configure this is screen version 4.1.0 checking for prefix by checking for screen... /usr/bin/screen checking for gcc... gcc ... configure: checking whether memcpy/memmove/bcopy handles overlapping arguments... checking for long file names... yes ... config.status: executing default commands Now please check the pathnames in the Makefile and in the user configuration section in config.h. Then type 'make' to make screen. Good luck. # configure でMakefileが作成されますから、あとは、makeするだけです。 [screen/src]$ make CPP="gcc -E -DETCSCREENRC='"/usr/etc/screenrc"' -DSCREENENCODINGS='"/usr/share/screen/utf8encodings"'" srcdir=. sh ./osdef.sh AWK=gawk CC="gcc -g -O2 -D_GNU_SOURCE" srcdir=. sh ./comm.sh AWK=gawk srcdir=. sh ./term.sh ... gcc -o screen screen.o ansi.o fileio.o mark.o misc.o resize.o socket.o search.o tty.o term.o window.o utmp.o loadav.o putenv.o help.o termcap.o input.o attacher.o pty.o process.o display.o comm.o kmapdef.o acls.o braille.o braille_tsi.o logfile.o layer.o list_generic.o list_display.o list_window.o sched.o teln.o nethack.o encoding.o canvas.o layout.o viewport.o -lcurses -lutil -lcrypt # 最後にインストールします。 [screen/src]$ make install ./etc/mkinstalldirs /usr/bin /usr/share/screen/utf8encodings cd doc ; make installdirs ... termcap entry (./terminfo/screencap) should be installed manually. You may also want to install ./etc/etcscreenrc in /usr/etc/screenrc # ちゃんとインストールできたか確認します。 [screen/src]$ which screen /usr/bin/screen [screen/src]$ screen -v Screen version 4.01.00devel (GNUcbaa666) 2-May-06
GNU Screen を使ってみる
GNU Screen の使い方は、奥が深いです。
ここでは、画面の縦横分割の基本的な事項のみを解説します。
- screenを実行します。
プロンプトから、screenと入力して、実行するだけです。
実行すると何の変哲もないシェルが起動されました。本当にscreenが起動したのかよくわからないような状態ですが、起動しています。たぶん。
- 画面を横分割します。
デフォルトの設定なら、
Ctrl + a をタイプした後、S (大文字のS)をタイプします。
- 画面を縦分割します。
デフォルトの設定なら、
Ctrl + a をタイプした後、| (英字のLではなくバーティカルバー(縦棒))をタイプします。
分割画面のフォーカスを移動するには、
デフォルトの設定なら、
Ctrl + A をタイプした後、Tab キーで移動します。
デフォルトの設定のままなら、画面分割しても何も表示されません。そこで分割した画面へフォーカスを移動させ新しくシェルを起動してみます。
新しくシェルを起動するには、
デフォルトの設定なら、
Ctrl + a をタイプした後、c (小文字のc)をタイプします。
これをすべての分割画面で行えば、それぞれの画面でパラレルに実行させることができます。
このscreenは、ほとんどのターミナルが対応できていますので、同じように画面分割を行うことができます。
以下は、Cygwinデフォルトのターミナルであるminittyでの画面分割の様子です。
- screenを終了します。
デフォルトの設定なら、
Ctrl + a をタイプした後、:quit とタイプし、最後にEnterでscreenを終了します。
(おまけ)デフォルトキー設定
以下は、参考までにデフォルトのキー設定です。
()内は、 “:” 以降にタイプ可能なコマンドイメージです。
C-a : Ctrl + a の略です。
screenは起動時にホームディレクトリの .screenrc を読み込みます。
.screenrc には、上記のキーマップの変更から、画面の設定、初期動作の設定など細かい設定ができます。
今更 screen でもないと思いますが、Cygwinでは、tmuxが動かないらしいので screen を動かしてみました。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :