본문 바로가기

알아두면 좋은 IT 지식/General

리눅스 vi 명령어 필수 사용법 - 실제 사용 팁

리눅스에서 편집기로 가장 많이 쓰이는 프로그램으로 vi가 있다.

많은 명령어, 기능이 있지만 필수적으로 알아야 할 명령어와 편리한 사용법에 대해서 알아보자.

 

우선 vi 명령어를 통해서 새로운 파일을 생성하거나 이미 존재하는 텍스트 파일을 연다.

$ vi test.txt

 

vi는 기본적으로 명령 모드와 편집 모드가 존재한다. 처음 접한다면 이 부분에서 맨붕이 올 수 있는데 쉽게 설명하면

  • 명령 모드에서는 키보드 입력이 미리 정의된 어떤 기능을 실행하는 역할을 하고,
  • 편집 모드에서는 키보드 입력 시 해당하는 문자가 입력된다고 보면 된다.

 

vi가 시작되면 처음엔 명령 모드로 실행이 되고,  i, a, o 키를 통해서 편집 모드로 전환 할 수 있다.

편집 모드로 전환되면 키보드를 입력 시 해당하는 문자가 그대로 작성된다.

 

i 커서 위치에서 입력 시작
a 커서 다음 위치에서 입력 시작
o 커서 다음 행에서 입력 시작

문자 작성이 끝나고 다른 기능을 수행하기 위해서는 Esc키를 눌러서 다시 명령 모드로 전환한다.

 

명령 모드에서 커서를 이동할 때에는 h, j, k, l 키를 입력한다.

순서대로 왼쪽, 아래, 위, 오른쪽 으로 이동하고 아래 그림과 같이 방향키로 생각하면 이해가 쉽다.

 

입력한 문자의 수정이나 삭제가 필요한 경우 명령 모드에서 해당 라인이나 문자로 커서를 이동 후 x, d, r 키 를 활용한다.

 

x 커서 위치의 문자 1개 삭제
5x 커서 위치 포함 오른족 문자 5개 삭제
dd 커서 위치 라인 1개 삭제
5dd 커서 위치 포함 아래 라인 5개 삭제
dw 커서 위치 포함 오른쪽 띄어쓰기까지 삭제 (delete word)
r + ? 커서 위치 문자 1개를 r키 다음에 입력된 ?로 수정 (revise)

 

한 문장이 길거나 페이지를 넘어가는 경우 문장 이동, 페이지 이동도 반드시 필요하다.

 

$ (Shift+4) 문장의 끝으로 커서 이동
^ (Shift+6) 문장의 처음으로 커서 이동
gg 첫번째 행으로 커서 이동
G 마지막 행으로 커서 이동
Ctrl+d 다음 페이지로 이동 (down)
Ctrl+u 이전 페이지로 이동 (up)

 

내용이 길다면 특정 단어를 검색하거나 바꾸는 기능도 반드시 필요할 때가 온다.

/ 키를 입력하면 검색 모드로 전환되고 단어나 문장을 입력 후 Enter키를 누르면 일치하는 단어의 위치로 이동한다.

일치하는 단어가 여러개 일 경우 n 키를 입력해서 다음 일치하는 단어로 이동한다.

검색 모드에서 다시 명령 모드로 돌아오려면 Esc키를 눌러준다.

 

문서 편집이 모두 완료되었다면 변경 사항을 저장하거나 취소 후 vi를 종료하고 터미널로 돌아간다.

vi를 종료하기 위해서는 : 키를 입력하여 ex명령 모드로 전환 후 아래 명령어를 입력 후 Enter를 입력한다.

ex명령 모드에서 다시 명령 모드로 돌아오려면 Esc키를 눌러준다.

 

:wq + Enter 저장 후 종료
:q + Enter 종료
:q! + Enter 강제 종료 (변경 사항이 있는 경우 취소하고 종료)

 

vi를 처음 접할 때 가장 헷갈리는 부분인 모드 전환에 대해서 그림으로 정리해 봤다.

 

이 외에도 기능이 너무 많지만 일단 이정도만 알아두면 vi를 능숙하게 사용하는데 전혀 지장이 없다.

반대로 이정도도 모른다면 vi를 사용하는데 반드시 불편함을 느낄 것이다.