IT/리눅스마스터1급

에디터

알콩달콩아빠 2022. 5. 19. 19:12
728x90
반응형

안녕하세요

 

뚱보 프로그래머 입니다.

 

금일은  에디터  관련  명령어에  대해서  알아봅니다.

 

 

Editor

 

VI

 

1. 미리 알아두어야 할것들

 

1)  vi 명령어 모드 3 가지

 

1] ESC 모드

 

2] 편집모드

 

3] 콜론모드(ex모드)

 

 

 

2) vi 명령어의 간단한 문법

 

(반복횟수)(편집명령)(반복횟수)(커서이동명령)

 

현재의 위치에서 커서 이동명령의 내용대로 문서의 임의위치로 이동하는 순간, 편집명령어의 내용이 수행된다.

 

 

 

3)  ESC 모드에서 사용되는 몇 가지 기호

 

G           :  화일의 맨끝

 

^            :  현재줄의 맨앞 (빈칸무시)

 

0            :  현재줄의 맨앞

 

$            :  현재줄의 맨뒤

 

%          :  짝을 이루는 기호 확인하기

 

w           :  다음 단어

 

b           :  이전 단어

 

e           :  현재 단어의 끝 글자

 

 

 

4) 여러가지 특수한 기호들

 

.            :  한글자를 대표하는 기호 (dos  ? 와 동일)

 

*            :  여러 개의 문자를 동시에 대표하는 기호

 

^            :  줄의 처음시작.

 

$            :  줄의 맨끝.

 

%          :  처음 줄부터 끝 줄까지

 

\          :  특수한 기호들이 가지는 뜻을 없앨 때 사용.

 

[ ]         :  일정한 제한을 두어 글자를 대표하고자 하는 기호.

 

[a-z]     :  a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z 를 대표

 

[A-Z]    : A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z를 대표

 

[AB]     :  A 또는 B

 

p[aeiou]t            :  pat, pet, pit, pot, put 를 대표

 

[0-9]     :  0,1,2,3,4,5,6,7,8,9 를 대표

 

 

 

2. 커서 움직이기

 

1) 글자 단위 이동

 

위쪽으로

 

 

 

                    k                   사선을 옆으로 그어 놓은 이유는 보통

 

                                          초보자들이 h, l 은 잘 구별하는 반면

 

  왼쪽으로 h       \      l  오른쪽으로     k, j 를 항상 혼동하기 때문이다

 

             

 

                    j              항상 h,j \ k,l 로 기억해두면 잊지않게 된다.

 

              아래쪽으로

 

 

 

2)  줄 단위 이동

 

^            :   줄의 맨앞으로 (빈칸무시)

 

0            :   줄의 맨앞으로

 

$            :   줄의 맨뒤로

 

%          :   짝을 이루는 기호 확인하기

 

+            :   다음줄의 첫번째 글자로

 

-            :   윗줄의   첫번째 글자로

 

n|          :   현재줄의 n 번째 열로 (n은 임의의 숫자)

 

H           :   화면상에 처음줄로

 

M           :   화면상의 중간줄로

 

L           :   화면상의 마지막줄로

 

nH         :   화면상의 처음줄로부터 n 줄 밑으로

 

nL          :   화면상의 마지막줄로부터 n 줄 위로

 

G           :   맨 마지막줄로 (go)

 

nG         :   n 번째줄로

 

gg         :   맨 마지막줄로

 

ngg        :   n 번째줄로

 

:n           :   n 번째줄로

 

 

 

3)  단어 단위 이동

 

w           :   한단어 오른쪽으로 (word)

 

b           :   한단어 왼쪽으로 (back)

 

e           :   현재 단어의 끝으로 이동 (end)

 

E           :   현재 단어의 끝으로 이동 (구두점 무시 - 영문자에 해당 - ? . !.)

 

)            :   다음 문장의 시작으로

 

(            :   이전 문장의 시작으로

 

}            :   다음 문단의 시작으로

 

