ssongk
ssongk
ssongk
전체 방문자
오늘
어제

공지사항

  • resources
  • 분류 전체보기 (626)
    • CTF (24)
    • background (79)
      • fuzzing (5)
      • linux (29)
      • linux kernel (15)
      • windows (2)
      • web assembly (1)
      • embedded (0)
      • web (13)
      • crypto (9)
      • mobile (1)
      • AI (1)
      • etc.. (3)
    • write-up(pwn) (171)
      • dreamhack (102)
      • pwn.college (4)
      • pwnable.xyz (51)
      • pwnable.tw (3)
      • pwnable.kr (5)
      • G04T (6)
    • write-up(rev) (32)
      • dreamhack (24)
      • reversing.kr (8)
    • write-up(web) (195)
      • dreamhack (63)
      • LOS (40)
      • webhacking.kr (69)
      • websec.fr (3)
      • wargame.kr (6)
      • webgoat (1)
      • G04T (7)
      • suninatas (6)
    • write-up(crypto) (19)
      • dreamhack (16)
      • G04T (1)
      • suninatas (2)
    • write-up(forensic) (53)
      • dreamhack (5)
      • ctf-d (47)
      • suninatas (1)
    • write-up(misc) (13)
      • dreamhack (12)
      • suninatas (1)
    • development (31)
      • Linux (14)
      • Java (13)
      • Python (1)
      • C (2)
      • TroubleShooting (1)
    • 자격증 (8)
    • 이산수학 (1)
    • 정보보안 (0)
hELLO · Designed By 정상우.
ssongk

ssongk

development/Linux

[우분투 리눅스] vi 기초 사용법

2022. 7. 12. 14:39

vi의 동작 모드

vi는 명령 모드, 입력 모드, 마지막 행 모드로 구분한다.

명령 모드에서 입력한 키는 커서의 이동이나 텍스트 삭제 같은 명령으로 해석되어 실행

입력 모드에서 입력한 키는 텍스트로 입력

마지막 행(라인) 모드는 커서가 맨 하단으로 이동하여 특별한 명령어를 사용할 수 있게 됨

vi의 명령

기능 명령 모드 마지막 행 모드
입력 모드로 이동 a, i, o, A, I, O  
마지막 행 모드로 이동 :, /, ?  
커서 이동 h, j, k, l, H, M, L, $, ^(O), -, +, Enter, w, b, e  
화면 이동 ^f, ^b, ^u, ^d, ^y, ^e  
저장 및 종료 ZZ :q, :q!, :w 파일명, :wq, :wq!
내용 수정 r, cw(#cw), s(#s), cc, C  
내용 삭제 x(#x), dw(#dw), dd(#dd), D :#d. :<범위>d
이전 동작 취소 u, U  
복사, 붙여넣기 yy(#yy), p, P :#y, :<범위>y, :pu, :#pu
화면 재출력 ^l(소문자 L) :e!
행 이동 #G, G :#, :$
이전 동작 반복 .  
아랫행 이어 붙이기 J  
대문자/소문자 바꾸기 ~  
문자열 검색   /문자열, ?문자열, n, N
문자열 바꾸기   :s/문자열1.문자열2/g
:<범위>s/문자열1/문자열2/g
:<범위>s/문자열1/문자열2/gc
다른 파일 읽어오기   :r 파일
다른 파일 편집으로 가기   :e 파일, :n
셸 명령 실행   :! 셸 명령, :sh

명령어의 대소문자가 다름에 주의하자

#은 숫자이다. 

enter : enter 키

^ : ctrl 키

버퍼 사용

vi에서는 복사하거나 잘라낸 내용을 임시 버퍼에 저장할 수 있다.

이름이 없는 버퍼를 언네임드 버퍼라 하고, 이름이 있는 버퍼를 네임드 버퍼라 한다.

네임드 버퍼는 "+문자 또는 "+숫자의 형태로 사용한다. 숫자를 사용한 버퍼를 숫자 버퍼라고도 한다.

네임드 버퍼 : "a, "b, "c, "d, ..., "z

숫자 버퍼 : "1, "2, ..., "9

vi 환경 설정

vi 환경 설정은 다음 세 가지  방법으로 할 수 있다.

사용자 홈 디렉터리에 .exrc 파일로 저장한다.

환경 변수 EXINIT에 지정한다.

vi의 마지막 행 모드에서 명령으로 실행한다.(vi 종료 시 초기화)

set 명령과 옵션 기능
set nu 파일 내용에 각 행에 행 번호를 표시(저장되진 않는다)
set nonu 행 번호를 감춘다
set list 눈에 보이지 않는 특수문자 표시(tab : ^I(대문자 i), eol:$ 등)
set nolist 특수문자를 감춘다.
set showmode 현재 모드를 표시
set noshowmode 현재 모드를 감춘다
set set으로 설정한 모든 vi 환경 설정 값을 출력
set all 모든 vi 환경 변수와 현재 값을 출력

'development > Linux' 카테고리의 다른 글

[우분투 리눅스] 파일 시스템과 디스크 관리  (0) 2022.07.27
[우분투 리눅스] 프로세스 관리하기  (0) 2022.07.23
[우분투 리눅스] 파일 접근 권한 관리하기  (0) 2022.07.20
[우분투 리눅스] 셸 기초 사용법  (0) 2022.07.19
[우분투 리눅스] 디렉터리와 파일 기초 명령어  (0) 2022.07.12
    'development/Linux' 카테고리의 다른 글
    • [우분투 리눅스] 프로세스 관리하기
    • [우분투 리눅스] 파일 접근 권한 관리하기
    • [우분투 리눅스] 셸 기초 사용법
    • [우분투 리눅스] 디렉터리와 파일 기초 명령어
    ssongk
    ssongk
    벌레 사냥꾼이 되고 싶어요

    티스토리툴바