CentOS 에디터 - gedit, vi(vim)
System/OS - Linux

CentOS 에디터 - gedit, vi(vim)

728x90

gedit

$ gedit

X 윈도우에서 제공하는 편리한 에디터

 

vi 에디터

= visual; 모든 유닉스/리눅스 시스템에 기본으로 포함되어 있는 text-based 에디터

특히, 텍스트 모드로 설정한 Server(B)에서는 X 윈도우 창을 열 수 없기 때문에 gedit을 사용할 수 없다,, 따라서 vi 사용법에 익숙해져야 한다.

centOS 8에서는 자동으로 vi 에디터를 좀 더 편리하게 사용할 수 있는 vim 에디터가 설치되어 있다. 그냥 vi 에디터는 오로지 키보드에만 의존하여 많은 부분 제한적이다.

 

$ vi [파일]

명령모드: 입력모드 또는 ex모드에서 [ESC]키를 눌러 진입

입력모드: 문서를 작성하는 실제 작업

ex 모드(=라인 명령 모드): 명령모드에서 콜론(:)을 입력하고 실행

[명령모드: 커서 이동]

h j
k l
Ctrl + F 다음 화면으로 이동([PgDn]) Ctrl + B 이전 화면으로 이동([PgUp])
^(Shift+6) 현재 행의 처음으로 이동([Home]) $(Shift+4) 현재 행의 마지막으로 이동([End])
gg 제일 첫 행으로 이동 G(Shift+G) 제일 끝 행으로 이동 
숫자G
(숫자+Shift+G)
해당 숫자의 행으로 이동 :숫자[Enter] 해당 숫자의 행으로 이동

 

[명령모드: 삭제, 복사]

x 현재 커서가 위치한 글자 삭제 X(Shift+x) 현재 커서가 위치한 앞 글자 삭제([BackSpace])
dd 현재 커서의 행 삭제 숫자dd 현재 커서부터 숫자만큼의 행 삭제
yy 현재 커서가 있는 행 복사 숫자yy 현재 커서부터 숫자만큼의 행 복사
p 복사한 내용을 현재 행 이후에 붙여넣기 P 복사한 내용을 현재 행 이전에 붙여넣기

 

[명령모드: 문자열 찾기]

/문자열 현재 커서 이후에서 해당 문자열 찾기 n 찾은 문자 중 다음 문자로 이동
    N 찾은 문자 중 이전 문자로 이동

 

[명령모드→입력모드]

i 현재 커서의 위치부터 입력(insert) I 현재 커서 줄의 맨 앞에서부터 입력
a 현재 커서의 위치 다음 칸부터 입력(append) A 현재 커서 줄의 맨 마지막부터 입력
o 현재 커서의 다음 줄에 입력 O 현재 커서의 이전 줄에 입력
s 현재 커서 위치의 한 글자를 지우고 입력 S 현재 커서의 한 줄을 지우고 입력

 

[ex모드(라인 명령 모드)]

:명령어[Enter]

q 종료(quit) q! 기존에 변경된 내용은 무시하고 종료
wq 저장하고 종료(write and quit)    
set number vi 에디터 앞에 행 번호 표시 %s/기존문자열/새문자열 기존의 특정 문자열을 새 문자열으로 치환

 

 


실습 1

1. $ vi new.txt

[A] 또는 [I] 키로 입력모드로 전환하고 글자를 입력한다. 모두 입력하고 난 후 [ESC]키를 눌러 명령모드로 전환하고 [:]키를 눌러 ex모드로(라인명령모드) 전환한다. ":wq"로 저장하고 종료하게 한다.

 

만약 수정한 내용을 저장하고 싶지 않으면 ":q!"를 입력하면 저장하지 않고 그대로 종료한다.

 

 

 

실습2 - 치환

 

실습3 - 비정상 종료된 파일 해결법

1. 비정상 종료하기

test.txt

우선 파일을 하나 만들어 저장한다.

파일을 수정하고 터미널 강제로 닫는다.

 

2. 비정상종료된 파일 확인

비정상종료된 파일은 .swp(swap file)로 저장된다. 이 형식의 파일이 있다는 의미는 기존 작업이 정상적으로 종료되지 않았다는 의미이다.

 

다시 터미널을 열어 # vi test1.txt 명령을 실행하자 위와 같은 창이 나온다. 수정한 내용을 복구할 수는 없지만 이런 오류메시지가 뜨지 않도록 하는 방법을 실행해보면

 

3. 스왑파일 삭제

# rm -f test1.txt.swp

해당 스왑파일을 삭제한다.

 

 

 

참고도서: 이것이 리눅스다 with RedHat CentOS 8 (개정판) _우재남 (한빛미디어)

 

SMALL