vi 명령어는 Linux, Unix에서 사용되는 편집기를 사용하는 명령어다. vi 편집기에 대해서 살펴보도록 하자
vi 편집기는 총 3가지의 명령모드, 입력모드, 마지막 행모드로 구성되어 있다. 먼저 이 vi 편집기의 구조를 살펴보자
1. Vi 편집기 구조
1. 명령 모드 (Command mode)
vi 명령어로 편집기를 시작할 시, 단축키를 사용하여 커서의 이동, 수정, 삭제, 복사 & 붙이기 등 다양한 명령을 수행할 수 있다.
입력모드에 진입한 후, 다시 명령모드로 돌아오려면 [ESC]키를 누르면 명령모드로 다시 되돌아올 수 있다.
2. 입력 모드 (Insert mode)
명령모드 상태에서 i, a, o, I, A, O 의 단축키를 입력하여 입력모드로 전환할 수 있다. 입력모드에서는 직접 글이나 코드를 작성할 수 있는 상태이다.
3. 마지막 행 모드 (Last line mode)
마지막 행 모드는 명령모드 상태일 때, ':' (콜론)을 입력하면 화면 맽 밑에서 명령을 수행하는 모드이다.저장, 종료, 치환, 탐색 등의 기능을 수행할 수 있다.
2. Vi 명령어 모음
1. 입력 모드 명령어
명령어 | 기능 |
i | - 현재 커서의 위치부터 입력 |
I | - 현재 커서 줄의 맨 앞에서부터 입력 |
a | - 현재 커서의 다음 줄에 입력 |
A | - 현재 커서 줄의 맨 뒤에서부터 입력 |
o | - 현재 커서의 다음 줄에 입력 |
O | - 현재 커서의 이전 줄에 입력 |
s | - 현재 커서 위치의 한 글자를 지우고 입력 |
S | - 현재 커서의 한 줄을 지우고 입력 |
입력모드로 전환하는 명령어의 종류는 여러개가 있지만, 나는 보통 a로만 쓴다. 이 정도로만 써도 충분한 것 같다.
2. 명령모드에서 (삭제, 복사, 붙여넣기) 명령어
명령어 | 기능 |
x | - 현재 커서가 위치한 문자를 삭제 (Del과 같다) |
dw | - 현재 커서가 위치한 곳부터 단어 삭제 |
dd | - 현재 커서가 위치한 곳의 한 줄을 삭제 |
숫자 + dd | - 현재 커서가 위치한 곳부터 숫자만큼의 줄을 삭제 (5dd : 5줄 삭제) |
yy | - 현재 커서가 위치한 곳의 한 줄을 복사 |
숫자 + yy | - 현재 커서가 위치한 곳부터 숫자만큼의 줄을 복사 (5yy : 5줄 복사) |
p (소문자) | - 현재 커서가 위치한 곳의 다음 줄의 내용 붙여넣기 |
P (대문자) | - 현재 커서가 위치한 곳의 이전 줄의 내용 붙여넣기 |
u | - 직전에 내린 명령을 취소 |
3. 명령모드에서 커서 이동 명령어
명령어 | 기능 |
h | - 커서를 왼쪽으로 한칸 이동 (방향키 ←) |
j | - 커서를 한줄 아래로 이동 (방향키 ↓) |
k | - 커서를 한줄 위로 이동 (방향키 ↑) |
l | - 커서를 오른쪽으로 한칸 이동 (방향키 →) |
w | - 다음 단어의 처음으로 이동 |
^ | - 줄의 첫 문자로 이동 |
$ | - 현재 커서가 위치한 줄의 맨 끝으로 이동 (Home) |
0 | - 현재 커서가 위치한 줄의 맨 앞으로 이동 (End) |
G | - 제일 끝 줄로 이동 |
gg | - 제일 처음 줄로 이동 |
nG | - n번째 줄로 이동 (n= 숫자) |
H | - 화면의 첫 줄로 이동 |
M | - 화면의 중간으로 이동 |
L | - 화면이 끝 줄로 이동 |
Ctrl + b | - 이전 화면으로 이동 (Page Up) |
Ctrl + f | - 다음 화면으로 이동 (Page Down) |
4. 마지막 행 모드 (Last line mode) 명령어
명령어 | 기능 |
:w | - 현재 파일명으로 파일 저장 |
:q | - vi 편집기 종료 (저장되지 않음) |
:q! | - vi 편집기 강제 종료 |
:wq | - 수정 내용 저장 후 종료 |
:wq! | - 강제 저장 후 종료 |
:숫자 | - 해당 숫자 라인으로 커서 이동 |
:e! | - 마지막 저장 이후 모든 편집 취소 |
/문자열 | - 현재 커서 위치에서부터 파일 앞쪽으로 문자열 탐색 |
?문자열 | - 현재 커서 위치에서부터 파일 뒤쪽으로 문자열 탐색 |
:set nu | - vi 라인 번호 출력 |
:set nonu | - vi 라인 번호 출력 취소 |
vi 편집기에서 사용하는 명령어는 다양하게 있지만 사실 쓰다보면 사용하는 명령어는 그렇게 많지는 않은 것 같다.
굳이 전부다 외우려고 하지 말고, 본인이 자주 쓰는 명령어만 알고 있으면 될 것 같다.
'Linux' 카테고리의 다른 글
[Linux] 리눅스 파일 및 폴더 생성,제거,이동,복사 (0) | 2021.02.12 |
---|---|
[Linux] 리눅스의 호스트명을 변경해보자 (0) | 2021.02.10 |
[Linux] Root 패스워드 분실시 초기화 하는 방법! (0) | 2021.02.08 |