리눅스 vi 편집기 사용법 (기초 명령어와 저장, 종료 방법)
이번 글은 리눅스 vi 편집기 사용법 기초 정리다. 지난 시간에는 리눅스에서 자주 사용하는 기본 명령어들에 대해 간단히 알아보았다.

사실 기본 명령어 외에도 tail, cat 같은 자주 쓰는 명령어들이 더 있지만, 이런 것들은 실제로 필요해지는 시점에 맞춰 따로 다루는 편이 더 좋을 것 같아 이번 글에서는 넘어가도록 하겠다. 특히 tail 명령어는 로그 파일을 확인할 때 자주 사용되는데, 나중에 리눅스에 서버를 설치하고 로그를 살펴보는 과정에서 자연스럽게 다시 다뤄보도록 하겠다.
오늘은 그 대신 vi 편집기에 대해 알아보려고 한다.
vi 편집기 사용법 전에: vi와 vim
vi 편집기는 윈도우 환경에서의 메모장처럼 텍스트 파일을 작성하거나 수정할 때 사용하는 기본 편집기라고 생각하면 이해하기 쉽다. 리눅스를 다루다 보면 설정 파일을 열어 수정해야 하는 경우가 자주 생기는데, 그럴 때 가장 기본적으로 접하게 되는 편집기가 바로 vi다.
비슷한 편집기로 vim도 있다. vim은 vi를 기반으로 기능이 더 보강된 편집기라고 보면 된다. 다만 기본적인 파일 수정 작업은 vi만으로도 충분히 가능하기 때문에, 여기서는 우선 vi를 기준으로 설명하려고 한다. 기초를 먼저 익힌 뒤에 확장된 기능을 배우는 편이 훨씬 이해하기 쉽기 때문이다.
참고로 vim은 환경에 따라 기본으로 설치되어 있지 않을 수도 있다.
혹시 실행해 보려는데 동작하지 않는다면 이상하게 생각하지 말고, 설치 여부부터 확인해 보면 된다.
vi의 사용법은 터미널에서 man vi로 확인할 수 있다. Vim을 사용하는 환경에서는 편집기 안에서 :help를 입력해 도움말을 열 수도 있다.

