태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'vi 사용법'에 해당되는 글 2건

 

Command mode(명령 모드) - vi의 기본모드이며 vi를 실행하면 뜨는 기본화면이다.

Edit mode(입력 모드) - a, i, o등을 누르면 이동하는 모드이며 내용 입력 또는 C코딩이 가능하다.(오른쪽 아래에 --Insert-- 가 뜬다.)

Last line mode(실행 모드) - 입력모드에서 저장종료, 강제종료 등의 명령어를 입력하는 모드이다.(:, /, ? 등의 명령으로 동작)

<vi 에디터 명령어>

1. vi 시작 명령어

명령어

명령어 동작 설명

vi [file name]

파일 열기, 작성

vi +18 [file name]

18행으로 파일 열기

vi +/"문자열" fn

"문자열"의 처음 발생 단어부터 열기

vi -r [file name]

손상된 파일 회복

view [file name]

읽기 전용으로 파일 열기

2. vi 커서 이동 명령어

명령어

명령어 동작 설명

h(←)

왼쪽으로 커서 이동

j(↓)

아래로 커서 이동

k(↑)

위로 커서 이동

l(→)

오른쪽으로 커서 이동

w

오른쪽 한 단어의 끝 부분으로 커서 이동

e

오른쪽 한 단어의 앞 부분으로 커서 이동

b

왼쪽 한 단어의 앞 부분으로 커서 이동

Enter

한 행 아래로 커서 이동

Back space

한 문자 왼쪽으로 커서 이동

Space bar

한 문자 오른쪽으로 커서 이동

^

행의 맨 왼쪽으로 커서 이동

$

행의 맨 오른쪽으로 커서 이동

H

화면의 맨 위로 이동

M

화면의 중간으로 이동

L

화면의 맨 아래로 이동

"숫자"G

"숫자"만큼 지정한 줄로 커서 이동

3. 문자, 행 삽입 명령어

명령어

명령어 동작 설명

a (종료 : esc)

커서 오른쪽에 문자 삽입

A (종료 : esc)

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

i (종료 : esc)

커서 왼쪽에 문자 삽입

I (종료 : esc)

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

o (종료 : esc)

커서 아래에 행 삽입

O (종료 : esc)

커서 위에 행 삽입

4. 텍스트 변경 명령어

명령어

명령어 동작 설명

cw (종료 : esc)

단어 변경

cc (종료 : esc)

행 변경

C (종료 : esc)

커서 오른쪽의 행 변경

s (종료 : esc)

커서가 위치한 문자열 대체

S (종료 : esc)

커서가 위치한 라인의 문자열 대체

r

커서 위치 문자를 다른 문자로 대체

r-Enter

행 분리

J

현재 행과 아래 행 결합

xp

커서 위치 문자와 오른쪽 문자 교환

~

문자형(, 소문자) 변경

u

이전 명령 취소

U

행 변경 사항 취소

:u

이전의 최종 행 취소

.

이전 최종 명령 반복

5. 택스트 삭제 명령어

명령어

명령어 동작 설명

x

커서가 있는 문자 삭제

5x

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

dw

현재 커서가 있는 한 단어 삭제

dd

커서가 있는 라인 삭제

5dd

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

db

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

D

커서 오른쪽 행 삭제

:5,10d

5-10번째 행 삭제

6. 복사 및 이동 명령어

명령어

명령어 동작 설명

yy

yank 또는 복사

Y

yank 또는 복사

P

yank되거나 삭제된 행 현재 행 위에 삽입

p

yank되거나 삭제된 행 현재 행 아래에 삽입

:1,2 co 3

1-2행을 3행 다음으로 복사

:4,5 m 6

4-5행을 6행 위로 이동

7. 행 번호 설정 명령어

명령어

명령어 동작 설명

:set nu

행 번호 표시

:set nonu

행 번호 숨기기

8. 행 찾기 명령어

명령어

명령어 동작 설명

G

파일의 마지막 행으로 가기

21G

파일의 21번째 행으로 가기

ctrl + G

현재의 filename line수를 알려줌

9. 탐색 및 대체 명령어

명령어

명령어 동작 설명

/검색할 문자열/

오른쪽 아래 방향으로 문자열 검색

?검색할 문자열?

왼쪽 위 방향으로 문자열 검색

n

문자열의 다음으로 계속 검색

N

문자열의 이전으로 계속 검색

:g/search-string/s//replace-

각 발생 탐색 후 확인하고 대체

string/gc

:s/str/rep/

현재 행의 str rep로 대체

