Skip to content

Terminal emulator

단말 에뮬레이터 또는 터미널 에뮬레이터(terminal emulator)는 몇 가지 다른 디스플레이 구조를 갖춘 덤브(dumb) 비디오 단말기을 가상으로 구현하는 프로그램을 말한다. 일반적으로 셸이나 텍스트 터미널이라는 용어와 동의어이기도 하지만 단말이라는 용어는 그래픽 인터페이스를 비롯하여 모든 원격 단말에 적용된다. 그래픽 사용자 인터페이스(GUI)상에서 어플리케이션으로 작동하는 단말 에뮬레이터는 터미널 윈도(terminal window)라고 자주 부른다.

터미널 윈도는 사용자가 텍스트 단말과, 명령 줄 인터페이스(CLI), 텍스트 사용자 인터페이스 응용 프로그램과 같은 모든 응용 프로그램에 접근할 수 있게 도와준다. 이러한 것들은 텔넷, ssh, 전화 접속을 통해 같은 컴퓨터나 다른 컴퓨터에서 모두 실행할 수 있다. 유닉스 계열 운영 체제에서는 로컬 컴퓨터에 연결된 하나 이상의 터미널 윈도에 일반적이다.

단말은 보통 커서 위치, 색 등을 제어하기 위한 이스케이프 시퀀스 집합을 지원한다. 이를테면 ECMA-48, ANSI X3.64, 또는 ISO/IEC 6429로 알려진 단말 제어 시퀀스 표준 계열을 포함하고 있다.

은행, 보험사, 정부와 같은 컴퓨터 기술을 채택한 초기의 단체들은 아직도 단말 에뮬레이터를 자주 이용하고 있다. 이들은 메인프레임 컴퓨터에서 실행되는 오래된 응용 프로그램들을 수십 개 가지고 있다. 메인프레임에 접근하는 데 이용하는 오래된 덤브 비디오 단말은 쓰이지 않은 지 오래다. 그러나 메인프레임 위의 응용 프로그램들은 아직도 사용하고 있다. 단말 에뮬레이터는 더 오래된 컴퓨터에서 실행하고 있는 응용 프로그램들에 사용자가 접근할 수 있는 유일한 방법이기도 하다.

Truecolor

다음의 awk 명령으로 확인할 수 있다.

awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'

정상적으로 트루컬러가 지원된다면:

Terminal_emulator_-truecolor-_support.png

지원되지 않는다면 아래 그림과 같이 색상의 경계가 뚜렷하게 나타난다:

Terminal_emulator_-truecolor-_not_support.png

COLORTERM

VTE, Konsole및 iTerm2은 모두 사용자의 셸 환경에 COLORTERM=truecolor를 배치하여 트루컬러 지원을 알립니다. 이것은 잠시 동안 VTE에 있었지만 KonsoleiTerm2에서는 비교적 새로운 기능이며 컴파일 시 활성화되어야 합니다 (대부분의 패키지는 그렇지 않으므로 git 소스 저장소에서 직접 컴파일해야 함).

S-Lang 라이브러리에는 $COLORTERMtruecolor 또는 24bit (대소문자 구분) 가 포함된 검사가 있습니다.

때론 직접 설정해야할 수 있다:

case $TERM in
  iterm            |\
  linux-truecolor  |\
  screen-truecolor |\
  tmux-truecolor   |\
  xterm-truecolor  )    export COLORTERM=truecolor ;;
  vte*)
esac

Projects

  • iTerm2
  • Alacritty: A cross-platform, GPU-accelerated terminal emulator
  • hyper: A terminal built on web technologies
  • bterm: cross-platform terminal emulator
  • terminator
  • Extraterm: The swiss army chainsaw of terminal emulators
  • tmux
  • Streamhut: stream your terminal
  • termux: Android terminal emulator.
  • rxvt: rxvt (acronym for our extended virtual terminal) is a terminal emulator for the X Window System, and in the form of a Cygwin port, for Windows.
    • rxvt-unicode: Light in resource usage, fast, and more feature-rich (tabs, transparency, Unicode, etc.).
  • XTerm: The default terminal emulator for X.org.
  • lxterminal: The standard terminal emulator of LXDE.
  • st: simple terminal implementation for X .
  • xfce4-terminal: The default terminal emulator for the Xfce desktop environment.
  • terminology: The default terminal emulator for Enlightenment.
  • Konsole: The default terminal emulator for KDE / Plasma.
  • Yakuake: Quake-style (drop-down) terminal emulator based on Konsole for KDE / Plasma.
  • GNOME Terminal: The default terminal emulator for GNOME.
  • Guake: Drop-down terminal emulator for GNOME.
  • eDEX-UI: A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.
  • kitty - the fast, featureful, GPU based terminal emulator
  • starship - The minimal, blazing-fast, and infinitely customizable prompt for any shell!
  • Warp - Rust로 작성된 빠른 터미널
  • WezTerm - 크로스 플랫폼 터미널 에뮬레이터 오픈소스
  • Rio - GPU 하드웨어 가속되는 터미널 에뮬레이터 오픈소스
  • Bubble Tea - 강력한 TUI 프레임워크
  • pyte - 가볍고 빠른 순수 Python으로 작성된 가상 터미널 에뮬레이터입니다. ANSI와 VT100 시퀀스를 해석하며, headless 모드에서 동작합니다.
  • pty - Python 표준 라이브러리 pty를 사용하여 headless로 가상 터미널을 생성할 수 있습니다.
  • pexpect - 터미널 자동화 및 상호작용을 위한 라이브러리입니다. pty 기반으로 동작하며, 다양한 터미널 명령을 자동화하고, 출력을 캡처합니다.
  • vttest (py-vt100) - VT100/ANSI 터미널 에뮬레이션을 수행하는 Python 라이브러리입니다. 저수준의 터미널 에뮬레이션 기능이 필요할 때 사용됩니다.
  • termcolor
  • blessings
  • Ghostty - 고속, 크로스플랫폼 터미널 에뮬레이터

Terminal Live Streaming

See also

Favorite site