자격증 정복/리눅스마스터

리눅스마스터 2급 필기 11 — 에디터 (vi·vim·emacs·nano·pico) 명령어 총정리

올드 IT직장인 2026. 10. 10. 15:33

리눅스마스터 2급 필기 11 — 에디터 (vi·vim·emacs·nano·pico) 명령어 총정리

출제기준: 2차 1과목 리눅스 운영 및 관리 > 에디터 (편집기의 종류와 특징, 편집기의 활용)
기출 빈도: 2019~2023 기출 기준 약 7.3% (전체 5위권).
외울 키가 정해져 있어서 가성비 최고인 단원입니다.

 

 

vi 한 가지만 파고드는 단원이라고 생각하기 쉬운데, 기출은 vi(60%) + emacs(25%) + nano·pico(15%) 비율로 골고루 나옵니다. "누가 만들었나 / 모드가 있나 / 저장·종료 키가 뭔가" 세 가지만 잡으면 됩니다.


1. 편집기의 종류와 특징 ⭐⭐⭐⭐

1-1. CLI vs GUI

구분 편집기 특징
CLI(터미널) vi/vim, emacs, pico, nano X 윈도 없이 사용 (SSH 원격 접속 환경에서 필수)
GUI gedit(GNOME), kwrite(KDE) X 윈도 환경에서만 사용, 윈도우 메모장과 비슷

 

1-2. 편집기별 비교표