:1,.s/str/rep/

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

:%s/str/rep/g

전체 str rep로 전부 대체

:.$/aaa/bbb/

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

:! [file name]

vi열린 상태에서 외부명령어 실행

10. 화면정리 명령어

명령어

명령어 동작 설명

ctrl + I

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

11. 파일 명령어

명령어

명령어 동작 설명

:r [file name]

커서 다음에 파일 삽입

:34 r [file name]

파일을 34번째 행 다음에 삽입

:e [file name]

파일 열기

12. 보관 및 종료 명령어

명령어

명령어 동작 설명

:w

변경사항 저장

:w [file name]

버퍼를 파일로 보관

:wq

변경사항 보관 후 vi 종료

:ZZ

변경사항 보관 후 vi 종료

:q!

변경사항 보관하지 않고 종료

:q

수정한 파일을 저장하지 않고 vi 종료

:e!

수정한 것을 무시하고 다시 편집상태로

 

 

[출처] [Linux] vi 필수 명령어 모음|작성자 Specialist

'프로그래밍 > 리눅스' 카테고리의 다른 글

톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
find와 grep을 활용한 검색  (0) 2012.08.27
vi 명령 정리  (0) 2012.04.18
linux ftp client 사용법  (0) 2012.04.10
VI Editor 사용법  (0) 2012.03.23
블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

Vi Editer 사용법System / Linux

2011/06/22 15:12

복사http://blog.naver.com/blueskyhom/90116331799

<<명령 모드에서 입력 모드로 전환하기 위한 키>> ㅣ <<명령 모드에서 커서를 이동하기 위한 키>>

i = 현재 커서의 위치로부터 입력 ㅣ h = 커서를 왼쪽으로 한 칸 이동

I = 현재 커서 행의 맨 압에서부터 입력 ㅣ l = 커서를 오른쪽으로 한칸 이동

ㅣ j = 커서를 아래로 한칸 이동

a = 현재 커서 위치의 다음칸 부터 입력 ㅣ k = 커서를 위로 한칸 이동

A = 현재 커서 행의 맨 마지막부터 입력 ㅣ

ㅣ ctrl+F = 다음 화면으로 이동(Page Down키)

o = 현재 커서의 다음 행에 입력 ㅣ ctrl+B = 이전 화면으로 이동(Page Up키)

O = 현재 커서의 이전 행에 입력 ㅣ ^ = 현재 행의 처음으로 이동 (Home키)

ㅣ $ = 현재 행의 마지막으로 이동 (End키)

s = 현재 커서 위치의 한 글자를 지우고 입력 ㅣ

S = 현재 커서의 한 행을 지우고 입력 ㅣ gg = 제일 첫 행으로 이동

ㅣ G = 제일 마지막 행으로 이동

----------------------------------------------------------------------------------------------------------------------

<<명령 모드에서 삭제, 복사, 붙혀넣기 관련 키>> ㅣ <<명령 모드에서 창 분할 관련 키>

x = 현재 커서의 위치한 글자 삭제 (Del) ㅣ ctrl+w s = 현재 파일을 두개의 수평창으로 나눔

X = 현재 커서의 위치한 앞 글자 삭제 (Backspace) ㅣ ctrl+w v = 현재 파일의 두개의 수직창로 나눔

d$ = 현재 커서에서 라인끝 까지 삭제, 잘라내기 ㅣ ctrl+w w = 나뉘어진 창간의 이동

dd = 현재 커서 행 삭제, 잘라내기 ㅣ

n dd = 현재 커서 부터 숫자(n)만큼의 행 삭제 ㅣ ctrl+w = = 창의크기가 균등하게 분할d

d + 숫자 + 방향기 : 숫자 만큼 방향쪽으로 잘라내기 ㅣ

y$ = 현재 커서에서 라인끝 까지 복사 ㅣ

yy = 현재 커서가 있는 행을 복사 ㅣ ctrl+w q = 현재 창 닫기

n yy = 현재 커서가 있는 행부터 숫자(n)만큼 복사 ㅣ

y + 숫자 + 방향기 : 숫자 만큼 방향쪽으로 복사 ㅣ

p = 복사행 내용을 현재 행 이후에 붙혀 넣기 ㅣ

P = 복사행 내용을 현재 행 이전에 붙혀 넣기 ㅣ

----------------------------------------------------------------------------------------------------------------------

<<그 밖의 명령 관련 키>> ㅣ

ㅣctrl + ] 함수의 정의로 이동

:/ 문자열 (Enter) = 현재 열린 파일의 문자열 찾기 ㅣctrl + t 원래의 위치로 이동

