본문 바로가기
IT/System Engineering

[UNIX / LINUX 환경 기초 핸들링] (3) VI Editor

by Jany 2012. 3. 15.
반응형

[IT/Server] - [UNIX / LINUX 환경 기초 핸들링] (1) UNIX / LINUX 기본명령어
[IT/Server] - [UNIX / LINUX 환경 기초 핸들링] (2) UNIX / LINUX 환경파일

(3) VI Editor

DOS, Window환경에서 작업을 하던 사용자 들에게 vi는 처음에 접하게 될 경우 매우 당황스럽지 않을 수 없다. 그리하여 vi editor는 매뉴얼과 함께 사용하는 경험이 얼마나 있느냐에 따라 익혀갈수록 감탄하게되는 프로그램이라고 한다.

VI는 입력모드와 ex모드 (: ) 그리고 명령어 모드(ESC키 누른 이후)로 나뉘어진다.

VI를 사용하다보면 문법을 하나 발견할 수 있는데 vi명령어는

   [반복횟수][편집명령][반복횟수][커서이동명령] 이런식으로 이루어진다.

 

1. 시작과 종료

 * 시작 : vi [파일이름]

  존재하는 파일이면 그 파일을 열고, 아니면 새로 [파일이름]에 해당하는 파일을 생성

 * 종료 ex모드시 사용

  wq : 저장 후 종료, q! : 저장하지않고 종료

  

   * 시스템이 다운된 후에 살리기

    vi r 로 살릴 수 있는 모든 파일을 확인한 후 vi r [살릴파일이름]을 입력한다.

 

2. 명령어모드 ( ESC키 누른 이후) 에서 사용되는 기호 

삽입 명령

a

커서 뒤에 입력

A

라인 끝에 입력

i

커서 앞에 입력

I

라인시작 부분에 입력

o

커서 있는 라인 밑에 입력

O

커서가 있는 라인 위에 입력

커서 이동 명령

h

왼쪽으로 커서 한 칸 이동

H

화면의 처음으로 이동

L

오른쪽으로 한 칸 이동

L

화면 끝으로 이동

e

다음 단어의 마지막으로 이동

E

커서를 공백으로 구분된 다음 단어 끝으로 이동

b

한 단어 뒤로 이동

B

커서를 공백으로 구분된 이전 단어로 이동

w

커서를 한 단어 뒤로 이동

W

커서를 공백으로 구분된 다음 단어로 이동

k

커서를 한 라인 위로 이동

j

커서를 한 라인 아래로 이동

O

커서를 라인의 시작으로 이동

$

커서를 라인의 끝으로 이동

Enter

커서를 다음 라인 시작으로 이동

-

커서를 전 라인의 시작으로 이동

Ctrl + F

다음 화면으로 이동

Ctrl + D

화면의 반만 앞으로 이동

Ctrl + B

전 화면으로 이동

Ctrl + U

화면의 반만 뒤로 이동

G

커서를 텍스트 마지막 라인으로 이동

숫자G

커서를 숫자 라인만큼 이동

M

커서를 화면 중간 라인으로 이동

커서를 전 위치로 이동

(

문장의 시작으로 이동

{

문단의 시작으로 이동

)

문장 끝으로 이동하여 다음 단어의 시작으로 커서 이동

}

문단 끝으로 이동

삭제 명령

x

커서가 있는 문자 삭제

X

커서가 있는 문자 앞에 있는 문자 삭제

dw

커서가 있는 단어 삭제

db

커서가 앞에 있는 단어 삭제

dW

공백으로 구분된 뒷 단어 삭제

dB

공백으로 구분된 앞 단어 삭제

dd

커서가 있는 라인 삭제

D

커서가 있는 라인의 나머지 삭제

d)

문장의 나머지 삭제

d}

문단의 나머지 삭제

dG

파일의 나머지 삭제

dH

화면의 시작까지 삭제

dL

화면의 나머지 삭제

J

커서와 다음 단어의 공백을 모두 삭제

바꾸기 명령

r

커서에 있는 문자 대치

R

입력 모드로 한 문자씩 덮어씀

s

커서가 있는 문자 삭제 후 입력 모드로 전환

S

커서가 있는 줄을 삭제 후 입력 모드로 전환

cb

커서가 있는 앞 문자 삭제 후 입력 모드

cW

공백으로 구분된 뒷 단어를 삭제 후에 입력 모드

cB

공백으로 구분된 앞 단어 삭제 후 입력 모드

cc

커서가 있는 라인을 삭제하고 입력 모드

C

커서가 있는 라인의 나머지를 삭제하고 입력 모드로 전환

cO

커서에서부터 라인의 시작까지 텍스트 바꾸기

c

특정 텍스트 바꾸기

c)

문장의 나머지 바꾸기

c}

문단의 나머지 바꾸기

cG

파일의 나머지 바꾸기

cm

표시까지 모든 것 바꾸기

cL

화면의 나머지 바꾸기

ch

화면의 시작까지 바꾸기

이동

p

삭제나 복사된 텍스트를 커서가 있는 문자나 라인 뒤에 삽입

P

삭제나 복사된 텍스트를 커서가 잇는 문자나 라인 앞에 삽입

dw p

커서가 있는 단어를 삭제한 후 이를변경한 커서가 있는 것 뒤에 삽입

dw P

