Just do IT
article thumbnail
Published 2022. 12. 17. 09:20
리눅스 명령어 (vi) Programing/Linux

[vi 명령어]
   - 리눅스에서 파일을 편집 할 때 가장 많이 사용되는 명령어이므로 암기해두는게 좋다.
   - 파일을 편집할 수 있는 명령어로 세 가지 모드가 있다.

   - 명령모드 : command mode, 특정 글을 찾거나, 줄 단위로 복사, 삭제 등을 할 수 있는 모드
   - 입력모드 : insert mode, 내용을 직접 편집할 수 있는 모드
   - 콜론모드 : 파일을 저장, 종료할 수 있는 모드
   - 리눅스에서 주석은 #이며 주석처리된 부분은 실행되지 않는다.

[사용방법]
   - vi [파일명]

[vi 구성]

출처 https://velog.io/@zeesoo/Linux-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    

 

리눅스 명령어(/etc/passwd)

 

출처 : https://velog.io/@zeesoo/Linux-vi-편집기-사용법-및-명령어

 

 

 

profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!