Linux vim 명령어 사용법 2편: 검색·치환, 삭제, 복사, 분할창 실무 예제

1편에서 vim 저장·종료와 편집모드, 커서 이동을 익혔다면 이제부터는 실제로 파일을 빠르게 고치는 단계입니다.

리눅스 서버에서 설정 파일이나 로그 파일을 열다 보면 단순히 글자를 입력하는 것보다 더 자주 필요한 일이 있습니다. 특정 단어를 찾고, 같은 문자열을 한꺼번에 바꾸고, 필요 없는 줄을 삭제하고, 비슷한 설정 줄을 복사해서 붙여넣는 작업입니다.

예를 들어 server.conf 파일에서 INFODEBUG로 바꾸거나, 8080 포트를 9090으로 수정하거나, 특정 옵션이 들어간 줄을 찾아 삭제해야 할 때가 있습니다. 이때 vim의 검색·치환 명령어를 알면 마우스로 하나씩 찾는 것보다 훨씬 빠르게 작업할 수 있습니다.

이번 글에서는 Linux vim 명령어 사용법 2편으로, 초보자가 실무에서 바로 쓰기 좋은 검색, 치환, 삭제, 복사, 붙여넣기, 분할창, 줄번호 표시를 예제로 정리하겠습니다.

목차
  1. 1편에서 이어지는 vim 작업 흐름
  2. 먼저 결론 7줄
  3. 실습용 파일 만들기
  4. vim 검색: /검색어, n, N
  5. 현재 줄에서 치환하기: :s
  6. 파일 전체에서 치환하기: :%s
  7. 확인하면서 치환하기: gc 옵션
  8. 줄 삭제와 범위 삭제: dd, d$, dG
  9. 복사와 붙여넣기: yy, p, P
  10. 실수했을 때 되돌리기: u, Ctrl+r
  11. 분할창 열기: :sp, :vsp
  12. 줄번호 표시와 기본 설정
  13. 복사해서 쓰는 vim 명령어 치트시트
  14. 마무리 정리

1. 1편에서 이어지는 vim 작업 흐름

이번 2편을 보기 전에 1편에서 익힌 흐름을 잠깐 떠올리면 좋습니다.

vim 기본 흐름 복습

  1. vim 파일명으로 파일을 엽니다.
  2. 글자를 입력하려면 i를 눌러 편집모드로 들어갑니다.
  3. 명령어를 입력하려면 Esc를 눌러 명령모드로 돌아옵니다.
  4. 저장하고 종료하려면 :wq를 입력합니다.
  5. 저장하지 않고 나가려면 :q!를 입력합니다.

오늘 배울 검색, 치환, 삭제, 복사, 분할창 명령어는 대부분 명령모드에서 실행합니다. 따라서 명령어가 안 먹힌다면 먼저 Esc를 눌러 명령모드로 돌아오는 습관을 들이면 좋습니다.

2. 먼저 결론 7줄

vim 2편에서는 아래 명령어부터 익히면 됩니다.

  1. /검색어 : 문서 안에서 문자열 검색
  2. n, N : 다음 검색 결과, 이전 검색 결과 이동
  3. :s/old/new/ : 현재 줄의 첫 번째 old를 new로 치환
  4. :s/old/new/g : 현재 줄의 모든 old를 new로 치환
  5. :%s/old/new/g : 파일 전체의 old를 new로 치환
  6. :%s/old/new/gc : 파일 전체에서 확인하면서 치환
  7. dd, yy, p : 줄 삭제, 줄 복사, 붙여넣기

3. 실습용 파일 만들기

중요한 서버 설정 파일로 바로 연습하기보다는 테스트 파일을 하나 만들어 실습하는 것이 좋습니다.

cat > vim-practice.log << 'EOF'
2026-06-01 INFO server start
2026-06-01 INFO user login
2026-06-01 WARN disk usage high
2026-06-01 INFO backup complete
2026-06-01 ERROR connection failed
port=8080
mode=dev
mode=dev
EOF

vim vim-practice.log

