fc2ブログ

分割できるターミナルterminatorでプログラムの自動実行 - TK's HP

TK's HP ホーム » linux » 分割できるターミナルterminatorでプログラムの自動実行

分割できるターミナルterminatorでプログラムの自動実行

友人からターミナルの画面が分割できて便利!ということでterminatorを進められました。

こんな感じでターミナル分割できます。
Screenshot-terminator.png

見せられた分割の仕方が変で、気持ち悪いとか思っていたのですが、別の理由で使いやすかったので紹介しておきます。


別の理由というは、プログラムを自動実行できること。
(バージョンによってはできないようです。私の環境はUbuntu10.04でterminatorは0.93です)
gnome-terminalでも自動実行できるのですが、1つのターミナルで複数のタブを開いてプログラムを自動実行しようとするとshellスクリプトを作成しないといけなかったりと面倒です。
また、頑張った割に何かしらエラーを出して止まる気がします。

その点terminatorではある程度GUIで制御できるので、便利だったりします。


以下、具体的な使い方の紹介です。

インストール


$ sudo apt-get install terminator

Ubuntuならこれだけでインストールされました。

基本的な使い方


基本的にはUbuntuの通常のターミナルのgnome-terminalと一緒です。
新しいTabも Ctrl+Shift+T で作ることができます。
新しいWindowは Super(Windows)+I です。

ウインドウの分割は
水平分割は 右クリック+Split Horizontally または Ctrl+Shit+O
垂直分割は 右クリック+Split Vertically または Ctrl+Shit+E
でできます。

分割したウインドウ間の移動は、 Alt+方向キー です。

タブで作ったときと違い、全てのターミナルの動きを全て見ることができるので便利です。


レイアウトの保存


分割の仕方ですが、毎回分割するのが面倒です。
右クリック→Preferences→Layoutsのタブ
を選択し、追加をクリックし、名前を入れれば保存できます。
Screenshot-terminator-1.png


保存したレイアウトで起動するには

$ tarminator -l LAYOUT_NAME

でLAYOUT_NAMEのレイアウトで起動します。

バージョン0.93では切り分けた位置が保存できませんが、直接リポジトリからダウンロードすれば直ると思います。


プログラムの自動実行


プログラムを自動実行するには、先ほどのレイアウトの保存のところで、Terminalとある行をクリックするとCustom commandが入力できるようになるので、実行したいプログラムを書き込みます。


cd workspace/test; sleep 1; ./test arg1 arg2 arg3; echo ./test arg1 arg2 arg3; bash;



この例では、まず workspace/test に移動して、1秒待機し、testプログラムを実行しています。

ここでポイントとなるのが、
  • 普通にターミナルで実行するときのように';'を使って、複数のプログラムを連続して実行すること
  • sleepで待機
  • 終わったらechoで実行したプログラムを表示
  • 最後にbashを実行<

の4点です。

普通のターミナルで1行で実行するときのように';'を使うと複数のプログラムを連続で実行できます。
'&&' や '|'のようなものもたぶん使えます。

複数のプログラムを実行する場合は、それらのプログラムの依存関係を満たすようにsleepを使って実行を待機します。
同時に実行して良い場合ならいりませんが、同時だとよろしくないことが起こりやすいので、少しは待たせると良いと思います。
この例では1秒ですが、sleepコマンドの引数は浮動小数点なので、0.5とかでもOKです。

echoで実行したプログラムを表示している理由は、終了した後にもう1度実行しようとしてもヒストリーが残っていないので、打ち直さないと実行できないからです。
echoで表示しておけば、コピペで再度実行できます。
引数が多いプログラムとかだと、面倒なので、やっておくと便利です。

最後にbashをつける理由ですが、何かプログラムが実行されていないとウインドウが閉じます
bashを実行することで、終了してもウインドウが開いたままにできるので便利です。
ただし、プログラムをCtrl+Cで止めた場合は、プログラムでsignal処理でSIGINTをキャッチしないとウインドウに対してCtrl+Cを実行することになるので、ウインドウが閉じてしまうので、プログラム中では必ずsignal処理をしていないといけません。


設定ファイル


設定ファイルは以下にあるので直接いじるのもありです。

.config/terminator/config




参考サイト


https://launchpad.net/terminator
http://www.tenshu.net/terminator/
http://old.ikoinoba.net/index.php?UID=1235895876
関連記事
記事に間違いなどがあればすぐに訂正いたしますので、コメントしてください。
コメント
非公開コメント

トラックバック

http://tclip.blog.fc2.com/tb.php/96-881bdda3