Linux에서 실행되는 제품 중 하나를 관리하기 위해 사용자 정의 된 쉘을 가지고있는 회사에서 일 했었고이 쉘의 주요 기능을 복제하려고합니다.
모든 작업은 백그라운드 프로세스에 의해 수행되었으며 로그의 출력은 연결된 모든 사용자에게 표시됩니다.
통나무는 배경에서 껍질까지 뻗어 있으며 프롬프트 줄은 항상 맨 아래에 완벽하게 유지됩니다.
예를 들어
Log line 1
Log line 2
Log line 3
![ROOT@PRODUCT51-LIVE]:~/ #
bash 로이 작업을 수행하는 방법은 사용자 .bashrc 파일에서 분리 된 꼬리를 시작하는 것이었지만 명령의 출력이 stdout으로 전송되면 bash 프롬프트 아래에 들어옵니다.
![ROOT@PRODUCT51-LIVE]:~/ #Log line 1
Log line 2
Log line 3
그리고 사용자는 Enter 키를 누르거나 CtrlC깨끗한 프롬프트 행 을 눌러야합니다 .
프롬프트가 항상 출력의 맨 아래로 이동하는 방법에 대한 아이디어가 없으며 운이 없기 때문에 Google에서 무언가를 찾기 위해 잘못된 용어를 사용하고 있다고 생각합니다. bash와 함께?
답변
다음은 tmux 또는 screen 또는 다른 프로그램을 사용하지 않고 필요한 것을 수행합니다. 프롬프트를 맨 아래에 유지합니다. “/ var / log / cron”을 필요한 파일로 바꾸십시오 :
#!/bin/bash
L=$(tput lines)
L1=${L}
(( L1-- ))
C=$(tput cols)
tput cup ${L} 0
tail -f /var/log/cron | while read line; do
tput sc
printf "\e[1;${L1}r\e[${L1};${C}f"
echo; echo ${line}
printf "\e[1;${L}r" && tput rc
done
이 키는 터미널의 ANSI 제어 문자입니다. 특히 새로운 스크롤 가능 영역을 설정하는 “\ e [x; y”문. 따라서 로그 파일의 각 줄을 읽을 때 창의 맨 아래 줄이 스크롤 가능 영역에서 제외되고 로그 파일의 줄이 삽입 된 다음 맨 아래가 다시 추가됩니다.
답변
대답은 화면 또는 tmux가 사용되었습니다
화면을 사용하여 구성하는 방법을 설명하겠습니다.
1) apt-get install screen
Ubuntu / Debian 또는 yum install screen
RedHat 파생물을 사용하여 화면을 설치하십시오 .
2) screen -S shell_and_logs
3) 다음 프레스 Ctrl+ a이어 S
(자본 S).
가로 화면이 나타납니다
4)를 눌러 Ctrl+는 a다음에 TAB
두 번째 분할 창으로 이동합니다이.
5) 여기에 다른 창을 만들려면 Ctrl+를 a눌렀다가 키를 눌렀을 때 명령 프롬프트가 표시됩니다.c
6) 당신은 눌러 두 번째 진열창의 크기를 조정할 수 있습니다 Ctrl+ a다음 입력 :resize
후 Lines:
나타납니다. 표시하려는 줄 수를 입력하십시오.
7) 마지막으로 Ctrl+ a와 +를 차례로 사용하여 창 사이를 전환 할 수 있습니다 TAB