리눅스에서 가장 많이 사용되는 문서 편집기로 기본 명령어 만큼이나 기초로서 중요한 주제이다.
리눅스에 많은 프로그램에 대한 설정값 조작이 문서로 된 설정 파일을 직접 문서 편집기로 조작해 주어야하기 때문에
이 프로그램은 아주 능숙하게 다룰 필요가 있다.
# VI(M) 에디터
- Linux에서 기본적으로 제공하는 문서 편집기(CLI 환경에서 사용)
0. 사용 환경
** 숫자 오른쪽 num-pad 사용 안됨
명령 모드 : 기본 사용 환경, 커서 이동, 복사/잘라내기/붙여넣기, 삭제, 입력/실행 모드 전환
입력 모드 : 문서의 내용을 변경하기 위한 환경, 내용 추가/수정/삭제, 명령모드 전환
실행 모드 : 그 외 대부분의 기능들을 사용하기 위한 환경, 명령 모드 전환
(ex 모드)
* 입력 모드와 실행 모드 간의 전환은 불가능
1. vi 에디터 실행
vi : 파일 이름 지정 없이 vi 에디터 실행
vi [새로운 파일명] : 파일명의 새 파일을 만드는 vi 에디터 실행
vi [기존 파일] : 기존 파일을 불러와 vi 에디터 실행
2. 명령모드 사용 방법
## 커서 이동
1) 글자 단위 커서 이동 (방향키로 가능)
h : 한 글자 왼쪽으로
j : 한 글자 아래로
k : 한 글자 위로
l : 한 글자 오른쪽으로
2) 단어 단위 커서 이동
> 소문자로 눌러주면 특수문자를 별개의 단어로 인식
대문자로 눌러주면 공백문자와 엔터를 기준으로만 단어를 인식
w : 다음 단어 첫글자로 이동
b : 이전 단어 첫글자로 이동
e : 다음 단어 마지막 글자로 이동
3) 줄 내부 커서 이동
0 : 줄의 첫 글자로 이동
$ : 줄의 마지막 글자로 이동
4) 화면 내부 커서 이동
H : 현재 화면 첫줄 맨 앞으로 이동
M : 현재 화면 가운데 줄 맨 앞으로 이동
L : 현재 화면 마지막 줄 맨 앞으로 이동
5) 문서 내부 커서 이동
gg : 전체 문서 첫줄로 이동 (=[[)
G : 전체 문서 마지막 줄로 이동 (=]])
## 삭제
x : 커서 오른쪽 내용이 삭제 (delete 키와 동일한 기능)
> 커서 오른쪽 내용이 다 지워지면 왼쪽도 지우기 시작 (backspace와 동일)
X : 커서 왼쪽 내용이 삭제 (backspace와 동일)
> 커서 왼쪽 내용이 다 지워지면 추가 작업 진행 X
## 복사, 잘라내기, 붙여넣기
yy : 커서가 있는 줄 복사
숫자 + yy : 커서가 있는 줄 부터 숫자만큼의 줄 복사
dd : 커서가 있는 줄 잘라내기
숫자 + dd : 커서가 있는 줄 부터 숫자만큼의 잘라내기
p : 커서 뒷쪽에 붙여넣기
P : 커서 앞쪽에 붙여넣기
## 실행 취소, 다시 실행
u : 실행 취소(되돌리기)
ctrl + r : 다시 실행
## 명령 모드 → 입력 모드 전환 방법
i : 커서 왼쪽으로 내용 입력
I : 해당 줄 맨 왼쪽에서 내용 입력
a : 커서 오른쪽으로 내용 입력
A : 해당 줄 맨 오른쪽에서 내용 입력
o : 커서 아래쪽에 빈 줄 삽입 후 내용 입력
O : 커서 위쪽에 빈 줄 삽입 후 내용 입력
s : 커서가 있던 글자를 지우고 내용 입력
S : 해당 줄 삭제 후 내용 입력
## 입력 모드 → 다시 명령 모드로 전환 방법
- esc : 입력 모드 → 명령 모드
3. 실행 모드 사용 방법 (명령 모드 상태에서)
1) 줄 번호 출력/숨기기
:set nu : 줄번호 출력
:set nonu : 줄번호 숨기기
2) 검색
/[검색할 단어] : 위에서 아래로 Pattern 검색
?[검색할 단어] : 아래에서 위로 Pattern 검색
* 동작 후 추가 입력
n : 검색 방향과 같은 방향으로 다음 찾기
N : 검색 방향의 반대 방향으로 다음 찾기
3) 찾아 바꾸기(치환)
:[범위]s/찾을내용/바꿀내용/[옵션]
* 범위
생략 : 커서가 있는 줄의 내용을 찾아서 변경
n : n번째 줄에 있는 내용을 찾아서 변경
n1,n2 : n1 ~ n2 줄에 있는 내용을 찾아서 변경
% : 전체 문서 내용 중 찾아서 변경 = (1,$)
* 옵션
생략 : 해당줄에 찾아 바꾸기가 실행되면 처음 것 바꾸고 다음줄로 넘어감
g : 한 줄에 찾아 바꿀 내용이 여러개인 경우 한번에 변경
4) 현재 사용 중인 파일 확인
:f : 파일명과 커서 위치 출력
5) 리눅스 명령어 사용
:! <명령어> vi를 잠시 멈추고 리눅스 명령어를 동작 시킴
6) 문서에 내용 삽입
:.! <명령어> : 커서가 있던 줄의 내용을 전부 지우고 리눅스 명령어 결과물을 파일에 삽입
> 명령어는 화면에 결과가 출력되는 명령어 사용
:r! <명령어> : 커서가 있던 줄 아래로 리눅스 명령어 결과물을 파일에 삽입
> 명령어는 화면에 결과가 출력되는 명령어 사용
:r <파일명> : 커서가 있던 줄 아래로 다른 파일의 내용 삽입
* :r, :r! 의 경우 : 기호와 r 사이에 숫자를 넣어서 해당 줄 아래로 내용 삽입이 가능
7) 저장, 종료, 불러오기
> !를 붙여서 강제로 동작이 가능(ex. :q! = 강제 종료)
:w : 저장
:w 파일명 : 다른이름으로 저장
:q : 종료
:wq : 저장 후 종료
:e 파일명 : 기존 문서를 종료하고 다른문서 불러오기
:enew : 기존 문서를 종료하고 새 파일 열기
8) 화면 분할
ctrl + w + n : 화면 분할
ctrl + w + w : 분할 화면 간 커서 이동
'Base > Linux(CentOS)' 카테고리의 다른 글
6. 권한 (허가권, 소유권, 특수권한) (0) | 2022.06.20 |
---|---|
5. 사용자계정과 그룹 (0) | 2022.06.19 |
3. 기본 명령어 모음 (0) | 2022.06.18 |
2. Shell 정보, 기본 디렉토리, 경로와 기본 명령어 (0) | 2022.06.10 |
1. 리눅스 설치 후 보안설정 해제(selinux) 및 PuTTY 설정 (0) | 2022.06.10 |
댓글