7. VI 편집기 (Editor)
이 게시물에서는 리눅스 관리자 또는 사용자들에게 매우 유용한 텍스트 편집기인 vi 편집기에 대해 알아봅니다. 리눅스 시스템 관리자들은 리눅스 관리 파일들을 편집하기 위해 vi 편집기를 사용합니다. 매우(?) 간단하며 강력한 기능을 가지고 있는 텍스트 편집기입니다. 윈도우 운영체제에는 메모장이라는 편집기가 있지만 vi 편집기에 비교한다면 새 발에 피죠.. 너무 과장되게 비교했나.. 하하하하...
아무튼 리눅스 환경을 이용해야 하는 사용자나 시스템 관리자는 반드시, 필히, Must !!! 이 vi 편집기 사용법을 알아야 합니다. 리눅스에는 vi와 vim 편집기가 있습니다. vim은 vi 보다 기능이 향상된 편집기이죠. 참고로 글자에 색 있는 것을 좋아하지 않는 편이라.. 하하.. 그냥 vi 편집기를 가지고 설명을 드리도록 하겠습니다.
■ VI 편집기
Visual Editor를 나타내는 VI 편집기는 ed 같은 줄 단위 편집이 아닌 화면 단위 편집기이다. 이것은 썬 마이크로시스템즈 (Sun Microsystems) 공동 창업자인 컴퓨터 과학자 빌 조이(Bill Joy)에 의해 1976년에 만들어졌다. 그리고 초기 버전은 BSD 릴리스에 포함될 편집기로 만들어졌으며 지금 사용하고 있는 VI 편집기는 기능을 모방하여 만든 클론(Clone)이다. |
아래 그림과 같이 터미널 윈도에서 vi와 vim을 확인해보면 파일 크기가 틀리고 다른 Inode를 사용하는 것을 알 수 있습니다. 그래서 둘은 다른 파일이다는 것을 확인할 수 있죠.
아래는 vi 편집기로 열은 /etc/sysctl.conf 구성 파일 내용입니다.
■ VIM 편집기
VIM은 네델란드 컴퓨터 프로그래머인 브람 무레나르(Bram Moolenaar)에 의해 만들어진 VI 호환 화면 단위 편집기이다. 이 편집기는 확장된 정규 표현식, 글자색 문법 강조 기능, 유니코드(Unicode), 다중 되돌리기 등의 기능을 지원하는 편집기이다. |
[ 브람 무레나르 : https://en.wikipedia.org/wiki/Bram_Moolenaar ]
아래는 vim 편집기를 사용하여 /etc/sysctl.conf 구성 파일을 연 화면입니다. 아래는 컬러색이 들어간 글자가 보이죠. ^^
■ gedit 편집기
gedit는 그놈(GNOME) GUI 데스크톱 환경용으로 개발된 그래픽 인터페이스 편집기이다. GPL v2 라이선스를 따르고 있으며 윈도우와 Mac OS에서도 사용할 수 있는 편집기이다. |
■ Emacs 편집기
Emacs는 자유 소프트웨어 재단(FSF) 설립자인 리처드 스톨만(Rechard Matthew Stallman)에 의해 개발된 편집기이다. 고성능 문서편집기이며 프로그래머들이 많이 사용한다. 하지만 사용하기 어렵다는 거... |
그럼 이제 vi 편집기로 설명하도록 하겠습니다.
■ VI 편집기 모드(Mode) 종류
vi 편집기는 메모장이나 gedit 같은 편집기와는 달리 입력, 명령 같은 모드가 존재한다. 그래서 복사, 붙여넣기, 줄 이동, 줄 제거 같은 명령을 사용하기 위해서는 명령 모드로 글자 입력을 하기 위해서는 입력 모드로 단어 검색, 단어 변경을 하기 위해서는 마지막 줄 모드로 변경해야 한다. 모드 전환을 하기 위해서는 아래 그림과 같은 키를 사용한다.
모드(Mode) 종료
|
내 용
|
Command
| 명령 모드라 부른다. 복사, 붙여넣기, 삭제, 커서이동을 할 때 이 모드로 전환하여 실행한다. |
Insert (또는 Edit)
| 입력 또는 편집 모드라 부른다. 글자를 입력하기 위해 이 모드로 전환한다. 전환키는 아래 그림을 참고 |
Last-line (또는 Ex)
| 마지막 줄 모드 또는 실행 모드라 부른다. 검색 또는 향상된 편집을 하기 위해 이 모드로 전환한다. 전환키는 아래 그림을 참고 |
입력 모드에서 마지막 줄 모드로 전환하는 키는 없으며 명령 모드로 전환 후 다시 마지막 줄 모드로 전환해야 한다.
VI 편집기의 기준점은 커서(Cursor)이다. ■ <= 이렇게 생긴 부분
■ 명령 모드 (Command Mode)
커서 이동, 단어 또는 줄 삭제, 복사, 붙여넣기 등의 작업을 하기 위해 사용되는 모드이다.
제어 키(Key)
|
설 명
|
k (또는 방향키↑)
| 현재 커서 기준 커서를 위로 이동 |
j (또는 방향키↓)
| 현재 커서 기준 커서를 아래로 이동 |
h (또는 방향키←)
| 현재 커서 기준 커서를 좌로 이동 |
l (또는 방향키→)
| 현재 커서 기준 커서를 우로 이동 |
w
| 현재 커서 기준으로 우측 단어의 첫 문자로 이동 |
3w (nw)
| 현재 커서 기준으로 우측 세 번째 단어 첫 문자로 이동 |
b
| 현재 커서 기준으로 좌측 단어의 첫 문자로 이동 |
3b (nb)
| 현재 커서 기준으로 좌측 세 번째 단어 첫 문자로 이동 |
e
| 현재 커서를 기준으로 우측 단어 마지막 문자로 이동 |
3e (ne)
| 현재 커서를 기준으로 우측 세 번째 단어 마지막 문자로 이동 |
0
| 현재 커서가 있는 줄의 처음으로 커서를 이동 |
$
| 현재 커서가 있는 줄의 마지막으로 커서를 이동 |
yy
| 현재 커서가 있는 줄을 복사 |
3yy (nyy)
| 현재 커서가 있는 줄을 포함하여 아래로 총 세 줄을 복사 |
p
| 현재 커서가 있는 줄 아래로 붙여넣기 |
P
| 현재 커서가 있는 줄 위로 붙어넣기 |
x
| 현재 커서에 있는 문자 삭제 |
dw
| 현재 커서가 있는 문자를 포함한 오른쪽으로 한 개 단어 삭제 |
3dw (ndw)
| 현재 커서가 있는 문자를 포함한 오른쪽으로 세 개 단어 삭제 |
dd
| 현재 커서가 있는 줄을 삭제 |
3dd (ndd)
| 현재 커서가 있는 줄을 포함하여 아래로 총 세 줄 삭제 |
D
| 현재 커서가 있는 문자를 포함하여 우측으로 있는 문자들 모두 삭제 |
r
| 현재 커서가 위치한 문자 변경 |
R
| 현재 커서가 있는 문자를 포함하여 우측으로 문자들 덮어쓰면서 변경 |
s
| 현재 커서가 있는 문자를 변경 우측에 있는 문자를 밀면서 문자 입력 |
S
| 현재 커서가 있는 줄 내용을 삭제한 후 입력 |
cw
| 현재 커서가 있는 문자를 포함하여 우측으로 한 단어를 제거 후 문자 입력 |
u
| 명령 취소 |
U
| 현재 커서가 있는 줄에 적용한 모든 명령 취소 |
Ctrl + g
| 파일 이름과 현재 줄 번호 확인 |
Ctrl
| 화면 리프레시 |
■ 입력 모드 (Insert or Edit Mode)
명령 모드에서 입력 모드로 전환 문자를 입력할 수 있는 모드로 전환한다.
제어 키(Key)
|
내 용
|
i
| 현재 커서 좌측으로 문자를 입력할 수 있도록 입력 모드로 전환 |
I
| 현재 커서가 있는 줄의 처음으로 커서 이동 후 입력 모드로 전환 |
a
| 현재 커서 우측으로 커서 이동 후 입력 모드로 전환 |
A
| 현재 커서가 있는 줄의 마지막으로 거서 이동 후 입력 모드로 전환 |
o
| 현재 커서가 있는 줄 아래로 입력 모드로 전환 |
O
| 현재 커서가 있는 줄 위로 입력 모드로 전환 |
ESC
| 명령 모드로 전환 |
■ 마지막 줄 모드 (실행 모드 Last-line or Ex Mode)
마지막 줄 모드는 검색, 파일 저장, 파일 불러오기, 향상된 편집 기능을 사용하기 위해 이 모드를 사용한다.
제어 키 (Key)
|
내 용
|
/
| 현재 커서 우측, 아래로 키워드 검색 |
?
| 현재 커서 좌측, 위로 키워드 검색 |
n
| 다음으로 검색 반복 |
N
| 검색 반대 방향으로 검색 반복 |
:w
| 파일 저장 |
:w FILENAME
| 다른 이름으로 파일 저장 |
:q
| VI 편집기 종료 |
:q!
| 변경된 내용 저장하지 않고 VI 편집기 종료 |
:wq
| 파일 저장 후 VI 편집기 종료 |
:x
| 파일 저장 후 VI 편집기 종료 |
:r FILENAME
| 현재 커서가 있는 줄 아래로 명시한 파일의 내용 불러들이기 |
:1
| 문서의 첫 번째 줄로 이동 |
:$
| 문서의 마지막 줄로 이동 |
:set nu
| 줄 번호 표기 |
:set nonu
| 줄 번호 비표기 |
:1,3 m 5
| 첫 번째 줄 부터 세 번째 줄까지 5번째 줄 아래로 이동 |
:.,+2 m 5
| 현재 줄과 아래 두줄을 (총3줄) 5번째 줄 아래로 이동 |
:1,3 co 5
| 첫 번째 줄 부터 세 번째 줄까지 5번째 줄 아래로 복사 |
:.,+2 co 5
| 현재 줄과 아래 두줄을 (총3줄) 5번째 줄 아래로 복사 |
:6,8d
| 여섯 번째 줄부터 여덟 번째 줄까지 삭제 |
:.,+2d
| 현재 줄과 아래 두 줄을 (총 3줄)삭제 |
:1,40s/the/THE/g
| 첫 번째 줄부터 사십 번째 줄까지에 있는 the를 THE로 변경 |
:%s/the/THE/g
| 문서 전체 줄에 있는 the를 THE로 변경 |
No comments:
Post a Comment