쉘 출력은 명령 프롬프트 다음에 입력된 텍스트에 어떤 영향을 줍니까?

쉘 출력은 명령 프롬프트 다음에 입력된 텍스트에 어떤 영향을 줍니까?

이전에도 비슷한 동작을 경험했지만 지금까지는 이를 재현할 수 없었습니다. 명령의 출력은 Enter사용자가 편집할 준비가 된 다음 명령 프롬프트 이후의 텍스트에 영향을 미칩니다.

예를 들어:

cat /usr/share/terminfo/a/ansi

효과는 다음과 같습니다.

여기에 이미지 설명을 입력하세요.

또는 다음을 복사하여 붙여넣으세요.

1%dP1%dM1%dB1%d@1%dS1%dL1%dD1%dC1%dT1%dA%p1%c2%{1}%-%db%p1%dd
1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m +%d;%dR;0123456789]c1%dm1%dmAX[user@untrusted ~]$ R65;1;9c

보시다시피 R65;1;9c명령 프롬프트가 나타난 후 키를 누르면 Enter명령으로 평가됩니다.

텍스트가 명령줄 뒤에 나타날 뿐만 아니라 다시 실행되었던 상황을 기억합니다. 아마도 줄바꿈이 포함되어 있기 때문일 것입니다.

이것은 버그로 간주될 수 있습니까? 아니면 예상되는 동작입니까? 다음 명령 프롬프트 후에 인쇄할 수 없는 문자의 일부 조합을 쓸 수 있습니까?

답변1

보이는 것은 터미널의 속성 문자열입니다. 터미널은 이러한 명령 중 하나 이상에 다르게 응답할 수 있습니다.

이를 재현하는 빠른 방법:

$ echo -e '\033[c'

제가 아는 한, Gnome terminal이 부분에서는유형 65;1;9c, xterm내부에유형 64;1;2;6;9;15;18;21;22c콘솔에서 Ctrl-Alt-F1을 누르면 6c.

이러한 문자열은 터미널에서 생성되므로 임의의 텍스트를 "삽입"하는 데 사용할 수 없습니다.

이 페이지그 의미에 대해 자세히 알려주세요.

   CSI Ps c  Send Device Attributes (Primary DA).
          Ps = 0  or omitted -> request attributes from terminal.  The
          response depends on the decTerminalID resource setting.
            -> CSI ? 1 ; 2 c  ("VT100 with Advanced Video Option")
            -> CSI ? 1 ; 0 c  ("VT101 with No Options")
            -> CSI ? 6 c  ("VT102")
            -> CSI ? 6 2 ; Psc  ("VT220")
            -> CSI ? 6 3 ; Psc  ("VT320")
            -> CSI ? 6 4 ; Psc  ("VT420")
          The VT100-style response parameters do not mean anything by
          themselves.  VT220 (and higher) parameters do, telling the
          host what features the terminal supports:
            Ps = 1  -> 132-columns.
            Ps = 2  -> Printer.
            Ps = 3  -> ReGIS graphics.
            Ps = 4  -> Sixel graphics.
            Ps = 6  -> Selective erase.
            Ps = 8  -> User-defined keys.
            Ps = 9  -> National Replacement Character sets.
            Ps = 1 5  -> Technical characters.
            Ps = 1 8  -> User windows.
            Ps = 2 1  -> Horizontal scrolling.
            Ps = 2 2  -> ANSI color, e.g., VT525.
            Ps = 2 9  -> ANSI text locator (i.e., DEC Locator mode).

일부 장치는 또한출력 식별 정보다음 이스케이프 시퀀스(요청 터미널 매개변수)가 있는 장치의 경우.

$ echo -e '\033[x'

관련 정보