shell 상에서 vi[파일명]을 입력하면 새로운 문서를 편집할 수 있는 환경이 만들어진다.

vi 모드 

1. Command Mode (명령 모드)

vi 명령어를 통해 vi를 실행하였을 때 화면에 나타나는 모드이다. 

*방향키를 통해 커서 이동이 가능하다.

 

2. insert Mode (입력 모드)

명령 모드에서 i 또는 a 키를 눌러 입력 모드로 접속할 수 있다. 

자유롭게 코드나 글을 작성할 수 있고, ESC를 누르면 명령 모드로 간다.

 

3. 콜론 모드

명령 모드에서 : 을 입력하면 화면 가장 아래 줄에 입력 가능한 공간이 출력된다. 

:q를 입력하면 vi 모드를 종료할 수 있다. 

 

 


vi 명령어 

  • 명령 모드에서 입력 모드로 전환
    • i: 커서 앞(왼쪽)에 입력
    • a: 커서 다음(오른쪽)에 입력
  • 입력 모드에서 명령 모드로 전환
    • ESC
  • 저장, 종료하기
    명령 모드에서 콜론:을 이용하여 다양한 작업이 가능하다. (콜론 모드)
    • :q 종료
    • :q! 저장하지 않고 강제로 종료
    • :w 저장
    • :wq 저장 후 종료
    • ZZ 저장 후 종료 (:wq와 동일)
    • :wq 파일 이름: 저장 후 파일 이름 지정
      ** vi 에디터에서는 비정상 종료 시 .swp 파일이 생성된다. 필요하지 않은 경우 삭제한다.
  • 커서 이동
    • h, j, k, l: 좌,하,상,우 커서 이동 (방향키가 없는 키보드에서 사용)
    • w: 다음 단어의 첫 글자로 이동
    • b: 이전 단어의 첫 글자로 이동
    • G: 마지막 행으로 가기
    • :숫자: 지정한 숫자 행으로 이동 ex) :5
  • 삭제
    • x: 커서에 있는 글자 삭제
    • X : 커서 앞에 있는 글자 삭제
    • dw : 커서를 기준으로 뒤에 있는 단어 글자 삭제 (커서 포함)
    • db : 커서를 기준으로 앞에 있는 단어 글자 삭제
    • dd : 커서가 있는 라인(줄) 삭제
      ** dw, db, dd 명령 앞에 삭제할 숫자를 지정 가능 ex) 3dw, 2db, 4dd
      ** 삭제 된 내용은 버퍼에 저장되어 붙여 넣기가 가능
  • 복사
    • yw : 커서를 기준으로 뒤에 있는 단어 글자 복사 (커서 포함)
    • yb : 커서를 기준으로 앞에 있는 단어 글자 복사
    • yy : 커서가 있는 라인(줄) 복사
      ** yw, yb, yy 명령 앞에 복사할 숫자를 지정 가능 ex) 3yw, 2yb, 4yy
  • 붙여 넣기 (복사, 삭제된 내용을 붙여 넣는다.)
    • p : 커서 다음에 붙여 넣기
    • P : 커서 이전에 붙여 넣기
  • 찾기
    • /문자열 : 앞에서부터 문자열을 찾는다.
    • ? 문자열 : 뒤에서부터 문자열을 찾는다.
    • n : 뒤로 검색
    • N : 앞으로 검색
  • 바꾸기
    • :%s/old/new: 각 행의 처음 나오는 old를 찾아 new로 바꾼다.
    • :%s/old/new/g: 모든 old를 찾아 new로 바꾼다.
    • :%s/old/new/gc: 모든 old를 찾아 new로 바꾸기 전에 물어본다.
  • 되돌리기(Undo), 다시 실행(Redo)
    • u : 이전으로 되돌리기 (Undo)
    • Ctrl + r : 되돌리기 한 것을 다시 실행 (Redo)
  • 자주 사용하는 기능들
    • :set number: 행번호를 출력 (간단하게 :set nu)
    • :set nonumber: 행번호를 숨긴다. (간단하게 :set nonu)
    • :cd: 현재 디렉터리를 출력

 

출처: 

https://velog.io/@zeesoo/

'DevOps > LINUX' 카테고리의 다른 글

ps 명령어  (0) 2023.09.19
리눅스 Shell 확인 및 변경  (0) 2023.09.12
alias  (0) 2023.09.11
리눅스 네트워크 bonding 처리 방법  (1) 2023.09.06
tcpdump  (2) 2023.08.31

+ Recent posts