위 파일을 열고 오늘 명령어를 따라 해보면 검색과 치환 흐름을 훨씬 쉽게 이해할 수 있습니다.

실무 파일은 먼저 백업하세요.

특히 :%s/old/new/g처럼 파일 전체를 바꾸는 명령어는 한 번에 많은 내용을 바꿀 수 있습니다. 운영 서버 설정 파일이라면 아래처럼 백업 후 작업하는 습관이 좋습니다.

cp server.conf server.conf.bak
vim server.conf

4. vim 검색: /검색어, n, N

vim에서 가장 기본적인 검색은 /검색어입니다. 명령모드에서 슬래시를 입력한 뒤 찾고 싶은 문자열을 적습니다.

/INFO

그러면 문서 안에서 INFO라는 문자열을 찾습니다. 검색 후에는 다음 키로 이동할 수 있습니다.

명령어 의미 사용 상황
/INFO INFO 문자열 검색 로그나 설정 파일에서 특정 단어 찾기
n 다음 검색 결과로 이동 같은 단어가 여러 번 나올 때
N 이전 검색 결과로 이동 지나친 검색 결과로 돌아갈 때
?INFO 위쪽 방향으로 INFO 검색 현재 위치보다 앞쪽에서 찾고 싶을 때

초보자용 기억법

/는 아래 방향 검색, ?는 위 방향 검색, n은 다음 결과, N은 반대 방향 결과라고 생각하면 됩니다.


5. 현재 줄에서 치환하기: :s

치환은 “찾은 문자열을 다른 문자열로 바꾸는 작업”입니다. 가장 기본 형태는 다음과 같습니다.

:s/찾을문자열/바꿀문자열/

예를 들어 현재 줄에서 첫 번째 INFODEBUG로 바꾸고 싶다면 다음처럼 입력합니다.

:s/INFO/DEBUG/

여기서 중요한 점은 :s/INFO/DEBUG/는 기본적으로 현재 줄에서 첫 번째로 만나는 INFO만 바꾼다는 것입니다.

현재 줄의 모든 문자열을 바꾸려면 g

현재 줄에 같은 단어가 여러 번 있고, 그 줄 안의 모든 항목을 바꾸려면 끝에 g를 붙입니다.

:s/INFO/DEBUG/g

g의 의미

g는 global의 느낌으로 이해하면 쉽습니다. 다만 여기서의 global은 “파일 전체”가 아니라, 지정된 범위 안에서 한 줄에 여러 번 등장하는 항목까지 모두 바꾼다는 의미로 보면 됩니다.

6. 파일 전체에서 치환하기: :%s

파일 전체에서 문자열을 바꾸려면 %를 붙입니다. %는 전체 파일 범위를 의미합니다.

:%s/INFO/DEBUG/g

위 명령어는 파일 전체에서 INFODEBUG로 바꿉니다.

명령어 범위 의미
:s/INFO/DEBUG/ 현재 줄 현재 줄의 첫 번째 INFO만 DEBUG로 변경
:s/INFO/DEBUG/g 현재 줄 현재 줄의 모든 INFO를 DEBUG로 변경
:%s/INFO/DEBUG/g 파일 전체 파일 전체의 모든 INFO를 DEBUG로 변경

실무 예시: 포트 번호 바꾸기

설정 파일에서 8080 포트를 9090으로 바꾸고 싶다면 다음처럼 사용할 수 있습니다.

:%s/8080/9090/g

실무 예시: dev를 prod로 바꾸기

테스트 설정을 운영 설정으로 바꾸는 상황이라면 다음처럼 입력할 수 있습니다.

:%s/mode=dev/mode=prod/g

7. 확인하면서 치환하기: gc 옵션

파일 전체 치환은 편리하지만 위험할 수 있습니다. 특히 설정 파일에서 devprod로 바꿀 때, 바꾸면 안 되는 위치까지 바뀔 수 있습니다.

이때는 gc 옵션을 사용하면 좋습니다.

:%s/INFO/DEBUG/gc

