본문 바로가기

리눅스

vi editor

반응형

vi editor란

리눅스에서 사용하는 대표적인 문서편집기로 window에 빗대면 '한글'과 같은 것입니다.

editor는 명령모드, 입력모드, 실행모드 이렇게 세 가지 모드로 구분됩니다.

 

간단한 명령은 다음과 같습니다.

 

진입

putty 창에서 vi라고 입력하면 vi editor로 진입할 수 있습니다.

vi 명령을 통한 vi editor 진입

 

나가기

esc + : + q! ==> vi editor 나갈 수 있습니다.

vi editor 나가기

 

커서 이동

  • h , j , k , l 을 이용해 왼쪽, 아래쪽, 위쪽, 오른쪽으로 이동
  • w : 다음 단어의 처음으로 이동
  • b : 이전 단어의 처음으로 이동
  • e : end. 다음 단어의 끝으로 이동
  • 0 : 행의 처음으로 이동
  • $ : 행의 마지막으로 이동
  • H : 맨 위로 (현재 문서 화면을 기준으로 이동) 
  • M : 중간으로 (현재 문서 화면을 기준으로 이동)
  • L : 마지막으로 (현재 문서 화면을 기준으로 이동)
  • gg : 문서의 처음으로 이동
  • G : 문서의 마지막으로 이동

 

크이동 (책갈피 이동)

마크 설정 및 이동은 문서가 열려있을 때에만 유지 가능한 책갈피 기능이라 볼 수 있습니다.

 

설정

m + [문자] 클릭하면 해당 위치를 책갈피처럼 저장해둡니다.

이때, 문자는 대, 소문자를 구분하며 52개까지 설정 가능합니다.

 

이동

`(grave key) + [문자] 클릭하면 지정한 위치로 이동 가능합니다. 

 

 

 

입력모드

i, a, o, O 키를 누르고 작업하는 상태를 입력모드라 합니다.

i, a, o, O 키를 입력하면 입력가능하며 입력이 끝나면 esc를 눌러 입력모드를 종료 가능합니다.

  • i : 현재 커서 위치에서 입력
  • a : 현재 커서 위치에서 한 칸 우측으로 이동 후 입력
  • o : 현재 커서 위치한 라인 밑으로 빈 라인 삽입 후 입력
  • O : 현재 커서 위치한 라인 위로 빈 라인 삽입 후 입력 

 

 

삭제

삭제를 하는 키는 x, X ,dd 입니다.

  • x : 윈도우의 del키와 같은 역할로 현재 커서 위치부터 삭제
  • X : 윈도우의 backspace와 같은 역할로 현재 커서 위치 앞부터 삭제
  • dd : 현재 커서가 위치한 라인 한 줄을 삭제. 라인 삭제 기능
  • [숫자] + dd : 현재 커서가 위치한 라인부터 지정한 수만큼 라인 삭제. 블록 삭제 기능

 

복사/ 붙여넣기

  • yy : 현재 커서가 위치한 라인 복사
  • [숫자] + yy : 현재 커서가 위치한 라인부터 지정한 수만큼 라인 복사. 블록 복사
  • p(소문자) : 현재 커서가 위치한 라인 이후에 붙여넣기. 아래로 붙여넣기 
  • P(대문자) : 현재 커서가 위치한 라인 이전에 붙여넣기. 위로 붙여넣기

 

 

명령모드

esc키를 누르거나 vi editor를 처음 열었을 때를 명령모드라 합니다.

enter없이 키들만을 누르는 h , j , k , l 등을 명령모드라 한다.

 

 

실행모드

/ , ? , : 을 누르고 작업하는 상태를 실행모드라 한다.

마지막에 enter를 누르면 실행모드이다.

 

 

패턴검색 (찾기)

/ [패턴명] : (n: 정방향, N: 역방향)

? [패턴명] : (n: 역방향, N: 정방향)

 

 

라인번호 

라인 번호 붙이기

: + set nu 명령 : 라인 번호 활성화

: + set nonu 명령 : 라인 번호 비활성화

 

set nu 를 통해 라인번호 활성화

 

라인 이동

: + [라인 번호] : 지정한 라인으로 이동

 

 

 

치환

:[범위]s/[old]/[new]/[option]

  • s: 라인을 뜻한다
  • old: 기존에 있던 문서
  • new: 새롭게 바꿔줄 문서
  • option: 바꾸면서 사용할 옵션

     1. 해당행 치환 : 치환시킬 문자열이 있는 라인으로 이동한 후 치환

 

70 line에서 Use가 Make로 바뀜

     2. 지정행 치환 : 치환 시킬 문자열이 있는 라인을 지정해서 치환

18번 라인의 passoword > Id

     3. 영역 지정 치환 (범위 지정 치환) : 범위 구분시 콤마(,) 사용

33~37 line의 UID > popcorn

     4. 전체 치환 : 전체 범위 지정시 % 사용

전체 범위에서 popcorn > hamburger

- g 옵션: 사용하지 않으면 라인에 조건에 맞는 문자열이 여러개일 때 첫번째 문자열만 치환합니다. g 옵션을 통해 라인에 조건에 맞는 문자열이 여러개라도 모든 문자열 치환이 가능하게 됩니다.

 

 

다중 작업

:! [명령어] :  vi editor를 잠시 내려놓은 상태에서 명령 실행

ex ) ! ls -l pwd

 

:.! [명령어] : 현재 커서가 위치한 라인에 명령 결과 삽입. 원본 라인 초기화 주의

ex ) .! ls -l pwd

 

:q! : 저장하지 않고 나가겠단 의미! (! 가 뒤에 붙으면 강제 작업이란 의미)

:w [경로]/[파일명] : 다른 이름으로 저장

:wq : 저장후 나가기

 

 

ctrl + w + n : 다중 문서 작업. 나가려면 :q 입력하면 됩니다.

 

 

새문서 열기

:enew  : 새문서를 여는 명령어입니다.

 

:e == 불러오기 (열기) 

 

:r [파일명]  : 현재 내용에 파일을 삽입 시켜주겠다.

:r! [명령어] : 현재 커서가 위치한 라인 밑으로 결과를 삽입

 

 

 

종료 명령

shutdown -h now

halt

poweroff

init 0

systemctl poweroff

 

 

 

시스템 재시작 명령

shutdown -r now

reboot

init 6

 

systemctl reboot

반응형

'리눅스' 카테고리의 다른 글

사용자  (0) 2020.01.28
리눅스 디렉토리 구조  (0) 2020.01.20
우분투(Ubuntu) 설치  (0) 2019.11.24
D 드라이브 만들기  (0) 2019.11.19