블로그 이미지
오정oI

카테고리

분류 전체보기 (119)
회사 - pj # 나라원 (1)
회사 - pj # 나라원 (2)
이직준비 (10)
국비-클라우드 (1)
학점은행제 (0)
취미 (0)
주식 (0)
외국어 (0)
자격증 (14)
BigData_On (1)
BigData_Off1 (74)
클라우드 (0)
언어_Framework (1)
언어-Server (2)
언어_Client (0)
업무 (1)
IT참고서적 (1)
IT 최신 트랜드 (0)
제테크 (1)
Study Plan (2)
동영상 및 자료 (5)
여행 (1)
git (0)
Total
Today
Yesterday

VI (1)

BigData_Off1/리눅스1 / 2017. 12. 19. 13:50
반응형
SMALL

* vi(visual Editor)

vi 는 한 줄씩  편집하는 줄 단위 편집기가 아니라 한 화면을 편집하는
비주얼 에디터라는 뜻에서 유래
- GUI 환경에서 작업하는 것이 아니라 CLI 환경에서 작업하는 프로그램
Windows 에서 마치 메모장과 비슷
간결하면서도 강력한 기능을 제공함

 

vi 에는 3가지 모드가 존재

명령모드, 입력모드, 실행모드

 

1> 명령모드

- vi의 기본모드

- enter키를 누를 필요없이 하나 하나의 키를 눌러서 동작

- R을 누르면 하단에 -- REPLACE-- 표시가 뜨며 Windows  마치 Insert키와

동일한 작업

 

2> 입력모드

- 문자나 숫자를 입력

- 하단에 --INSERT-- 표시 됨

 

3> 실행모드

- 파일 저장, 열기, 새로 만들기 등등

명령모드에서 입력모드로 전환

- a, i, o  등의 키를 누름

명령모드에서 실행모드로 전환

-  /, ?, : 등의 키를 누름

입력모드에서 명령모드로 전환

- ESC 키를 누름

입력모드에서 실행모드로 또는 실행모드에서 입력모드로 전환은 할 수 없으므로

반드시 명령모드를 거쳐서 전환해야 함

 

 

 

 

1> 명령모드

[사용형식]

# vi

: 파일의 이름도 없고 저장된 경로도 없이 빈 문서를 작업할 때

# vi 파일명

:  파일의 문서 편집을 할 때

 

ex>

// vi

[root@localhost itbank]# vi
: q

 

1-1>커서 이동(방향키)

←왼쪽 : h

↓아래 : j

↑위 : k

→오른쪽 : l

 

1-2>커서 이동(단어 단위)

w :  다음 단어의 처음으로 이동 특수문자, 특수기호를 인식함

b :  이전 단어의 처음으로 이동 특수문자, 특수기호를 인식함

e :  다음 단어의 마지막으로 이동 특수문자, 특수기호를 인식함

W : 다음 단어의 처음으로 이동 특수문자, 특수기호를 인식 안함

B : 이전 단어의 처음으로 이동 특수문자, 특수기호를 인식 안함

E : 다음 단어의 마지막으로 이동 특수문자, 특수기호를 인식 안함

 

1-3>커서 이동(행 단위)

0(숫자) : 행의 맨 처음으로 이동

$ : 행의 맨 마지막으로 이동

 

1-4>커서 이동(문서 단위)

gg :  문서 전체의 맨 처음

G :  문서 전체의 맨 마지막

 

1-5>커서 이동(화면(창) 크기 만큼)

H :  화면(창) 크기에서

L :   화면(창) 크기에서 마지막

 

1-6>잘라내기 및 복사

x :  현재 커서에 있는 단어를 삭제 (마치 Windows delete 키)

X :  커서가 이전 단어를 삭제(마치 Windows에서  backspace 키)

dd : 한 줄 삭제 (잘라내기)

숫자(줄) +  dd :  여러 줄을 삭제 (잘라내기)

p(소) :  현재 커서 아래에 붙여넣기

P(대) : 현재 커서 위에 붙여넣기

yy : 한 줄 복사

숫자(줄)+yy :  여러 줄을 복사

 

1-7>실행 및 취소

u :  되돌리기

ctrl+r : 되돌리기 취소

 

 

 

2> 입력모드 (명령모드에서 입력모드로 전환)

i : 하단에 --INSERT-- 표시 됨 현재 커서 왼쪽에 삽입 (insert)

i  1|2  a