이 명령어는 파일 전체에서 INFODEBUG로 바꾸되, 각 항목마다 바꿀지 물어봅니다.

입력 의미
y 현재 항목을 치환
n 현재 항목은 건너뜀
a 남은 항목을 모두 치환
q 치환 작업 종료
Esc 치환 중단

운영 서버에서는 gc가 안전합니다.

처음에는 :%s/old/new/g보다 :%s/old/new/gc를 추천합니다. 확인하면서 바꾸면 실수로 전체 설정을 망가뜨릴 가능성을 줄일 수 있습니다.


8. 줄 삭제와 범위 삭제: dd, d$, dG

vim에서는 삭제 명령어도 자주 씁니다. 가장 많이 쓰는 것은 dd입니다.

dd

dd는 현재 커서가 있는 줄 전체를 삭제합니다. 설정 파일에서 불필요한 줄 하나를 지울 때 아주 자주 사용합니다.

명령어 의미 예시 상황
dd 현재 줄 삭제 불필요한 설정 한 줄 삭제
2dd 현재 줄부터 2줄 삭제 연속된 두 줄 삭제
d$ 커서 위치부터 줄 끝까지 삭제 줄 뒷부분만 지우고 싶을 때
D d$와 비슷하게 줄 끝까지 삭제 현재 위치 뒤 내용을 빠르게 삭제
dG 현재 줄부터 파일 끝까지 삭제 아래쪽 내용을 통째로 정리할 때

dG는 조심해서 사용하세요.

dG는 현재 위치부터 파일 끝까지 삭제합니다. 실수로 중요한 내용이 사라질 수 있으니, 삭제 후 바로 저장하지 말고 결과를 확인한 뒤 저장하는 것이 좋습니다.

반응형

9. 복사와 붙여넣기: yy, p, P

설정 파일을 수정하다 보면 비슷한 줄을 복사해서 조금만 바꿔야 할 때가 많습니다. 이때는 yyp를 사용합니다.

명령어 의미 사용 예시
yy 현재 줄 복사 설정 한 줄을 복사할 때
2yy 현재 줄부터 2줄 복사 여러 줄 설정을 복사할 때
p 커서 아래 또는 뒤에 붙여넣기 복사한 줄을 아래에 붙일 때
P 커서 위 또는 앞에 붙여넣기 복사한 줄을 위에 붙일 때

실무 예시: 설정 한 줄 복사해서 수정하기

# 1. 복사할 줄로 이동
# 2. 현재 줄 복사
yy

# 3. 아래에 붙여넣기
p

# 4. i 또는 a로 들어가 필요한 값만 수정

외우기 쉬운 조합

dd는 줄 삭제, yy는 줄 복사, p는 붙여넣기입니다. 서버 설정 파일을 수정할 때 이 세 개만 익혀도 작업 속도가 꽤 빨라집니다.


10. 실수했을 때 되돌리기: u, Ctrl+r

vim에서 삭제나 치환을 하다가 실수했다면 바로 되돌릴 수 있습니다.

명령어 의미 상황
u 되돌리기, Undo 잘못 삭제하거나 치환했을 때
Ctrl + r 다시 실행, Redo 되돌린 작업을 다시 적용할 때
# 실수로 dd를 눌러 줄을 삭제했다면
u

# 다시 삭제 상태로 되돌리고 싶다면
Ctrl + r

저장 전에는 복구 기회가 있습니다.

vim 안에서 실수했다면 당황하지 말고 u를 먼저 눌러보세요. 아직 저장하지 않았다면 :q!로 변경 내용을 버리고 나가는 방법도 있습니다.

11. 분할창 열기: :sp, :vsp

vim은 하나의 화면을 나누어 여러 위치나 여러 파일을 동시에 볼 수 있습니다. 긴 설정 파일을 보거나, 두 파일을 비교하면서 수정할 때 유용합니다.