{            :   이전 문단의 시작으로

 

]]          :   다음 섹션의 시작으로

 

[[          :   이전 섹션의 시작으로

 

 

 

4)  화면단위 이동

 

Control - F(orward)   한화면   밑으로 이동.

 

Control - B(ackward)  한화면   위로   이동.

 

Control - D(own)      반쪽화면 밑으로 이동.

 

Control - U(pon)      반쪽화면 위로   이동.

 

Control - E           커서는 현재위치 그대로 화면만 한줄씩 위로   이동

 

Control - Y           커서는 현재위치 그대로 화면만 한줄씩 아래로 이동

 

z                     커서의 위치와 함께, 화면상의 맨위로

 

nz                    n번 라인을 화면상의 맨위로

 

z.                    커서의 위치와 함께, 화면상의 중간으로

 

z-                    커서의 위치와 함께, 화면상의 맨아래로

 

Control - G          현재 편집문서의 정보 보여주기

 

Control - L          화면 재표시 (글자가 깨졌을경우)

 

Control - R(edraw)   화면 재표시 (글자가 깨졌을경우)

 

 

 

3. 편집하기

 

1)  복사, 붙이기, 합치기

 

 

 

1] y : (Yank) 복사하기

 

yy          한줄복사

 

2yy        두줄복사

 

nyy        n줄 복사 (n 은 임의의숫자)

 

yw         한단어 복사

 

y2w       두단어 복사

 

y$          그줄 끝까지 복사

 

y0(y^)    그줄 처음까지 복사

 

yG         문서의 끝까지 복사

 

Y           한줄복사 (yy 와 동일)

 

 

 

2] 마지막 명령어의 반복

 

.:   마지막에 수행한 명령어를 반복한다.

 

2.  명령어를 2번 반복한다.

 

 

 

3] p : (Put or Paste) 붙이기

 

p           아래로(오른쪽으로) 붙이기

 

2p          아래로(오른쪽으로) 두번 붙이기

 

P           위로(왼쪽으로) 붙이기

 

2P          위로(왼쪽으로) 두번 붙이기

 

 

 

4] J : (Join) 두줄 합치기

 

J            현재줄을 윗줄에 붙이기 (두줄 합치기)

 

3J          세줄합치기

 

 

 

2)  지우기, 복구하기, 바꾸기

 

 

 

1] d:   (Delete)  지우기

 

dd         한줄지우기

 

2dd        두줄지우기

 

ndd        n줄지우기 (n 은 임의의숫자)

 

dw         한단어 지우기

 

d2w       두단어 지우기

 

d$          그줄 끝까지 지우기

 

d0(d^)   그줄 처음까지 지우기

 

dG         문서 끝까지 지우기

 

D                        그줄 끝까지 지우기 (d$ 와 동일)

 

 

 

2] u : (Undo)   복구하기

 

u            한번복구하기

 

2u          두번복구하기

 

 

 

3] c : (Change)          바꾸기

 

cc         한줄바꾸기

 

2cc        두줄바꾸기

 

ncc        여러줄 바꾸기 (n 은 임의의숫자)

 

cw         한단어 바꾸기

 

ce         한단어 바꾸기 (공백 제외)

 

c2w       두단어 바꾸기

 

c$          그줄 끝까지 바꾸기

 

c0(c^)   문서 끝까지 바꾸기

 

C           그줄 끝까지 바꾸기 (c$ 와 동일)

 

 

 

4] r : (Replace)          한글자 바꾸기

 

r            한글자 바꾸기

 

2r          두글자 바꾸기

 

## r 명령어는 insert 모드로 바뀌지 않는다. ##

 

 

 

5] R : 바꾸면서 덮어 쓰기

 

 

 

6] S : 한글자 지우고 insert 모드로 - cl 와 동일 -

 

S           :            한줄지우고 insert 모드로 - cc 와 동일 -

 

