[Linux] 리눅스 vi 명령어 정리 | Vim 3가지 모드 및 비주얼 모드

리눅스 터미널에서 ‘.txt’, ‘.conf’ 등의 ASCII 파일을 편집하기 위해 vi 편집기 명령어를 사용합니다. vi 편집기는 명령모드 입력모드와 저장 및 종료 후 치환하는 리눅스 vi 명령어는 익숙해지면 매우 빠른 작업이 가능하기 때문에 효율적인 업무를 진행할 수 있습니다.

Ⅰ. vi vim 명령어 설명 및 3가지 모드

vi‘와 ‘vim‘은 둘 다 텍스트 편집기로서 리눅스 및 유닉스 기반 시스템에서 사용되는 명령어입니다.

Vi(Visual Editor)는 초기 버전의 텍스트 편집기이며, 유닉스 시스템에 기본으로 포함되어 있는 간단한 편집기입니다. 기본적인 기능만 제공한다고 할 수 있습니다.

Vim(Vi Improved)은 vi의 업그레이드 버전입니다. 기존 ‘vi’에서 향상된 기능을 가지고 있으며, 문법 강조, 자동 완성, 분할 창 등과 같은 다양한 고급 기능을 가지고 있습니다. 리눅스 터미널에서 vi를 입력했을 때 vim으로 자동 실행되는 경우는 보통 vim으로 심볼릭 링크가 설정되어 있기 때문이며, 많은 리눅스 배포판에 설정되어 있다고 볼 수 있습니다.

대부분의 리눅스 배포판에는 진짜 vi가 없으며, 대신 브람 무어나르(Bram Moolenaar)가 만든 Vim(Vi IMproved의 약자)이라고 하는 vi 확장판이 사용됩니다.

  • vi, vim 명령어
  • 텍스트 처리 명령어
  • vi 편집기 구조: 명령모드, 입력모드, 마지막행 모드로 구분
리눅스 vi 명령어 3가지 모드
  • vi 명령어 순서
  • vi 파일명(ex: httpd.conf)
  • 명령모드 진입
리눅스 vi 명령어-httpd.conf 파일 명령모드 진입
  • vi 명령어 순서
  • vi 파일명(ex: httpd.conf)
  • i 또는 Insert 키 입력 후 입력 모드 진입
리눅스 vi 명령어-httpd.conf 파일 입력 모드 진입
  • vi 명령어 마지막 행 모드
  • 콜론(:) 뒤에 set nu 명령어 입력 후 라인을 표시한 예시.
  • :wq 와 같은 명령어로 저장하고 나가기를 실행할 수 있음.
리눅스 vi 명령어-httpd.conf 마지막행 모드에서 set nu 명령어 입력

Ⅱ. 리눅스 vi 명령어 정리

1. vi 콘솔 명령어

콘솔 입력창에서 사용되는 기본 명령으로 vi [파일명]으로 많이 입력하며 옵션 사용이 가능합니다.

vi -옵션 [파일명]

2. vi 커서 이동

vim 커서 이동

3. vi 라인 이동 명령어

4. vi 편집 명령: 입력 모드 진입

5. vi 텍스트 삭제 명령어

6. vi 명령어 되돌리기(원복)

7. vi 복사 및 삽입 명령어

  • 한줄 복사 할 경우 ‘yy’ 명령어를 입력 후 ‘p’ 명령 실행해서 바로 아래에 삽입할 수 있습니다.

8. 행 번호 표시하기

# :set nu 또는 :set number 명령어로 행 번호를 표시할 수 있습니다.
 29 # ServerRoot at a non-local disk, be sure to specify a local disk on the
 30 # Mutex directive, if file-based mutexes are used.  If you wish to share the
 31 # same ServerRoot for multiple httpd daemons, you will need to change at
:set nu
## :set nonu로 행을 다시 숨길 수 있습니다. 
:set nonu

9. 검색 명령어

10. 저장 및 종료

11. 행모드 치환 명령어

Ⅲ. Vim 비주얼 블록 모드로 열(column) 일괄 치환

기존 명령라인 모드를 사용하면서 추가로 블록을 씌우고 싶을 때 사용하고 싶을 때 vim 비주얼 모드(Visual Mode)를 사용할 수 있습니다.

