센토스 리눅스에서는 일반적으로 gedit과 vi 에디터라는 기본 텍스트모드로 사용가능한 에디터를 제공한다.


gedit은 쉽게 생각해서 windows의 notepad(메모장)과 동일하게 사용할 수 있다. 


터미널에서 


# gedit 


입력하면 아래와 같은 화면이 나온다. 메모장과 굉장히 동일하다. 



적고 싶은 명령이나 메모를 위의 화면에 입력하고 저장하고 빠져나오면 된다. 


하지만 vi 에디터는 visual 한 에디터라지만 생각보다 굉장히 비주얼적이지 않다. 


vi 에디터는 사용법을 별도로 익혀야 한다. 


vi 에디터를 통해 mytext1.txt 이라는 파일을 만들어보자.



다음과 같이 입력하면 mytext.txt 라는 파일이 생성되는데 여기서 주의할점은 그냥 mytext 라고만 적으면 자동으로 txt 파일을 생성하지는 않는다는 점이다. 원하는 확장자 명이 있다면 그 확장자명을 적어서 만들어주어야 한다. 



# vi mytext.txt


를 땅~ 쳐서 들어오면 위와 같은 화면이 열린다. 


이 화면에서는 바로 편집이 불가능하다.(키보드를 눌러도 입력이 되지 않는다)


편집을 위해서는 편집모드로 들어가야 되는데 키보드에서 i 를 눌러서 Insert Mode 라는 입력형 모드로 진입해야한다. 


i 를 누르면



위의 그림과 같이 -- INSERT -- 라는 문구가 생기면서 입력이 가능해진다. 


이제 아래와 같이 텍스트를 입력하고 파일을 저장해보자. 



vi 에디터에서는 gedit에서처럼 별도로 저장버튼이 있지 않기 때문에 명령어를 통해 저장해주어야 한다. 


일단 INSERT 모드를 빠져나와야 하므로 esc를 누르고 shift + ; 를 누른다( : 를 입력하라는 말이다)


<esc를 눌렀을 때>


< : 을 입력했을 떄>


다음과 같이 맨 아랫줄에 : 라는 표시가 뜨면 명령모드로 바뀐 것이다. 해당 명령모드에서 


wq 라고 입력하면 write and quit 로 저장한채로 vi 에디터에서 빠져나오게 된다. 


# ls 명령으로 확인해보면



아래와 같이 mytext.txt 파일이 생성된 것을 확인할 수 있다. 


# vi 


로만 입력을 한 다음 작성할 내용을 입력하고


esc

:

w myfile.txt

q


이런 형식으로 작성할 수도 있지만 앞서 정리했듯이 미리 파일이름을 지정하고 작성하는 방식이 더 편하므로 각자의 편의에 맞게 사용하시면 되겠다. 


똑같이 기본 작성해둔 파일을 수정할 수 도 있는데 


앞서 생성한 mytext.txt 파일을 수정하고 싶으면


# vi mytext.txt 


로 들어가면 기존에 저장된 mytext.txt 에 들어가서 작성한 내용을 수정하고 동일한 방식으로 저장하고 빠져나오면 된다. 


가끔 잘못입력해서 저장하지 않고 빠져나오려면


명령모드 ( : 를 입력하고 q! 를 입력해서 입력한 부분을 무시하고 빠져나올 수 있다.)


vi 에디터에서 파일을 작성하다가 오류로 인해 터미널이 종료되거나 문제가 생겨서 컴퓨터가 껴질 경우 


작성하던 파일은 임시파일로 저장된다. 


예를 들어 


# vi mytext.txt 


를 입력해서 해당 파일을 수정하다가 터미널을 강제 종료한 후 


다시 터미널을 열어 


# vi mytext.txt 


를 입력하면 다음과 같은 화면이 나온다. 



해당 화면이 뜨는 이유는 임시파일이 생성되었기 때문인데 space를 눌러 


입력화면으로 돌아간 다음 q로 무시하고 빠져나오면 된다. 


임시파일을 확인하려면 숨김옵션이 적용되어 있으므로


# ls -a


명령으로 모든 파일을 확인할 수 있는데 아래에 화면에서 .mytext.txt.swp 파일이 임시파일이다


swap 메모리에 저장된 파일인 것이다. 



해당 파일을 지우면 mytext.txt를 다시 열어도 임시파일이라는 경고메시지가 뜨지 않는다.


# rm .mytext.txt.swp

y


를 입력해서 임시파일을 지우면 아래와 같이 문제 없이 해당 파일이 열리게 된다. 



vi의 나머지 기능들을 요약하자면


명령모드 -> 입력모드


i : 현재 커서의 위치부터 입력

I : (대문자 i) 현재 커서 줄의 맨 앞에서부터 입력 

a :  현재 커서의 위치 다음칸부터 입력

A :  현재 커서 줄의 맨 마지막부터 입력


명령모드에서 커서를 이동


h : 커서를 왼쪽으로 한 칸이동 (← 과 동일하다)

j  : 커서를 아래로 한 칸 이동(↓ 와 동일하다)

k  : 커서를 위로 한 칸 이동(↑ 와 동일하다)

l  : 커서를 오른쪽으로 한 칸이동(→ 와 동일하다)


명령모드에서 삭제, 복사, 붙여넣기


x : 현재커서가 위치한 글자 삭제(delete 키와 동일)

X : 현재 커서가 위치한 앞 글자 삭제(backspace와 동일)

dd : 현재 커서의 행 삭제

숫자 dd : 현재 커서부터 숫자만큼의 행 삭제

yy : 현재 커서가 있는 행을 복사

숫자 yy : 현재 커서부터 숫자만큼의 행을 복사

p : 복사한 내용을 현재 행 이후에 붙여넣기

P : 복사한 내용을 현재 행 이전에 붙여넣기


명령모드에서 내용복구


u : 원래의 내용복구

nu : n단계까지의 명령을 복구


명령모드에서 찾기


/요 : 현재위치에서 아래방향으로 '요'라는 단어를 찾는다

?요 

/ : 단어찾기를 반복(위 -> 아래)

n : 단어찾기를 반복(아래-> 위)


명령모드에서 치환


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


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


: w 새로운파일이름

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


set number : vi 에디티 상에서 행 번호를 표시한다




 

기능들은 훨씬 더 많지만 위의 기능정도만 익혀두면 편집하는데 큰 문제는 없을 것이다. 








+ Recent posts