이번 포스팅에서는 vi 편집기에 대해서 알아보겠습니다.
아래 사진은 vi, vim 동작 모드입니다.
명령 모드(Command mode)가 최초 시작 모드이며 ESC, a, i, o, :, /, ? 등으로 동작 모드를 변경하면서 사용합니다.
(저는 vi 편집기를 실습하기 위해 vtest 디렉터리를 생성한 후 이 디렉터리에 /etc/login.defs 파일을 복사했습니다.)
vi 편집기의 기본 형식은 vi [파일명]입니다.
[root@localhost /]# mkdir vtest; cd vtest; cp /etc/login.defs ./; ls login.defs [root@localhost vtest]# vi login.defs |
1. 명령(이동) 모드(Command mode)
명령(이동) 모드에서도 여러 가지 방법으로 커서 이동이 가능합니다.
[방향키 이동]
h 또는 ← : 왼쪽
j 또는 ↓ : 아래
k 또는 ↑ : 위
l 또는 → : 오른쪽
[단어 이동]
w : 단어 첫 글자 단위로 이동
e : 단어 끝 글자 단위로 이동
b : 단어 단위로 뒤로 이동
[문서 내 이동]
$ : 행 끝으로 이동
0 : 행 처음으로 이동
gg : 문서 최초로 이동
shift + g (G) : 문서 끝으로 이동
2. 입력 모드(Edit mode)
[편집(입력) 모드 전환 키] : a, i, o, A, I, O
a : 커서 위치의 다음 칸부터 끼워넣기 (append)
A : 커서가 있는 줄의 끝에서부터 끼워넣기
i : 커서 위치부터 끼워넣기 (insert)
I : 커서가 있는 줄의 맨 앞에서부터 끼워넣기
o : 커서 바로 아래에 줄을 만들고 끼워넣기(open line)
O : 커서 바로 위에 줄을 만들고 끼워넣기
[범위 지정 모드]
v : 단어 단위로 블록 지정, 블록 지정 모드 진입
shift + v (V) : 라인 단위 블록 지정
[복사 및 붙여 넣기(yank)]
yw : 커서 위치부터 단어의 끝까지 복사
y0 : 커서 위치부터 줄의 처음까지 복사
y$ : 커서 위치부터 줄의 끝까지 복사
yy : 커서가 있는 줄을 복사
ex) 5yy : 현재 커서 위치에서 아래로 5개의 행 복사
[글 삭제(delete)]
d1 : 커서 위치의 글자 삭제
dw : 커서 위치의 단어 삭제
d0 : 커서 위치부터 줄의 처음까지 삭제
d$ : 커서 위치부터 줄의 끝까지 삭제
dd : 커서가 있는 줄을 삭제
ex) 4dd : 현재 커서 위치에서 아래로 n개의 행 삭제
[붙여 넣기]
p : 커서의 다음 행 위치에 붙여 넣기
P : 커서가 있는 위치에 붙여 넣기
u : 실행 취소(undo)
3. 실행 모드(Last line mode)
(명령 모드에서 : / ? 입력)
:set nu => vi 편집기 줄 번호 생성
:set nonu => vi 편집기 줄 번호 삭제
:q => vi 편집기를 종료함 (quit)
:w => 편집 중인 문서를 저장 (write)
:w [파일명] => 편집 중인 문서를 [파일명]으로 저장
:w >> [파일명] => 편집 중인 문서를 [파일명]에 덧붙여서 저장
:e [파일명] => [파일명] 불러오기 (저장이 선행)
:[명령어] ! => 명령어 강제 실행
/[찾을 문자] => 현재 위치에서부터 아래 방향으로 찾을 문자 검색
? [찾을 문자]현재 위치에서부터 위쪽 방향으로 찾을 문자 검색
n => 찾은 문자 아래로 다음 글자 찾아서 이동
shift n (N) => 찾은 문자 위로 다음 글자 찾아서 이동
! = vi => vi 에디터를 빠져나가지 않고 파일이나 디렉터리 생성 및 확인
ex) :!mkdir /test/korea123 => 생성
:!ls –l /test => 확인
[패턴 검색 및 교체]
: %s/old/new/gc => old를 new로 하나씩 교체
: %s/old/new/ 또는 %s/old/new/g => old를 new로 한 번에 교체
ex) UID => GID 하나씩 바꿀 때 : %s/UID/GID/gc
UID => GID 한 번에 바꿀 때 : %s/UID/GID/ 또는 :%s/UID/GID/g
:1,20s/old/new => 1번부터 20번째 줄까지 모든 old를 new로 교체
다음 포스팅에서는 리눅스의 alias에 대해 알아보겠습니다.
'[Linux] 리눅스(CentOS7)' 카테고리의 다른 글
[Linux] 리눅스 사용자 관리 파일 및 디렉터리 (0) | 2022.03.01 |
---|---|
[Linux] 리눅스 alias 사용법 및 예제 (0) | 2022.02.28 |
[Linux] 리눅스의 특수문자 종류와 사용법 (0) | 2022.02.26 |
[Linux] 리눅스의 다중 명령어 및 사용법 (0) | 2022.02.25 |
[Linux] 리눅스 기본 사용법 및 명령어_3 (0) | 2022.02.24 |