vim 비주얼 모드

비주얼 블록 모드

  • 비주얼 블록 모드 실행(Ctrl + v) 후
  • [Shit + i]를 눌러 Insert 상태 변경
  • 비활성화를 위해 # 입력 후
  • [Esc] 버튼을 두 번 누른 후 일괄 치환 완료

Similar Posts

  • 리눅스 tee 명령어

    리눅스 tee 명령어는 배관시설에 비유해서 이름이 붙여진 명령어입니다. 파이프 모양과 똑같은 “T”에서 본따 tee 명령어이며 표준 출력으로 하나 이상의 다른 파일을 동시에 출력합니다. tee 명령어의 목적은 작업 진행 중 파이프라인(I)의 중간 내용을 알고 싶을 때 유용하게 사용할 수 있습니다. 목차Ⅰ. vi vim 명령어 설명 및 3가지 모드Ⅱ. 리눅스 vi 명령어 정리1. vi 콘솔…

  • 리눅스: lrzsz 툴 설치 및 파일 업로드(rz) 및 다운로드(sz) 사용하기

    리눅스 OS에서 rz와 sz를 이용한 각각의 파일 업로드 및 다운로드 명령어를 실행시키기 위해 lrzsz가 서버에 설치되어 있어야 합니다. lrzsz 툴 설치 후 rz와 sz는 ZMODEM/YMODEM/XMODEM을 지원하는 프로토콜에서 파일 송수신이 가능합니다. Xshell을 사용해서 lrzszs 툴을 설치해 보겠습니다. 목차Ⅰ. vi vim 명령어 설명 및 3가지 모드Ⅱ. 리눅스 vi 명령어 정리1. vi 콘솔 명령어2. vi 커서…

  • clear 명령어

    목차Ⅰ. vi vim 명령어 설명 및 3가지 모드Ⅱ. 리눅스 vi 명령어 정리1. vi 콘솔 명령어2. vi 커서 이동3. vi 라인 이동 명령어4. vi 편집 명령: 입력 모드 진입5. vi 텍스트 삭제 명령어6. vi 명령어 되돌리기(원복)7. vi 복사 및 삽입 명령어8. 행 번호 표시하기9. 검색 명령어10. 저장 및 종료11. 행모드 치환 명령어Ⅲ. Vim 비주얼…

  • 리눅스 Rsync 명령어

    Rsync (Remote Sync) 는 네트워크를 통해 파일과 디렉터리를 효율적으로 동기화하는 백업 방식입니다. 전체 데이터를 매번 복사하는 대신 변경된 부분만 증분 방식으로 전송하여 빠르고 안정적인 동기화를 지원합니다. 또한 다양한 옵션을 통해 압축, 암호화, 권한 유지, 삭제 동기화 등 세밀한 제어가 가능하며, 백업과 서버 간 데이터 전송에 널리 사용됩니다. 특히 네트워크 대역폭을 절약하고, 재 전송…

  • 리눅스 서버 시간 동기화: timedatectl(CentOS7 이상)

    리눅스에서 날짜 및 시간 설정이 필요한 이유는 서버 운영 중 시간이 잘못되면, 입력되는 DB데이터, 로그 데이터, 웹 서버에 접속한 기록 등의 시간이 맞지 않는 경우가 발생할 수 있기 때문입니다. 리눅스 서버 시간 동기화를 사용하는데 있어 OS는 두 개의 시계를 가지고 있습니다.시스템 시계(소프트웨어 시계), 하드웨어 시계(실시간 시계, BIOS 시계)입니다. 목차Ⅰ. vi vim 명령어 설명…

  • 리눅스 find 명령어

    리눅스 find 명령어는 여러가지 다양한 기준으로 파일을 효율적으로 검색할 때 사용할 수 있는 명령어입니다. 특정 파일을 찾거나 특정 문자 패턴에 맞춰서 검색, 특정 확장자의 파일 검색, 특정 소유자, 파일 사이즈, 퍼미션, 등의 다양한 방법을 사용할 수 있습니다. find 명령어는 파일을 찾는 기본 역할 외에도 찾은 파일에 대한 퍼미션 변경, 소유자 변경, 파일 삭제…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 7   +   7   =