제1터미널의 su - admin
내 사용자 계정에서 , brew update
수정 등을 합니다 .bashrc
.
내 사용자 세션에서 런타임에 창 크기를 변경해도 nano
텍스트가 전혀 손상되지 않는 것으로 나타났습니다. 창 크기가 완벽하게 조정됩니다.
그러나 새 터미널 창을 열고 를 실행한 후 su - admin
크기 nano
를 조정하려고 하면 텍스트가 뒤섞여 복구할 수 없습니다. control-l
작동하지 않습니다.
관리자 계정으로 로그인한 상태에서 터미널을 열고 실행하면 nano
창 크기를 조정하는 데 아무런 문제가 없습니다. 텍스트가 뒤섞이지 않습니다.
반대에서도 같은 문제가 발생합니다. 내 관리자 계정에서 을(를) 사용 su - user
하고 실행 nano
하고 크기를 조정하면 텍스트가 깨집니다.
여기서 무슨 일이 일어나고 있고 어떻게 해결할 수 있는지 아시나요?
나노 4.9를 사용하고 있습니다.
답변1
이 질문에 선택된 답변이 있다는 것을 알고 있지만 설명서를 읽는 경우 필요한 것은 화면 새로 고침입니다. 다음을 사용하십시오.
^L
이것은
ctrl + L
어떤 이유로 버퍼가 손상된 경우 해당 버퍼를 몇 번 클릭해야 합니다.
답변2
터미널 에뮬레이터는 터미널 에뮬레이터로 시작된 셸에 창 변경 신호(SIGWINCH)를 보냅니다. 셸은 이를 자식에게 전달해야 합니다. 그러나 다른 사용자 계정으로 전환하면(사용 su
또는 다른 방법으로) 다른 사용자로 실행 중이기 때문에 해당 셸에 신호를 보낼 수 없습니다. 따라서 su
'd 셸과 여기에서 실행되는 모든 프로그램은 실제 창 크기가 변경되었다는 사실을 무시하고 이전 창 크기를 계속 사용합니다.
새 창 크기를 사용하도록 세션을 완전히 업데이트하려면 이 셸에서 실행 su
해야 합니다 . eval $(resize)
환경 변수 COLUMNS 및 LINES(이것이 eval
필요한 이유)와 터미널 설정( stty rows
및 명령과 동일 stty columns
)을 업데이트합니다. 대부분의 경우 resize
이 섹션이 필요하지 않아도 eval...
충분 하지만 일부 프로그램에는 환경 변수도 필요할 수 있습니다.