실제 터미널

실제 터미널

저는 FreeBSD를 사용하고 있습니다.

콘솔 너비를 설정하고 싶습니다(ssh나 telnet이 아닌 콘솔만).

나는 다음 명령을 사용했습니다.

stty cols 132

이는 콘솔에만 적용됩니까, 아니면 모든 연결(콘솔, SSH 및 텔넷)에 적용됩니까?

답변1

stty터미널은 실제로 크기가 조정되지 않습니다. 선 규칙에 기록된 일부 값만 변경합니다. 터미널 디스플레이의 실제 높이와 너비 변경은 콘솔 장치가 실제 터미널인지, 커널 가상 터미널인지, 사용자 공간 가상 터미널인지에 따라 달라지는 메커니즘을 통해 수행됩니다.

실제 터미널

콘솔은 직렬 장치에 연결된 실제 터미널이 될 수 있습니다. 이 경우 터미널에 디스플레이 크기를 조정하도록 지시하려면제어 순서어떤 형태는 전선을 통해 터미널까지 연결됩니다. 이 제어 시퀀스의 내용은 터미널 유형에 따라 다릅니다. 게다가 이를 쉽게 제공하는 termcap 기능도 없습니다.

대개, 그러나 직렬 회선의 다른 쪽 끝에 어떤 터미널이 실제로 소유되어 있는지에 따라 항상 달라지는 것은 아니며 터미널은 DEC VT340 이상이 따르는 DEC 개인 제어 시퀀스를 따릅니다: DECSLPP/ DECSNLSDECSCPP.스낵 도구 세트console-resize(일명 ) resizecons명령은 다음을 실행합니다.

$ 80x25 크기 조정

대부분의 실제 터미널은 실제로 구현할 수 있는 열과 행 조합을 사전 정의된 터미널 크기의 다소 제한된 집합으로 제한합니다. 예를 들어, DEC VT는 전통적으로 80개 또는 132개의 열만 지원했습니다.

이는 실제 터미널의 경우입니다. 터미널의 표시 크기를 변경한 후 를 실행하여 선 규칙의 터미널 크기 개념을 명시적으로 업데이트해야 합니다 stty. 라인 규율은 제어 시퀀스에 대해 아무것도 모르고 최종 장치 자체는 라인 규율에 영향을 미칠 수 없으며 실제로 운영 체제와 통신하고 있다는 사실을 알지 못합니다.가지다라인 규율과 같은 개념.

사용자 공간 가상 터미널

nosh 도구 세트의 사용자 공간 가상 터미널은 동일한 DEC 개인 제어 순서를 따르며 명령을 사용하여 유사하게 조정할 수 있습니다 console-resize. 실제 터미널과 마찬가지로 제어 순서가 변경될 때까지 항상 동일한 모드에서 시작됩니다. 실제 터미널과 달리 대체하도록 설계된 커널 가상 터미널과 마찬가지로 많은 실제 터미널의 80×24 모드가 아닌 80×25 모드로 부팅됩니다.

stty또한 실제 터미널과 달리 커널 가상 터미널과 유사하게 크기 변경 작업이 선 규칙 자체를 업데이트하므로 터미널에 크기를 변경하라고 지시한 후 선 규칙을 업데이트하기 위해 호출할 필요가 없습니다 .

실제 터미널 및 커널 가상 터미널과 달리 2×2에서 65535×65535까지 제어 시퀀스에 허용되는 더 넓은 범위의 크기를 지원합니다.

그러면 커널 가상 터미널이 나타납니다.

커널 가상 터미널

이는 커널 자체에 내장된 터미널 에뮬레이터에서 제공됩니다. 그것은 당신이 순진하게 생각하는 것일 수도 있습니다.생각하다매뉴얼을 읽고 콘솔(커널 진단 및 추적 출력과 출력이 전송되는 위치로 정의됨 ) 이 커널 가상 터미널인 /dev/console직렬 장치( )의 실제 터미널이 될 수 있다는 것을 깨닫기 전까지는 "콘솔"이 됩니다. comconsole( vidconsole), 아니면 아무것도 없는 것( nullconsole).

제어 시퀀스에 의해 조작되지 않고 대신 터미널 장치를 열고 장치별 ioctl()요청을 수행합니다. 다행스럽게도 보다 일반적인 ioctl()요청 중 일부를 래핑하여 자체 프로그램을 작성하지 않고도 액세스할 수 있게 해주는 도구가 있습니다 .

로그인 세션에서변경하려는 커널 가상 터미널에서자체적으로 또는 이러한 터미널 장치에서 리디렉션된 표준 입력을 사용하여:

  1. 사용 가능한 모드 목록을 가져옵니다.

    $ vidcontrol -i 모드
  2. 적절한 행과 열로 스키마를 결정합니다. 내 컴퓨터 중 하나(이 컴퓨터)에서 글꼴은 8×16이고 열 160개와 행 64개입니다.

    283 (0x11b) 0x0000001f G 1280x1024x32 D 8x16 0xa0000 64k 64k 0xf1000000 5120k
  3. 이 모드로 변경:

    $비디오 제어 MODE_283
  4. 부트스트랩에서 위 명령을 실행하여 이 크기 조정을 지속되게 만드세요.

    # sysrc allscreens_flags=MODE_283

크기 선택은 이전 syscons 또는 새로운 vt 커널 터미널 에뮬레이터를 사용하는지 여부와 아날로그 디스플레이를 지원하는 디스플레이 어댑터에 대한 지식에 따라 달라집니다.

추가 읽기

관련 정보