본문 바로가기

OS/Linux

05. 에디터 사용

1. 에디터 사용

Windows의 메모장처럼 X윈도에서 제공하는 편리한 에디터로는  gedit이 있다. 터미널에서 간단히 'gedit 파일 이름'을 입력하면

해당 파일을 편집할 수 있다. 이보다 더 전통적인 에디터는 vi 에디터가 있다.


# vi 에디터

vi는 visual의 약어로 모든 유닉스/리눅스 시스템에 기본으로 포함된다.

텍스트 모드의 경우에는 gedit을 사용할 수 없으므로 vi 에디터를 꼭 사용할 수 있어야 한다.


2. 실습(리눅스에서 자주 사용되는 에디터 사용)

만약을 대비해 VMWrare Centos7 Server으로 테스트.


1. gedit 에디터




gedit가 열리면 아무거나 입력해보면 된다(한/영 전환은 설정에서도 바꿀 수 있고 왼쪽  shift +space  누르면 된다.)

아무거나 쓰고 저장 버튼을 눌러서 저장한다(root 디렉토리에 저장함)



만약 root가 아니라 만들어 놓은 centos유저였다면 홈 폴더는 /home/centos가 된다.  저장한 뒤 터미널에서

gedit /root/test.txt  를 입력하면 파일이 열린다.


2. vi 에디터

터미널에 vi 명령어를 입력하면 다음과 같이 실행된다.


vi 에디터를 종료하려면 Esc키를 누른 후에 :q 를 입력하면 종료된다.



입력할 때 왼쪽 아래에 입력하는 글자가 보일 텐데, 이렇게 작동하는 것을 'ex 모드' 또는 '라인 명령 모드' 라고 한다.


2.1 vi 에디터로 새로운 파일 만들기

vi new.txt 를 입력하면 빈 화면이 열리고, 왼쪽 아래에 'new.txt[New File]' 이라는 문구가 보인다(이미 있는 파일이라면 그 파일을 열어서 보여줌)


이 상태를 '명령 모드'라고 한다. 아직 글자는 입력 못하고, vi 에디터로 어떤 일을 하게 될지 명령을 기다린다.

이 상태에서 I 키 또는 A 키를 누른다(Input, Append 하겠다는 말)

그러면 왼쪽 아래에 ' -- INSERT -- ' 라고 표시되고 글자를 입력할 수 있다. 이 상태를 '입력 모드' 라고 한다.



글자를 모두 입력했으면 저장하고 vi 에디터를 종료한다. '입력 모드 (-- INSERT --)'에서 Esc를 누르면 '명령 모드'로 나온다(왼쪽 하단에 -- INSERT --  없어짐)

:wq  를 입력하고 Enter키를 누르면 저장하고 종료된다(Write, Quite)




터미널(vi 에디터 실행) -> 명령 모드 -> i 또는 a  -> 입력 모드(문서 실제 작업) -> esc -> 명령 모드 -> 

콜론(:) (라인 명령 모드/저장, 종료, 취소 등) -> esc, enter -> 명령 모드



2.2 vi 에디터 사용

vi 에디터를 실행하고 입력, test2.txt 파일로 저장해본다(처음 테스트 했던  Test.txt 경로 root로 옮김)

1. 터미널에서 vi  명령어 입력

2. i 나 a 키를 눌러 입력 모드로 들어 간다.

3. 아무거나 입력

4. 입력 끝났으면 : 를 입력하고  w test2.txt를 입력후 Enter

:w test2.txt


좌측 하단이 위 사진처럼 됨.


5. 모든 작업 마쳤으면  :q! 를 입력한 후 Enter(:q 해도 됨)

:q! : 기존에 변경된 내용은 무시하고 종료해.



3. 파일을 저장하고 바로 종료

1. 터미널에서 vi  명령어 입력

2. 입력 모드로 가서 아무거나 입력

3. Esc를 누르고 

:wq test3.txt    를 입력하고 Enter누르면 저장과 동시에 종료



4. 기존 파일 열어서 수정 후 저장

1. 터미널에서 수정할 파일 입력

vi test3.txt

다른 경로에 있다면 경로 알아야함. ex) vi /etc/test3.txt


2. 입력 모드로 들어가서 수정하거나 추가

3. Esc 키 누른 후 :wq  입력 후 Enter 누르면 저장과 동시에 종료



5. 에디터에서 실수 했을 시(수정 등)

기존 파일 열어서 수정했을 때 실수로 잘못 수정헀다면 저장하지말고 그냥 나가는 방법이 있다.

1. vi 파일을 연다.

2. 뭔가 수정하고 추가했는다.

3. 잘못을 깨달음

4. Esc 키를 누르고 :q!  를 입력한 후 Enter를 눌러서 저장하지 않고 강제로 나온다.



6. vi 에디터가 비정상적으로 종료 됐을 때

vi 에디터가 비정상적으로 종료되고 생성되는 파일을 확인하고 조치법을 알아둔다.

1. 터미널에서 vi anaconda-ks.cfg  를 입력해 파일을 연다.

