Ⅰ. vi 편집기란?
vi는 유닉스 계열 운영체제에서 가장 많이 사용되는 텍스트 편집기입니다. 명령어 기반의 편집기이며, 강력한 기능과 효율성을 제공하여 시스템 관리와 프로그래밍 환경에서 많이 사용됩니다. vi는 대부분의 유닉스/리눅스 시스템에 기본적으로 설치되어 있으며, vim(vi improved)이라는 향상된 버전도 많이 사용됩니다.
Ⅱ. vi 편집기의 특징
ⅰ. vi는 크게 두 가지 모드로 동작합니다.
1) 명령 모드(Command mode): 기본 모드로, 텍스트 편집이 아닌 명령을 입력하여 파일을 조작할 수 있습니다. 커서 이동, 복사, 붙여넣기, 삭제 등의 작업이 가능합니다.
2) 입력 모드(Insert mode): 텍스트를 편집하고 삽입하는 모드로, 실제로 문자를 입력할 수 있는 상태입니다. 이 모드에서는 텍스트 입력 외에는 다른 명령을 수행할 수 없습니다
ⅱ. 경량성: vi는 매우 가볍고 리소스를 적게 사용하여, 서버나 최소한의 환경에서도 사용이 가능합니다.
ⅲ. 키보드 중심의 편집: 모든 작업은 키보드를 통해 이루어지며, 마우스 없이 빠르게 편집할 수 있습니다. 이는 효율적인 텍스트 편집을 가능하게 합니다.
Ⅲ. vi 편집기 사용방법
ⅰ. vi 실행 방법
vi를 사용하는 가장 기본적인 흐름은 파일을 열고, 필요한 작업을 하고, 저장 후 종료하는 것입니다. 예를 들어, vi에서 파일을 열려면 터미널에서 아래와 같은 명령어를 입력합니다:
[root@feccle ~] # vi [파일명] |
ⅱ. vi 모드 전환
1) 명령모드 → 입력모드
i: 커서 앞에 텍스트 입력을 시작합니다.
a: 커서 뒤에 텍스트 입력을 시작합니다.
o: 현재 줄 아래에 새로운 줄을 추가하고 입력을 시작합니다.
2) 입력 모드 → 명령 모드
Esc: 입력 모드를 종료하고 명령 모드로 돌아갑니다.
Ⅲ. vi 편집기 주요 명령어
명령 모드에서 실행하는 기본 명령어는 다음과 같습니다.
1) 파일 저장 및 종료
명령어 | 설명 |
:w | 파일 저장 |
:q | 편집기 종료 |
:wq | 저장하고 종료 |
:q! | 저장하지 않고 종료 |
2) 커서 이동
명령어 | 설명 |
h | 왼쪽으로 이동 |
j | 아래로 이동 |
k | 위로 이동 |
l | 오른쪽으로 이동 |
gg | 파일의 첫 번째줄로 이동 |
G | 파일의 마지막 줄로 이동 |
숫자+G | 해당 줄 번호로 이동 ex) 15G 는 15번째 줄로 이동 |
ctrl+f (forward) |
앞으로 한 페이지 이동 |
ctrl+b (backward) |
뒤로 한 페이지 이동 |
3) 텍스트 편집
명령어 | 설명 |
x | 현재 커서의 문자를 삭제 |
dd | 현재 줄을 삭제 |
yy | 현재 줄을 복사 |
p | 복사한 내용을 현재 커서 아래에 붙여넣기 |
u | 이전 명령 취소 (undo) |
Ctrl+r | 취소했던 명령을 다시 실행(redo) |
4) 검색
명령어 | 설명 |
/검색어 | 파일 내에서 검색어를 찾음 ex) /export 는 export 라는 단어를 찾음 |
n | 다음 검색 결과로 이동 |
N | 이전 검색 결과로 이동 |
5) 문자열 치환
명령어 | 설명 |
:%s/old/new/g | 파일 전체에서 old 문자열을 new로 모두 치환 |
:n,m s/old/new/g | n번째 줄에서 m번째 줄까지 old를 new로 치환 |
6) 행번호 표시
명령어 | |
:set nu | 행번호 실행 |
:set nonu | 행번호 끄기 |
Ⅳ. vi 편집기 장단점
vi 편집기 | |
장점 | 1) 빠른 속도: 키보드만으로 빠르게 명령을 실행할 수 있어 대용량 파일도 효율적으로 편집 가능. 2) 경량성: 시스템 자원을 거의 사용하지 않기 때문에, 리소스가 제한된 환경에서도 사용 가능. 3) 범용성: 모든 유닉스 및 리눅스 배포판에 기본적으로 포함되어 있어, 어떤 환경에서든 사용할 수 있음. |
단점 | 1) 학습 곡선: 처음 사용하는 사용자에게는 모드 전환과 명령어가 익숙하지 않아 어려울 수 있습니다. 2) 기능 제한: vim에 비해 일부 기능이 제한적입니다. |
'시스템(Linux)' 카테고리의 다른 글
Kali Linux에 대해 알아보겠습니다. (3) | 2024.09.17 |
---|---|
리눅스 운영체제에서의 본딩(Linux Bonding)에 대해 알아보겠습니다. (0) | 2024.09.16 |
X 윈도우 시스템(X Window System)에 대해 알아보겠습니다. (1) | 2024.09.14 |
RPM(Red Hat Package Manager)에 대해 알아보겠습니다. (0) | 2024.09.13 |
fdisk 에 대해 알아보겠습니다. (0) | 2024.09.12 |