추가 읽기

추가 읽기

무엇을 검색해야 할지 모르겠습니다. "터미널 라인 오버랩"은 일반적으로 포스트의 원하는 동작을 가져옵니다.

Dietpi를 실행하는 Raspberry Pi에 SSH로 연결하여 경험한 내용을 보여드리겠습니다. jq -h이것은 단지 예일 뿐입니다.

dietpi@tv22-rpi1:~$ jq -h
jq - commandline JSON processor [version 1.5-1-a5b5cbe]
Usage: jq [options] <jq filter> [file...]
jq - commandline JSON processor [version 1.5-1-a5b5cbe]
Usage: jq [options] <jq filter> [file...]inputs, applying the
        given filter to its JSON text inputs and producing the
        jq is a tool for processing JSON inputs, applying the
        given filter to its JSON text inputs and producing the,
        filter's results as JSON on standard output.(except for
        The simplest filter is ., which is the identity filter,
        copying jq's input to its output unmodified (except forq")
        formatting).://stedolan.github.io/jq
        For more advanced filters see the jq(1) manpage ("man jq")
        and/or https://stedolan.github.io/jq
         -c             compact instead of pretty-printed output;
jq - comSome of the options include:sion 1.5-1-a5b5cbe]value;
Usage: j -coptions] <jq compact instead of pretty-printed output;put;
         -n             use `null` as the single input value; output;filter to it;
         -eis a tool forset the exit status code based on the output;filter to it;
         -sen filter to read (slurp) all inputs into an array; apply filter to it;
         -rter's resultsoutput raw strings, not JSON texts;
         -R simplest filread raw strings, not JSON texts;ilter,
         -Cying jq's inpcolorize JSON;n't colorize JSON);pt for
         -Mmatting).tabsmonochrome (don't colorize JSON);
         -Stabreuse tabssort keys of objects on output; ("man jq")
         --tab ause tabs for indentation;o value <v>; <v>;
         --arg a v a v fset variable $a to value <v>; <v>;y of JSON texts read from <f>;
         --argjson a v fset variable $a to JSON value <v>;y of JSON texts read from <f>;
dietpi@t --slurpfile a ffor moreset variable $a to an array of JSON texts read from <f>;
dietpi@tSee the manpage for more options.
dietpi@tv22-rpi1:~$ 

오래된 회선은 필요한 만큼 정리되거나 업그레이드되지 않습니다. 대신, 새로운 줄이 이전 줄과 교차되어 읽을 수 없는 "수프"를 만듭니다.

Dietpi의 tmux가 원인인지 궁금합니다. 빠른 검사를 했는데 tmux 없이는 동작을 재현할 수 없습니다.

dietpi@tv22-rpi1:~$ tmux -V
tmux 2.8

다른 많은 게시물이 이러한 설정을 중심으로 이루어지기 때문에 포함시켰습니다. 내가 보기엔 괜찮아 보이는데.

dietpi@tv22-rpi1:~$ shopt | grep checkwinsize
checkwinsize    on
dietpi@tv22-rpi1:~$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$

의견에서 제안한 대로 TERM 변수를 명확히 하세요.

  1. 가장 바깥쪽 TERM=xterm-256color(Linux 랩톱용 GNOME 터미널 3.18.3, Windows의 퍼티도 유사하게 동작함)
  2. TERM=로컬 tmux의 화면
  3. TERM=ssh로 접속한 후의 화면
  4. TERM=ssh를 통한 tmux 내의 화면

답변1

tmux디스플레이는 렌더링되는 터미널에 이 터미널이 이해할 수 없는 방식으로 (다시) 그려집니다. tmux위로 스크롤한 후 (렌더링된) 터미널 디스플레이를 다시 그리도록 터미널 제어 시퀀스를 실행합니다. 이는 사용 중인 실제 터미널과 일치하지 않습니다. tmux단말기에 표시되는 유형에 대해 거짓말을 했기 때문입니다 .

TERM=xterm-256color(Linux 노트북 GNOME 터미널 3.18.3 [...] 퍼티 [...]

이것은 잘못된 것입니다.

  • GNOME 터미널 및 VTE 위젯 라이브러리(GNOME 터미네이터 포함)를 사용하는 기타 터미널 에뮬레이터의 올바른 터미널 유형은 다음과 같습니다.vte또는vte-256color.
  • PuTTY 및 이를 기반으로 하는 프로그램(예: KiTTY 및 (잘못된 이름의) MobaXTerm)에 대한 올바른 터미널 유형은 다음과 같습니다.putty,putty-256color, 또는putty-sco.
  • Kovid Goyal의 고양이(PuTTY 파생 KiTTY와 혼동하지 말 것)의 올바른 터미널 유형은 다음과 같습니다.kitty또는kitty-direct. (Kitty 자체는 xterm-kitty오랫동안 확립된 terminfo 명명 규칙을 따르지 않는 매우 오해의 소지가 있는 " "라는 다른 이름으로 terminfo 레코드를 제공합니다 . kitty그리고 kitty-direct이러한 명명 규칙을 따르는 Dickey의 terminfo 데이터베이스에 있는 일반 레코드의 이름입니다.)
  • MacOS iTerm의 올바른 터미널 유형은 다음과 같습니다.iTerm.AppGeorge Nachman의 iTerm2의 경우iTerm2.App.
  • MacOS 터미널의 올바른 터미널 유형은 다음과 같습니다.nsterm또는nsterm-256color, "ns"는 NeXTSTEP 터미널로 상속되었음을 나타냅니다.
  • 터미네이터의 올바른 터미널 유형(GNOME 터미널 유형이 아닌 Java 터미널 유형)은 다음과 같습니다.terminator.
  • Linux, OpenBSD, NetBSD 및 FreeBSD 커널 자체에 내장된 터미널 에뮬레이터의 올바른 터미널 유형은 다음과 같습니다.linux,linux-16color,pccon,pcvt25, 그리고teken. (내 nosh 도구 세트는 teken-256colour의도적으로 FreeBSD 커널의 터미널 에뮬레이터와 동일하게 작동하지만 인덱싱 및 직접 색상 기능을 추가하는 터미널 에뮬레이터와 함께 제공되므로 추가 termcap 레코드를 제공합니다.)

렌더링된 터미널을 올바르게 설명하기 위해 TERM상속된 환경 변수 는 다음 과 같습니다.tmux

올바른 터미널 유형현재의(내부) 터미널은 TERMI/O를 위해 이러한 터미널을 사용하는 프로세스에 의해 상속된 환경 변수에 있습니다.tmux,tmux-256color, 그리고tmux-direct, 탈출할 수는 있지만screen.

이는 널리 퍼진잘못된터미널 에뮬레이터는 모두 XTerm과 호환되며 terminfo 데이터베이스의 및 항목이 xterm이를 올바르게 설명한다고 가정합니다. Thomas Dickey의 XTerm FAQ는 이러한 오해를 지적하고 있으며, 해당 항목이 다른 터미널 에뮬레이터는 물론이고 XTerm 자체의 모든 버전을 설명하지도 않는다는 xterm-256color점은 주목할 가치가 있습니다 .xtermxterm-256color

TERM환경 변수를 로 설정 xterm해야 하는 유일한 경우는 xterm-256color"xterm-아무것” 터미널 에뮬레이터가 실제로 XTerm 프로그램인 경우.

예를 들어, 전체 화면 TUI 프로그램에 tmux잘못된 터미널 유형이 화면의 일부가 새로 고쳐지지 않는 것부터 잘못된 위치에 콘텐츠를 그리고 잘못된 배경색을 갖는 것, 상자 알파벳 문자를 그리는 것까지 다양한 영향을 미칠 수 있음을 알려줍니다. .

추가 읽기

관련 정보