Post

Ubuntu VI 에디터 기본 사용방법 가이드

리눅스 서버 관리의 필수 도구인 VI 에디터 사용법을 처음부터 완전히 마스터하는 가이드입니다. 모드 이해부터 기본 편집, 고급 명령어, 설정 파일 편집까지 실무에서 바로 활용할 수 있는 모든 내용을 예제와 함께 다룹니다. 이 가이드 하나로 서버에서 파일 편집을 자유자재로 할 수 있습니다.

Ubuntu VI 에디터 기본 사용방법 가이드

Ubuntu VI 에디터 기본 사용방법 가이드

개요: 왜 VI를 배워야 할까?

GUI가 없는 리눅스 서버 환경에서 설정 파일을 편집하거나 코드를 수정할 때 가장 확실한 방법은 VI 에디터를 사용하는 것입니다. 거의 모든 리눅스 시스템에 기본으로 설치되어 있어 언제 어디서나 사용할 수 있는 필수 도구입니다.

VI의 장점

  • 범용성: 모든 Unix/Linux 시스템에 기본 설치
  • 효율성: 마우스 없이 키보드만으로 모든 작업 가능
  • 강력함: 정규표현식, 매크로, 플러그인 지원
  • 가벼움: 메모리 사용량이 적고 빠른 실행
  • 원격 작업: SSH 연결에서도 완벽하게 동작

#01. VI 에디터 시작하기

1. VI 실행 방법

1
2
3
4
5
6
7
8
9
10
11
12
13
# 새 파일 생성 또는 기존 파일 열기
$ vi filename.txt

# 읽기 전용으로 열기
$ view filename.txt
$ vi -R filename.txt

# 특정 줄 번호로 열기
$ vi +10 filename.txt      # 10번째 줄로 이동
$ vi +/pattern filename.txt # 'pattern' 검색 결과로 이동

# 복구 모드로 열기 (비정상 종료된 파일)
$ vi -r filename.txt

#02. VI의 모드 시스템 이해

VI의 가장 중요한 개념은 모드입니다. 각 모드마다 동작 방식이 완전히 다릅니다.

1. 세 가지 기본 모드

graph LR
    A[명령 모드<br>Command Mode] -->|i, a, o| B[입력 모드<br>Insert Mode]
    B -->|Esc| A
    A -->|:| C[라인 명령 모드<br>Line Command Mode]
    C -->|Esc| A

1) 명령 모드 (Command Mode) - 기본 모드

  • VI 시작 시 기본 모드
  • 커서 이동, 텍스트 삭제, 복사 등의 명령 실행
  • 키 입력이 모두 명령어로 해석됨

2) 입력 모드 (Insert Mode) - 편집 모드

  • 실제 텍스트 입력이 가능한 모드
  • 일반 텍스트 에디터처럼 동작
  • 화면 하단에 -- INSERT -- 표시

3) 라인 명령 모드 (Line Command Mode) - EX 모드

  • 파일 저장, 종료, 검색/치환 등의 명령 실행
  • 화면 하단에 : 프롬프트 표시
  • 명령어 입력 후 Enter로 실행 → 명령모드로 돌아감
  • 명령어를 실행하지 않고 명령모드로 돌아가려고 할 때는 Esc

2. 모드 전환 실습

1
2
3
4
5
# VI로 새 파일 열기
$ vi practice.txt

# 현재 상태: 명령 모드
# 화면 하단을 확인해보세요

모드 전환 키

현재 모드목표 모드설명
명령 모드입력 모드i커서 위치에서 입력 시작
명령 모드입력 모드a커서 다음 위치에서 입력
명령 모드입력 모드o새 줄 추가 후 입력
입력 모드명령 모드ESC명령 모드로 돌아가기
명령 모드라인 명령 모드:화면 하단에 : 프롬프트
라인 명령 모드명령 모드ESC명령 모드로 돌아가기

#03. 기본 텍스트 편집

