bash 기록을 통해 액세스할 때 화면에서 긴 명령의 시작 부분이 잘립니다.

bash 기록을 통해 액세스할 때 화면에서 긴 명령의 시작 부분이 잘립니다.

저는 OS X Lion에서 bash와 screen의 기본 버전을 사용하고 있습니다.

스크린 세션에 있는 동안 bash 기록을 뒤로 스크롤하여 끝낼 수 있을 만큼 긴 명령을 확인했습니다.

몇 가지 명령을 입력하여 시작할 수도 있습니다.

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/

위에서 설명한 대로 올바르게 래핑되지만 bash 기록을 통해 액세스하기 위해 위쪽 키를 누르면 콘솔에 다음만 표시됩니다.

83279836214c0.144847759343/

따라서 프롬프트와 명령의 첫 번째 줄 전체가 손실되어 편집이 어려워집니다. 첫 번째 줄로 다시 스크롤하면 표시되지만 출력의 마지막 줄을 덮어씁니다. 명령을 실행하면 첫 번째 줄의 나머지 부분이 표시되고 모든 것이 예상대로 보입니다.

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$ 

더 궁금한 점은 기록을 사용하여 긴 명령에 액세스했지만 아직 실행하지 않은 경우, C-a다른 창으로 전환했다가 다시 돌아가는 것과 같은 화면 명령을 사용하거나 현재 터미널 창을 클릭하고 다시 돌아오는 경우 기록 명령 이제 다시 올바르게 표시됩니다.

세상에 PS1='\u@\h:\w$ ', 이상한 일은 없었어요.

히스토리를 사용할 때 전체 명령을 올바르게 표시하는 방법이 있습니까? 화면 감싸기 설정을 사용해 보았지만 상황이 더욱 악화될 뿐입니다.

stty -a보여주다:

speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;

답변1

위 의견의 답변에 따르면 시작 스크립트 중 하나에서 TERM을 덮어쓰는 것으로 보입니다. 화면 내부에서는 용어를 "xterm-256color"가 아닌 "screen"으로 설정해야 합니다.

쉘 시작 스크립트를 확인하겠습니다. ~/.bashrc, /etc/bash/bashrc 및 모든 설정 방법에 따라 ~/.bash_profile 및 /etc/profile과 같은 다른 항목도 가능합니다. TERM="..." 설정이 표시되면 해당 설정을 제거해야 합니다.

관련 정보