R's Hacking Daily Log

vi command 본문

Tool & Command

vi command

hanhxx 2023. 7. 27. 20:55

오늘 알아볼 command는 바로~ vi

vi는 command라기보다는 CLI 환경에서 사용할 수 있는 텍스트 편집기(text editor)라고 할 수 있다.

 

vi

vi FILENAME

터미널에 vi를 입력하면 텍스트 편집기가 실행된다. 

(1) vi만 입력할 수도 있고

(2) vi 뒤에 생성할 파일 이름을 작성할 수도 있다.

 

vi만 입력한 경우에는 파일을 저장할 때 파일명을 설정하면 된다. 

 

 

FILE_NAME 위치에 생성할 파일명을 입력하면 된다.

 

 

위의 명령어를 입력하면 위와 같이 editor가 실행되는 모습을 볼 수 있다.

왼측 하단에는 editor로 연 파일명이 출력된다. 

 

아직 아무 내용도 작성하지 않은 상태이기 때문에 당연히 아무것도 적혀있지 않다!!

하지만 무언가를 입력하고자 키보드를 눌러도 입력이 안 될 것이다. 

 

vi는 기본적으로 실행했을 때 명령모드 상태이기 때문인데,

명령 모드 상태에서 입력 모드로 전환하기 위해서는 키보드 i 를 눌러주면 된다. 

 

 

i를 눌러주면 왼측 하단에 -- INSERT -- 문구가 뜨는 걸 볼 수 있을 것이다.

이 문구가 뜬 상태에서는 일반 메모장처럼 내용 작성이 가능해진다.

 

입력을 모두 끝마친 후에 다시 명령 모드로 빠져나오기 위해서는 ESC 버튼을 누르면 된다.

 

 

명령 모드로 다시 빠져나오게 되면 왼측 하단에 출력되던 -- INSERT -- 문구가 사라진 걸 볼 수 있을 것!!

 

 

 

입력 모드에서는 파일 내용을 작성할 수 있었는 데, 그렇다면 명령 모드는 왜 필요한 걸까??

파일 작성을 다 하고 나면 내용을 저장한 후 editor에서 빠져나와야 한다.

아니면 파일 내용 중 특정 단어를 찾거나 여러 줄에 걸친 내용을 삭제하고자 할 수도 있다.

 

이런 기능들은 입력 모드가 아닌 명령 모드에서 실행된다.

즉 입력 모드에서는 말 그대로 파일 내용을 작성하고

명령 모드에서는 그 밖의 파일과 관련된 기능을 수행한다고 볼 수 있다.

 

 

우선 위에서 작성한 파일을 저장해보고자 한다.

명령 모드에서 콜론을 입력하면 하단에 입력되는 걸 볼 수 있을 것이다.

 

:w

 

위와 같이 :w을 입력하는 경우에는 입력 모드에서 작성한 파일 내용을 저장한다.

 

 

:q

 

파일 내용을 저장하고 난 후, editor를 빠져나오기 위해서는 :q를 입력하면 된다.

 

 

:wq

 

내용을 작성하고 나서 저장과 동시에 editor를 빠져나오고 싶다면 

위의 명령 w & q를 같이 쓰면 된다. 

 


 

그 밖에도 

 

원하는 줄로 이동하기 위해서는 

 

:LINE
:3
:5

" : + 이동할 라인 " 형태로 입력하면 된다.

3번째 줄로 이동한 결과는 왼쪽, 5번째 줄로 이동하는 결과는 오른쪽과 같다. 

 

 

 

만약 특정 단어를 찾고 싶다면 " / "를 입력한 후, 찾을 단어를 입력하면 된다.

:WORD

:melon

 

/melon을 입력해본 결과, melon과 일치하는 부분이 하이라이트 된 걸 볼 수 있다.

 

일치하는 부분을 찾고난 후 엔터를 누르면 해당 단어의 첫 문자로 이동하게 되고 

일치하는 단어가 여러 개일 경우에는 키보드 n을 누르면 다음 단어로 이동한다.

 

 

마지막으로 한 줄 OR 연속적인 여러 줄을 삭제하는 방법을 알아보자.

세 번째 줄에 작성된 strawberry를 삭제하고자 한다면 해당 줄에 커서를 가져다 둔 다음에

(왼쪽 사진에서 strawberry 중 a)

 

dd

키보드 d를 연속으로 두 번 누르면 된다. 

 

 

melon이 적힌 줄을 시작으로 3줄을 삭제하고 싶을 때는 

삭제할 줄의 개수를 누른 후 키보드 d를 연속으로 두 번 누르면 된다.

 

한 줄을 삭제할 때와 마찬가지로 삭제할 첫 번째 줄에 커서를 위치시켜야한다.

(예시에서는 melon에 커서를 위치시킴)

 

LINE + dd

#위의 예시에서는 
3dd

'Tool & Command' 카테고리의 다른 글

cd Command  (0) 2023.05.17
Wget Command  (0) 2023.05.13
Sudo command  (0) 2023.03.03
tee command  (0) 2023.02.26
Gobuster  (0) 2023.01.20
Comments