개방형 터미널의 치수 찾기

개방형 터미널의 치수 찾기

데스크톱 환경에서는 터미널 크기를 조정할 수 있습니다(그놈 터미널예를 들어) 우리의 편의를 위해.

터미널의 픽셀 크기나 열 및 행 수를 어떻게 알 수 있나요?

답변1

명령을 내리면

stty size

현재 터미널의 행과 열 크기를 반환합니다. 예:

$ stty size
24 80

이와 같은 변수로 행과 열을 읽을 수 있습니다(감사합니다재니스의 코멘트):

$ read myrows mycols < <(stty size)

픽셀 크기를 얻으려면 화면 해상도에 대한 지식이 필요하며 stty그러한 정보에 직접 접근할 수 있는 방법은 없다고 생각합니다.

답변2

tput cols; tput lines

그러면 열과 행이 표시됩니다.

답변3

안에데스크탑 환경, X를 사용하고 있으며 xwininfo유틸리티는 창 크기를 픽셀 단위로 표시할 수 있습니다. 또한 데스크톱에서 실행 중인 경우(예: 원격으로 연결되지 않은 경우) 터미널 에뮬레이터는 $WINDOWID인수로 사용할 수 있는 변수를 제공합니다 xwininfo.

xwininfo -id $WINDOWID

목록을 가져옵니다.

xwininfo: Window id: 0xc00025 "uxterm"

  Absolute upper-left X:  65
  Absolute upper-left Y:  167
  Relative upper-left X:  0
  Relative upper-left Y:  22
  Width: 624
  Height: 577
  Depth: 24
  Visual: 0x22
  Visual Class: TrueColor
  Border width: 1
  Class: InputOutput
  Colormap: 0x21 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +65+167  -589+167  -589-256  +65-256
  -geometry 103x42+65+145

Width이 예에서 행 Height크기는 및 입니다.픽셀. 마지막 줄은 다음과 같은 -geometry치수를 제공합니다 .수치(그리고 왼쪽 상단 모서리의 위치 - 픽셀 단위).

에 대해 이야기하다크기 조정창에 resize프로그램은 행과 열의 수를 표시합니다. 이 예에서는 다음과 같이 표시됩니다.

$ resize
set noglob;
setenv COLUMNS '103';
setenv LINES '42';
unset noglob;

질문에는 정보를 사용하는 방법이 나와 있지 않지만 출력은 예측 가능한 형식의 텍스트이므로 스크립트 작성이 쉽습니다. 다음은 awk를 사용하는 간단한 예입니다.

#!/bin/sh
if [ -n "$WINDOWID" ]
then
    xwininfo -id $WINDOWID | awk '
    BEGIN { px = 0; py = 0; chars = "?x?"; }
    /Height:/ { py = $2; }
    /Width:/ { px = $2; }
    /-geometry/ { chars = $2; sub("+.*","",chars); }
    END { printf "%dx%d pixels, %s chars\n", py, px, chars; }'
else
    printf '? no WINDOWID found\n'
fi

인쇄

577x624 pixels, 103x42 chars

관련 정보