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
.