답변1
무엇이 이 메시지를 생성했는가
이는 Bourne Again 쉘에 의해 생성되지 않습니다. 이것은 Tilda가 만든 것이 아닙니다.
이는 ps
다음 명령으로 생성 됩니다.procps 도구 세트성능이는 set_screen_size()
기능 을 확인합니다.. 이 ps
명령을 사용하려면 콘텐츠를 합리적으로 표시하려면 터미널 장치가 최소 9열 x 2행이어야 합니다. 어딘가에서, 당신은 그것을 모르고 전화하고 있습니다 ps
.
이 ps
명령은 표준 I/O 파일 설명자에 연결된 터미널 장치(라인 규칙)에서 직접 터미널 크기를 가져오고 해당 값이 올바른 숫자인 경우 환경 변수로 재정의할 수 있습니다 COLUMNS
. 다음을 실행하여 결정을 내릴 수 있도록 명령에 표시되는 내용을 확인할 LINES
수 있습니다 .ps
stty 크기; printenv 열 행다음 명령을 실행하여 다리를 당겨볼 수 있습니다
ps
.열=65535행=1ps
COLUMNS
환경 변수 를 어리석은 131072×1 값으로 설정 한 경우 LINES
(의 출력에 표시된 대로) printenv
이 작업을 수행하지 마십시오. ☺ 그러나 의 출력에서 볼 수 있듯이 최종 장치 자체는 이 크기를 보고할 가능성이 더 높습니다 stty
. (Bourne Again 셸이 수행하는 모든 작업은 checkwinsize
이러한 셸 변수의 값을 설정하는 것뿐입니다. 내보내지 않으면 이러한 변수는 ps
터미널 장치의 보고된 크기에 관계없이 해당 환경의 명령에 전달되지도 않습니다. checkwinsize
마찬가지입니다. 청어의 경우 환경 변수가 의미가 없으면 단말 장치는자체가보고말도 안 돼요, 후자는 해결해야 할 근본적인 문제입니다. )
그렇기 때문에 Tilda에게 잘못이 있을 수 있다는 메시지는 생성되지 않았습니다. 최종 장치 크기는 공유 리소스이며 최종 장치에 대한 열린 파일 설명자가 있는 모든 항목은 ioctl()
시스템 호출을 통해 임의로 변경될 수 있습니다. 하지만 그것은관례에 따르면설정, 소프트웨어 사용 시나리오터미널 에뮬레이션 프로그램Tilda와 마찬가지로 에뮬레이션을 표시하는 GUI 창의 크기가 변경될 때 터미널 에뮬레이터 프로그램에 의해 실행됩니다. 터미널 에뮬레이터 프로그램은 GUI 크기 조정 이벤트를 가져와 이를 열과 행으로 변환하고 이를 사용하여 장치 크기를 설정합니다 ioctl()
.
그렇다고 다른 것들이 이 쓰레기에 적합하지 않다는 말은 아닙니다. 결국 설정할 수 있습니다당신 자신의미 없는 크기에 도달하려면 다음 명령을 실행하십시오.
stty 열 1행 65535
우리는…
단말 장치 크기를 재설정하는 방법
최종 장치에서 보고한 크기가 의미가 없는 경우:
- GUI 터미널 에뮬레이터를 사용하는 경우 열/행별로 GUI 크기를 왼쪽과 오른쪽으로 조정합니다. 그러면
ioctl()
터미널 크기가 적절한 값으로 트리거되고 설정됩니다. - 크기를 보다 합리적인 값으로 설정합니다(예:).
stty 열 80 행 25
reset
명령을 사용하십시오 .reset
최종 장치 크기 외에도 많은 다른 사항이 설정되어 있습니다 .- 터미널 에뮬레이터가 DEC VT340/VT420과 호환되는 경우 적절한 DECSCPP 및 DECSLPP/DECSNLS 제어 시퀀스를 직접 실행하거나Nosh 도구 세트~의
console-resize
(일명resizecons
) 이를 발행하는 명령:80x25 크기 조정