AnbyMata의 해킹 노트

[Linux 기초] EP.8 - vi 편집기로 파일 생성, 입력, 저장하기 (vi) 본문

[Linux 기초]

[Linux 기초] EP.8 - vi 편집기로 파일 생성, 입력, 저장하기 (vi)

AnbyMata 2025. 10. 4. 21:00

 지금까지 우리는 리눅스에서 디렉토리에 대해 주로 알아보았습니다. 하지만 디렉토리(폴더)만으로는 아무 것도 할 수 없죠.

예를 들어, 우리는 컴퓨터에서 메모장, 한글, Word 같은 프로그램을 사용해 글을 작성하고 문서를 만듭니다.


이처럼 문자나 글로 작성된 내용을 텍스트 데이터(text data) 라고 부릅니다.

 

그리고 이러한 텍스트 데이터를 입력하고 저장할 수 있게 해 주는 프로그램이 바로 텍스트 에디터(Text Editor, 직역하면 텍스트 편집기) 입니다. 대표적인 예로 메모장, 한글, Word 등이 있죠.

 

 지금부터 알아볼 내용은 리눅스에 존재하는 Text Editor 'vi 편집기' 입니다.

 

[1]  'vi 편집기' 란?

 'vi (Visual Editor)'는 리눅스에서 텍스트 파일을 편집할 수 있는 기본 Text Editor입니다.

우리가 Windows를 처음 실행했을 때, 추가 설치 없이 바로 사용할 수 있는 메모장이 있는 것처럼, 리눅스에서도 vi 편집기가 기본적으로 설치되어 있어 별도의 설치 없이 바로 사용할 수 있습니다.

 

 또한, 그래픽 환경(GUI)이 없는 CLI 환경에서도 파일을 수정할 수 있습니다. (GUI와 CLI.. EP.3에서 다루었는데.. 기억하시죠?)

 

메모장과 다른 점을 뽑아보자면, vi 편집기는 mode(모드)를 전환하면서 작업합니다.

주요 모드:

1. Command Mode (명령 모드): 복사, 삭제, 저장, 종료 등의 명령 실행

2. Insert Mode (입력 모드): 실제 파일에 텍스트 입력 및 수정

3. Last Line Mode (명령줄 모드):  ':'를 사용해서 저장, 종료 같은 명령어를 입력

 

 

 

[2]  명령어 'vi' : 새 파일 생성하기 or 기존 파일 열기

 이제 vi를 사용해서 새로운 파일을 만들어봅시다.

 

기본적인 사용 방법은

$ vi [파일_이름]

입니다. 

 

vi 명령어를 사용해 "test.txt" 라는 파일을 만들어 봅시다.

(root 계정으로 로그인하고 터미널 오는거 이젠 기본이져~)

 

'vi test.txt' 명령을 입력하면,

'vi test.txt' 입력!

이런 식으로 "test.txt"라는 파일이 생성 및 열리게 됩니다.

"test.txt" 파일. 아무것도 없는 백지상태.

 

 

파일을 저장 및 내용입력 부분은 일단 넘어가고, "test.txt"라는 파일이 생성된 상황입니다.

→ 'ls' 명령어로 확인해보니 "test.txt"라는 파일이 있다!

파란색의 디렉토리들 사이에 흰색의 "test.txt" 파일이 잘 있음을 확인!

 여기서 vi 명령어의 두번째 기능을 알아보겠습니다.

이미 "test.txt"라는 파일이 있는 상황에서 'vi test.txt' 명령을 실행해보면,

'vi test.txt' 입력!

성공적으로 기존에 존재하는 "test.txt" 파일에 들어오게 됩니다.

(아래에 파일 이름으로 "test.txt" 파일임을 알 수 있다!)

주황색 네모 보면 파일 이름이 있다!

 

파일에 내용을 작성하고 저장하는 방법을 배우시고 나서, 내용이 있는 파일을 열어봄으로써 확실하게 느껴보셨으면 좋겠습니다.

([3], [4] 학습하고 나서 해보기)

 

요약하면,

vi "test.txt"

- "test.txt" 파일이 현재 디렉토리에 존재하지 않는다면,

    → "test.txt" 파일 생성

- "test.txt" 파일이 현재 디렉토리에 존재한다면,

    → "test.txt" 파일 열기

 

참고로, 리눅스에서는 각 디렉토리가 독립적이므로,
다른 디렉토리에 같은 이름의 파일이 있어도 현재 디렉토리에서는 새로 만들 수 있습니다. 

(둘은 서로 다른 애 취급!)

 

 

 

[3]  파일에 글 작성 및 수정하기

 아까 상황에서 이어서, 현재 우리는 "test.txt" 파일을 열어, 그 파일 안에 있는 상태입니다.

이제 이 파일에 글을 적거나 삭제하는 등 편집을 해봅시다.

 

기본적으로 vi 명령어를 통해서 파일을 생성하거나 열면,

vi 편집기는 Command Mode (명령 모드) 상태로 시작합니다.

맨처음엔 파일 이름이 나오는 Command Mode 상태.

 

