데스크톱 환경에서는 터미널 크기를 조정할 수 있습니다(그놈 터미널예를 들어) 우리의 편의를 위해.
터미널의 픽셀 크기나 열 및 행 수를 어떻게 알 수 있나요?
답변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