a : 하단에 --INSERT-- 표시 됨 커서가 우측으로 한 칸 이동

    기존 커서 우측에 추가 (append)

o(소문자) :  하단에 --INSERT-- 표시 됨 현재 커서 바로 아래에 빈 줄 생성

O(대문자) :  하단에 --INSERT-- 표시 됨 현재 커서 바로 위에 빈 줄 생성

 

 

 

3> 실행모드

3-1> 검색

/ : 어떤 찾을 이름을 검색하고 n 키를 누르면 위에서 아래로 검색하며(↓)

N키를 누르면 아래에서 위로 검색(↑)

 

? : 어떤 찾을 이름을 검색하고 n키를 누르면 아래에서 위로 검색하며(↑)

N 키를 누르면 위에서 아래로 검색(↓)

 

[사용형식]

/찾을이름 입력 후 enter

?찾을이름 입력 후 enter

 

3-2> 치환(바꾸기)

[사용형식]

:줄s/기존내용/바꿀내용

→ 지정한 줄에 있는 기존 내용을 바꿀내용으로 치환

ex> :2s/FILE/FILES        // 2 : line

 

:줄s/기존내용/바꿀내용/g

→ 지정한 줄에 있는 기존내용이 여러개가 있을 경우 한 번에 바꿀 내용으로 치환

ex> 4 hello hello hello

ex> :4s/hello/bye/g

 

:줄,줄(범위)s/기존내용/바꿀내용

→ 지정한 줄부터 줄까지 있는 기존내용을 바꿀내용으로 치환

ex> :3,11/hello/bye

 

:%(문서전체)s/기존내용/바꿀내용

ex> :%s/hello/bye

 

3-3> shell  명령어

[사용형식]

:! command

또는

:! command [option]

→ vi를 잠시 멈추고 지정한 명령어 실행

:!

→ vi를 잠시 멈추고 프롬프트창을 출력 (확인용)

:.! command

→ 지정한 명령어 수행 결과값을 현재 열려있는 파일 안에 삽입

→ 현재 커서 위치부터 삽입하기 때문에 기존 내용이 있으면 사라짐

    그래서 사용하려면 빈 줄 생성해서 사용

ex> :.! ls -l /backup

 

3-4> 창 분할 모드

창 분할

[사용형식]

ctrl+wn

 

커서 간 창 간 이동

[사용형식]

ctrl + ww

 

이전  vi 모드로 복귀

:q     // 종료

 

3-5> 파일 관련

:q

→ 종료 (원본을 수정하지 않았을 때 또는 원본을 수정하고 저장했을 때)

:q!

→ 강제종료 (원본을 수정한지를 모를 때 또는 원본을 저장하지 못하는 상황)

:w

→ 저장

:wq

→ 저장하고 종료

:e  파일

→ 파일 열기 (불러오기)

ex>

:e named.conf                // 현재  /home/itbank 에 존재하는 파일 열음

:e /backup/grub.cfg        // 절대경로

:enew

→ 새로 만들기 (빈문서)

 

3-5> 파일 및 실행 관련

: w >> 파일

→ 현재 열려 있는 파일의 내용을 지정한 파일에다가 추가해서 저장

ex> :w >> testfile1

 

:f

→ information(정보)

 

:줄번호r 파일

→ 현재 열려있는 파일의 내용 안에 지정한 줄번호+1

ex>

[준비물]

[root@localhost backup]# cat testfile2

hello

hi

bye

goodbye    //ctrl + d

[root@localhost backup]# vi grub.cfg

:6r testfile2

 

: 줄번호r! 명령어

또는

: 줄번호r! 명령어 [option]

→ 현재 열려있는 파일의 내용 안에 지정한 줄번호+1에 지정한 명령어의 실행 결과값을 삽입

(참고로 :.! 명령어와 비슷함)

ex> :6r! ls -l /backup

 

3-6> etc

:set number

→ 줄 번호를 생성 위는 기니까 줄여서

:se nu

 

:set nonumber

→ 줄 번호를 생성 안함 위는 기니까 줄여서

:se nonu

 

 cf. 파일 만들기

# touch 파일명

 

<주의> 대문자를 사용할 때  Caps Lock 을 사용하지 말고 Shift키를 눌러서

사용하길 바람(이유는  Caps Lock 누르면 키가 안먹힘)

<주의> 마우스 휠 올리지마! 

vi 영역 벗어남!

반응형
LIST
Posted by 오정oI
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함