n = 찾는 문자 중에서 다음 문자로 이동 ㅣ ctrl + n 자동완정

:e FileName = 현재 창에 다른 파일을 열기 ㅣ

R 하고 문자입력 ESC 후 원하는 위치에 .을 하면입력한 문자열을 계속 입력 할수 있다.

grep -rn "변수명, 함수명" -> 하위의 파일중에 변수명, 함수명이 사용된곳을 찾아 준다.

ctags -R 하위 폴더를 포함하여 tags을 생성하여 cnt+] , cnt + t를 이용하여 코드 분석용이

1. vi 시작하기

vi : vi를 시작한다.

vi [파일] : vi를 시작하여 지정한 [파일]이 존재하면 그 파일을 열고, 존재하지 않으면 지정한 파일 이름으로 새로운 파일을 만

든다.

vi -R [파일] : 지정한 파일을 읽기 전용으로 불러들인다.

2. vi 종료하기

:q : 아무런 글을 입력하지 않았을 때, vi를 종료한다. 만약 글을 입력하였다면 종료되지 않는다.

:wq : 작성한 글을 저장하고 vi를 종료한다.

:q! : 작성한 글을 저장하지 않고 vi를 종료한다.


※ 종료하기를 포함한 앞으로 나오는 모든 vi 명령어들은 특별한 언급이 없는 이상, 위 그림에서 '명령대기상태'를 기준으로 입력해야 하는 명령어를 의미한다.

3. 저장하기

:w : 작성한 글을 저장한다.

:w [파일] : 지정한 파일로 작성한 글을 저장한다.

:w >> [파일] : 지정한 파일의 뒷부분에 작성한 글을 덧붙인다.

:w! : 읽기 전용으로 열었을 경우에 강제로 저장한다.

:w %.new : 현재 파일 이름에 .new를 붙여서 새로운 파일로 저장한다. (.new 자리에 다른 문자열이 올 수 있다.)

:50,$ w [파일] : 50줄부터 끝줄까지 [파일] 이름으로 저장한다.

:.,100 w [파일] : 현재 줄에서부터 100줄까지 [파일] 이름으로 저장한다.

:1,10 w [파일] : 1줄부터 10줄까지 파일 이름으로 저장한다.

:50,$ w >> [파일] : [숫자]번째 줄부터 끝줄까지 [파일]의 뒷부분에 저장한다.


=> [숫자 or . or $], [숫자 or . or $] w [파일] : [숫자]는 [숫자]번째 줄을, '.'은 '현재줄', '$'는 '끝줄'을 의미한다. 첫번째가 의미하는 부분부터 두번째가 의미하는 부분까지 [파일] 이름으로 저장한다.

4. 커서이동

vi를 처음 사용하는 경우에 당황해하는 부분 중 하나가 커서를 마음대로 움직이지 못한다는 것이다. 특정 설정을 해주지 않으면 윈도우에서처럼 마우스로 찍는 곳에 커서가 위치하지 않기 때문이다. 여기서는 기본 설정에서의 vi 커서 이동을 정리하였다. 커서 이동은 명령모드에서 가능하다.

h : 커서를 한 칸 왼쪽으로 이동한다 (좌).

j : 커서를 한 줄 아래로 이동한다 (하).

k : 커서를 한 줄 위로 이동한다 (상).

l, Space : 커서를 한 칸 오른쪽으로 이동한다 (우).

Backspace : 커서를 한 칸 왼쪽으로 이동한다.

- : 커서를 윗줄의 처음으로 이동한다.

+ : 커서를 다음 줄의 처음으로 이동한다.

0 : 커서를 현재 줄의 맨 앞으로 이동한다.

$ : 커서를 현재 줄의 맨 뒤로 이동한다.

^ : 커서를 현재 줄의 첫 글자로 이동한다 (공백이나 탭은 무시한다).

w, W : 커서를 다음 단어의 첫 글자로 이동한다.

e, E : 커서를 다음 단어의 끝 글자로 이동한다.

b, B : 커서를 이전 단어의 첫 글자로 이동한다.

( : 커서를 앞의 문장 처음으로 이동한다.

) : 커서를 뒤 문장 처음으로 이동한다.

{ : 커서를 앞 문단의 처음으로 이동한다.

} : 커서를 뒷 문단의 처음으로 이동한다.

H : 커서를 화면 맨 위로 이동한다.

M : 커서를 화면 중간으로 이동한다.

L : 커서를 화면 맨 아래로 이동한다.