명령어 의미 사용 상황
:sp 수평 분할창 열기 위아래로 화면을 나눌 때
:sp 파일명 수평 분할로 다른 파일 열기 두 파일을 위아래로 볼 때
:vsp 수직 분할창 열기 좌우로 화면을 나눌 때
:vsp 파일명 수직 분할로 다른 파일 열기 두 파일을 좌우 비교할 때
Ctrl + ww 다음 창으로 이동 분할창 사이를 이동할 때
:q 현재 창 닫기 분할창 하나만 닫을 때

실무 예시: 설정 파일과 백업 파일 비교하기

vim server.conf

# vim 안에서 백업 파일을 좌우 분할로 열기
:vsp server.conf.bak

# 창 이동
Ctrl + w 누른 뒤 w

분할창은 언제 좋을까?

긴 설정 파일의 위쪽과 아래쪽을 동시에 보거나, 원본 파일과 수정 파일을 나란히 볼 때 좋습니다. 초보자는 :vsp 파일명Ctrl + ww 조합부터 익히면 충분합니다.


12. 줄번호 표시와 기본 설정

오류 메시지에서 “12번째 줄을 확인하세요”처럼 라인 번호가 나올 때가 많습니다. 이때 vim에서 줄번호를 표시하면 훨씬 편합니다.

:set number

줄번호를 끄고 싶다면 다음 명령어를 사용합니다.

:set nonumber

상대 줄번호를 보고 싶다면 다음 명령어도 사용할 수 있습니다.

:set relativenumber

.vimrc에 기본 설정 넣기

매번 줄번호를 켜기 귀찮다면 홈 디렉터리의 ~/.vimrc 파일에 설정을 넣을 수 있습니다.

vim ~/.vimrc

아래 내용을 추가합니다.

set number
syntax on
set showcmd
set ruler
설정 의미
set number 줄번호 표시
syntax on 문법 강조 켜기
set showcmd 입력 중인 명령어 일부 표시
set ruler 현재 커서 위치 표시

플러그인은 나중에 해도 됩니다.

vim을 처음 익히는 단계에서는 플러그인 설치보다 기본 명령어에 익숙해지는 것이 먼저입니다. 검색, 치환, 삭제, 복사, 분할창이 익숙해진 뒤 필요한 플러그인을 추가해도 늦지 않습니다.


13. 복사해서 쓰는 vim 명령어 치트시트

아래는 이번 글에서 배운 명령어를 한 번에 정리한 치트시트입니다. 서버 작업 전에 메모해두면 좋습니다.

# 검색
/검색어        # 아래 방향으로 검색
?검색어        # 위 방향으로 검색
n             # 다음 검색 결과
N             # 이전 검색 결과

# 현재 줄 치환
:s/old/new/       # 현재 줄 첫 번째 old만 new로 변경
:s/old/new/g      # 현재 줄 모든 old를 new로 변경

# 파일 전체 치환
:%s/old/new/g     # 파일 전체에서 old를 new로 변경
:%s/old/new/gc    # 확인하면서 파일 전체 치환

# 삭제
dd            # 현재 줄 삭제
2dd           # 현재 줄부터 2줄 삭제
d$            # 커서 위치부터 줄 끝까지 삭제
D             # 커서 위치부터 줄 끝까지 삭제
dG            # 현재 줄부터 파일 끝까지 삭제

# 복사와 붙여넣기
yy            # 현재 줄 복사
2yy           # 현재 줄부터 2줄 복사
p             # 아래 또는 뒤에 붙여넣기
P             # 위 또는 앞에 붙여넣기

# 되돌리기
u             # 되돌리기
Ctrl + r      # 다시 실행

# 분할창
:sp           # 수평 분할
:sp 파일명    # 수평 분할로 파일 열기
:vsp          # 수직 분할
:vsp 파일명   # 수직 분할로 파일 열기
Ctrl + w 후 w # 창 이동
:q            # 현재 창 닫기

# 줄번호와 설정
:set number
:set nonumber
:set relativenumber

# 저장과 종료
:w
:wq
:q!

실무에서 많이 쓰는 안전한 치환 순서