~           :            대문자 <-> 소문자 바꾸기 - 영문자에만 해당 -

 

## 지우기와 바꾸기의 차이점은 바꾸기 명령어 후에 vi 편집모드로 바뀐다. ##

 

 

 

3)  block 지정하기

 

v            :  block을 지정한다.

 

(화면 밑에 -visual-이라고 나오면 커서를 이동해서 block지정한다.)

 

y            :  block copy한다.

 

x            :  block을 잘라두기 한다.

 

p           :  copy된 것을 커서가 위치한 다음 column에 붙여쓰기 한다.

 

yy          :  커서가 위치한 라인을 copy한다.

 

 

 

4. 찾기

 

/pattern pattern이라는 단어 찾기 - 위에서 아래로

 

?pattern pattern라는 단어찾기 - 아래에서 위로

 

/            :            찾기 반복 - 위에서 아래로

 

n            :            찾기 반복 - 위에서 아래로

 

?            :            찾기 반복 - 아래에서 위로

 

N           :            찾기 반복 - 아래에서 위로

 

fx           :            현재 줄에서 x문자 찾기, x는 한 개의 글자

 

Fx          :            현재 줄에서 반대방향으로 x문자 찾기, x는 한 개의 글자

 

tx           :            현재 줄에서 x문자를 찾아서 바로 전에 커서 놓기

 

Tx         :            현재 줄에서 반대방향으로 x문자를 찾아서 바로 후에 커서 놓기

 

;            :            현재 줄에서 한글자 찾기 반복

 

'            :            현재 줄에서 한글자 찾기 반복, 반대방향으로

 

 

 

## 찾기와 편집 명령의 응용 ##

 

d/simple             simple 이라는 단어가 나올 때까지 지우기

 

d/^scully            줄의 맨 앞에 scully 라는 단어가 나올 때까지 지우기

 

y/yahoo              yahoo라는 단어가 나올 때까지 복사하기

 

 

 

5. 편집모드 지정하기

 

1) I : insert    현재커서위치

 

10i*      * 문자를 10개 집어넣기

 

25i=-     =-  25개 반복하기

 

 

 

2) I : 현재커서가 위치한 줄의 맨 처음에

 

 

 

3) a : append    현재커서위치 바로 다음에

 

 

 

4) A : 현재커서가 위치한 줄의 맨 끝에

 

 

 

5) o : open      현재커서위치 바로 아래 줄에

 

 

 

6) O : Open      현재커서위치 바로 윗 줄에

 

 

 

6. 위치 기억하기

 

mx : mark      현재의 커서위치를 x 라는 문자로 기억         

 

