[vi 명령어]
- 리눅스에서 파일을 편집 할 때 가장 많이 사용되는 명령어이므로 암기해두는게 좋다.
- 파일을 편집할 수 있는 명령어로 세 가지 모드가 있다.
- 명령모드 : command mode, 특정 글을 찾거나, 줄 단위로 복사, 삭제 등을 할 수 있는 모드
- 입력모드 : insert mode, 내용을 직접 편집할 수 있는 모드
- 콜론모드 : 파일을 저장, 종료할 수 있는 모드
- 리눅스에서 주석은 #이며 주석처리된 부분은 실행되지 않는다.
[사용방법]
- vi [파일명]
[vi 구성]
[명령모드]
- 처음 vi 명령어를 실행했을 때 실행되는 모드이며 입력모드, 콜론모드 모두 명령모드를 통해서
실행할 수 있다.
- 보여지는 문서 내용은 터미널 창 크기에 맞춰서 출력이 된다.
- 명령모드에서는 커서를 이동하거나 줄 단위로 문서 내용을 삭제 및 복사하는 기능을
제공하는 모드이다.
- 대문자와 소문자 명령어가 서로 다른 의미로 사용이 되기 때문에 대소문자 구별을 해야한다.
( 대문자 : 특수문자를 단어로 인식 O / 소문자 : 특수문자를 단어로 인식 X )
[명령어]
- 커서 이동하기 h : 왼쪽, j : 아래, k : 위, l : 오른쪽
- W, w : 다음 단어의 첫 글자로 커서 이동
- B, b : 이전 단어의 첫 글자로 커서 이동
- $ : 현재 커서가 있는 행의 마지막으로 이동
- 0(숫자) : 현재 커서가 있는 행의 처음으로 이동
- H : 현재 보고 있는 화면의 맨 위로 이동
- M : 현재 보고 있는 화면의 중간으로 이동
- L : 현재 보고 있는 화면의 맨 밑으로 이동
- G : 문서 전체의 맨 끝으로 이동
- gg : 문서 전체의 맨 위로 이동
- x(소문자) : 현재 커서에 있는 문자를 삭제
- X(대문자) : 현재 커서에 이전에 있는 문자를 삭제
- dd : 현재 커서에 있는 줄 삭제
** 숫자 + dd : 현재 커서가 있는 줄부터 입력한 숫자 만큼의 줄 삭제
- yy : 현재 커서에 있는 줄 복사
** 숫자 + yy : 현재 커서가 있는 줄부터 입력한 숫자 만큼의 줄 복사
- p(소문자) : 현재 커서 아래에 붙여넣기
- P(대문자) : 현재 커서 위에 붙여넣기
- u : 뒤로, 되돌리기 (undo와 같은 기능)
- zz : vi 종료 (파일 내용이 수정된 경우에는 종료가 안될 수 있다.)
[입력모드]
- 파일 내용을 입력할 때 사용하는 모드이다.
- 명령모드에서 i, a, o, O를 입력하면 입력모드로 들어올 수 있다.
- 확인하는 방법 : 좌측 하단에 --insert-- 있으면 입력모드이다.
- 입력모드에서 esc를 누르면 명령모드로 나갈 수 있다.
- 입력모드에서 내용을 변경할 경우 콜론모드에서 저장을 해야 변경한 내용이 반영된다.
[명령어]
- i : 현재 커서 왼쪽에 글자 삽입
- a : 현재 커서 오른쪽에 글자 삽입
- o : 현재 커서 아래에 빈 줄 생성 후 글자 삽입
- O : 현재 커서 위에 빈줄 생성 후 글자 삽입
[콜론모드(마지막 행 모드, 실행모드)]
- vi 안에서 저장, 종료, 치환, 검색 등의 기능을 제공해주는 모드이다.
- 콜론모드가 실행되면 왼쪽 하단에 커서가 있게 된다.
- 명령모드에서 /, :, ?를 사용해서 콜론모드로 들어올 수 있다.
- esc를 통해 명령모드로 나올 수 있다.
[명령어]
** / or ? (검색하기)
- 검색할 문자열을 대소문자를 구별해 주어야 한다.
- / : 특정 문자열을 파일 내용 위에서부터 검색
- ? : 특정 문자열을 파일 내용 아래에서부터 검색
- 사용형식 : / or ? [찾고싶은 문자열] 입력 후 enter
- 검색 후 위에서부터 내려가면서 찾고 싶은 경우 n,
아래에서부터 올라오면서 찾고 싶은 경우 N을 누르면 된다.
** :se nu
- sentence number, 왼쪽에 줄 번호 출력
** :줄번호
- : 입력한 줄 번호로 이동
** :s/기존내용/변경내용
- 현재 커서가 있는 줄의 내용을 변경해준다.
** :줄번호s/기존내용/변경내용
- 입력한 줄번호에 있는 내용을 변경해준다.
** :시작줄번호, 끝줄번호s/기존내용/변경내용
- 지정한 시작 줄번호 부터 끝 줄번호까지의 내용을 변경해준다.
** :%s/기존내용/변경내용
- 파일 전체 내용을 한번에 변경해준다.
** :!
- 실행 중이던 vi를 잠시 중단하고 입력한 명령어를 실행한다
- 윈도우에서 메모장에 입력하다가 다른 폴더를 열어보는 것을 생각하면 된다
** :.!
- :!의 명령어 실행 결과를 현재 편집하고 있는 파일 내용에 삽입해준다
- 본문내용을 삭제하고 삽입이 되기 때문에 사용 시 주의해야 한다.
** :q
- quit!, vi를 종료해주는 명령어이다.
- 파일내용이 조금이라도 수정이 되었다면 :q로 종료할 수 없다
- 윈도우의 한글 혹은 워드에서 내용 수정 후 그냥 종료하려고 할 때의 상황을 생각하면 된다.
** :w
- write, 변경된 내용을 저장해주는 명령어이다 (파일 저장, ctrl+s와 동일)
** :w [경로 + 파일이름]
- 파일을 다른 이름으로 저장하는 명령어이다.
** :w>>[파일이름]
- 현재 열려있는 파일의 내용을 지정한 파일 마지막에 삽입해준다.
** :wq
- write and quit, 저장후 종료해주는 명령어이다.
** :q!
- quit!, 변경된 내용을 저장하지 않고 강제로 vi를 종료하는 명령어이다.
** :e [파일명]
- vi를 실행한 상태로 다른 파일을 불러오는 명령어 (메모장 열어두고 다른 폴더 여는 것)
** :!e [파일명]
- vi를 실행한 상태로 다른 파일을 불러오되 변경된 내용을 저장하지 않는다.
** :enew
- 새로운 파일을 생성해준다
** :r [파일명]
- 현재 커서 아래에 지정한 파일의 내용을 삽입해준다.
** :r! [명령어]
- 현재 커서 아래에 지정한 명령어의 결과를 삽입해준다.
[vi 분할]
- ctrl + w + n (여러개의 메모장을 여는 것과 같다)
- 창 분할 후 커서 이동 : ctrl + ww
출처 : https://velog.io/@zeesoo/Linux-vi-편집기-사용법-및-명령어
'Programing > Linux' 카테고리의 다른 글
디렉토리 관련 명령어 (man, pwd, cd, passwd) (0) | 2022.12.20 |
---|---|
리눅스 파일 (/etc/shadow, /etc/group) (0) | 2022.12.20 |
리눅스 명령어 (useradd, mod, del) (0) | 2022.12.19 |
리눅스 파일 (/etc/passwd) (0) | 2022.12.18 |
리눅스 명령어 (파일 관련 명령어) (0) | 2022.12.16 |