터미널 및 SSH에서 색상 비활성화


11

내 로컬 Linux 시스템은 다음과 같이 컬러 터미널 출력을 가지고 있습니다.

여기에 이미지 설명을 입력하십시오

pfSense / BSD 상자에 SSH를 연결하면 다음과 같이 색상이 변경됩니다.

여기에 이미지 설명을 입력하십시오

유색 로컬 터미널 출력이없는 시스템으로 SSH를 연결하고이 pfSense / FreeBSD 상자로 SSH를 실행하면 유색 출력을 활성화하고 원하지 않는 유색 출력 /

로컬 시스템이나 중개 시스템을 통해 pfSense 상자에 SSH로 연결할 때 클라이언트가 원격 색상 설정을 무시하도록 로컬로 변경할 수있는 것이 있습니까? 이상적으로는 흑백, 2 톤 표준 배경 및 텍스트 색상만으로 유지하고 싶습니까?


어떤 터미널 응용 프로그램을 사용하고 있습니까?
gertvdijk

1
Mint Linux 13을 실행 중이므로 Xfce Terminal Emulator 0.4.8입니다.
jwbensley

나는 이것이 당신이 요구하는 것이 아니라는 것을 알고 있지만 검정색 배경에서 터미널 설정을 흰색 (또는 밝은 회색) 텍스트로 변경하는 것을 고려 했습니까? 그것이 대부분의 것들과 함께 작동하도록 설계된 기본 색 구성표입니다. 또는 원격 시스템 (아마 .bash_profile)의 프롬프트 설정을 변경하여 색상이 더 좋거나 전혀 표시되지 않을 수 있습니다.
Random832

1
일반적으로 TERM=xterm-mono ssh user@host원격 환경에서 해당 설정을 얻는 것과 같은 작업을 수행 합니다.
ott--

답변:


7

tty는 터미널이 색상을 변경하도록 알리기 위해 ANSI 인코딩 된 제어 시퀀스를 전송하기 때문에 터미널의 색상이 나타납니다. 대부분의 터미널 응용 프로그램이 아닌 경우 일부는이를 무시하고 모든 텍스트를 한 가지 색상으로 표시하도록 구성 할 수 있습니다.

에서가 xterm, 당신은 사용할 수있는 -cm옵션을 선택합니다. Konsole의 경우 모든 색상의 매핑을 동일하게 변경할 수 있습니다. XFCE 터미널 응용 프로그램에는 비슷한 옵션이있을 수 있습니다.


이 답변은 경우에 따라 도움이 될 수 있지만 실제로는 답변이 아닙니다. 언급 한대로 "터미널의 색상은 tty가 ANSI로 인코딩 된 제어 시퀀스를 전송하여 터미널에 색상을 변경하도록 지시하기 때문에 나타납니다." SSH가 TTY를 제공 할 수 있으므로 SSH가 색상을 무시할 수도 있습니다. 이것이 어떻게 수행되는지 아십니까?
patrik

SSH는 실제로 tty의 데이터를 방해하도록 설계되지 않았습니다. SSH는 그것을 실행할 수있는 채널을 설정합니다. 채널을 통해 데이터를 변경하는 데 관여 해서는 안된다고 생각합니다 . 그러나 해당 채널의 설정 시간 동안 클라이언트에서 서버로 전달되는 환경 변수와 같은 컨텍스트 및 메타 데이터를 제공합니다.
gertvdijk 2016 년

7

TERM호환되지만 색상 지원이없는 일부 항목으로 변수를 변경하면 작동 할 수 있습니다. 처럼:

TERM=xterm-old

기본적으로 TERMFreeBSD 시스템 termcap 또는 terminfo 데이터베이스 TERM=the-term tput colors는 양수를 반환하지 않으며 GNU ls dircolors -p | grep -x 'TERM the-term'는 아무것도 반환하지 않는 것으로 알려져 있습니다. 단말기가이를 지원한다고 주장하는지 여부에 관계없이 색상 이스케이프 시퀀스를 출력하는 응용 프로그램에서는 여전히 작동하지 않을 수 있습니다.

또는 GNU screen를 사용하여 (zsh 구문)과 같은 색상을 비활성화 할 수 있습니다 .

screen -c =(printf %s\\n "termcapinfo * 'AF=\E[1m:AB=\E[7m'") ssh ...

이렇게 하면 전경색을 설정하려고 할 때마다 굵게 표시 되고 배경을 설정하려고 할 때마다 반전 됩니다.