2. 입력 모드로 아무거나 약간의 수정이나 추가를 하고, 정상적인 종료가 아닌 터미널 오른쪽에 있는 X를 클릭한다.


경고창이 나올텐데 '터미널 닫기'를 클릭


3. 터미널을 실행 후 다시 vi anaconda-ks.cfg  파일을 열면 다음과 같은 창이 나온다.


기존에 anaconda-ks.cfg 파일의 수정 작업이 정상적으로 종료되지 않았기 때문에 이렇다.


# Note

임시 스왑(swap file)인 anaconda-ks.cfg.swp 가 존재한다는 것은 파일의 수정 작업이 정상적으로 종료되지 않았기 때문이다.

즉 vi anaconda-ks.cfg를 입력하면 자동으로 .anaconda-ks.cfg.swp가 생성되며, vi 에디터를 정상적으로 종료하면

이 파일을 자동으로 제거된다. 그러므로 이 파일이 남아있다는 것은 기존 작업이 정상적으로 종료되지 않았다는 의미다.

참고로 파일 이름 앞에 '.'가 붙으면 숨김파일을 뜻한다.


4. Space를 몇 번 누른 후 Esc를 누르고 :q!  를 입력해서 에디터를 닫는다.

5. 비정상 종료된 스왑 파일 이름은 '.파일 이름.swap' 다. ls -a 를 입력해서 파일을 확인하고

다음 명령어를 입력해 해당 스왑 파일을 삭제한다.

rm -f .anaconda-ks.cfg.swp


rm -f .anaconda-ks.cfg.swp  명령 후, .anaconda-ks.cfg.swp 파일은 제거됐다.



7. 명령 모드에서 입력 모드로 전환하는 키

키 

설명 

키 

설명 

현재 커서의 위치부터 입력(I)

현재 커서 줄의 맨 앞에서부터 입력(Shift + I)

현재 커서의 위치 다음 칸부터 입력(A) 

현재 커서 줄의 맨 마지막부터 입력(Shift + A)

현재 커서의 다음 줄에 입력(O) 

현재 커서의 이전 줄에 입력(Shift + O) 

현재 커서 위치의 한 글자를 지우고 입력(S) 

현재 커서의 한 줄을 지우고 입력(Shift + S) 

명령 모드에서 커서를 이동할 때는 4개의 화살표 키와 Page Up/Page Down/Home/End 를 이용하면 된다.


8. 명령 모드에서 커서를 이동할 때 사용하는 키

키 

설명 

키 

설명 

커서를 왼쪽으로 한 칸 이동(왼쪽 방향키와 같은 의미 H)

 j

커서를 아래로 한 칸 이동(아래 방향키와 같은 의미. J) 

k

커서를 위로 한 칸 이동(위 방향키와 같은 의미. K)

커서를 오른쪽으로 한 칸 이동(오른쪽 방향키와 같은 의미. I) 

Ctrl + F 

다음 화면으로 이동(Page Down과 같은 의미) 

Ctrl + B 

이전 화면으로 이동(Page Up과 같은 의미) 

현재 행의 처음으로 이동(Home과 같은 의미,

Shift + 6) 

현재 행의 마지막으로 이동(End와 같은 의미, Shift + 4) 

gg 

제일 첫 행으로 이동 

제일 끝 행으로 이동(Shift + G) 

숫자 G 

해당 숫자의 행으로 이동(숫자 다음 Shift + G) 

:숫자 Enter 

해당 숫자의 행으로 이동 



9. 명령 모드에서 삭제, 복사, 붙여넣기 관련 키

키 

설명 

키 

설명 

x

현재 커서가 위치한 글자 삭제(Del과 같은 의미,

X) 

현재 커서가 위치한 앞 글자 삭제(BackSpace와 같은 의미,

Shift +X) 

dd 

현재 커서의 행 삭제(D 연속 두 번 입력) 

숫자

dd 

현재 커서부터 숫자만큼의 행 삭제(숫자 다음 D 연속 두 번 입력) 

yy 

현재 커서가 있는 행을 복사(Y 연속 두 번 입력) 

숫자

yy 

현재 커서부터 숫자만큼의 행을 복사(숫자 다음 Y 두 번 입력) 

복사한 내용을 현재 행 이후에 붙여 넣기(P) 

복사한 내용을 현재 행 이전에 붙여 넣기(Shift + P) 



10. 명령 모드에서 문자열 찾기

설명 

키 

설명 

/문자열

Enter 

해당 문자열을 찾음(현재 커서 이후로) 

 찾은 문자 중에서 다음 문자로 이동(N) 

 

그 외에 ex 모드(라인 명령 모드)에서 가장 많이 사용하는 두 가지

문자열 치환:

:%s/기존문자열/새문자열

ex) centos라는 글자를 모두 linux로 바꿀 시

:%s/centos/linux


행 번호:

:set number














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

07. 마운트와 CD/DVD/USB의 활용  (0) 2020.04.06
06. 도움말 사용법  (0) 2020.04.06
04. 자동완성과 히스토리  (0) 2020.04.06
03. 런레벨  (0) 2020.04.06
02. 리눅스 운영시 알아야 할 개념  (0) 2020.04.06