내 터미널에 몇 개의 열이 있는지 빠르게 확인하려면 어떻게 해야 합니까? [복사]

내 터미널에 몇 개의 열이 있는지 빠르게 확인하려면 어떻게 해야 합니까? [복사]

창 크기 조정, 글꼴 크기 변경 등 후 터미널의 현재 표시 너비가 얼마인지 쉽고 빠르게 확인하는 방법은 무엇입니까?

답변1

이 질문은 여러 번 답변되었으며 부정확했습니다. 하지만:

  • tput cols운영 체제가 알려줄 수 있는 너비에 대한 정보를 제공합니다.

  • COLUMNS변수는 쉘에서 설정할 수 있지만 (a) 신뢰할 수 없으며(일부 쉘에서 설정) 내보낼 경우 단점이 있습니다.~ 할 것이다전체 화면 응용 프로그램을 방해합니다.

  • 이것resize프로그램은 터미널이 운영 체제와 창 크기를 협상할 수 없는 특별한 경우의 크기를 알려줄 수 있습니다.

추가 자료:COLUMNSncurses 매뉴얼 페이지에서.

답변2

쉘에 따라 COLUMNS창 크기가 변경되면 ( 및 ) 변수가 자동으로 설정될 수 있습니다. LINESbash, zsh, ksh 모두 사용 가능합니다. 대시 번호. tcsh는 그렇지 않습니다.

에서 man bash:

COLUMNS는 선택 목록을 인쇄할 때 터미널 너비를 결정하기 위해 복합 선택 명령에서 사용됩니다. checkwinsize 옵션이 활성화된 경우 또는 SIGWINCH를 받은 후 대화형 셸에서 자동으로 설정됩니다.

그리고

인쇄 선택 목록의 열 길이를 결정하기 위해 select complex 명령에서 사용됩니다. checkwinsize 옵션이 활성화된 경우 또는 SIGWINCH를 받은 후 대화형 셸에서 자동으로 설정됩니다.

다음 별칭이 유용하다는 것을 알았습니다.

$ alias ttystat='echo $(tty) $TERM ${COLUMNS}x$LINES'
$ ttystat
/dev/pts/2 xterm 192x51

답변3

의심할 여지 없이 더 짧은 방법이 있지만 다음은 POSIX 지정 유틸리티 외에는 아무것도 사용하지 않고 빠른 대화형 검사를 수행합니다.

printf '0123456789\n1234567890\n' | sed '1s/./&&&&&&&&&&/g;1s/^.//;2s/.*/&&&&&&&&&&/'

명령을 실행하고 디스플레이 오른쪽 끝에 있는 숫자를 읽습니다. 이것을 두 자리 아래로 읽으면 열 수를 알 수 있습니다.

72열 터미널의 샘플 출력(표시됨):

$ printf '0123456789\n1234567890\n' | sed '1s/./&&&&&&&&&&/g;1s/^.//;2s/
.*/&&&&&&&&&&/'
000000000111111111122222222223333333333444444444455555555556666666666777
777777788888888889999999999
123456789012345678901234567890123456789012345678901234567890123456789012
3456789012345678901234567890
$

관련 정보