소소한DB/리눅스

리눅스 vi 기본 (검색/치환/창나누기)

DOOA 2019. 1. 21. 10:48
반응형

< vi : 문서 편집기 >


vi [tagea]


[root@localhost ~]# vi /etc/passwd


줄번호 설정 (:set nu)

줄 번호를 끈다(:set nonu) 


방향키 :       k

            h  j  l


 [[ =  문서의 제일앞

 ]] =  문서의 제일 뒤

페이지 이동

ctrl + f : 다음페이지

ctal + b :이전페이지

화면 상에서 이동

           h

shift +     m

          l

x :삭제

u :되돌리기


커서 이동 

w : 단어의 처음으로

e : 단어의 끝으로  <다음단어의 끝>

b : 단어의 처음으로 <이전단어의 처음>


책갈피(마크)

지정 m[?] a~z

호출 `[?]  (숫자 1 왼쪽키) A~Z 52개 지정가능


지정한것 불러들일때 `[?]


-커서기준-


   현재 위치에서 입력 모드로 변경

a    현재 위치에서 우측으로 한 칸 이동 후 입력 모드로 변경

o    커서 아래에 새로운 행을 추가하고 입력모드로 변경

s    현재 문자를 지우고 입력모드로 변경

  한 글자씩 삭제

dd    행 삭제

[숫자] dd  지정숫자만큼 행 삭제

yy   행 복사

[숫자] yy 지정숫자만큼 행 복사

p   행 붙여넣기

 



dd와 yy의 활용법


dw  다음단어 삭제 yw

de  다음단어 삭제 ye

db  이전단어 삭제 yb

d0   행 처음까지 삭제 y0

d$ 행 끝까지 삭제 y$

dG 문서 끝까지 삭제 yG

dgg 문서 처음까지 삭제 ygg



검색


/ 찾을것: ↓ n ↓ 정방향

           N ↑ 역방향

? 찾을것: ↑ n ↑ 정방향

           N ↓ 역방향



치환


:[범위]s/원본/수정/옵션


1. :s/test/1234 범위 지정안해서 한줄만 치환

2. :s/test/1234/g 범위커서행 모두 치환 (g=범위전체)

3. :10,11s/w/1234  10~12행당 1개씩 치환

4. :10s/w/1234/g      10행 모두 치환

5. :10,12s/i/1234/g 10~12행 모두 치환

6. :%s/th/1234/g 문서 전체 모두 치환 (%=문서전체)

7. :6s/\/etc/!!! /etc를 !!!로 치환

'/'를 치환할때는 앞에'\'(역슬래쉬)를 사용한다



-Shell 명령어-


:!  vi를 잠시 중단하고 명령어 수행

:.! 수행한 명령의 결과를 vi 편집기로 출력한다

1. :! ls -l  뒤로가서 결과값을 보여준다

2. :.! ls -l 원본행 삭제시키고 결과값을 보여준다

3. :cd vi내부에서 경로이동(:!cd안됨)



-Split window-


[n]split[filename]  가로 나누기 n창크기,몇줄

[n]vs[filename] 세로 나누기 (vim에서만 사용가능)


1. :15 split /backup/inittab 위에서 15줄까지 inittab킨다

ctrl ww 창 이동

ctrl wn 새 창 띄우기


:e 파일열기

:enew 현재창 닫고 빈 문서 연다

:q 종료

:q! 강제종료

:w 파일 저장

:wq 파일 저장 후 종료

:w /backup/test   /backup에 test란 이름으로 저장 (다른이름으로 저장)

:wq /backup/test /backup에 test란 이름으로 저장하며 종료 (다른이름으로 저장)


:숫자r [파일명] 숫자행 아래에 행추가후 파일 내용 삽입

:숫자r! [명령어] 숫자행 아래에 행추가후 명령수행 내용 삽입

:.! cat 파일명

:.! 명령어


:20r /backup/inittab  20번째 줄에 /backup/inittab 내용이 들어왔다

:11r! ls -l 11번째 줄에 /ls -l내용이 들어왔다

반응형