1. 실습: 첫 번째 텍스트 편집

1
2
3
4
5
6
7
8
9
10
11
12
13
# 1. vi로 새 파일 열기
$ vi first_practice.txt

# 2. 입력 모드로 진입 (i 키 누르기)
# 화면 하단에 -- INSERT -- 가 표시됨

# 3. 다음 텍스트 입력
Hello Ubuntu!
This is my first VI editing practice.
Learning VI editor is essential for Linux.

# 4. ESC 키를 눌러 명령 모드로 돌아가기
# 5. 파일 저장하고 종료: :wq 입력 후 Enter

3. 기본 저장 및 종료 명령어

라인 명령 모드에서 실행

명령어설명사용 시점
:w파일 저장작업 중간에 저장
:qVI 종료수정 없이 종료 (파일에 수정된 내용이 없는 경우만 가능)
:wq저장 후 종료작업 완료 후 저장하며 종료
:q!저장하지 않고 강제 종료수정 내용을 버리고 종료
:w filename다른 이름으로 저장백업 생성
:wq!강제 저장 후 종료읽기 전용 파일 수정 시(해당 파일에 w권한이 있는 경우만 가능)

#04. 커서 이동 마스터하기

효율적인 VI 사용을 위해서는 커서 이동을 마스터해야 합니다.

1. 기본 커서 이동

방향키 대신 사용하는 기본 키 (방향키도 가능)

1
2
3
4
5
     k (위)
     ↑
h (왼쪽) ← → l (오른쪽)
     ↓
     j (아래)
방향기억법
h왼쪽Home (시작점)
j아래Jump down
kKick up
l오른쪽Last (끝점)

2. 단어 단위 이동

1
2
3
4
5
6
7
# 실습용 텍스트 파일 생성
$ vi word_practice.txt

# 다음 텍스트를 입력하세요
The quick brown fox jumps over the lazy dog.
Ubuntu Linux is a powerful operating system.
Learning VI editor commands step by step.

단어 이동 명령어

설명예시
w다음 단어의 시작으로Thequick
b이전 단어의 시작으로quickThe

3. 줄 단위 이동

설명활용
0줄의 맨 앞으로 (Home키와 동일)들여쓰기 앞으로
^줄의 첫 번째 문자로공백 다음 첫 문자
$줄의 맨 끝으로 (End키와 동일)줄 끝에 문자 추가 시
G파일의 마지막 줄로파일 끝으로 점프
gg파일의 첫 번째 줄로파일 시작으로 점프
10G10번째 줄로특정 줄 번호로 이동

#05. 텍스트 삭제와 수정

1. 문자 및 단어 삭제

1
2
3
4
5
6
7
# 삭제 실습용 파일 생성
$ vi delete_practice.txt

# 다음 텍스트 입력
This is a sample text for deletion practice.
We will learn various deletion commands.
Some words have typos that need to be fixed.

기본 삭제 명령어

설명예시
x커서 위치의 문자 삭제 (Delete키와 동일)HelloHell
X커서 앞의 문자 삭제 (Backspace키와 동일)Helloello
dw커서부터 단어 끝까지 삭제Hello worldworld
db커서부터 단어 시작까지 삭제Hello worldworld
dd현재 줄 전체 삭제전체 줄 제거
d0커서부터 줄 시작까지 삭제줄 앞부분 정리
d$커서부터 줄 끝까지 삭제줄 뒷부분 정리
dG커서부터 파일 끝까지 삭제파일 뒷부분 모두 삭제
dgg커서부터 파일 시작까지 삭제파일 앞부분 모두 삭제

3. 변경 명령어 (Change)

변경 명령어는 삭제 후 자동으로 입력 모드로 전환됩니다.

설명동작
cw단어 변경단어 삭제 후 입력 모드
cc줄 변경줄 삭제 후 입력 모드
c$줄 끝까지 변경커서부터 줄 끝 삭제 후 입력
c0줄 시작까지 변경커서부터 줄 시작 삭제 후 입력