커서가 잇는 단어를 삭제 후 이를 변경한 커서 있는 곳 앞으로 삽입

d p

지정한 다음 텍스트로 삭제한 후 커서가 가리키는 곳으로 이동

d) P

문장의 나머지로 이동

d} p

문단의 나머지로 이동

dG P

파일의 나머지로 이동

dH p

회면 시작 부분으로 이동

dL P

화면의 나머지를 이동

복사

yw

커서가 있는 단어를 복사

yb

커서가 있는 앞 단어를 복사

yW

공백으로 구분된 뒷 단어 복사

yB

공백으로 구분된 앞 단어를 복사

y

특정한 다음 텍스트 복사

yy

커서가 있는 라인을 복사, 커서가 가리키는 곳으로 라인을 이동

y)

문자의 나머지 복사

y}

문단의 나머지 복사

yG

파일의 나머지 복사

yH

화면의 시작까지 복사

yL

화면의 나머지 복사

검색

/pattern

텍스트에서 앞으로 패턴 검색

>pattern

텍스트에서 뒤로 패턴 검색

n

앞 또는 뒤로 이전 검색 반복

N

반대 방향으로 이전 검색 반복

/

전 검색을 앞으로 반복

?

전 검색을 뒤로 반복

 

3. ex모드 명령어 (자주 사용하는것들만)

공식 : [범위지정][명령어][명령수행위치]

:help로 도움말을 확인할 수 있다.

:p

내용보여주기

:d

삭제

:co, t

복사

:m

이동

:y

버퍼에복사

:=

현재 줄번호 표시

 ex) :1,5 co 10  --à 1줄부터 5줄까지 10줄이후에 복사

     :1,5 d -------à 1줄부터 5줄까지 삭제

     :/패턴/ d ----à 패턴이 포함된 줄 지우기

     :.,/패턴/ m 13 -> 현재줄부터 패턴이 포함된 줄까지를 13번째줄 이후로 이동

 

 

g옵션으로 일정 부분만 다른문자로 교체하기 (소스의 경로 변경 및 변수 변경에 용이)

:g/패턴/

파일전체에서 마지막 패턴이 쓰여진 줄로 이동

:s/his/the/g

현재줄에서 his the로 바꾼다

:10 s/his/the/g

10번째줄에서 his the로 바꾼다

:1,30 s/his/the/gc

1줄부터 30줄까지 his the로 확인하면서 바꾸기

:g/패턴/ s/his/the/g

패턴이 있는 줄만 his the로 바꾼다

:%s/his/the/g

파일전체에서 his the로 바꾼다.

 

4. 옵션 ( ex모드 사용)

:set /옵션/

옵션

옵션약어

기능

디폴트값

autoindent

ai

들여 쓰기 가능, 탭으로 들여 쓰기 범위 지정

off

autoprint

ap

줄이 바뀔 때 현재 줄을 화면상에서 출력

on

errobells

ed

명령 에러가 발생시 삑 소리나게 함

off

number

nu

줄 번호를 나타나게 함

off

report

report

편집시 메시지를 보낼 편집 변화 크기 지정

5

showmatch

sm

괄호닫기 괄호를 사용할 때 일치하는 괄호열기 괄호를 보여줌

(,{.[ 등등 사용시 ],},)를 잠깐 매칭시켜준다

off

wam

wam

저장하지 않고 vi 종료할 때 경고 메시지를 뿌려 줌

on

ignorecase

ic

검색 패턴에 사용되는 대소문자 구별하지 않음

on

tabstopp=n

ts=n

탭 공백을 n 수만큼 지정

8

wrapmargin=n

wm=n

텍스트 오른쪽 여백을 n 수만큼 지정

0

 

위의 내용들은 vi환경화일 (/루트/.vimrc)에서 미리 설정해두고 사용이 가능하다.

 

5. .vimrc 설정

초기사용자라면 mkvimrc명령을 치면 .vimrc파일이 생기고 이곳에 위의옵션들을 넣어두고 아래와 같이 사용하면 편리하다.

ex).vimrc 


6. crontab 설정

 * crontab : 시스템의 주기적인  cron 작업의 설정, 수정을 하는 명령어

(window의 예약된작업과 비슷한 기능을 한다)

 

 * cron 설정하는 방법

 40 3 * * * /user/kcube/searchi-V2.3/MOE/KMS_MANAGER.sh

 맨 앞의 40 40분을 의미함 (분을 의미:0~59)

 그 뒤의 3 03 의미함 (시를 의미:0~23)

 그 뒤의 * 은 매일을 의미함 (일을 의미:1~31)

 그 뒤의 * 은 매월을 의미함 (월을 의미:1~12)

 그 뒤의 * 은 매주를 의미함(요일을 의미 1:월요일~7:일용일)

 그 뒤의 /user/kcube/searchi-V2.3/MOE/KMS_MANAGER.sh mysql_backup.sh을 실행하라는 의미

 , 매일 3시 40에 KMS_MANAGER.sh를 실행하라는 의미

 

 * 문자 : 각 필드에 해당하는 모든 숫자를 의미

 - 문자 : 각 필드자리에 하이픈 문자가 올수 있음

   ex) 일 필드자리에 11-15 (11,12,13,14,15일을 의미)

 , 문자 : 각 필드자리에 콤마문자가 올수 있음

   ex) 일 필드자리에 1,11,21 (1,11 21일을 의미)

 

반응형

댓글