GNU screenで全ウィンドウでコマンドを実行する方法の紹介です。

shellの設定ファイルを修正した際に
すべてのウィンドウに反映させたい時等に便利です。
ex) $allwindow source .zshrc

コマンドライン

$screen -X at # "ls -alt"

シェルスクリプト
vim allwindow

#!/bin/sh
com=$@
usage="$0 <command>"
if [ -z $com ] then;
    echo $usage
else
    screen -X at \# "$con"
fi

・参考
http://www.linux.or.jp/JM/html/GNU_screen/man1/screen.1.html

at [identifier][#|*|%] command [args ... ]

他の画面やウィンドウで (あたかもそこで入力したかのように) コマンドを実行する。 "at" はコマンドのコンテクスト (「現在のウィンドウ」や「現在の画面」の設定) を変更する。最初のパラメータでコンテクストがひとつに定まらない場合には、そのコマンドは複数回実行される。最初のパラメータが `identifier*' の形式ならば、ユーザ名に対して identifier のマッチを試みる。指定されたコマンドは、選択されたユーザ (複数可) の画面それぞれにおいて 1 度ずつ実行される。最初のパラメータが `identifier%' の形式ならば、画面に対して identifier のマッチを試みる。画面の名前はアタッチしている tty に基づいて付けられる。プレフィックス `/dev/' や `/dev/tty' は identifier から省略できる。 identifier に `#' が付いた (あるいは末尾に何も付いていない) 場合は、ウィンドウ番号とタイトルにマッチする。`*', `%', `#' 文字の前に置く識別子を省略すると、すべてのユーザ、画面、ウィンドウが選択される。 影響を受ける画面 (複数のこともある) では、起こったことが短いメッセージで表示される。 "at" コマンドの実行者に対しては権限のチェックが行なわれ、影響される画面の所有者に対しては行なわれない。'#' 文字の後に空白文字が置かれるとコメントの開始になるが、これは '\' を前置することでエスケープできる。
注意: ウィンドウに対するマッチでは、コマンドは各ウィンドウで最低 1 回は実行される。ウィンドウの内部順序を変更するようなコマンド ("other" など) は、複数回呼び出されるかもしれない。共有ウィンドウでは、コマンドはアタッチしている画面ごとに繰り返される。 "login" のような、状態をトグルするコマンドを実行するときには注意すること! コマンドによっては、対象ウィンドウがディスプレイに関連づけられていないと機能しないものがある ("process" など)。これらのコマンドは、"at" でウィンドウを巡回させる場合には機能しないかもしれない。