[vi 에디터]
- Linux에서 기본적으로 제공하는 문서 편집기(CLI 환경에서 사용)
- 사용 환경
명령 모드 : 기본 사용 환경, 커서 이동, 복사/잘라내기/붙여넣기, 삭제, 입력/실행 모드 전환
입력 모드 : 문서 내용을 편집하기 위한 환경, 내용 추가/수정/삭제, 명령 모드 전환
실행 모드 : 그 외 대부분의 기능들을 사용하기 위한 환경, 명령 모드 전환
(ex 모드)
* 입력 모드와 실행 모드 간의 전환은 불가능
- vi 에디터 실행
vi : 빈 파일 열기
vi 파일명 : 해당 파일 열기
[명령 모드 사용 방법]
1. 커서 이동
1) 글자 단위 커서 이동
h : 왼쪽으로 한칸 이동
j : 아래로 한칸 이동
k : 위로 한칸 이동
l : 오른쪽으로 한칸 이동
2) 단어 단위 커서 이동
-> 소문자로 입력하면 특수문자를 별개의 단어로 인식
대문자로 입력하면 공백문자와 개행문자를 기준으로 단어를 인식
w : 커서위치 기준으로 다음 단어의 첫 글자로 이동
b : 커서위치 기준으로 이전 단어의 첫글자로 이동
e : 다음 단어의 마지막 글자로 이동
3) 줄 내부 커서 이동
0 : 커서 위치의 줄 맨 앞으로 이동
$ : 커서 위치의 줄 맨 뒤로 이동
4) 화면 내부 커서 이동
H : 화면의 첫 줄로 커서 이동
M : 화면의 중간 줄로 커서 이동
L : 화면의 마지막 줄로 커서 이동
5) 문서 내부 커서 이동
gg : 문서의 첫줄로 이동( [[ 눌러서 대체 가능)
G : 문서의 마지막줄로 이동( ]] 눌러서 대체 가능)
:숫자 : (실행 모드) 숫자번째 줄로 이동
2. 삭제
x : 커서 오른쪽으로 내용 삭제, 오른쪽에 더이상 지울 내용이 없으면 왼쪽 내용도 삭제, 그 줄에 더이상 지울 내용이 없으면 추가 동작 안함
X : 커서 왼쪽으로 내용 삭제, 왼쪽에 더이상 지울 내용이 없으면 추가 동작 안함
3. 복사/잘라내기/붙여넣기
yy : 커서가 있는 줄 복사
(숫자)yy : 커서가 있는 줄부터 숫자만큼 줄 복사
p : 커서 뒤쪽으로 붙여넣기 (yy가 줄 복사이기 때문에 맨뒤의 개행문자까지 복사된것)
P : 커서 앞쪽으로 붙여넣기
dd : 커서가 있는 줄을 잘라내기
(숫자)dd : 커서가 있는 줄부터 숫자만큼의 줄 잘라내기
* y 나 d를 한번만 누르고 커서 이동키를 누르면 커서가 이동한 만큼 복사 혹은 잘라내기 가능
4. 실행 취소/다시 실행
u : 실행 취소
ctrl + r : 다시 실행
[입력 모드 전환]
i : 커서 왼쪽으로 내용 입력
I : 커서 줄 맨 오른쪽부터 내용 입력
a : 커서 오른쪽으로 내용 입력
A : 커서 줄 맨 오른쪽부터 내용 입력
o : 커서가 있던 줄 아래에 빈 줄 삽입 후 내용 입력
O : 커서가 있던 줄 위에 빈 줄 삽입 후 내용 입력
s : 커서가 있던 칸을 지우고 내용 입력
S : 커서가 있던 줄 전체를 지우고 내용 입력
[실행 모드 사용 방법]
1. 줄 번호 출력/숨기기
:set nu : 줄 번호 출력
:set nonu : 줄 번호 숨기기
2. 찾기(검색)
/검색할 내용 : 위에서 아래로 일치하는 내용 검색
?검색할 내용 : 아래에서 위로 일치하는 내용 검색
* 동작 후 추가 입력
n : 검색 방향으로 다음 찾기
N : 검색 방향의 반대 방향으로 다음 찾기
3. 찾아 바꾸기(치환)
:[범위]s/찾을내용/바꿀내용/[옵션]
* 범위
생략 : 커서가 위치한 줄에서 내용을 찾아서 변경
n : n번째 줄에 있는 내용을 찾아서 변경
n1,n2 : n1부터 n2번째 줄에 있는 내용을 찾아서 변경
% : 문서 전체에 있는 내용을 찾아서 전부 변경
* 옵션
g : 한 줄에 변경할 내용이 여러개 있는 경우 전체를 다 변경
4. 리눅스 명령어 사용
:! 명령어 : vi를 잠시 멈추고 리눅스 명령어 실행
5. 파일에 내용 삽입
:.! 명령어 : 현재 커서가 위치한 줄 내용을 지우고 명령어 출력 결과 삽입
:r! 명령어 : 현재 커서가 위치한 줄 아래로 명령어 출력 결과 삽입
:r 파일명 : 커서가 있는 줄 아래로 다른 파일의 내용 삽입
* :r, :r! 의 경우 기호와 r 사이에 숫자를 넣어서 해당 줄 아래로 삽입 가능
6. 저장/종료/불러오기
-> !를 저장/종료/불러오기에 붙여주면 강제 동작
:w : 저장
:w 파일명 : 해당 이름으로 저장
:q : 종료
:wq : 저장 후 종료
:wq 파일명 : 해당 이름으로 저장 후 종료
:e 파일명 : 기존 문서를 닫고 다른 파일 불러오기
:enew : 기존 문서를 닫고 새 파일 열기
참고)
:shell 명령어를 사용하면 사용중이던 vi 편집기를 백그라운드로 전환하고 쉘 프롬프트로 돌아갈 수 있다
다시 vi 편집기로 돌아가기 위해선 exit로 쉘 프롬프트를 종료시키면 된다
이와 같은 기능을 하는 것으로 ctrl + z 가 있는데 vi 편집기로 돌아가기 위해선 fg 명령어를 사용해야 한다는 차이점이 있다
fg(foreground)
- 백그라운드로 실행되고 있는 프로세스를 포그라운드로 전환
- 형식
fg %작업번호 (번호 미입력시 가장 최근 프로세스가 포그라운드로 전환됨)
bg(background)
- 프로세스를 백그라운드로 실행
- 형식
명령어 &
jobs
- 현재 작업중인 프로세스 정보를 출력
이렇게 백그라운드로 전환됐던 vi 편집기로 복귀할 수 있는 것을 확인할 수 있다
'Linux' 카테고리의 다른 글
파일 속성&권한 (0) | 2022.09.13 |
---|---|
사용자 계정&그룹 (0) | 2022.09.13 |
Linux 파일 링크, 압축 (0) | 2022.09.09 |
Linux 기본 명령어 정리 (0) | 2022.09.09 |
리눅스 기본 디렉토리 구조&절대 경로와 상대 경로 (0) | 2022.09.09 |