편집기 개발자 / 시기 모드 핵심 특징
vi 빌 조이(Bill Joy), 1976, BSD 있음 (3모드) 화면 단위(screen) 편집기, 거의 모든 배포판에 기본 설치
vim 브람 무레나르(Bram Moolenaar),
1991
있음 Vi IMproved. 다단계 undo/redo, 문법 강조,
Tab 자동완성, GUI판 gvim
emacs 리처드 스톨먼(Richard Stallman),
GNU
없음 LISP 기반, 컴파일·메일·도움말까지 통합하는 확장성,
Ctrl·Alt(Meta) 조합
pico 워싱턴 대학 (Pine Composer) 없음 초보자용, 하단에 단축키 안내, 비자유 라이선스
nano 크리스 앨러가타, 1999 없음 pico의 GNU 대체품 (TIP Isn't Pico),
pico와 기본 사용법 동일

📌 기출 포인트

"vi 개발자 → 빌 조이 / emacs → 리처드 스톨먼 / vim → 브람(Bram)" 세 쌍이 그대로 출제됩니다.

기출 선택지의 "브람 브레나르"는 vim 개발자 Bram Moolenaar를 가리키는 표기입니다(공식 한글 표기는 무레나르).
시험에서는 "브람"으로 시작하는 사람 = vim으로 연결하세요.


"기본 사용법이 동일한 조합" → pico, nano

"비모드형(modeless) 편집기 + 컴파일·강력한 도움말" → emacs

"화면(screen) 에디터가 아닌 것" → ed (ed는 줄 단위 라인 에디터의 시초)

⚠️ 함정 ① — 보기에 섞여 나오는 "편집기가 아닌 것"

  • sh(셸), gcc(컴파일러), notepad(윈도우 전용)는 편집기가 아닙니다.

 

⚠️ 함정 ② — "X 윈도에서만 사용 가능한 편집기" → gedit, kwrite.

nano·pico·vim·emacs는 터미널에서도 돌아갑니다. (emacs는 X에서도 돌지만 -nw 옵션이면 터미널 전용)


2. vi / vim 사용법 ⭐⭐⭐⭐⭐

2-1. 세 가지 모드와 전환

        i, a, o …            :
명령 모드 ────────→ 입력 모드      명령 모드 ────────→ 마지막 행(ex) 모드
        ←────────                  ←────────
          Esc                       Enter(실행) 또는 Esc
모드 하는 일 진입
명령 모드 커서 이동·삭제·복사·붙여넣기 (vi 시작 시 기본) Esc
입력 모드 글자 입력 i, a, o 등
마지막 행(ex) 모드 저장·종료·검색·치환·환경설정 : / ?

 

⚠️ 함정 — "입력 모드에서 Esc를 누르면 ex 모드로 전환" → 틀림!

Esc는 명령 모드로 갑니다. ex 모드는 명령 모드에서 :를 눌러야 들어갑니다.


⚠️ 기본 모드에 "출력 모드", "그래픽 모드"는 없습니다.

 

2-2. 입력 모드 진입 키 ⭐⭐⭐⭐⭐ (대·소문자 구분!)

키 동작
i 커서 앞에서 입력
a 커서 뒤에서 입력
I 행의 처음에서 입력
A 행의 끝에서 입력
o 현재 행 아래에 새 행 삽입 후 입력
O 현재 행 위에 새 행 삽입 후 입력

외우는 법: i(in) a(after) o(open a line below), 대문자는 "더 크게" — 행 처음(I)/행 끝(A)/위쪽(O)

 

⚠️ 함정 — "다음 중 입력 모드로 전환하는 명령이 아닌 것 → X". X(대문자)는 커서 앞 글자를 삭제하는 명령입니다.

 

2-3. 커서 이동 (명령 모드)

키 동작
h / j / k / l 좌 / 하 / 상 / 우
0 (또는 ^) 행의 처음
$ 행의 끝
gg 문서 맨 처음
G 문서 맨 끝
nG n번째 행으로 이동

 

⚠️ 함정 — "커서 이동 명령 중 틀린 것 → i". i는 이동이 아니라 입력 모드 진입입니다. (h·j·k·l만 이동)

 

2-4. 편집 (명령 모드) ⭐⭐⭐⭐⭐

키 동작
x 커서 위치 문자 삭제 (nx = n개 삭제)
X 커서 앞 문자 삭제
dd / ndd 현재 행 / n행 삭제(잘라내기)
dw 단어 삭제
D 또는 d$ 커서부터 행의 끝까지 삭제
dG 커서부터 파일 맨 끝까지 삭제
yy / nyy 현재 행 / n행 복사 (예: 3yy = 3행 복사)
p / P 커서 아래(뒤) / 위(앞)에 붙여넣기
u 실행 취소(undo) — 직전에 삭제한 줄 복원
Ctrl+r 다시 실행(redo)
J 현재 행과 다음 행 합치기
. 직전 명령 반복
ZZ 저장 후 종료 (:wq와 같음)

 

⚠️ 함정 (실제 기출) — "D 또는 d$ : 커서부터 그 행의 맨 처음까지 삭제" → 틀림! 정답은 맨 끝까지입니다.

 

2-5. 마지막 행(ex) 모드 — 저장·종료 ⭐⭐⭐⭐⭐

명령 동작
:w 저장 (:w 파일명 = 다른 이름으로 저장)
:q 종료 — 변경 사항이 없을 때만 종료됨
:wq 저장 후 종료
:q! 저장하지 않고 강제 종료
:x 변경이 있을 때만 저장하고 종료
:e 파일명 해당 파일을 열기(편집 대상 불러오기)
:e! 마지막 저장본으로 되돌리기

 

⚠️ 함정 ① — ":q는 수정된 사항이 있어도 무조건 종료한다" → 틀림. 수정 후엔 :q!를 써야 합니다.
⚠️ 함정 ② — ":e 파일명은 파일명으로 저장하고 종료한다" → 틀림. :e는 파일을 여는 명령입니다.

 

2-6. 마지막 행 모드 — 설정·검색·치환 ⭐⭐⭐⭐⭐

명령 동작
:set nu (number) 행 번호 표시 / :set nonu 해제
:set ic 검색 시 대소문자 무시 (ignorecase)
:set ai 자동 들여쓰기 (autoindent)
:set sm 대응되는 괄호 표시 (showmatch)
:set list 탭·행끝 같은 제어문자 표시
/문자열 아래 방향 검색
?문자열 위 방향 검색
n / N 같은 방향 다음 결과 / 반대 방향 이전 결과
:%s/기존/신규/g 문서 전체 치환
:.,$d 현재 행부터 마지막 행까지 삭제

 

치환 명령은 정규표현식 기호와 합쳐서 나옵니다.

 

명령 의미
:%s/linux/Linux/g 전체에서 linux → Linux
:%s/^linux$/Linux/g 한 줄이 정확히 linux인 줄만 치환 (^=행 시작, $=행 끝)
:%s/linux$/linux./ linux로 끝나는 줄의 끝에 마침표 추가

📌 %는 "파일 전체", s는 substitute, g는 "행 안의 모든 일치 항목".
^·$가 보이면 행 시작·행 끝 조건이라고 읽으세요.

 

2-7. vim 실행 옵션 ⭐⭐⭐⭐

옵션 의미 예
-R 읽기 전용으로 열기 (Read-only) vi -R /etc/passwd
-r 스왑 파일로 비정상 종료 파일 복구 (Recover) vi -r file.txt
+n n번째 행부터 열기 vi +10 file
+/문자열 해당 문자열이 처음 나오는 곳에서 열기 vi +/root /etc/passwd
-b 바이너리 모드  

외우는 법: Read-only → 대문자 -R, recover → 소문자 -r (둘이 헷갈리기 쉬워서 대·소문자가 곧 함정 포인트)


3. emacs 사용법 ⭐⭐⭐⭐

emacs는 모드가 없는 편집기라 입력 모드 전환 없이 바로 타이핑하고, 명령은 Ctrl(C-)과 Alt(M-, Meta) 조합으로 실행합니다.

 

3-1. 파일·종료

키 동작
C-x C-f 파일 열기
C-x C-s 저장
C-x C-w 다른 이름으로 저장
C-x C-c 종료
C-g 진행 중인 명령 취소
C-x u 실행 취소(undo) (교재 표기)

 

3-2. 커서 이동

키 동작
C-f / C-b 오른쪽 / 왼쪽 (forward / backward)
C-n / C-p 아래 / 위 (next / previous)
C-a / C-e 행 처음 / 행 끝
M-a / M-e 문장 처음 / 문장 끝
M-< / M-> 문서 처음 / 문서 끝
C-v / M-v 다음 화면(앞으로) / 이전 화면(뒤로)

 

⚠️ 기출 함정 — "emacs 커서 이동 중 틀린 설명: Ctrl+v : 한 화면 뒤로 이동" → 정답이 ②입니다.

실제 emacs에서 C-v는 화면을 앞(아래)으로 넘기고, M-v가 뒤(위)로 넘깁니다.

기출 해설의 "Page Up/Page Down" 표현은 헷갈리게 쓰여 있으니, "C-v는 앞으로, Alt+v가 뒤로"로만 외우세요.

 

3-3. 삭제·복사·검색

키 동작
C-d 커서 위치의 한 글자 삭제
M-d 단어 삭제
C-k 커서부터 행 끝까지 잘라내기 (Kill)
C-y 붙여넣기 (Yank)
C-s / C-r 앞 방향 / 뒤 방향 검색

 

3-4. 질의 치환 (M-%) ⭐⭐

입력 의미
y 발견한 패턴을 치환
n 치환하지 않고 다음 패턴으로
q 질의·치환 종료
! 나머지 모든 일치 항목을 한꺼번에 치환 (삭제가 아님!)

 

3-5. 실행 옵션

옵션 의미
-nw X 창 없이 터미널에서 실행 (no window)
+n n번째 행부터 열기
-u 사용자 해당 사용자의 설정으로 실행

4. pico / nano 사용법 ⭐⭐⭐

두 편집기는 화면 아래에 단축키가 표시되어 초보자도 쉽게 쓰고, 조작법이 거의 같습니다. (^ = Ctrl)

 

키 동작 기억법
^O 저장 Write Out
^X 종료 eXit
^R 파일 읽어 삽입 Read
^W 검색 Where is
^K 행 잘라내기 Kut
^U 붙여넣기 Uncut
^G 도움말 Get help
^J 정렬(Justify)  
^C 현재 커서 위치  
^A / ^E 행 처음 / 행 끝  
^V / ^Y 다음 / 이전 페이지  
^I Tab 삽입 (기출: pico에서 Tab 삽입 = Ctrl-I)
옵션 pico nano
읽기 전용 -v -v
마우스 사용 -m -m
현재 행 번호 표시 — -c
백업 파일 생성 — -B
자동 줄바꿈 끔 -w —

📌 읽기 전용 옵션 대응: vi -R = pico -v = nano -v


5. 편집기 한눈에 비교 ⭐⭐⭐⭐⭐

기능 vi/vim emacs nano/pico
저장 :w C-x C-s ^O
종료 :q / :wq / :q! C-x C-c ^X
모드 있음 (3모드) 없음 없음
행 삭제 dd C-k (행 끝까지) ^K
붙여넣기 p C-y ^U
검색 / ? C-s C-r ^W
읽기 전용 실행 -R — -v

기출 문제 Q&A

Q. vi 편집기에서 한 줄이 정확히 linux인 경우에만 Linux로 전부 치환하는 명령은?
A. :% s/^linux$/Linux/g — ^는 행의 시작, $는 행의 끝이므로 한 줄 전체가 linux일 때만 일치합니다.

 

Q. vi 명령 모드에서 바로 직전에 삭제한 줄을 복원하는 명령은?
A. u (undo). dd는 삭제, c는 변경, r은 한 글자 교체입니다.

 

Q. vi에서 아래 방향으로 문자열을 검색하는 기호와, 다음 결과로 이동하는 키는?
A. / 와 n. (위 방향은 ?, 반대 방향 이동은 N)

 

Q. emacs 편집기에서 한 글자만 삭제하는 명령은?
A. C-d (M-d는 단어, C-k는 행 끝까지 Kill)

 

Q. 편집 중인 파일을 저장하지 않고 종료하는 vi 명령은?
A. :q! (:w 저장, :wq 저장+종료, :set nu 행 번호)

 

Q. 편집기로 보기 어려운 것은? (pico / vi / emacs / sh)
A. sh — 셸입니다. 같은 맥락으로 gcc(컴파일러), notepad(윈도우)도 편집기가 아닙니다.

 

Q. 다음 중 화면(screen) 에디터가 아닌 것은? (vi / pico / ed / emacs)
A. ed — 줄 단위 라인 에디터의 시초입니다.

 

Q. vi 편집 중 이전 비정상 종료 파일을 복구하며 여는 방법은?
A. vi -r 파일명 (읽기 전용은 -R)


💡 실무에서는?

서버 설정 파일을 만질 때는 일단 vi -R이나 view로 읽기 전용으로 열어서 확인하고, 수정할 때만 일반 모드로 다시 엽니다.

실수로 dd 한 번 누르고 :wq 해버리는 사고를 막아줍니다.

 

그리고 /etc/fstab, sshd_config처럼 한 줄 오타가 부팅·접속 불가로 이어지는 파일은 수정 전 cp로 백업부터 뜨고, 수정 후 :set nu로 행 번호를 켜 두면 오류 메시지의 "line 12" 같은 위치를 바로 찾을 수 있어요.

 

SSH 세션이 끊겨 vi가 비정상 종료되면 .swp 파일이 남는데, 그때 vi -r로 복구하는 게 바로 이 단원의 실전 활용입니다.


핵심 정리

✅ vi=빌 조이(1976) / vim=브람(1991) / emacs=리처드 스톨먼 / nano=pico의 GNU 대체 (사용법 동일)
✅ 모드 있음: vi·vim (명령/입력/마지막 행) — 모드 없음: emacs·pico·nano
✅ GUI(X 윈도 전용): gedit, kwrite / ed = 라인 에디터 / sh·gcc·notepad는 편집기 아님
✅ i(앞) a(뒤) I(행 처음) A(행 끝) o(아래 행) O(위 행) — X는 입력 모드 아님!
✅ x 문자삭제, dd 행삭제, yy 복사, p 붙여넣기, u 취소, D·d$ = 행 끝까지 삭제
✅ :w 저장 / :q 변경 없을 때만 종료 / :wq 저장+종료 / :q! 강제 종료 / :e 파일 열기
✅ :set nu(행번호) ai(자동들여쓰기) ic(대소문자무시) / /아래검색 ?위검색 n·N
✅ :%s/기존/신규/g 전체 치환, ^=행시작 $=행끝, :.,$d 현재~끝 삭제
✅ vi -R(읽기전용) -r(복구) +n(n행부터)
✅ emacs: 저장 C-x C-s / 종료 C-x C-c / 한 글자 삭제 C-d / Kill C-k, Yank C-y / -nw
✅ nano·pico: 저장 ^O / 종료 ^X / 검색 ^W / 잘라내기 ^K, 붙여넣기 ^U / 읽기전용 -v

다음 편 예고: 12편은 소프트웨어 설치 입니다.

rpm·yum·dnf, dpkg·apt, 그리고 tar·gzip 같은 아카이브 명령까지 — 기출 8%를 차지하는 효자 단원이에요!

 

궁금한 점은 댓글로 남겨주세요!

반응형