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.

관련 정보