필자는 FreeBSD가 터미널 배경이 검은 색 (또는 적어도 어두운)이라고 가정한다는 사실로 요약됩니다. xterm대신 을 사용 하는 xfce-terminal경우 배경색 및 전경색 및 / 또는 개별 색상을 동적으로 변경하여 다른 색상 프로파일을 설정할 수 있습니다. 이는 이스케이프 시퀀스를 통해 수행되지만 xtermcontrol더 쉬운 명령을 사용할 수도 있습니다 .


그것을 시도-나를 위해 작동하지 않습니다. export TERM=vt100앞의 ls --color그림은 여전히 ​​컬러 출력을 보여줍니다.
gertvdijk

@gertvdijk 좋은 지적입니다. GNU ls에는 기본적으로 하드 코드 vt100가 색상을 지원하는 터미널 인 버그가있는 것 같습니다 . xterm-old그 문제가 없지만 FreeBSD에 terminfo 항목이 없을 수도있는 것을 변경했습니다 .
Stéphane Chazelas

다른 프로그램이 색상을 출력하는 것을 막지는 못합니다 byobu. 우분투 12.04 btw에 있습니다.
gertvdijk

1
@gertvdijk. 내가 말했듯이 $TERM이스케이프 시퀀스를 하드 코딩하는 대신 curcap 또는 다른 터미널 API를 통해 termcap / terminfo 데이터베이스 를 사용하는 잘 작동하는 프로그램에서만 작동합니다 .
Stéphane Chazelas

EOF 후 터미널 상태를 변경할 수있는 모든 이스케이프 시퀀스를 제거하는 데 무엇을 사용할 수 있습니까?
야누스 트롤 슨

2

다음 명령을 입력하여 제거하십시오.

$ ls --color=none

또는 unalias그것을 제거하는 데 사용 하십시오 :

$ unalias ls

1
ls그러나 그것은 단지 코 마드를 위한 것이 아닙니까?
jwbensley

ls는 "ls --color = tty"로 별칭이 지정됨
Len

예. 알아. 그러나 모든 내 터미널 출력은 ls명령 뿐만 아니라 컬러 출력 이므로 이전 주석에 따라 : ls컬러 출력 생성 을 중단하지 않습니까?
jwbensley

네 ls 부분 만
Len

1
xterm을 사용하고 있습니까? xterm -cm
Len

1

~ / .bashrc를 수정하고 싶지 않은 경우 다음과 같은 내용이 포함되어 있습니다 export PS2=.....+colors.......

리눅스 콘솔에서 하나 시도 TERM=linux-m1b또는 TERM=linux-m2"회색 / 흰색 / 검은 색과 희미한"리눅스-M1B 또는 "그린 / 화이트 / 블랙과 블루"(빈티지!) 리눅스 m2에 관해서는 흑백를 얻을 수 ...

퍼티 (Mac 사용자를위한 포트가 있음)를 사용 TERM=putty-m1b하고 TERM=putty-m2대신 ...

이것은 당신이 필요로하는 것을 정확하게 수행 할 것입니다 : 당신은 그것에 대한 최신 terminfo 데이터베이스가 필요하거나 필요할 경우 거기에서 얻을 것입니다 : wget http://canal.chez.com/linux.ti ; tic -x linux.ti

알렉스 추신 : xterm-mono는 더 이상 존재하지 않는 것 같습니다.


-1

먼저 기본 별칭을 확인하십시오.

alias

alias ls-'ls --color=auto

작동하지 않고 빠른 해결 방법이 필요한 경우. 이것을 시도 ls하고 awk파이프 :

vi /usr/local/bin/list
#!/bin/bash
ls $1
exit

perms를 설정하십시오 744.
이를위한 안전한 장소는 /usr/local/bin PATH에 포함되어 있는지 확인하십시오 /usr/local/bin.

다시 신중을 사용하십시오.

한가지… 색상은 디렉토리에 플래그 를 붙이기위한 것입니다 . ls="ls --color=auto"잎만 이름을 끄 ls -aF거나 … 또는 ls -F디렉토리 이름을 추가합니다 /. 그래서 나는 당신이 알고 있다고 제안합니다. 당신이 수 alias ls="ls -aF"또는 alias ls="ls -F".


2
이 답변은 원래 질문에 대한 답변을 어떻게 제공합니까?
jwbensley 2012 년

스택 오버플로에 오신 것을 환영합니다! 나는 당신 이 여행을하는 것이 좋습니다 .
Stephen Rauch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.