본문 바로가기

IT&코딩/클라우드의 이해

6. 리눅스 편집기 (VI)

728x90
반응형

■ VI 

 

□ VI 문서편집기의 이해

 

유닉스 계열 시스템에서 텍스트로 작성된 문서를 편집하기 위한 기본 프로그램

초기 유닉스 시스템의 줄 단위 편집기능에서 화면을 보면서 편집하는 화면편집기(Visual Editor)에서 이름이 유래됨

1976년도에 최초 개발된 프로그램으로 간결하면서도 강력한 기능을 제공

화면편집기로 제공되고 있으나 실제 편집기능은 줄 단위로 수행

3가지 모드와 키보드 명령어로 구성되어 있으며 다양한 변형편집기가 존재

 

□ VI 문서편집기 모드

 

- 시작하면 대기모드

 

□ VI 문서편집기 열기

 

vi [파일이름]

- vi 편집기를 이용하여 파일을 열거나 수정(파일이 없는 경우 새 파일을 생성)

 

vi -R[파일이름]

- 파일을 읽기 전용으로 열기

 

vi -r[파일이름]

- 예기치 못한 상황으로 비정상 종료시 작업 중이던 문서로 복구하여 열기

 

vi +n[파일이름]

- 파일을 열고 n번째 라인으로 이동

 

vi[파일이름1] [파일이름2]

- 다수의 파일을 동시에 열기(편집은 화면전환 후 개별파일 편집)

 

※ 문서열기가 완료되면 "대기모드"로 진입

 

□ VI 문서편집기 명령모드

 

:n - 다음 파일로 이동(소문자 n)

:N - 이전 파일로 이동

:e! - 문서편집을 취소하고 최종 저장된 상태로 파일을 다시 열기

:n - n번째 라인으로 이동(숫자 n)

/문자열 - 문자열과 일치하는 단어 검색

:set [option] - vi의 설정사항 수정

:%s/old문자열/new문자열/g - 전체 파일에서 old 문자열을 new 문자열로 교체

:w - 문저 저장(:w! - 강제 문서 저장)

:q - 편집종료(:q! - 강제 편집종료, :wq! - 문서저장 후 강제 종료)

 

□ VI 문서편집기 편집모드

 

i - 현재 프롬프트 위치를 입력 상태로 변경

I - 현재 라인의 왼쪽 시작 위치로 이동 후 입력 상태로 변경

a - 현재 프롬프트의 오른쪽으로 한 칸 이동 후 입력 상태로 변경

A - 현재 라인의 오른쪽 끝 위치로 이동 후 입력 상태로 변경

o - 현재 프롬프트의 다음 라인에 1줄 삽입 후 입력 상태로 변경

O - 현재 프롬프트의 이전 라인에 1줄 삽입 후 입력 상태로 변경

s - 현재 프롬프트의 한 글자 삭제 후 입력 모드로 변환

S - 현재 프롬프트의 한 행 삭제 후 입력 모드로 변환

 

※ 대기모드로 변경하기 위해서는 ESC 키를 입력

 

□ VI 문서편집기 대기모드

 

u - 최근 명령어 취소 (Windows에서의 Ctrl+z 과 유사)

 

프롬프트 이동

- h : 왼쪽으로 이동

- j : 아래로 이동

- k : 위로 이동

- l : 오른쪽으로 이동 

 

단어단위 이동

- w : 현재 프롬프트 오른쪽 다음 단어로 이동 ([n]w)

- b : 현재 프롬프트 왼쪽으로 이전 단어로 이동 ([n]b)

 

열 이동

- 0 : 현재 라인 왼쪽 시작 위치로 이동

- $ : 현재 라인 오른쪽 끝 위치로 이동

 

행 이동

- G : 문서의 마지막 행으로 이동

- :n : 숫자 N번에 해당하는 행으로 이동([n]G 명령과 동일)

 

편집기능 (삭제, 복사, 붙여넣기)

x - 현재 프롬프트 위치의 한 글자 삭제([n]x)

dd - 현재 프롬프트 위치의 한 줄 삭제([n]dd)

y - 현재 프롬프트에 있는 문자 1개 복사([n]y)

yy - 현재 프롬프트 위치의 한 줄 복사([n]yy)

p - 'y'로 복사한 문자를 현재 프롬프트 앞으로 복사, 'yy'로 복사시 프롬프트의 아래 라인에 복사

 

 

728x90
반응형

'IT&코딩 > 클라우드의 이해' 카테고리의 다른 글

7. 오픈스택 (OpenStack)  (0) 2022.12.18
5. Linux  (0) 2022.12.16
4. Hypervisor / 신규 VM 설치  (0) 2022.12.13
3. SDDC / SDx(SDC, SDS, SDN)  (0) 2022.12.08
2. 클라우드 핵심 기술/운영 및 동향  (0) 2022.12.07