vi 에디터
명령 모드 사용 방법
- 커서 이동
- 글자 단위 커서 이동 (h, j, k, l)
- h : 왼쪽으로 한 글자 이동
- j : 아래로 한 글자 이동
- k : 위로 한 글자 이동
- l : 오른쪽으로 한 글자 이동
- 단어 단위 커서 이동 (w, b, e)
- 소문자로 입력하면 특수 문자를 별개의 단어로 인식
- 대문자로 입력하면 공백과 줄을 기준으로 단어를 인식
- w : 다음 단어의 첫 글자로 이동
- b : 이전 단어의 첫 글자로 이동
- e : 다음 단어의 끝 글자로 이동
- 줄 내부 커서 이동 (0, $)
- 0 : 줄의 첫 글자로 이동
- $ : 줄의 마지막 글자로 이동
- 화면 내부 커서 이동 (H, M, L)
- H : 화면의 첫 줄로 이동
- M : 화면의 가운뎃 줄로 이동
- L : 화면의 마지막 줄로 이동
- 문서 내부 커서 이동
- gg : 문서의 첫 줄로 이동 (= [[)
- G : 문서의 마지막 줄로 이동 (= ]])
- 글자 단위 커서 이동 (h, j, k, l)
- 입력 모드 전환 (i, a, o, s)
- i : 커서 왼쪽으로 내용 입력
- I : 커서가 있는 줄 왼쪽으로 내용 입력
- a : 커서 오른쪽으로 내용 입력
- A : 커서가 있는 줄 오른쪽으로 내용 입력
- o : 커서 아래에 빈 줄 삽입 후 내용 입력
- O : 커서 위에 빈 줄 삽입 후 내용 입력
- s : 커서가 있던 글자 제거 후 내용 입력
- S : 커서가 있던 줄 제거 후 내용 입력
- 실행 취소, 다시 실행 (u, ctrl + r)
- u : 실행 취소 (되돌리기)
- ctrl + r : 다시 실행
- 삭제
- x : 커서 오른쪽 글자 삭제 (delete 키와 동일)
- 커서 오른쪽에 지을 글자가 더 없다면 커서 왼쪽 글자 삭제(backspace키와 동일)
- X : 커서 왼쪽 글자 삭제 (backspace 키와 동일)
- 커서 왼쪽에 지을 글자가 더 없다면 그대로 끝
- x : 커서 오른쪽 글자 삭제 (delete 키와 동일)
- 복사/잘라내기/붙여넣기
- yy : 커서가 있는 줄 복사
- 숫자 + yy : 커서가 있는 줄 부터 숫자 만큼의 줄 복사
- dd : 커서가 있는 줄 잘라내기
- 숫자 + dd : 커서가 있는 줄 부터 숫자 만큼의 줄 잘라내기
- p : 커서 아래쪽으로 붙여넣기
- P : 커서 위쪽으로 붙여넣기
실행 모드 사용 방법
1. 줄 번호 출력/숨기기
- :set nu : 줄 번호 출력
- :set nonu : 줄 번호 숨기기
2. 검색
- /Pattern : 위에서 아래로 검색
- ?Pattern : 아래에서 위로 검색
- *추가 동작
- n : 검색 방향과 동일한 방향으로 다음 내용 찾기
- N : 검색 방향과 반대 방향으로 다음 내용 찾기
3. 찾아 바꾸기(치환)
- :[범위]s/찾을내용/바꿀내용/[옵션]
- *범위
- 생략 : 커서가 있는 줄의 내용을 찾아서 변경
- n : n번째 줄의 내용을 찾아서 변경
- n1, n2 : n1번째 줄 부터 n2번째 줄 까지의 내용을 찾아서 변경
- % : 문서 전체의내용을 찾아서 변경
- *옵션
- g : 한 줄에 같은 내용이 여러 개 있는 경우 전체를 변경
4. 현재 사용 중인 파일 확인
- :f : 파일명과 커서 위치 확인
5. 리눅스 명령어 사용
- :! <명령어> : vi를 잠시 멈추고 Linux 명령어 동작
6. 문서에 내용 삽입
- :.! <명령어> : 커서가 있는 줄을 지우고 명령어 동작 결과를 삽입
- *화면에 결과가 출력되는 명령어를 사용
- :r! <명령어> : 커서 아래쪽에 Linux 명령어 동작 결과를 삽입
- *화면에 결과가 출력되는 명령어를 사용
- :r <파일명> : 커서 아래쪽에 파일의 내용을 삽입
- *:r, :r!는 : r기호와 r 사이에 숫자를 넣어서 특정 줄 아래로 삽입 가능
7. 저장/종료/불러오기
- *!를 붙여주면 강제로 진행(ex. :q! 강제 종료)
- :w : 저장
- :w [파일명]: 해당 이름으로 저장
- :q : 종료
- :wq : 저장하고 종료
- :wq [파일명]: 해당 이름으로 저장하고 종료
- :e [파일명] : 기존 문서를 종료하고 다른 문서 불러오기
- :enew : 기존 문서를 종료하고 새 파일 열기
- 화면 분할
- ctrl + w + w : 분할된 화면 간 커서 이동
- ctrl + w + n : 화면을 분할하여 여러 개의 vi 에디터 동작
실습
login.defs 열기
:set nu를 입력하여 줄 번호를 표시한다.
3번째 줄에 커서 이동 후 shadow를 kdj로 변경
shadow라는 패턴이 없는 줄에서 실행 시 오류
원래 상태
:20,23s/PASS/kdj 입력 시
20-23줄에서 PASS를 kdj로 치환한다.
원래 상태
:%s/PASS/kdj 입력 시
문서 내용 전체에서 PASS를 찾아 kdj로 치환한다.
원래 상태
:2,3s/IT/kdj 입력 시
각 2번째, 3번째 줄에 첫번째 IT만 kdj로 치환한다.
:2,3s/IT/kdj/g 입력 시
옵션 g를 입력하면 각 줄들의 모든 패턴(PASS)을 찾아 치환한다.
:f 입력 시 문서 정보와 커서 위치를 확인할 수 있다.
:! ls -l /home/ 입력시
잠시 vi 밖으로 나와 Linux 명령어가 동작한다.
6번 줄에 커서 놓고 입력하면
ls -l /home/ 내용이 6번 줄에 삽입된다.
되돌리기(u)후 똑같이 6번 줄에서 입력하면
6번 줄을 유지하고 다음 줄에 명령어 출력 내용을 삽입된 것을 확인할 수 있다.
되돌리기 후 입력하면
6번 줄 아래쪽으로 /etc/inittab 내용이 삽입된 것을 확인할 수 있다.
a 파일을 생성
vi만 입력 후 엔터
내용 입력 후 저장(:w) 시 파일 이름이 없기 때문에 에러가 발생한다.
:w 뒤에 파일명을 붙여 해당 이름으로 저장
a파일 실행 후 :e b 입력
b 파일 불러오기
ctrl + w + b 입력하여 vi 에디터 분할
'Linux공부' 카테고리의 다른 글
[L12] 사용자 계정 생성 방법과 여러 옵션들_Linux/centOS (0) | 2022.01.28 |
---|---|
[L11] 사용자 & 그룹 및 사용자 계정_Linux/centOS (4) | 2022.01.26 |
[L09] FTP 개념 및 사용 방법_Linux/centOS (2) | 2022.01.22 |
[L08] Linux 여러가지 명령어와 옵션_Linux/centOS (0) | 2022.01.20 |
[L07] FTP/553 Could not create file 오류 해결 방법 (0) | 2022.01.20 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!