SSH 종료/로그아웃 후 터미널 색상 "재설정"

SSH 종료/로그아웃 후 터미널 색상 "재설정"

원격 서버에 SSH로 접속할 때 터미널 색상이 바뀌는 것을 좋아합니다. 나는 setterm이 작업을 수행하기 위해 원격 ~/.bashrc 파일을 사용합니다. 그러나 I 경우 exit터미널 색상이 로컬 색상으로 재설정되지 않습니다.

문제를 해결했지만 이것이 최선의 해결책인지는 확실하지 않습니다. 이것이 내가 생각해 낼 수 있는 것입니다.

원격 서버의 ~/.bash_logout에 다음을 입력했습니다.

echo -e "\033[0m"
/usr/bin/clear

그냥 궁금해서: 더 좋은 방법을 아는 사람이 있나요? (나 echo -e "\033[0m"한테서 전화를 받았어.http://edoceo.com/liber/linux-bash-shell)

답변1

더 좋음:
tput sgr0일반적으로 다음과 같습니다.echo -en "\e[0m"

차이점은 터미널 유형이 ANSI가 아니고 올바르게 설정된 경우 tput을 사용하면 적응된다는 것입니다.

man 5 terminfo더 많은 코드를 사용하려면

거기에는 '재설정'이 있으므로 제대로 tput reset작동합니다.


$ echo -e "\e[7m TEST \e[0m"  
 TEST   
$ echo -e "$(tput rev) TEST $(tput sgr0)"  
 TEST   
$   

(테스트 인쇄물은 배경색/전경색을 바꿔야 합니다. 여기에는 표시할 수 없습니다. "에뮬레이션"만 가능합니다.)


이에 대한 다른 옵션을 찾았습니다., 덜 괴상한 방법:

util-linux(우분투) 패키지에는 setterm(쉘 유틸리티)가 포함되어 있습니다.

입력하면 setterm --help사용 가능한 옵션을 찾을 수 있습니다.


실제 출력은tput sgr0

$ tput sgr0 | od -t x1z
0000000 1b 28 42 1b 5b 6d                                >.(B.[m<
0000006

... 터미널 설정 방법에 따라 다릅니다. 예:

$ set | grep TERM
TERM=xterm-256color

위의 경우.


$ infocmp ansi
    파일에서 infocmp를 통해 재구성됨: /lib/terminfo/a/ansi
ansi|ansi/pc-term 색상과 호환 가능,
    오전, mc5i, 미르, msgr,
    색상#8, 열#80, it#8, 행#24, ncv#3, 쌍#64,
    acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v \301w\302x\263y\363z\362{\343|\330}\234~\376,
    bel=^G, 깜박임=\E[5m, 굵게=\E[1m, cbt=\E[Z, 지우기=\E[H\E[J,
    cr=^M, 새끼=\E[%p1%dD, 새끼1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
    cuf=\E[%p1%dC, cuf1=\E[C, 컵=\E[%i%p1%d;%p2%dH,
    cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
    dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
    el1=\E[1K, 집=\E[H, hpa=\E[%i%p1%dG, ht=\E[I, hts=\EH,
    ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
    indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
    kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
    mc4=\E[4i, mc5=\E[5i, nel=\r\E[S, op=\E[39;49m,
    담당자=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rin=\E[%p1%dT,
    rmacs=\E[10m, rmpch=\E[10m, rmso=\E[m, rmul=\E[m,
    s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, s3ds=\E+B,
    setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
    sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%? %p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
    sgr0=\E[0;10m, smacs=\E[11m, smpch=\E[11m, smso=\E[7m,
    smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
    u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,

SEE ALSO (man pages):
       tic(1) infocmp(1), captoinfo(1), infotocap(1), toe(1),  
       ncurses(3NCURSES), term(5).  terminfo(5).

더 많은 것을 탐색하고 여기에서 시작해 보세요.https://en.wikipedia.org/wiki/Terminfo
ncurses에 대한 프로그래머 가이드 -구글 도서

참고: ncurses는 termcap, terminfo 및 물론curses에 대한 인터페이스를 제공합니다.

답변2

나는 당신이 "재설정" 콘솔 명령을 찾고 있다고 생각합니다

답변3

원격 .bash_logout에서 이것을 사용하는 것이 더 적절할 수 있습니다.

tput init

일반적인 모범 사례로 모든 .bash_logout에 이것을 두는 것이 좋을 수도 있습니다(아마도 ~/.profile에도).

답변4

원격 계정의 ~/.bashrc에 원하는 색상을 넣으면 로그인 시 적용되고 종료 시 로컬 설정으로 되돌아갑니다.

관련 정보