n個の与えられたコマンドの出力を並列に表示できるシェルコマンドはありますか?私はn個のログビューコマンド(ここでnは起動時に異なる場合があります)を持っており、その出力を並列に表示したいと思います。
tmux
分割ビューのように見えますが、tmux
n個のコマンドを提供し、そのコマンドの統合された分割出力ビューを取得するのは難しいようです。
呼び出しは次のようにする必要があります(与えられたコマンドは役に立たないかもしれませんが、単なる例です)。
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
。