Setting Log/Linux

[Linux] 리눅스 터미널 파일 편집기: Vi/Vim 필수 명령어

odong 2026. 7. 2. 16:38

리눅스에서 환경 변수를 수정(vi ~/.bashrc)하거나 서버 설정 파일(sudo vi /etc/nginx/nginx.conf)을 바꿀 때, 키보드로만 파일을 편집해야 하는 상황이 빈번합니다.

이때 가장 대중적으로 쓰이는 텍스트 에디터, Vim(Vi) 사용법과 필수 단축키들을 정리해 둡니다.

리눅스 에디터의 끝판왕: Vim (Vi)

Vim은 리눅스 배포판에 기본적으로 100% 내장되어 있어 가장 범용성이 높지만, '모드(Mode) 기반 아키텍처'라는 특이한 구조 때문에 처음 접하면 글자 입력도, 종료도 못 하는 대참사가 일어납니다. 이것 딱 3가지 모드만 기억하세요.

  • 명령 모드 (Command Mode): 처음 파일을 열었을 때의 기본 상태입니다. 글자가 입력되지 않고, 키보드 자판이 모두 '복사, 삭제, 이동' 같은 명령어로 작동합니다. (다른 모드에서 Esc를 누르면 언제든 이 모드로 복귀합니다.)
  • 입력 모드 (Insert Mode): 실제 코드를 타이핑하는 모드입니다. 명령 모드에서 i를 누르면 진입합니다.
  • ex 모드 / 라인 명령 모드: 저장, 종료, 검색 등을 수행하는 모드입니다. 명령 모드에서 :(콜론)을 누르면 화면 맨 아래 입력창이 뜹니다.

 Vim 실무 핵심 단축키 모음 (명령 모드 기준)

명령어 (키보드) 기능 설명 비고
i 현재 커서 위치부터 입력 모드로 전환 타이핑 시작할 때
Esc 현재 모드를 취소하고 명령 모드로 복귀 필수 브레이크
dd 현재 커서가 있는 한 줄 잘라내기(삭제) 가장 자주 씀
3dd 현재 커서 포함 아래로 3줄 삭제 숫자 조합 가능
yy 현재 커서가 있는 한 줄 복사 Yank
p 복사하거나 잘라낸 내용을 커서 아래에 붙여넣기 Paste
u 직전 작업 실행 취소 (Ctrl + Z 역할) Undo
Ctrl + r 실행 취소한 것을 다시 실행 (Ctrl + Y 역할) Redo
G 파일의 최하단(맨 끝 줄)으로 이동 대문자 필수
gg 파일의 최상단(맨 첫 줄)으로 이동 소문자 연속 두 번

 ex 모드 (저장 및 탈출 명령어)

명령 모드에서 :를 입력한 뒤 아래 명령어를 치고 Enter를 누릅니다.

  • :wq: 변경 사항을 저장하고 종료 (Write & Quit - 실무 90% 사용)
  • :q: 변경 사항이 없을 때 그냥 종료 (Quit)
  • :q!: 수정한 내용이 있지만 저장하지 않고 강제 무시 종료 (수정하다 꼬였을 때 심폐소생술)
  • /%s/기존문자/바꿀문자/g: 파일 전체에서 특정 문자열을 찾아 일괄 치환 (예: :s/localhost/127.0.0.1/g)

 이런 상황엔 Vim(Vi)을 쓰세요

  • 인프라 백엔드 배포 가동 중 아키텍처 설정 파일을 급하게 한두 줄만 고치고 바로 나와야 할 때
  • 수만 줄 짜리 대용량 로그 파일에서 특정 키워드를 검색(/...)하거나, 파일 맨 끝(G)으로 초고속 점프해야 할 때
  • Docker 컨테이너나 어떤 리눅스 임베디드 서버에 들어가도 에러 없이 작동하는 100% 가용성이 필요할 때

 

리눅스에서 처음 제어할 때 가장 장벽이 높은 것이 마우스 없는 텍스트 편집입니다. 처음에는 Esc와 i, :wq를 누르는 타이밍이 헷갈려 답답할 수 있지만, 적응하면 마우스로 손을 옮기지 않아도 되는 Vim의 속도감에 매료될 것입니다.

위 단축키 레이아웃을 치트시트처럼 터미널 옆에 띄워두고 실무에 적용해 보시기 바랍니다.