이 글에서는 리눅스 터미널에 색상이 적용된 텍스트를 출력하는 방법을 알아봅니다. 별도의 라이브러리나 복잡한 설정 없이, C++ 코드 안에서 간단한 터미널 제어 문자(ANSI 이스케이프 시퀀스)만 사용하면 누구나 쉽게 구현할 수 있습니다.
기본 출력 형식
터미널에 색상 텍스트를 출력할 때 사용하는 기본 명령 형식은 다음과 같습니다.
\033[1;31m Sample Text \033[0m
여기서 \033[는 이스케이프 시퀀스의 시작을 의미하고, 그 뒤의 숫자가 텍스트 스타일과 색상을 결정합니다. 마지막의 \033[0m은 스타일을 초기화하여 이후 출력되는 텍스트가 영향을 받지 않도록 합니다.
색상 코드 목록
텍스트에 적용할 수 있는 기본 색상 코드는 아래와 같습니다.
| 색상 | 글자색(전경) 코드 | 배경색 코드 |
|---|---|---|
| 검정(Black) | 30 | 40 |
| 빨강(Red) | 31 | 41 |
| 초록(Green) | 32 | 42 |
| 노랑(Yellow) | 33 | 43 |
| 파랑(Blue) | 34 | 44 |
| 자홍(Magenta) | 35 | 45 |
| 청록(Cyan) | 36 | 46 |
| 흰색(White) | 37 | 47 |
추가 스타일 옵션
색상 외에도 텍스트에 다양한 효과를 줄 수 있는 옵션이 제공됩니다.
| 옵션 | 코드 | 설명 |
|---|---|---|
| Reset(초기화) | 0 | 모든 스타일을 제거하고 기본 상태로 되돌림 |
| Bold(굵게) | 1 | 텍스트를 굵게 표시 |
| Underline(밑줄) | 4 | 텍스트에 밑줄 추가 |
| Inverse(반전) | 7 | 배경색과 글자색을 서로 교환 |
| Bold off(굵게 해제) | 21 | 굵은 글씨를 일반 굵기로 변경 |
| Underline off(밑줄 해제) | 24 | 밑줄을 제거 |
| Inverse off(반전 해제) | 27 | 반전 효과를 해제 |
C++ 예제 코드
아래는 위 코드들을 실제로 활용한 C++ 프로그램 예제입니다.
#include<iostream>
using namespace std;
main() {
cout << "\033[1;31mThis is bold red text\033[0m\n";
cout << "\033[;32mGreen Text\033[0m\n";
cout << "\033[4;33mYellow underlined text\033[0m\n";
cout << "\033[;34mBlue text\033[0m\n";
}실행 결과
위 코드를 실행하면 터미널에 다음과 같이 각각 다른 색상과 스타일이 적용된 문장이 순서대로 출력됩니다.
- 굵은 빨간색 텍스트 — 스타일 코드 1(굵게)과 색상 코드 31(빨강) 조합
- 초록색 텍스트 — 색상 코드 32만 적용
- 밑줄 친 노란색 텍스트 — 스타일 코드 4(밑줄)과 색상 코드 33(노랑) 조합
- 파란색 텍스트 — 색상 코드 34만 적용
이처럼 ANSI 이스케이프 코드만 익혀두면 로그 강조, 오류 메시지 표시 등 다양한 상황에서 터미널 출력을 한층 보기 좋게 꾸밀 수 있습니다.