`x          :            기억된 x 위치로 이동

 

``           :            이동하기 전의 위치로 (제자리)

 

'x          :            기억된 x 위치의 맨 앞으로 이동

 

''         :            이동하기 전 위치의 맨앞으로 이동

 

 

 

7. 버퍼 이용하기

 

"xyy       :            x 라는 이름의 버퍼에 한 줄 복사 하기

 

"xp         :            x 라는 이름의 버퍼에 저장된 내용을 붙이기

 

 

 

## 잠시 쉬었다 가기 ##

 

:=                        현재 줄 번호 보여주기

 

:/pattern/ =         pattern이 위치한 줄 번호 보여주기

 

 

 

8. ex 명령어 익히기

 

1)  ex 명령어의 기본형식

 

:k,l command m

 

(범위지정) (명령어) (명령이 수행될 위치)

 

 

 

)

 

:1,10 co 50                       1줄 부터 10줄 까지를 50줄 이후로 복사.

 

:34,50 d               34줄 부터 50줄 까지 삭제.

 

:100,150 m 10      100줄 부터 150줄까지를 10줄 이후로 옮김.

 

:.,$ d                   현재 줄부터 끝까지 지우기

 

:.,+20 co –4                      현재 줄부터 20줄을, 4줄 위에 복사하기

 

:-,+ t 0                , 아래로 한 줄( 3)씩을, 문서 맨 위에 복사하기

 

:/pattern/ d                      pattern이 들어있는 줄 지우기

 

:/pattern/ -nd     pattern이 들어있는 줄로부터 n번째 위줄 지우기

 

:/pattern/ +nd     pattern 이 들어있는 줄로부터 n 번째 아래줄 지우기

 

:/pattern1/,/pattern2/d       pattern1이 있는 줄부터, pattern2가 있는 줄까지 지우기

 

:.,/pattern/ m 23  현재 줄부터 pattern이 들어있는 줄까지, 23번줄 이후로 옮기기

 

 

 

2)  g 옵션 붙이기

 

:g/pattern                         파일전체에서 마지막으로 pattern이 쓰여진 줄로 가기

 

:g/pattern/ p                    파일전체에서 pattern이 있는 줄 보여주기

 

:g/pattern/ nu     파일전체에서 patterm이 있는 줄을 번호와 함께 보여주기

 

:60,124 g/pattern/p   60,124줄 사이에서 pattern이 들어있는 줄 보여주기

 

 

 

3)  저장 및 종료하기

 

:w                                    저장하기 (write)

 

:q                                    종료하기 (quit)

 

:wq                                  저장하고 종료하기

 

:x                                     저장하고 종료하기 (:wq 와 동일)

 

:w!                                   강제로 저장하기 (read-only로 열었을 경우)

 

:q!                                    편집한 내용을 저장하지 않고 종료하기

 

:w new_file_name            새로운 파일이름으로 저장하기

 

:w %.new                         현재 파일 이름에 .new를 붙여서 새로운 파일로 저장.

 

:230,$ w file_name            230 줄부터 끝 줄까지 file_name으로 저장하기

 

:.,600 w file_name            현재 줄부터 600줄까지 file_name으로 저장하기

 

:1,10 w new_file  1줄부터 10줄까지 new_file로 저장하기

 

:340,$ w >> new_file        340줄부터 끝 줄까지 new_file에 추가하기

 

 

 

4)  읽기

 

:r[ead] filename 현재위치에 filename 읽어 들이기

 

:r /usr/local/data             현재위치에 /usr/local/data 읽어 들이기

 

 

 

:185 r /usr/local/data       185줄 이후에 /usr/local/data 읽어 들이기

 

:$ r /usr/local/data           맨 끝줄 이후에 /usr/local/data 읽어 들이기

 

:0 r /usr/local/data           맨 위줄에 /usr/local/data 읽어 들이기

 

:/pattern/ r /usr/local/data  pattern이 존재하는 줄에 /usr/local/data 읽어 들이기

 

 

 

5)  다중편집하기

 

#vi file1 file2 file3

 

 

 

:args     편집중인 파일목록 보여주기

 

:n[ext]  다음 파일로 넘어가기

 

:prev[ious]         이전 파일로 돌아가기

 

 

 

## 편집중인 파일이 저장되지 않으면 다음 파일로 넘어갈 수 없다. ##

 

 

 

새로운 화일 편집하기

 

:e[dit] file_name 새로운 file_name 편집하기.

 

기존에 편집하던 파일을 저장해야 한다.

 

 

 

:e!         현재의 편집중인 내용을 무시하고 가장 최근에 편집한 내용을 다시 편집하기

 

:new file_name      새로운 window로 파일을 연다.

 

Ctrl+w+w  window간 이동

 

 

 

6) g 옵션과 바꾸기

 

:m,n s/old/new/g

 

:g/pattern/ s/old/new/g

 

 

 

:1,30 s/his/the/gc            1 줄부터 30 줄까지 his the로 바꾸면서 확인하기.

 

:g/BX/ s/Esc/ESC/g        BX가 있는 줄만 찾아서 Esc ESC로 바꾸기.

 

:%s/editer/editor/g         처음 줄부터 마지막 줄까지, editer editor로 바꾸기

 

:g/editer/ s//editor/g      위와 동일("s/" 다음에 인자가 없어서 윗 줄과 같은 효과)

 

 

 

9. vi 편집기 설정

 

#vi ~/.exrc

 

#vi ~/.vimrc

 

 

 

set autoindent     :  자동 들여쓰기

 

set cindent         :  C 언어 형식에 맞춰 들여쓰기

 

set ruler :  화면의 오른쪽 아래에 커서의 위치를 표시

 

set binary           :  이진 파일 편집

 

syntax on            :  여러 파일의 형식에 맞춰서 해당 문법을 파싱한 다음에 각 토큰이나 아규먼트를

 

색색으로 구분해 보여준다. 프로그래밍을 한다거나, html을 편집할 때에 편리한

 

기능 ls의 앨리어스에서 '--color=auto 설정 여부

 

set background=dark 

 

fe=korea             :  한글 입력

 

 

 

10. vi 환경변수 값 설정

 

set all                 :  설정된 값들을 보여준다.

 

set number         :  line 번호를 보여준다.

 

set nonumber     :  표시된 line 번호를 제거한다.

 

set tabstop=4      :  tap의 크기를 4 column으로 한다.

 

 

 

11. Homepage 예제

 

http html문서를 클라이언트에게 전달하는 protocol이다.

 

web server html 문서를 만들어 놓고 클라이언트에서 요구할 때 그 문서를 전달한다.

 

클라이언트는 웹 브라우져가 된다.

 

브라우져의 주소 부분에 http://edu00.net을 입력하면 www.edu00.net 호스트 시스템의 특정 디렉토리 안에 있는 index.html을 보여주게 된다.

 

먼저 각 계정 사용자들은 다음 위치에 파일을 만든다.

 

/home/linux00(계정)/public_html

 

클라이언트가 http://edu00.net/~linux/라고 입력하면 위의 디렉토리 밑에 있는 index.html을 브라우져에서 볼 수 있다.

 

 

 

1) #mkdir /home/linux00/public_html

 

2) #cd ~/public_html

 

3) #chmod 711 /home/linux00/public_html

 

4) #chmod 755 /home/linux00/public_html/index.html

 

5) #vi index.html

 

<title>na's Homepage</title>

 

<body img="AN_002.GIF">

 

<center>

 

<img src="image/w.gif"><!-- copy, paste, block을 한다. ftp를 이용해서 다음 images를 현재 디렉토리(~/public_html) download한다 -->

 

<img src="image/e.gif">

 

<img src="image/l.gif">

 

<img src="image/c.gif">

 

<img src="image/o.gif">

 

<img src="image/m.gif">

 

<img src="image/e.gif">

 

</center>

 

<hr>

 

<h2>Self Information</h2>

 

<p>name:<b>Linux Kingdom</b>

 

<br>NADREAM ID:<b>linux</b>

 

<br>address:<b>Seoul JungLang-gu Muk-dong</b>

 

<br>academy:<b>linuxone</b>

 

<br>HP:<b> 011-0000-0000</b>

 

<h2>Self Information</h2>

 

<p>I'm a good man.

 

<br>My name is blabla.

 

<br>Thank you very much for visiting my Homepage!!.

 

<center>

 

<p>

 

<a href="http://www.edu00.net"><img src="image/ani043.gif" alt="Go to the linuxone">

 

</a>

 

<p>(c)2000 All rights reserved.

 

<address>nadream@linuxone.co.kr</address>

 

</center>

 

</body>

 

:wq

 

 

 

6) #netscape & http://edu00.net/~linux

 

 

이상입니다!

 

728x90
반응형

'IT > 리눅스마스터1급' 카테고리의 다른 글

쉘 스크립트  (0) 2022.05.19
shell이란  (0) 2022.05.19
RPM이란  (0) 2022.05.19
부팅 프로세스  (0) 2022.05.19
파일시스템  (0) 2022.05.19