Command Mode에서는 글을 적을 수 없기 때문에, 우리는 Insert Mode (입력 모드)로 편집기를 전환해야 합니다.

전환하는 방법은 간단하게도 키보드에서 'i' 키를 누르시면 됩니다.

 

'i' 키를 눌러보면,

Insert Mode로 전환!

주황색 네모칸을 보면, 파일 이름이 적혀있던 부분이 "-- INSERT --"로 바뀌면서 

vi 편집기가 Insert Mode로 바뀌었음을 확인할 수 있습니다.

이제는 일반 메모장을 사용하듯이 글을 입력하고 지우거나 Enter키로 줄을 바꿀 수 있는 상태입니다.

 

 주의할 사항은 리눅스에서는 마우스를 사용하지 않는 경우가 많습니다.

그래서 현재 내 커서의 위치를 이동시키려면, 마우스 클릭이 아닌 방향키를 사용해야 합니다.

 

 

 여기서 글 작성 및 편집을 멈추고 Insert Mode에서 다시 Command Mode로 돌아오려면,

키보드에서 'ESC' 키를 누르시면 됩니다.

'-- INSERT --' 가 사라졌다!

"-- INSERT --" 글씨가 사라지면, Command Mode로 다시 바뀐 것입니다. (초기 상태로 돌아왔다!)

("-- INSERT --" 글씨가 있으면 Insert Mode / "-- INSERT --" 글씨가 없으면 Command Mode)

 

요약하면,

- Command 모드에서 'i' 키Insert 모드로 전환

- Insert 모드에서 ESC 키Command 모드로 전환

 

 

 

[4]  파일 저장하고 종료하기

 이제 우리가 만든 파일을 저장해봅시다.

 

이번에는 Last Line Mode (명령줄 모드)를 사용해볼건데, 사실 이 Last Line ModeCommand Mode에 포함된다고 볼 수도 있습니다. (이름부터 "명령줄 모드" 하고 "명령 모드" 면...)

그래서 Command Mode, Insert Mode 둘로만 구분하는 사람들도 많습니다.

 

따라서 Last Line Mode Insert Mode처럼 별도로 전환해서 쓰는게 아니라 Command Mode 상태에서 ':'을 앞에 붙여서 입력하면 됩니다. (사실상 그냥 Command Mode..)

 

앞서 "test.txt" 파일의 입력을 마친 후 이제 저장하려면,

Command Mode인 현재 상태에서 ':w' 를 입력하고 

':w' 입력!

Enter 키를 누르면 됩니다.

아래에 저장되었다고 메시지가 나옵니다.

 

 

이제 파일 작성을 마쳤으니 vi 편집기를 종료하고 원래의 터미널로 나가봅시다.

 

아까와 마찬가지로 Command Mode 상태에서 ':q' 를 입력하고

':q' 입력!

Enter 키를 누르면 됩니다.

vi 편집기에서 나와 터미널로 돌아왔습니다.

 

 

사실 ':w'와 ':q'를 한방에 할 수 있습니다. (저장 후 나가기)

바로 ':wq' 를 입력하시면 됩니다.

':wq' 입력!

이렇게 파일 저장과 vi 편집기 나가기를 동시에 할 수 있습니다.

 

요약하면, Command Mode에서

:w → 파일 저장

:q → vi 편집기 나가기

:wq → 파일 저장하고 나가기 (:w + :q)

 

 이제 파일을 만들고 내용을 작성한 뒤 저장할 수 있으니, [2]에서와 같이 vi로 파일을 생성한 후, 방금 만든 파일을 다시 vi로 열어 보세요. 그러면 vi가 ‘파일 생성’뿐 아니라 ‘기존 파일 열기’ 기능도 한다는 것을 직접 확인할 수 있습니다.

 

 

 

[5]  파일에서 글자 찾기

 파일의 내용이 너무 길어서 원하는 부분을 찾기 힘들 수 있습니다.

이럴 땐, 찾기 기능을 활용합시다.

 

방법은 Command Mode에서 '/[찾는 단어]' 를 입력하면 됩니다. (ex. '/go')

 

현재 파일에서 "Narnia"라는 단어의 위치를 찾아볼려면,

'/Narnia' 라고 입력하면 됩니다.

'/Narnia' 입력!

여기서 Enter 키를 누르면,

파일 내용에서 "Narnia"라는 단어가 있는 곳을 표시해주면서 그 위치로 이동하게 됩니다.

 

 만약, 한 파일에 같은 단어가 여러개라면 어떡할까요?

Enter키를 눌러서 원하는 단어가 첫 번째로 나온 위치에서

키보드 'n' 키를 누르면 같은 단어의 다음 위치로,

키보드 'n' 키 + 'Shift' 키 (대문자 N 입력) 를 같이 누르면 같은 단어의 이전 위치로 

커서가 이동하게 됩니다.

 

 

 이제 원하는 대로 파일을 만들어보고, 지금까지 배웠던 명령어들도 활용해보시면서 연습해보시면 좋겠습니다!

 

 

 

EP.8 - vi 편집기로 파일 생성, 입력, 저장하기 (vi). END.

 

EP.9 - 파일 내용 확인하기 (cat, file, more). Continue...