지난 글인 리눅스 기본 명령어를 아직 보지 않았다면 먼저 보고 오자. 로그 파일을 볼 때 쓰는 tail은 리눅스 tail 명령어 글에서 따로 다뤘다.
vi 편집기 사용법 1: 파일 열기와 만들기
이제 vi 편집기를 열어보도록 하자. 우선 본인이 테스트 파일을 만들 경로로 이동하여 아래와 같이 명령어를 입력한다.
vi 생성할 파일명(혹은 오픈할 파일명)
필자는 Test 라는 이름의 파일의 신규 생성을 진행해 보았다.
저장 시에는 shift + ;(:)입력 후 wq를 입력하고 return(Enter)를 입력하면 저장이 된다. 만약 저장하고 싶지 않다면 wq 대신 q를 입력하고 return(Enter)를 치면 된다.
만약 이렇게 해서 만든 파일을 나중에 다시 열고 싶다면 그때도 위와 동일하게 vi 파일명으로 오픈하면 된다. 종료 시 wq로 저장을 하여 기존에 존재하는 파일이면 해당 파일이 열릴 것이고 저장된 파일이 없다면 빈 편집 화면이 열린다. 기본적으로 vi 편집기는 최초 오픈 시 커서 이동 모드로 세팅이 되어 있다. 이 말은 이 상태에서는 바로 편집이 안 된다는 말이다. 여기서 키보드의 i를 누르면 기본 편집 모드로 진입한다. i 를 누른 순간부터 키보드 입력이 된다. 입력을 다 마쳤으면 ESC를 누르면 다시 이동 모드로 전환된다.
vi 편집기 사용법: 세 가지 모드 정리
vi가 처음에 어렵게 느껴지는 가장 큰 이유는 모드 개념 때문이다. 파일을 열면 글자를 바로 입력할 수 없는 일반 모드로 시작한다. 여기서 i를 누르면 글자를 쓸 수 있는 입력 모드가 되고, Esc를 누르면 다시 일반 모드로 돌아온다. 일반 모드에서 :을 입력하면 저장·종료 같은 명령을 내리는 명령 모드가 된다.
i/a/o: 커서 앞 / 커서 뒤 / 다음 줄에 입력 시작dd: 현재 줄 삭제,yy: 현재 줄 복사,p: 붙여넣기u: 방금 한 작업 되돌리기/단어: 단어 검색,n으로 다음 결과로 이동gg/G: 파일 맨 위 / 맨 아래로 이동
입력이 안 된다거나 이상한 글자가 입력된다면 대부분 지금 어느 모드인지 헷갈린 경우다. 일단 Esc를 눌러 일반 모드로 돌아오는 습관을 들이자. 더 많은 명령어는 Vim 공식 도움말에서 찾아볼 수 있다.
vi 편집기 사용법 2: 이동 명령어
그러면 우리는 여기서도 지난번과 같이 핵심적인 몇 가지 명령어를 파악해보는 시간을 갖도록 하겠다. 이것들 이후 추가로 공부하는 것은 이 글을 읽는 본인들의 몫으로 남겨두도록 하겠다. 그러면 우선 이동 모드부터 확인해 보자.
| 명령어 정리 | |
|---|---|
| shift + 4 | 해당 행의 끝으로 커서가 이동 |
| shift + 6 | 해당 행의 처음으로 커서가 이동 |
| [[ | 문서의 첫번째 행의 처음으로 커서가 이동 |
| ]] | 문서의 마지막 행의 처음으로 커서가 이동 |
| x | 커서가 위치한 곳의 한글자 삭제 |
| dd | 커서가 위치한 행 삭제 |
| u | 수정한 것 되돌리기(뒤로가기) |
| yy | 행 복사(아래 명령어들과 함께 조합으로 쓰인다) |
| P(대문자 P) | 복사한 행을 커서가 있는 행 위로 붙여넣기 |
| p(소문자 p) | 복사한 행을 커서가 있는 행 아래로 붙여넣기 |
| v -> y | -v 를 누르면 커서를 이동하여 블록 설정이 가능 -v 를 누른 후 블록 설정 완료 후 y를 누르면 블록 내용이 복사된다. 그 이후 붙여넣기 처리는 위에 기재한 P/p와 동일한 방식으로 처리 된다. |
| / | / 입력 후 찾을 내용을 입력하고 Enter로 검색한다. 검색 후 N키를 누르면 다음 검색 결과로 이동된다. |
vi 편집기 사용법 3: 저장과 종료
위의 명령어들을 익히고 응용한다면, vi 편집기에서 기본적인 문서들을 만드는 데는 문제가 없을 것이라 생각한다. 일단 위의 것들 만이라도 자유자재로 사용할 수 있게 익혀 보자. 그런데 이렇게 어렵사리 만든 문서는 어떻게 저장을 하는 걸까? 위에서 먼저 가볍게 언급하긴 했지만 다시 한 번 알아보자. 먼저 명령 모드로 진입을 해야 하는데 명령 모드의 경우는 : (콜론)으로 진입이 된다. 진입 후에는 아래와 같은 명령어가 사용된다.
| 명령 모드에서 가능한 명령어 | |
|---|---|
| wq | 저장 후 종료하기 |
| q! | 강제 종료하기 |
| w | 저장하기 |
| q | 종료하기 |
마무리
이렇게 명령 모드에서 저장 후 종료하기로 나오게 되면 지정한 이름으로 파일이 생성된다. 이렇게 생성된 파일은 위에 설명했던 대로 vi 편집기로 열 수도 있지만 단순히 내용을 읽기만을 원하는 것이라면 cat이라는 명령어로도 오픈을 해볼 수 있다. 그러면 오늘은 여기서 마치도록 하겠다. vi 편집기의 경우 유용하게 쓰이는 경우가 많으므로 위에 기재한 기본적인 명령어들은 익혀두고 다음으로 넘어가도록 하자.
첫 댓글을 남겨보세요