gbmin's Tech Notes

서버 구축 및 유지보수, 클라우드 컴퓨팅, 네트워크 보안, IT 분야 기술 노트. :)

Tech Notes/Tools & Command

[Linux command] vi 편집기 사용법 및 활용

gbmin 2023. 4. 28. 19:05

Linux vi는 대표적인 CLI(Command-Line Interface) 텍스트 편집기다.
유닉스에서 개발된 ed 편집기를 기반으로 하고 있다
매우 빠르고 편리한 기능이 많다.

- 목차

1. 기본 사용법

2. 입력 모드(Insert Mode)

3. 명령 모드(Command Mode)

     1) 주요 명령어

     2) 치환(substitute)명령어

 

1. 기본 사용법

vi [파일이름]
vi [새로 만들 파일이름]

입력 모드와 명령 모드로 사용된다.

입력 모드는 키보드로 타이핑하여 문자를 입력하는 모드이고

명령 모드는 문서를 명령어로 조작 및 편집하는 모드이다.

 

2. 입력 모드(Insert Mode)

vi 편집기를 실행하면 명령모드로 시작된다. 이때는 텍스트를 편집할 수 없다.
입력 모드로 전환을 하려면 i, a, o 키 중 하나를 입력하면 된다.

입력키 설명
i 현재 위치에서 Insert 모드로 전환
a 현재 위치에서 다음 글자부터 Insert 모드로 전환
o 현재 줄 다음에 새로운 줄을 추가하고, Insert 모드로 전환

 

3. 명령 모드(Command Mode)

vi 편집기를 실행하면 명령모드로 시작된다.
입력 모드 상태에서 명령모드로 진입하려면 esc 키를 누르면 된다.

1) 주요 명령어

명령어 설명
dd 현재 줄을 삭제
yy 현재 줄을 복사
p 복사한 줄을 현재 위치에 붙여넣기
u 이전 명령 취소
Ctrl-r 이전 명령 재실행
:w 현재 파일 저장
:q 편집기 종료
:wq 현재 파일 저장하고 편집기 종료
:set nu 라인 번호 출력
:set nonu 라인 번호 출력제거
/검색어 검색어를 찾음, 다음 검색으로 이동 하려면 n 입력
?검색어 검색어를 현재 위치에서 역방방으로 찾음, 이전 검색으로 이동 하려면 n 입력
:set ignorecase 검색어를 대소문자를 구분하지 않고 찾음
]] 문서 섹션의 마지막 줄로 이동
[[ 문서 섹션의 첫번째 줄로 이동
h (←) 왼쪽이동
j (↓) 아래이동
j (↑) 위로이동
l (→) 오른쪽이동
0 현재 줄 맨 앞으로 이동
$ 현재 줄 맨 뒤로 이동
gg 파일 첫 번째 줄로 이동
G 파일 마지막 줄로 이동
v Visual 모드로 전환
V 현재 줄을 모두 선택
Ctrl-v 블록 모드로 전환
yy 선택한 줄을 복사
dd 선택한 줄을 삭제
p 복사한 줄을 현재 위치에 붙여넣기
:set paste 복사한 텍스트를 붙여넣을 때 자동 들여쓰기 방지
:set nopaste 자동 들여쓰기 기능 다시 켜기

 

2) 치환(substitute) 명령어

단어의 치환

:%s/oldword/newword/g
  • % : 파일 전체
  • s : 치환 명령어
  • /oldword/newword/ : oldword를 newword로 변경
  • g : 각 줄에서 모든 문자열을 변경

 

선택한 블록 치환

:'<,'>s/oldword/newword/g
  • '<, '> : 선택한 블록을 나타내는 표시
  • s : 치환 명령어
  • /oldword/newword/ : oldword를 newword로 변경
  • g : 각 줄에서 모든 문자열을 변경

 

특정 줄에서 치환

:5s/oldword/newword/g
  • 5 : 5번째 줄
  • s : 치환 명령어
  • /oldword/newword/ : oldword를 newword로 변경
  • g : 각 줄에서 모든 문자열을 변경