티스토리 뷰

IT지식

리눅스 vi 명령어

민자르 2018. 4. 16. 12:02
반응형

vi로 일을 불러온 직후의 상로, 입력 모드에서는 [esc] 를 시 진입한다. 


0. vi 기본


명령 모드


입력 모드에서 명령 모드로 다시 전환하려면 Esc 키를 누르기만 하면 됩니다. ESC 키를 누르고 문자를 입력하려고 하면 비프음만 날 뿐 입력은 되지 않을 것입니다. 
리눅스에서는 명령모드가 따로 있습니다. 명령모드는 편집모드라고도 하는데, 글을 입력시키는 방법이 아닌 수정과 편집을 할 수 있는 상태임을 기억해 두어야 합니다. 즉, 명령모드에서는 복사,삭제, 붙이기. . .등의 작업이 이루어 집니다. 또한, 입력모드를 통해 삽입 등 잘못된 명령을 내렸을 때 'u'라는 명령어를 통해서 Undo, 즉 복구가 가능하게 할 수 있습니다. 


콜론 모드


명령모드에서 콜론 모드로 전환하려면 ':'명령을 실행시키면 됩니다. 콜론 모드는 vi에서 사용할 수 있는 명령어들을 이용하는 곳입니다. 윈도우 환경에서라면 메뉴 바와 같은 역할을 한다고 볼 수 있습니다. 파일을 저장하거나 vi를 종료하는 등의 일을 수행할 수 있습니다. 콜론 모드로 들어가려면 Esc를 누른 후 ":"를 누르면 됩니다. 콜론 모드에 들어가게 되면 화면 아래쪽에 ':' 표시가 나타나게 되며, 여기서 원하는 작업에 해당하는 명령을 입력하고 Enter 키를 치면 됩니다. 아래 그림에서 아래쪽에 ":wq"라는 표시가 눈에 뜨일 것입니다. ":" 이 상태가 바로 앞에서 말한 콜론모드의 형태입니다. 


1. vi 실행하기


셀상에서 vi [파일명]를 입력하면 새로운 문서를 편집할 수 있는 환경이 만들어 집니다. 


명령어 

동작 

vi file 

file을 연다 

vi file1 file2

file1 과 file2 를 차례로 연다 

view file 

file을 읽기 모드로 연다 

vi -R file 

file을 읽기 모드로 연다 

vi + file

file을 열때 커서가 file 본문의 마지막 행에 위치한다. 

vi +n file 

file을 열어 n행에 위치한다. 

vi -r file

손상된 파일 회복



2. 입력모드 전환 명령어


글자를 입력하기 위해서는 입력모드로 가야하는데, 'i'를 입력하면, 하단에 --INSERT--가 나오면서, 글자를 입력할 수 있는 

입력모드로 바뀝니다. 
입력 모드로 들어가는 대표적인 방법은 i 키를 누르는 것이지만, 이외에도 몇 가지 방법이 더 있습니다. 


명령어 

동작 

i 

커서 있는데서 입력모드 전환 

I

커서 왼쪽, 행의 처음에 몬자 삽입 

커서 있는 줄 끝에서 입력모드 전환 

A

커서 오른쪽, 행의 끝에 문자 삽입 

커서 있는 줄 아래에 빈 줄 삽입 

커서 있는 줄 위에 빈 줄을 삽입 

덮어쓰기 모드로 전환 



3. 커서의 이동


명령모드 상태에서 커서를 마음대로 움직일 수 있습니다. 


명령어 

동작 

^, 0 

줄의 처음으로 이동 

줄의 끝으로 이동 

H 

화면 맨 위로 이동 

M

화면의 중간으로 이동 

L 

화면 맨 아래로 이동 

다음 단어 끝으로 커서 이동 

e

다음 단어 앞으로 커서 이동

b  

이전 단어로 이동 

shift + ↑ 

한 페이지 앞으로 이동 

shift + ↓

한 페이지 뒤로 이동 

3l , 3G

현재 커서 위치한 행에서 3번째 행으로 이동 

Ctrl + i

한 화면 위로 이동 

Ctrl + b

한 화면 아래로 이동 

Ctrl + d

반 화면 위로 이동 

Ctrl + u

반 화면 아래로 이동 

Ctrl + e

한 줄씩 위로 이동 

Ctrl + y

한 줄씩 아래로 이동 



4. 삭제


명령어 

동작 

x 

한 문자 삭제 

5x

커서가 있는 위치부터 5개의 문자를 삭제 

d + ↑ 

커서있는 줄, 윗줄 2줄 삭제 

d + ↓ 

커서잇는 줄, 아래줄 2줄 삭제 

dw 

한 단어 삭제 

dd 

한 줄 삭제 

5dd

커서가 있는 라인부터 5개의 라인 삭제 

db

커서의 위치에서 거꾸로 한 단어 삭제 

한줄 내에서 커서있는 뒤 모두 삭제 

u 

바로 전에 수행한 명령을 취소 

:5,10ㅇ

5~10번째 행 삭제 



5. 복사와 붙여넣기


명령어

동작

yy

현재 줄을 버퍼로 복사 

p 

버퍼에 있는 내용을 커서 뒤에 삽입 

P

버퍼에 있는 내용을 커서 앞에 삽입 

3y 

현재 줄에서부터 아래로 3줄 복사 

:5, 10y

5~10줄을 버퍼로 복사 

:30pu

30행에 버퍼 내용을 삽입 

d 

현재 커서가 위치해 있는 단어 복사 

3yy

현재 행을 기준으로 3번째 행까지 n행 복사 



6. 문자열 찾기


명령어

동작

/name

name 문자열 찾기 

n

다음 name으로 이동

N

n과 같으며 역방향으로 이동 



7. 문자열 대체


명령어 

동작 

:s/str/rep

현재 행의 str을 rep로 대체

:l,.s/str/rep/ 

1부터 현재 행의 str을 rep로 대체 

:%s/str/rep/g 

파일 전체 str을 rep로 전부 대체 

:.$/aaa/bbb

커서의 위치로부터 파일의 끝까지 있는 모든 aaa를 bbb로 대체 



8. 파일 저장 및 불러오기


종료 명령은 앞에서 잠깐 콜론 모드에서 이루어 집니다. 
편집한 데이터를 저장하고 종료하려면, wq(Write and Quit)를 입력합니다. 


명령어 

동작 

:w 

지정된 파일에 저장 

:wq, :x, ZZ 

지정된 파일에 저장하고 vi를 종료 

:w php.ini 

php.ini 파일에 저장 

 :q

저장하지 않고 종료 

:q!

저장하지 않고 강제 종료 

:wq php.ini 

php.ini에 저장하고 vi를 종료 

:r php.ini 

php.ini의 내용을 현재 커서가 있는데로 불러온다. 

:e php.ini 

현재의 화면을 지우고 새로운 파일 php.ini를 불러온다. 

:5,10 w php.ini 

5~10 줄까지의 내용을 php.ini에 저장



9. 기타


명령어 

동작 

:set nu

행 번호 보여주기 

:set nonu 

행 번호 보여주기 취소 

 .

바로 전에 실행한 명령어 재 실행 

 Ctrl + l

불필요한 화면 정리후 다시 표시 




728x90
반응형
댓글