
SSH one-liner 명령에서 컬러 텍스트 출력을 활성화하고 싶지만 OS X, Ubuntu 14.10 또는 OpenSUSE 12.2에서는 작동하지 않는 것 같습니다.
예를 들어 서버에 ssh를 입력하고 ls --color=auto
프롬프트에 입력하면 디렉터리, 심볼릭 링크 및 일반 파일이 다른 색상으로 표시되어 제대로 작동합니다. 그러나 동일한 시스템의 ssh 한 줄에 명령을 넣으면 다음과 같습니다. ssh user@host "ls --color=auto"
, 출력에는 색상이 지정되지 않습니다.
입력하면 한 줄짜리 설명에 넣을지 여부를 echo $TERM
알 수 있습니다 .xterm-256color
이는 주로 원격 빌드의 색상 코딩 오류 및 경고용이지만 모든 항목에 대해 활성화하는 것이 좋을 것입니다.
어떤 충고?
답변1
ssh user@host "ls --color=auto"
ls
터미널에 쓸 때만 색상을 출력합니다. ssh
원격 호스트에서 실행할 명령을 지정하면 ssh는 기본적으로 TTY(터미널 인터페이스)를 할당하지 않습니다. 따라서 위 명령을 실행하면 ssh는 원격 시스템에 터미널을 할당하지 않고, ls는 터미널에 쓰지 않는 것을 확인하고 색상을 출력하지 않습니다.
-t
터미널을 할당하도록 하는 옵션 과 함께 ssh를 실행할 수 있습니다 . 다음은 색상을 인쇄해야 합니다.
ssh -t user@host "ls --color=auto"
ssh
비대화형으로 실행되고 자체 로컬 출력이 터미널로 이동하지 않는 경우 단일 -t
플래그를 무시합니다. 이 경우 -t
ssh가 원격 시스템에 TTY를 할당하도록 두 번 이상 지정할 수 있습니다.
ssh -tt user@host "ls --color=auto"
답변2
--color=always
ls의 경우 색상을 강제로 사용하는 것이 좋습니다 . 색상을 지원하지만 지원하지 않는 다른 앱에서 색상을 사용하려면 --color=value
다음을 시도할 수도 있습니다.ssh <host> -t "TERM=${TERM} <command>"