<Ctrl> + F : 커서를 한 화면 아래로 이동한다.

<Ctrl> + B : 커서를 한 화면 위로 이동한다.

<Ctrl> + D : 커서를 반 화면 아래로 이동한다.

<Ctrl> + U : 커서를 반 화면 위로 이동한다.

[N] + <Ctrl> + F : 커서를 한 [N]화면 아래로 이동한다. (N은 양의 정수)

[N] + <Ctrl> + B : 커서를 한 [N]화면 위로 이동한다.

[N] + <Ctrl> + D : 커서를 [N] 줄 아래로 이동한다.

[N] + <Ctrl> + U : 커서를 [N] 줄 위로 이동한다.

5. 입력하기

i : 현재 커서 위치에서 글을 입력한다.

a : 현재 커서 다음부터 글을 입력한다.

o : 현재 커서가 있는 아래 줄부터 글을 입력한다.

S : 현재 커서가 있는 위치의 한 글자를 삭제하고 거기에서부터 글을 입력한다.

I : 현재 커서가 있는 줄의 맨 앞에서부터 글을 입력한다.

A : 현재 커서가 있는 줄의 맨 뒤에서부터 글을 입력한다.

O : 현재 커서가 있는 줄의 맨 위에서부터 글을 입력한다.

R : 현재 커서가 있는 곳에서부터 겹쳐쓰기(덮어쓰기)로 입력한다.

6. 삭제하기

vi에서는 윈도우에서처럼 BackSpace나 Delete 키만으로 삭제를 모두 해결하지 않는다.

x : 커서가 위치한 곳의 문자를 삭제한다.

X : 커서가 위치한 곳에서 왼쪽 문자를 삭제한다.

D : 커서가 위치한 곳에서 오른쪽 끝까지 삭제한다.

dd : 커서가 위치한 줄 전체를 삭제한다.

dG : 커서가 위치한 곳에서부터 파일의 끝까지 삭제한다.

d1G : 커서가 위치한 곳에서부터 파일의 앞까지 삭제한다.

:[N]d : N번째 줄을 삭제한다. (N은 양의 정수)

:[N], [M]d : N번째 줄부터 M번째 줄까지 삭제한다. (M은 N보다 큰 양의 정수)

[N] + dd : 커서가 위치한 곳에서부터 N 줄을 삭제한다.

7. 붙이기

p : 마지막으로 지워진 내용을 커서가 위치한 곳 뒤, 아래에 삽입한다.

P : 마지막으로 지워진 내용을 커서가 위치한 곳 앞, 위에 삽입한다.

8. 내용 고치기

:[N]co[M] : [N]줄을 [M]줄 밑에 복사해서 붙인다.

:[N], [M]col : [N]줄부터 [M]줄까지 한 줄 밑에 복사해서 붙인다.

[N]yy, [N]Y : 커서 위치에서 [N]줄만큼을 복사한다.

[N]yw : 커서 위치에서 [N]단어만큼을 복사한다.

:[A]m[B] : [A]줄을 [B]줄 밑으로 이동한다. (A, B는 양의 정수)

:[A], [B]m[C] : [A]줄부터 [B]줄까지 [C]줄 밑으로 이동한다.

:r : 마지막으로 저장되었던 파일의 전체내용이 파일 아래에 덧붙여진다.

9. 치환하기

:s/[원래내용]/[고칠내용] : 커서가 위치한 줄에서 [원래내용]을 [고칠내용]으로 치환한다.

:[N]s/[원래내용]/[고칠내용] : 지정한 [N]줄에서 [원래내용]을 [고칠내용]으로 치환한다.

:[N],[M]s/[원래내용]/[고칠내용] : 지정한 [N]줄에서 [M]줄까지의 범위 내에서 [원래내용]을 [고칠내용]으로 치환한다.

:%s/[원래내용]/[고칠내용] : 파일 전체에서 [원래내용]을 [고칠내용]으로 치환한다.

:C : 커서 위치에서 행의 끝까지를 다른 문자열로 변경한다.

:cc : 커서 행을 다른 문자열로 변경한다.

:R : 커서 위치에서 ESC를 입력한 곳까지 덮어쓴다.

10. 검색하기

검색명령은 파일의 끝에 도달하면 다시 처음부터 시작한다.

/[단어] : 현재 커서 위치에서 아래로 지정한 [단어]를 찾는다.

?[단어] : 현재 커서 위치에서 위로 지정한 [단어]를 찾는다.

/ : 전에 검색했던 단어를 아래로 반복해서 찾는다.