1. /찾을문자열 로 먼저 검색한다.
2. n, N으로 바뀌어도 되는 위치인지 확인한다.
3. 전체 변경이 필요하면 :%s/old/new/gc 로 확인하면서 치환한다.
4. 결과를 눈으로 확인한다.
5. 이상 없으면 :wq 로 저장하고 종료한다.
6. 이상하면 u로 되돌리거나 :q!로 저장하지 않고 종료한다.

vim 명령어는 한 번에 외우기보다 자주 보는 쪽이 더 잘 익숙해집니다.

검색·치환·삭제·복사 명령어는 실습할 때 옆에 작은 메모지나 단축키 노트를 두면 좋습니다. 특히 리눅스마스터나 서버 관리 공부를 같이 한다면, 개발자용 키보드나 얇은 노트에 자주 쓰는 명령어를 정리해두면 반복 학습에 도움이 됩니다.

vim·리눅스 공부용 메모 도구 살펴보기

이 링크는 쿠팡파트너스 활동의 일환으로, 구매 시 일정액의 수수료를 제공받을 수 있습니다.

14. 자주 묻는 질문

vim에서 검색은 어떻게 하나요?

명령모드에서 /검색어를 입력하면 아래 방향으로 검색합니다. 다음 검색 결과는 n, 이전 검색 결과는 N으로 이동할 수 있습니다.

vim에서 파일 전체 치환은 어떻게 하나요?

:%s/old/new/g를 사용하면 파일 전체에서 oldnew로 바꿀 수 있습니다. 다만 실수 방지를 위해 처음에는 :%s/old/new/gc처럼 확인 옵션을 붙이는 것이 좋습니다.

:s와 :%s는 어떤 차이인가요?

:s는 기본적으로 현재 줄에서 치환합니다. :%s는 파일 전체 범위에서 치환합니다. 즉, %가 붙으면 전체 파일을 대상으로 한다고 이해하면 됩니다.

vim에서 한 줄 삭제는 어떻게 하나요?

명령모드에서 dd를 입력하면 현재 줄이 삭제됩니다. 여러 줄을 삭제하려면 2dd, 3dd처럼 숫자를 붙일 수 있습니다.

vim에서 복사 붙여넣기는 어떻게 하나요?

현재 줄을 복사하려면 yy, 아래에 붙여넣으려면 p, 위에 붙여넣으려면 P를 사용합니다.

vim에서 실수로 삭제했을 때 복구할 수 있나요?

명령모드에서 u를 누르면 방금 작업을 되돌릴 수 있습니다. 되돌린 작업을 다시 적용하려면 Ctrl + r을 사용합니다.

15. 마무리 정리

오늘의 핵심 정리

  • /검색어로 문서 안에서 원하는 문자열을 찾을 수 있습니다.
  • n은 다음 검색 결과, N은 이전 검색 결과로 이동합니다.
  • :s/old/new/는 현재 줄의 첫 번째 항목을 치환합니다.
  • :s/old/new/g는 현재 줄의 모든 항목을 치환합니다.
  • :%s/old/new/g는 파일 전체 치환입니다.
  • :%s/old/new/gc는 확인하면서 치환하는 안전한 방식입니다.
  • dd는 줄 삭제, yy는 줄 복사, p는 붙여넣기입니다.
  • :sp, :vsp로 vim 분할창을 사용할 수 있습니다.
  • :set number로 줄번호를 표시할 수 있습니다.

Linux vim 명령어는 처음에는 키가 많아 보여 어렵지만, 실제 서버 작업에서 자주 쓰는 명령어는 어느 정도 정해져 있습니다. 특히 검색과 치환은 설정 파일 수정, 로그 분석, 문자열 변경 작업에서 자주 쓰이기 때문에 꼭 익혀두면 좋습니다.

오늘 배운 명령어 중 가장 실무적인 조합은 /검색어, n, :%s/old/new/gc, dd, yy, p, u입니다. 이 정도만 익혀도 vim에서 파일을 열고 수정하는 부담이 많이 줄어듭니다.

반응형