4. 실습: 오타 수정하기

1
2
3
4
5
6
7
8
9
10
11
12
$ vi typo_practice.txt

# 다음 텍스트를 입력하세요 (의도적으로 오타 포함)
Ubunntu Linuxx is a ggreat operating systemm.
Learningg VI ediitor is verry important.
Practicce makes perrfect!

# 오타 수정 실습:
# 1. 'Ubunntu' → 'Ubuntu': n 위에서 x로 n 삭제
# 2. 'Linuxx' → 'Linux': 마지막 x에서 x로 삭제
# 3. 'ggreat' → 'great': 첫 번째 g에서 x로 삭제
# 4. 'systemm' → 'system': 마지막 m에서 x로 삭제

#06. 복사, 붙여넣기, 실행 취소

1. 복사 (Yank) 명령어

VI에서 복사는 “yank”라고 부릅니다.

1
2
3
4
5
6
7
8
# 복사 실습용 파일 생성
$ vi copy_practice.txt

# 다음 텍스트 입력
Line 1: This line will be copied
Line 2: Another line for practice
Line 3: More text for copying
Line 4: Final line of text

기본 복사 명령어

설명사용 예시
yy현재 줄 복사전체 줄 복사
yw현재 단어 복사단어 복사
y$커서부터 줄 끝까지 복사줄 일부 복사
y0커서부터 줄 시작까지 복사줄 앞부분 복사
yG커서부터 파일 끝까지 복사파일 뒷부분 모두 복사

숫자와 조합

1
2
3yy     # 3줄 복사
5yw     # 5개 단어 복사

2. 붙여넣기 (Put) 명령어

설명위치
p커서 다음 위치에 붙여넣기커서 뒤/아래
P커서 이전 위치에 붙여넣기커서 앞/위

3. 잘라내기 (Cut)

삭제 명령어들이 실제로는 잘라내기 역할도 합니다.

1
2
3
dd      # 줄 잘라내기 (삭제하면서 복사)
dw      # 단어 잘라내기
d$      # 커서부터 줄 끝까지 잘라내기

4. 실행 취소 (Undo/Redo)

설명활용
u마지막 동작 실행 취소실수 복구
U현재 줄의 모든 변경 취소줄 전체 복구
Ctrl + r실행 취소한 것을 다시 실행취소 복구

5. 복사/붙여넣기 실습

1
2
3
4
5
6
7
8
9
10
11
12
# 1. copy_practice.txt에서 다음 작업 수행
# 2. 첫 번째 줄(Line 1)에 커서를 위치
# 3. yy로 줄 복사
# 4. 마지막 줄로 이동 (G)
# 5. p로 붙여넣기
# 6. 결과 확인

# 단어 복사 실습
# 1. "practice" 단어에 커서 위치
# 2. yw로 단어 복사
# 3. 다른 위치로 이동
# 4. p로 붙여넣기

#07. 검색과 치환

1. 실습 파일 작성

1
2
3
4
5
6
7
8
# 검색 실습용 파일 생성
$ vi search_practice.txt

# 다음 텍스트 입력
The quick brown fox jumps over the lazy dog.
This text contains the word "the" multiple times.
We will search for various patterns in this text.
The word "pattern" appears here: pattern.

2. 검색 실습

라인 명령모드에서 실행한다.

명령어설명방향
?검색어위쪽으로 검색뒤→앞
/검색어아래쪽으로 검색앞→뒤
n다음 검색 결과로 이동검색 방향
N이전 검색 결과로 이동검색 반대 방향
1
2
3
4
# 1. /the 입력 후 Enter - "the" 검색
# 2. n 키로 다음 "the"로 이동
# 3. N 키로 이전 "the"로 이동
# 4. /pattern 입력 후 Enter - "pattern" 검색
This post is licensed under CC BY 4.0 by the author.