리눅스 GUI에서 CLI로 전환하기: Top-Down 접근 및 배포판별 가이드¶
이 문서는 리눅스 운영체제에서 GUI(Graphical User Interface) 환경을 CLI(Command Line Interface)**로 전환하는 과정을 설명합니다. 추상적인 사용자 레벨에서 하드웨어 레벨로 내려가는 **Top-Down 방식으로 작동 원리를 이해하고, 주요 배포판(Distro)별 구체적인 적용 방법을 다룹니다.
1. Top-Down 개요: 리눅스의 계층 구조¶
사용자가 화면에서 보는 그래픽 환경이 사라지고 검은 터미널 화면만 남는 과정은 단순한 '화면 전환'이 아니라, OS 내부의 **실행 레벨(Target)**이 변경되는 과정입니다.
GUI에서 CLI로 전환될 때 일어나는 일을 위에서 아래로 내려가며 살펴보겠습니다.
- 사용자 레벨: 데스크탑 환경(GNOME, KDE 등)이 종료됩니다.
- 서비스 레벨 (Systemd): 그래픽 서비스를 관리하는 'Target'이 비활성화됩니다.
- 디스플레이 레벨: 디스플레이 매니저(GDM, LightDM 등)와 X Server(또는 Wayland)가 프로세스에서 제거됩니다.
- 커널 레벨: 비디오 출력이 그래픽 모드에서 텍스트 모드(TTY)로 전환됩니다.
2. 상세 작동 원리 (Architecture Deep Dive)¶
이 전환의 핵심은 리눅스의 초기화 시스템인 **Systemd**와 **Target**의 개념을 이해하는 것입니다.
A. Systemd와 Target (서비스 관리 계층)¶
과거 리눅스(SysVinit)는 'Runlevel(런레벨)'이라는 숫자로 상태를 정의했습니다(예: Runlevel 3은 CLI, 5는 GUI). 현대 리눅스는 **Systemd Target**이라는 유닛을 사용합니다.
- GUI 모드 (
graphical.target): 시스템이 부팅될 때 네트워킹, 파일 시스템, 그리고 **디스플레이 매니저**까지 모두 실행하도록 지시합니다. - CLI 모드 (
multi-user.target): 다중 사용자 로그인과 네트워킹은 지원하지만, **그래픽 관련 서비스는 제외**된 상태입니다.
작동 원리:
graphical.target은multi-user.target의 상위 집합입니다. 즉, GUI에서 CLI로 간다는 것은 가장 상위의 그래픽 레이어만 "걷어내는" 작업입니다.
B. 디스플레이 매니저와 세션 (애플리케이션 계층)¶
GUI가 실행 중일 때는 백그라운드에서 Display Manager(예: gdm3, sddm, lightdm)라는 서비스가 돌고 있습니다. 이 서비스가 그래픽 서버(X11 또는 Wayland)를 구동시켜 화면에 그림을 그립니다.
전환 시 발생 동작:
1. OS가 multi-user.target으로 전환 명령을 받습니다.
2. graphical.target에 의존성이 있는 디스플레이 매니저 서비스에 종료 시그널(SIGTERM/SIGKILL)을 보냅니다.
3. 디스플레이 매니저가 종료되면서 자식 프로세스인 데스크탑 환경(창 관리자, 패널 등)이 연쇄적으로 종료됩니다.
C. TTY (Virtual Console) (커널/하드웨어 계층)¶
리눅스 커널은 **TTY(Teletypewriter)**라는 가상 콘솔을 제공합니다.
- GUI 상태: 보통 TTY1이나 TTY7번 채널이 그래픽 모드로 점유되어 비디오 카드를 제어합니다.
- CLI 전환: 그래픽 프로세스가 종료되면 커널은 비디오 카드의 모드를 그래픽 모드에서 텍스트 모드로 리셋하고,
getty프로세스를 통해 텍스트 로그인 프롬프트를 띄웁니다.
3. 배포판(Distro)별 상세 가이드¶
대부분의 최신 리눅스 배포판은 **systemd**를 채택하고 있어 핵심 명령어(systemctl)는 동일합니다. 하지만 **디스플레이 매니저(DM)**의 이름이나 패키지 관리 방식에 차이가 있습니다.
공통 명령어 (Systemd 기반)¶
모든 systemd 기반 배포판에서 통용되는 명령어입니다.
- 즉시 전환 (현재 세션만):
- 영구 전환 (부팅 시 CLI 고정):
- 복구 (GUI로 되돌리기):
A. Ubuntu / Debian 계열 (Mint, Kali, Pop!_OS)¶
이 계열은 주로 GDM3 (GNOME) 또는 LightDM (XFCE/MATE)을 사용합니다.
-
디스플레이 매니저 확인:
-
특이 사항:
- Ubuntu Desktop은 기본적으로
gdm3를 사용합니다. - GUI가 아예 필요 없어 삭제하고 싶다면(서버화):
- 다시 설치하려면:
- Ubuntu Desktop은 기본적으로
B. RHEL / CentOS / Rocky / Fedora 계열¶
레드햇 계열은 엔터프라이즈 환경이 많아 GUI/CLI 전환이 빈번합니다. 주로 **GDM**을 사용합니다.
-
현재 Target 확인:
-
패키지 그룹 관리: 이 계열은
dnf또는yum의 그룹 기능을 이용해 GUI 환경 전체를 쉽게 관리할 수 있습니다.- GUI 패키지 그룹 설치 (Server with GUI):
- GUI 패키지 삭제 (최소 설치로 변경):
- 주의: 의존성 문제로 시스템 중요 파일이 삭제될 수 있으니
isolate방식을 권장합니다.
- 주의: 의존성 문제로 시스템 중요 파일이 삭제될 수 있으니
C. Arch Linux / Manjaro¶
사용자가 직접 설치한 데스크탑 환경(DE)에 따라 디스플레이 매니저가 제각각입니다.
-
주요 디스플레이 매니저:
- GDM: GNOME 사용자
- SDDM: KDE Plasma 사용자
- LightDM: XFCE, I3 등 경량 환경
-
서비스 제어: Arch는 타겟 변경 외에도 디스플레이 매니저 서비스를 직접 끄는 방식을 선호하기도 합니다.
4. 요약 비교표¶
| 구분 | GUI (graphical.target) |
CLI (multi-user.target) |
|---|---|---|
| 주요 프로세스 | Xorg/Wayland, Gnome-shell, DM | Bash/Sh, SSHD, Getty |
| 메모리 점유 | 높음 (수백 MB ~ 수 GB) | 매우 낮음 (수십 MB) |
| 비디오 모드 | 그래픽 모드 (픽셀 제어) | 텍스트 모드 (TTY) |
| 용도 | 일반 데스크탑 작업, 웹 브라우징 | 서버 운영, 시스템 복구, 고성능 연산 |
[참고] 방법 1: TTY 스위칭 (일시적 전환)¶
명령어 없이 키보드만으로 화면을 전환하는 방법입니다. GUI 프로세스는 백그라운드에서 계속 실행됩니다.
- CLI로 이동:
Ctrl+Alt+F3(또는 F4 ~ F6) - GUI로 복귀:
Ctrl+Alt+F1(또는 F2, F7 - 배포판마다 다름)- Ubuntu: 주로 F1 또는 F2가 GUI 세션입니다.
- RHEL/CentOS: 주로 F1이 GUI입니다.