새로 설치된 AlmaLinux 9(Putty 사용)에서 LINES 및 COLUMNS 문제

새로 설치된 AlmaLinux 9(Putty 사용)에서 LINES 및 COLUMNS 문제

Almalinux 9에서 내가 해결할 수 없는 이상한 문제에 봉착한 것 같습니다.

LINES 및 COLUMNS 변수는 대화형 비로그인 쉘의 경우 전체 크기로 설정되어 있지만 대화형 로그인 쉘의 경우 전체 크기로 설정되지 않은 것으로 보입니다. 불행하게도 이는 사용자가 vim로그인 less할 때 일부 도구가 제대로 작동하지 않는 것처럼 보이는 부작용이 있습니다 man(제공된 VM에서 콘솔을 활성화하면 대화형 비로그인 루트 셸이 나타납니다 qemu-guest-agent).

이전 배포에서는 이 문제가 발생하지 않았으며 검색을 통해 이러한 값을 자동으로 설정하는 셸에 대한 일부 정보를 찾았습니다( bashv5.1.8을 사용하고 있습니다). 모든 대화형 셸에 대해 셸 옵션을 설정하여 이를 확인했지만 checkwinsize터미널 크기를 조정하려고 할 때 변경 사항이 표시되지 않습니다(분명히 이는 Putty 터미널과 Almalinux 9에만 영향을 미치는 것으로 보입니다).on/etc/bashrc

/tmp/size.sh내 문제가 무엇인지 보여주기 위해 각 세션에서 다음 별칭(위치)을 실행합니다 .

alias test_size="echo -e \
    \"login: \$(shopt -q login_shell && echo 'yes' || echo 'no') \
    \ninteractive: \$([[ -t 0 || -p '/dev/stdin' ]] && echo 'yes' || echo 'no') \
    \n\$(id) \
    \n\$(tty) \$TERM \${COLUMNS}x\${LINES} \
    \""

KVM의 기본 콘솔에는 올바른 전체 화면 크기(열 = 425, 행 = 79)가 있습니다.

bash-5.1# . /tmp/size.sh
bash-5.1# test_size
login: no
interactive: yes
uid=0(root) gid=0(root) groups=0(root) context=system_u:system_r:unconfined_t:s0
/dev/pts/0 putty-256color 425x79

비로그인 셸의 크기도 정확합니다.

bash-5.1# su test2
[test2@files01 /]$ . /tmp/size.sh
[test2@files01 /]$ test_size
login: no
interactive: yes
uid=1001(test2) gid=1001(test2) groups=1001(test2) context=system_u:system_r:unconfined_t:s0
/dev/pts/0 putty-256color 425x79
[test2@files01 /]$
exit

로그인 셸의 크기는 매우 작습니다(COLUMNS=80, LINES=24).

bash-5.1# su - test2
[test2@files01 ~]$ . /tmp/size.sh
[test2@files01 ~]$ test_size
login: yes
interactive: yes
uid=1001(test2) gid=1001(test2) groups=1001(test2) context=system_u:system_r:unconfined_t:s0
/dev/pts/0 putty-256color 80x24
[test2@files01 ~]$
logout

이것을 입력하는 동안 다른 컴퓨터의 터미널이 제대로 실행되고 크기 조정에 반응하는 것을 발견했습니다.

적절한 크기의 대화형 로그인 셸:

[root@files01 ~]# . /tmp/size.sh 
[root@files01 ~]# test_size
login: yes  
interactive: yes    
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023    
/dev/pts/1 xterm-256color 238x58 

이제 이것이 문제가 될 수 있다고 생각되지만 TERM=putty-256color동일한 터미널이 다른 배포에서도 작동할지는 확실하지 않습니다. 나는 Almalinux 9에서 사용 가능한 최신 버전인 것으로 보이는 terminfo를 ncurses-base-6.2-10.20210508제공했습니다 . putty-256color최신 ncursesterminfo(v6.4.20231202)를 사용하는 롤링 릴리스가 있으며 Putty를 사용할 때 올바르게 작동하고 크기가 조정됩니다.

내 질문은 올바른 전체 화면 크기를 얻고 checkwinsize로그인된 모든 터미널에서 작업하는 방법입니다. 다른 설치(주로 CentOS 7/8, Debian 10/11/12 및 OpenSUSE Tumbleweed)에서는 이 특정 문제가 표시되지 않습니다. 각 사용자에 대해 행 및 열 크기를 하드코딩하는 것을 피하고 싶습니다. 도움이 필요한 경우 추가 정보를 제공할 수 있습니다.

감사해요

관련 정보