본문 바로가기
컴퓨터/리눅스

[Linux] 015. 리눅스 편집기 작동방법 3 (vi기본사용방법)

by Tommy0927 2020. 11. 30.
반응형


1. 유닉스/리눅스 편집기 기능       :        vi editor  (visual editor)


리눅스 에디터를 편집할 때, 치환에 대하여 알아보도록 하겠습니다. 치환은 말 그대로 찾아서 바꾸는 것을 뜻합니다. 

치환 명령어는 에디터 내에서 위의 사진처럼 작성하면 됩니다. 범위는 정해도 되고 안정해도 됩니다. 'old'에는 바꿀 단어를 작성하고 'new'에는 바꾸고싶은 단어를 작성하고 추가할 'option'을 입력하시면 됩니다. 

치환의 4가지 약간 다른 기능들에 대하여 알아보도록 하겠습니다.

 

1)해당 행 치환

 

위에 사진은 'name'이라는 모든 단어를 'linux'라는 단어로 치환하겠다는 명령입니다.

 

위에 보시는 바처럼 'linux'로 변경된 것을 볼 수 있습니다.

 

 

2)지정행 치환

':[해당 행 숫자]s/old/new'를 작성하여 특정 행에 대한 치환을 하는 것 입니다. 치환시킬 문자열이 있는 라인으로 이동 후 치환합니다.

 

10번째 라인에 있는'linux'라는 단어를 'name'이라는 단어로 치환해주는 중입니다.

보시는 바처럼 'name'으로 변경된 것을 볼 수 있습니다.

 

3) 영역 지정행 치환

':[지정 첫행],[지정 마지막 행]/old/new'를 사용하여 치환합니다. 치환 시킨 문자열이 있는 라인을 정해서 그 라인들 안에 있는 단어를 치환시켜 줍니다.

 

위에 사진은 19행부터 21행까지 있는 'PASS'라는 단어를 'linux'로 변경하는 명령입니다.

보시다 시피 'linux'로 변경된 것을 볼 수 있습니다.

 

 

4)전체 치환

전체 범위를 지정시 '%'사용하여 '%s/old/new'로 사용하면 전체 행에 대하여 적용이 됩니다.

 

위에 보시면 'linux'가 'PASS'로 치환된 것을 볼 수 있습니다.

 

그러나 'PASS'라는 단어가 행의 맨 앞이 아니라 중간에 섞여 있다면 변경되지 않습니다. 오로지 행의 앞에 있는 단어일 때만 변경이 되는데요.

':%s/old/new/g' = 각 행의 앞에있는 단어 뿐만 아니라 중간이나 끝에 혹은 몰려있는 단어도 변경할 수 있는 옵션

 

위에 사진처럼 'PASS'라는 단어가 각 행의 맨 앞에 있는 것이 아니라 중간에 혹은 행의 끝자락 혹은 연달아 있는 경우에는 옵션 'g'를 넣어주므로써 비로소 전체 행의 모든 단어를 치환할 수 있습니다.

 

이렇게 옵션 'g'를 사용하면 'test'로 변경되며 마지막 행에 '총 9개 라인에서 13개의 단어를 치환했다'고 알려줍니다.

 

정리하자면,

 

'g'옵션을 사용하지 않으면 조건에 맞는 문자열이 라인에 여러개가 있을 때 앞중에 있는 것만 변경이 되며 

 

'g' 옵션을 사용하면 조건에 맞는 모든 문자열 치환을 합니다.

 


2. 에디터 창을 여러개 분할해서 만드는 모드       :      Split mode


윈도우에서 여러개의 한글 창을 동시에 띄워놓고 편집하는 것과 유사한 기능이라고 보시면 됩니다.

물론 이러한 방법을 알아두면 좋지만, GUI(그래픽형식)의 윈도우가 아니라 리눅스는 명령어로 사용하는 것이기에 헷갈릴 소지가 다분하므로 권장하진 않는다고 합니다.

 

위에 그림처럼 위 아래로 수평분할을 할 수 있는데요. 물론 두 개 뿐만 아니라 여러개 분할이 가능합니다.

 

'Ctrl + w + n' = 화면을 수평으로 분할합니다.

 

'Ctrl + w + w' = 다른 문서창으로 이동하여 2개 이상일 경우또한 차례대로 다른 창으로 이동합니다.

 


3. 새문서 열기, 불러오기, 문서정보 확인,결과 삽입 기능     : enew, e, f, r


1) 새문서 열기

':enew' = 현재 열려있는 문서창을 닫고 새문서(빈문서)를 여는 방법입니다.

 

위에 보시듯이 ':enew'를 클릭하면 새문서나 빈문서를 열 수 있습니다.

 

 

2) 불러오기

':e'를 사용하면 파일을 불러와 열수 있습니다

 

 

3) 문서 정보 확인

 

':f' 를 사용하면 해당 파일의 문서 정보를 확인할 수 있습니다.

 

파일의 정보를 확인하니 'b'라는 파일이며 5줄이 있다는 것을 확인할 수 있습니다.

 

 

4)현재 커서에 결과 삽입

 

':r [파일명]' = 현재 커서가 위치한 라인 및으로 파일의 결과를 삽입합니다.

 

':r! [명령어]' = 현재 커서가 위치한 라인 및으로 명령어 결과를 삽입합니다.

'b'라는 파일에 있는 내용을 현재 파일 커서 및으로 붙여 넣은것을 볼 수 있습니다.

 

위에 보이듯이 ':r! [명령어]'를 사용하여 현재 파일의 커서 아래로 '/home/tommy/'라는 경로 확인 명령어 'pwd'의 결과가 붙여진것을 볼 수 있습니다.

 

추가로, ':[특정 행 숫자]r! [명령어]'를 사용하면 특정행 숫자 및에 명령어의 결과가 붙여넣기 된 것을 알 수 있습니다.

반응형

댓글