본문 바로가기
예전 포스팅 (~2018)

[Linux] vi 모드

by akaranch 2021. 10. 1.

#4 vi모드

1) vi모드 실행 방법

vi [파일명] -> 파일이 생성됨과 동시에 명령모드로 실행됩니다.

 

1-1 vi 실행 모드

vi에디터는 편집 모드와 명령 모드로 나누는데 명령어가 많기 때문에 가장 자주 사용하고 유용한 명령어 위주로 알려드리겠습니다.

 

* 편집모드 ↔ 입력모드 전환 *

편집모드에서 입력모드로 전환하기 위해선 특정 키를 입력시켜 전환할 수 있습니다. 다시 명령모드로 돌아기 위해서 Esc키를 누르면 됩니다.

 

* 입력 모드 전환 키 *

 

i : 현재 커서 위치에 글자 삽입할 때 사용합니다.  i 키를 누르고 난 이후에 쓰는 글은 현재의 커서의 위치에 입력됩니다.

I : 현재 줄 위치에 글자 삽입할 때 사용합니다.

 

a : 현재 커서 다음 위치에 글자 삽입할 때 사용합니다.

A : 현재 줄 마지막 위치에 글자 삽입할 때 사용합니다.

 

o : 아랫 줄 위치에 글자 삽입할 때 사용합니다.

O : 윗 줄에 위치에 글자 삽입할 때 사용합니다.

 

s : 현재 커서 글자 지우고 입력 모드로 전환 합니다.

r : 현재 커서 글자 지우고 한 글자 입력 받아 명령 모드바뀝니다.

 

 

* vi 명령 모드 키 *

 

Esc키를 눌러서 들어 올 수 있는 모드입니다.

입력 모드에서 입력 작업 완료한 뒤, 커서 이동이나 삭제, 복사, 붙여 넣기 등의 편집 작업 등을 할 때 사용되는 모드입니다.

 

[ 커서 이동 시키기 ]

h : 왼쪽으로 이동 [←]

j : 한 줄 아래쪽으로 커서 이동 [↓]

k : 한 줄 위쪽으로 커서 이동 [↑]

l : 한 문자 오른쪽으로 커서 이동 [←]

 

w : 다음 단어 첫 문자로 커서 이동

ex) Hello Linux! I love you!

b : 이전 단어 첫 문자로 커서 이동

ex) Hello Linux! I love you!

 

G : 마지막 줄로 커서 이동, 숫자G로 눌렀을 때, 숫자에 해당되는 줄로 커서 이동

^ : 공백 문자가 아닌, 현재 줄의 첫 문자로 커서 이동

0 : 공백 문자를 포함한, 현재 줄 첫 문자로 커서 이동

$ : 현재 줄 마지막 문자로 커서 이동

 

Ctrl+f : 한 페이지 아래로 커서 이동 [PgDn]

Ctrl+b : 한 페이지 위로 커서 이동 [PgUp]

 

[ 삭제하기 ] 

 

※ 삭제라곤 하지만 삭제된 내용은 버퍼에 저장되어 p 명령어로 붙여넣을수 있기 때문에 기능은 잘라내기와 동일합니다.

 

x : 현재 커서 위치 1문자 삭제

X : 현재 커서 위치 이전 1문자 삭제

 

dw : 현재 커서 위치 1단어 삭제

ex)3dw < - 3단어 삭제

db : 현재 커서 위치 이전 1단어 삭제

 

dd : 현재 커서 위치 줄 삭제, 숫자dd로 쓰면 숫자만큼의 줄이 삭제됨 

ex) 3dd < - 3줄 삭제

d^ : 현재 줄에서 현재 커서 위치 이전 문자열 삭제

d$ : 현재 줄에서 현재 커서 위치 이후 문자열 삭제

D : d$와 같음

 

 

[ 복사, 붙여 넣기 ] 

 

 여기서의 복사란, 버퍼로의 복사를 뜻합니다.

 

yw : 현재 커서 이후 단어 복사, 숫자yw로 쓰면 숫자만큼의 단어가 복사됨, 다른 복사 명령에도 이와 같은 숫자 입력 방식이 적용됨

yb : 현재 커서 이전 단어 복사

yy : 현재 줄 복사, 숫자yy로 쓰면 숫자만큼의 줄이 복사됨

p : 복사된 항목을 현재 커서 위치 이후에 붙여 넣기, 삭제된 항목도 붙여 넣기 가능

P : 복사된 항목을 현재 커서 위치 이전에 붙여 넣기, 삭제된 항목도 붙여 넣기 가능

 

 

[ 검색 ]

 

/검색어 : 전진 검색

?검색어 : 후진 검색

n : 검색 반복

N : 반대 방향 검색 반복

 

 

[ 되돌리기(undo) ]

 

u : 되돌리기(undo). u키를 계속 치게되면, undo 버퍼가 빌 때까지 계속 되돌리기할 수 있습니다. [ctrl + z 같은 기능]

U : 라인 되돌리기. 한 줄에 대해서 모든 편집을 없던 것으로 하고 원상태로 되돌림

 

Ctrl+r : Redo(undo undo)

 

 

[ 기타 ]

 

J : 커서 위치 아랫줄을 현재 줄에 붙입니다. 대소문자에 따라서 기능이 구별됩니다 [ j 는 ↓]

. : 이전 실행 명령 반복합니다. 

ZZ : 현재 문서 저장하고, 종료합니다.

 

3) ex 명령 모드 : ex 라인 에디터의 명령어를 사용할 수 있습니다. vi 명령 모드 상태에서, : 키를 눌러서 들어가고, Esc키를 눌러서 다시 vi 명령 모드로 나옵니다. 아래에 제가 자주 사용하는 명령들을 적어 봅니다. 각각의 명령을 입력한 후, 실행을 하기 위해서는 엔터키를 누르면 됩니다.

 

시작줄번호,끝줄번호d : 시작줄번호에서 끝줄번호까지의 줄을 삭제합니다.

시작줄번호,끝줄번호y : 시작줄번호에서 끝줄번호까지의 줄을 복사합니다.

시작줄번호,끝줄번호s/W/C/g : 시작줄번호에서 끝줄번호까지 'W'를 찾아 'C'로 바꿔줍니다.

g를 사용하지 않으면, 한 줄에 'W'가 여러 개 있더라도, 그 줄에 대해서는 한 번만 바꾸고 지나갑니다.

 

set number  : 줄 번호 표시합니다.

 

r 파일이름 : '파일이름'의 파일을 현재 커서 아랫줄에 삽입합니다.

 

! 명령 : 밖으로 빠져 나가지 않고 바로 '명령'을 실행시킵니다. 강제성을 부여할수 있습니다.

 

w : 저장하기

w 파일이름 : '파일이름'으로 저장하기

q : vi 종료하기

wq : 저장하고, 종료하기

※ ! 를 붙여주면 강제로 저장,종료합니다.

 

이포스팅에 vi모드의 전부가 들어간게 아니라는 점 참고해주시길 바랍니다.

제가 자주 사용하는 명령어들과 실제로 자주 쓰이는 명령어들만 나열해놨을 뿐 더 많은 기능을 제공하는 모드입니다.

오늘은 vi모드에 대해서 알아봤습니다.

'예전 포스팅 (~2018)' 카테고리의 다른 글

[Linux] 기초 명령어 세트 1  (0) 2021.10.01
[Linux] OS 개요와 구조  (0) 2021.10.01
Untangle  (0) 2021.10.01
vSphere ESXi / vCenter 란  (0) 2021.10.01
[Linux] Hardlink & symbolic link  (0) 2021.10.01

댓글