n コマンドの出力を並列表示

n コマンドの出力を並列表示

n個の与えられたコマンドの出力を並列に表示できるシェルコマンドはありますか?私はn個のログビューコマンド(ここでnは起動時に異なる場合があります)を持っており、その出力を並列に表示したいと思います。

tmux分割ビューのように見えますが、tmuxn個のコマンドを提供し、そのコマンドの統合された分割出力ビューを取得するのは難しいようです。

呼び出しは次のようにする必要があります(与えられたコマンドは役に立たないかもしれませんが、単なる例です)。 split_command_view "watch -n0.1 ls -la" "tail -F log.txt" "date"

この場合、画面を3つのサブ端末に分割してコマンド出力を表示する必要があります。

そんなことがありますか?

ありがとう

答え1

multitailこれはコマンドです:

multitail -l cmd1 -l cmd2

または、コマンドが完了した後もウィンドウが持続するようにするには、次のようにします。

multitail -l 'cmd1; sleep inf' -l 'cmd2; sleep inf'

sleepサポートしていない場合はinf非常に大きな整数に変更できます)。

答え2

tail一度に複数のファイルを表示する機能はサポートされていますが、端末をそのように複数のウィンドウに分割することはありませんtmux

tail -f /var/log/syslog /var/log/auth.log

答え3

方法は、プロセスを別のTTYに出力することです。現在のttyの名前を知りたい場合は、を入力してくださいtty。それはあなたに例を与えます/dev/pts/0。その後、次のコマンドを実行できます。

tail -f /permanent.log > /dev/pts/0 &

最後に、&より多くのコマンドを実行できるように、プロセスをバックグラウンドで送信します。プロセスを再開するには、jobsコマンドを使用できますfg

関連情報