? : 전에 검색했던 단어를 위로 반복해서 찾는다.

n : /나 ?를 같은 방향으로 반복한다.

N : /나 ?를 반대 방향으로 반복한다.

11. 약어 사용하기

긴 단어나 문장을 짧은 단어로 쓸 수 있다.

:ab [short] [long] : [short]만 쓰면 자동으로 [long]의 내용으로 바뀐다. [long]은 단어는 물론 문장이 될 수도 있다.

:ab : 현재까지 지정된 약어 목록을 보여준다.

:una [short] : [short]를 약어에서 해제한다.

12. 화면보기

^l : 화면을 다시 뿌려준다.

:set number , se nu : 파일의 각 라인별로 번호를 붙여준다.

:set nonumber , se nonu : 파일의 각 라인별 번호를 삭제한다.

:set autoindent , se ai : 자동으로 들여쓰기를 한다.

:set noautoindent , se noai : 자동 들여쓰기를 취소한다.

:set list : 탭은 ^l로, 문장의 끝은 $로 표시한다.

:set nolist : list값을 취소한다.

:set tabstop=n ,se ts=n : 탭의 크기를 n으로 지정한다. 기본은 8이다.

13. 줄번호

[N]G, :[N] : [N]번째 줄로 바로 간다. (ex. 1G : 1번째 줄로 간다)

G : 마지막 줄로 간다.

:map [q] G : [q]가 G를 실행한 결과와 같도록 매크로를 정의한다.

14. 파일 바꾸기

:e [파일] : 현재 작성하고 있던 파일에서 지정한 파일로 바뀌어진다. 단, 작성하고 있던 파일이 저장되어 있지 않으면 바뀌지

않는다.

:e! [파일] : 현재 작성하고 있던 파일이 저장이 되지 않았더라도 지정한 파일로 바뀐다.

15. 데이터 읽기

:[N]r [파일] : [N]번째 줄에 지정한 파일의 내용이 삽입된다.

:r [파일] : 현재 커서가 위치한 곳 다음 줄에 지정한 파일의 내용이 삽입된다.

:[N]r ![명령어] : 명령어의 결과가 [N]번째 줄 다음에 삽입된다.

:r ![명령어] : 명령어의 결과가 현재 커서가 위치한 다음 줄에 삽입된다.

16. 정규 표현식을 위한 특수 기호

. : 새로운 줄을 제외한 모든 단일 문자와 대응한다.

* : 0 또는 그 이상의 선행 문자와 대응한다.

^ : 줄의 시작과 대응한다.

$ : 줄의 끝과 대응한다.

/< : 단어의 시작과 대응한다.

/> : 단어의 끝과 대응한다.

[] : 묶여진 문자 중의 하나와 대응한다.

[^ ] : 묶여진 문자를 제외한 아무 것이나 대응한다.

\ : 이어지는 기호를 문자 그대로 해석한다. (ex. \\ => \ 기호를 의미)

17. 셸 명령어 실행하기

:![명령어] : vi를 중단하고 지정한 셀 명령을 실행한다.

:!! : vi를 중단하고 이전의 셀 명령을 실행한다.

:sh : vi를 중단하고 셸을 실행한다.

:!csh : vi를 중단하고 새로운 C셸을 실행한다.

18. 데이터를 처리하기 위한 셸 명령어

[N]!![명령어] : [N]번 줄에서 명령어를 실행한다.

![M] [명령어] : 커서가 위치한 곳에서부터 [M]까지 명령어를 실행한다.

![M] fmt : 커서가 위치한 곳에서부터 [M]까지 줄들을 형식에 맞춘다.


19. 시스템이 죽었을 경우에 파일 살리기

vi -r : 되살릴 수 있는 모든 파일 이름을 보여준다.

vi -r [파일] : vi를 시작하여 지정한 [파일]을 되살린다.

20. 다중창으로 동시에 여러 파일을 열기

vs [파일] : 현재 열려 있는 vi 화면을 세로로 반 나누어, [파일]의 내용과 현재 작업중인 내용을 각각 동시에 보여준다.

split [파일] : 현재 열려 있는 vi 화면을 가로로 반 나누어, [파일]의 내용과 현재 작업중인 내용을 각각 동시에 보여준다

'프로그래밍 > 리눅스' 카테고리의 다른 글

톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
find와 grep을 활용한 검색  (0) 2012.08.27
vi 명령 정리  (0) 2012.04.18
linux ftp client 사용법  (0) 2012.04.10
VI Editor 사용법  (0) 2012.03.23
블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.