TeamLog🦝/server🔗

vi 기초 명령어

pigonhe 2024. 11. 17. 18:01

vi

: 리눅스에서 사용하는 파일을 편집하기 위한 에디터

 

명령모드, 입력모드, 마지막 행 모드로 총 3가지 모드로 구성있다

1. 명령 모드 (command mode) : 처음 vi 명령어로 vi를 시작하게 되면 들어가지는 모드이다. 방향키를 이용해 커서를 이동할 수 있으며 명령어를 사용해 편집을 할 수 있다.

2. 입력 모드 (insert mode) : 명령모드에서 "i" 나 "a" 명령을 통해서 입력 모드로 들어갈 수 있다. 자유롭게 코드나 글을 작성할 수 있다. 

다시 명령 모드로 돌아가기 위해서는 ESC를 누르면 된다.

3. 마지막 행 모드 (Last line mode) : 명령 모드에서 : (콜론)을 입력하면 화면 맨 밑단에 입력할 수 있는 공간이 나타난다. 이 입력칸에서 현재까지 작성한 내용을 저장하고 vi를 종료할지 (wq) , 그냥 종료 (q, q!)할지 등을 입력할 수 있다.


명령 모드에서의 명령어 (처음 들어갔을 때 or ESC 눌렀을 때)

엔터를 치지 않아도 명령이 실행됨

vi 명령어 동작
i 현재 커서 위치에서 삽입 (입력모드로 전환)
a 현재 커서 바로 다음 위치에 삽입 (입력모드로 전환)
o (영어 소문자) 현재 줄 다음 위치에 삽입 (입력모드로 전환)
x 커서가 위치한 곳의 글자 1개 삭제 (5x : 문자 5개 삭제)
dw 커서가 위치한 곳에서부터 단어 삭제 (커서가 위치한 곳부터 띄어쓰기까지)
dd 커서가 위치한 곳의 한 줄 삭제 (삭제이지만, p로 복구 가능)
u 방금 한 명령 취소 (ctrl + z 와 흡사)
yy 현재 줄을 버퍼로 복사 (한줄을 ctrl + c한다고 생각하면 됨)
5줄 복사 : 5yy
p 현재 커서가 있는 줄 바로 아래에 버퍼 내용 붙여넣기
(이전에 복사한 줄을 현재 커서 아래부터 ctrl + v 한다고 생각하면 됨)
5dd를 이용해서 다섯줄을 지운 것도 p 한번으로 붙여넣기 가능
>> 잘라내기 dd -> 붙여넣기 p
(n)dd n 행 삭제 (삭제처럼 보이지만 실제로는 버퍼에 들어가 있음 >> p로 붙여넣기 가능)
잘라내기와 흡사함 (ctrl + x)
vi에서 여러줄을 삭제하고 싶다면 사용하면 됨
k 위로 (커서가 한줄 위로 올라감)
j 아래로 (커서가 한줄 아래로 내려감)
l(소문자 L) 오른쪽으로 (커서가 한칸 우측으로 감)
h 왼쪽으로 (커서가 한칸 좌측으로 감)
0 (숫자) 커서가 있는 줄의 맨 앞으로 간다 (home 키와 흡사)
$ 커서가 있는 줄의 맨 뒤로 간다 (end 키와 흡사)
( 현재 문장의 처음
) 현재 문장의 끝
{ 현재 문단의 처음
} 현재 문단의 끝
숫자- 숫자 만큼 윗 줄로 이동
숫자+ 숫자 만큰 아래 줄로 이동
G 파일의 끝으로 이동
r 한문자 변경
cc 커서가 있는 그 줄의 내용 변경

마지막 행 모드에서의 명령어 (ESC & : 눌렀을 때)

명령어 입력 후 엔터를 쳐야 명령이 실행됨

vi 명령어 동작
w 현재 파일명으로 파일 저장 (저장만 함 꺼지지 않음)
w [파일명] 입력한 파일명으로 파일 저장 (저장만 함 꺼지지 않음)
q vi 종료 (저장되지 않음)
q! vi 강제 종료 (!가 붙으면 강제로 수행)
wq 저장 후 종료
wq! 강제 저장 후 종료 (! 가 붙으면 강제로 수행)
f [파일명] 파일이름을 [파일명]으로 변경
ex: f teamlog.txt
숫자 해당 라인으로 커서 이동
$ 파일 맨 끝 줄로 이동
e! 마지막 저장 이후 모든 편집 취소
/문자열 현재 커서 위치에서부터 파일 앞쪽으로 문자열 탐색
?문자열 현재 커서 위치에서부터 파일 뒤쪽으로 문자열 탐색
set nu vi 라인 번호 출력
set nonu vi 라인 번호 출력 취소

'TeamLog🦝 > server🔗' 카테고리의 다른 글

Nginx  (1) 2024.11.25
SSH  (1) 2024.11.17
netplan  (3) 2024.10.02
server DNS  (0) 2024.09.29