본문 바로가기

IT

유닉스(unix) vi 명령어


삽입 명령
 
a
 커서 뒤에 입력
 A
 라인 끝에 입력
 
i
 커서 앞에 입력
 I
 라인시작 부분에 입력
 
o
 커서 있는 라인 밑에 입력
 O
 커서가 있는 라인 위에 입력
 
커서 이동 명령
 
h
 왼쪽으로 커서 한 칸 이동
 H
 화면의 처음으로 이동
 
L
 오른쪽으로 한 칸 이동
 L
 화면 끝으로 이동
 
e
 다음 단어의 마지막으로 이동
 E
 커서를 공백으로 구분된 다음 단어 끝으로 이동
 
b
 한 단어 뒤로 이동
 B
 커서를 공백으로 구분된 이전 단어로 이동
 
w
 커서를 한 단어 뒤로 이동
 W
 커서를 공백으로 구분된 다음 단어로 이동
 
k
 커서를 한 라인 위로 이동
 j
 커서를 한 라인 아래로 이동
 
O
 커서를 라인의 시작으로 이동
 $
 커서를 라인의 끝으로 이동
 
Enter
 커서를 다음 라인 시작으로 이동
 -
 커서를 전 라인의 시작으로 이동
 
Ctrl + F
 다음 화면으로 이동
 Ctrl + D
 화면의 반만 앞으로 이동
 
Ctrl + B
 전 화면으로 이동
 Ctrl + U
 화면의 반만 뒤로 이동
 
G
 커서를 텍스트 마지막 라인으로 이동
 숫자G
 커서를 숫자 라인만큼 이동
 
M
 커서를 화면 중간 라인으로 이동
 “
 커서를 전 위치로 이동
 
(
 문장의 시작으로 이동
 {
 문단의 시작으로 이동
 
)
 문장 끝으로 이동하여 다음 단어의 시작으로 커서 이동
 }
 문단 끝으로 이동
 
삭제 명령
 
x
 커서가 있는 문자 삭제
 X
 커서가 있는 문자 앞에 있는 문자 삭제
 
dw
 커서가 있는 단어 삭제
 db
 커서가 앞에 있는 단어 삭제
 
dW
 공백으로 구분된 뒷 단어 삭제
 dB
 공백으로 구분된 앞 단어 삭제
 
dd
 커서가 있는 라인 삭제
 D
 커서가 있는 라인의 나머지 삭제
 
d)
 문장의 나머지 삭제
 d}
 문단의 나머지 삭제
 
dG
 파일의 나머지 삭제
 dH
 화면의 시작까지 삭제
 
dL
 화면의 나머지 삭제
 J
 커서와 다음 단어의 공백을 모두 삭제
 
바꾸기 명령
 
r
 커서에 있는 문자 대치
 R
 입력 모드로 한 문자씩 덮어씀
 
s
 커서가 있는 문자 삭제 후 입력 모드로 전환
 S
 커서가 있는 줄을 삭제 후 입력 모드로 전환
 
cb
 커서가 있는 앞 문자 삭제 후 입력 모드
 cW
 공백으로 구분된 뒷 단어를 삭제 후에 입력 모드
 
cB
 공백으로 구분된 앞 단어 삭제 후 입력 모드
 cc
 커서가 있는 라인을 삭제하고 입력 모드
 
C
 커서가 있는 라인의 나머지를 삭제하고 입력 모드로 전환
 cO
 커서에서부터 라인의 시작까지 텍스트 바꾸기
 
c
 특정 텍스트 바꾸기
 c)
 문장의 나머지 바꾸기
 
c}
 문단의 나머지 바꾸기
 cG
 파일의 나머지 바꾸기
 
cm
 표시까지 모든 것 바꾸기
 cL
 화면의 나머지 바꾸기
 
ch
 화면의 시작까지 바꾸기
 
이동
 
p
 삭제나 복사된 텍스트를 커서가 있는 문자나 라인 뒤에 삽입
 P
 삭제나 복사된 텍스트를 커서가 잇는 문자나 라인 앞에 삽입
 
dw p
 커서가 있는 단어를 삭제한 후 이를변경한 커서가 있는 것 뒤에 삽입
 dw P
 커서가 잇는 단어를 삭제 후 이를 변경한 커서 있는 곳 앞으로 삽입
 
d p
 지정한 다음 텍스트로 삭제한 후 커서가 가리키는 곳으로 이동
 d) P
 문장의 나머지로 이동
 
d} p
 문단의 나머지로 이동
 dG P
 파일의 나머지로 이동
 
dH p
 회면 시작 부분으로 이동
 dL P
 화면의 나머지를 이동
 
복사
 
yw
 커서가 있는 단어를 복사
 yb
 커서가 있는 앞 단어를 복사
 
yW
 공백으로 구분된 뒷 단어 복사
 yB
 공백으로 구분된 앞 단어를 복사
 
y
 특정한 다음 텍스트 복사
 yy
 커서가 있는 라인을 복사, 커서가 가리키는 곳으로 라인을 이동
 
y)
 문자의 나머지 복사
 y}
 문단의 나머지 복사
 
yG
 파일의 나머지 복사
 yH
 화면의 시작까지 복사
 
yL
 화면의 나머지 복사
 
검색
 
/patter

n
 텍스트에서 앞으로 패턴 검색
 >patter
 텍스트에서 뒤로 패턴 검색
 
n
 앞 또는 뒤로 이전 검색 반복
 N
 반대 방향으로 이전 검색 반복
 
/
 전 검색을 앞으로 반복
 ?
 전 검색을 뒤로 반복
 

 

vi 에디터 종료 마치기 명령
  n
 
:q
 그대로 종료하기
 
 
:q!
 변경된 내용을 저장하지 않고 강제로 종료하기
 
 
:wq
 변경된 내용을 저장하고 종료하기
 
 
:x
 :wq와 동일한 명령
 
 
ZZ
 :wq와 동일한 명령
 
 
삽입 명령
 
 
a
 커서 뒤에 입력
 A
 라인 끝에 입력
 
 
I
 커서 앞에 입력
 I
 라인시작 부분에 입력
 
 
o
 커서 있는 라인 밑에 입력
 O
 커서가 있는 라인 위에 입력
 
 
방향키를 이용한 커서 이동 명령
 
 
<-, Del
 왼쪽으로 커서 한 칸 이동
 PageUp
 화면 위로 이동
 
 
->

SpaceBar
 오른쪽으로 한 칸 이동
 PageDown
 화면 아래로 이동
 
 

 윗 줄로 커서 이동
 Enter
 다음 줄 첫 칸으로 이동
 
 

 아래 줄로 커서 이동
 Esc
 다음 줄 첫 칸으로 이동
 
 
Home
 줄 처음 칸으로 이동
 
 
다른 키를 이용한 커서 이동 명령
 
 
H
 왼쪽으로 커서 한 칸 이동
 k
 윗 쪽으로 커서 이동
 
 
l
 오른쪽으로 한 칸 이동
 j
 아래쪽으로 커서 이동
 
 
e
 다음 단어의 마지막 칸으로 이동
 E
 공백으로 구분된 뒷 단어의 마지막 칸으로 이동
 
 
b
 앞 단어의 앞 칸으로 이동
 B
 공백으로 구분된 앞 단어의 앞 칸으로 이동
 
 
W
 다음 단어의 앞 칸으로 이동
 W
 공백으로 구분된 뒷 단어의 앞 칸으로 이동
 
 
그 외의 키를 이용한 커서 이동 명령
 
 
Ctrl + F
 다음 화면으로 이동
 Ctrl + D
 반 화면 위로 이동
 
 
Ctrl + B
 전(앞) 화면으로 이동
 Ctrl + L
 반 화면 아래로 이동
 
 
O
 줄이 시작되는 첫 칸으로 이동
 -
 이전 줄의 시작 부분으로 이동
 
 
$
 줄이 끝나는 마지막 칸으로 이동
 +
 다음 줄의 시작 부분으로 이동
 
 
(
 문장의 시작으로 이동
 {
 문단의 시작으로 이동
 
 
)
 문장의 끝으로 이동하여 다음 단어의 시작 첫 칸으로 커서 이동
 }
 문단의 끝으로 이동
 
 
G
 문서의 마지막 줄로 이동
 “
 이전의 커서 위로 이동
 
 
nG
 n번째 줄로 이동
 M
 화면 중간 줄에 커서 이동
 
 
삭제 명령
 
 
x
 커서가 있는 문자 삭제
 X
 커서가 있는 문자 앞에 있는 문자 삭제
 
 
dw
 커서가 있는 단어 삭제
 db
 커서 앞에 있는 단어 삭제
 
 
dW
 공백으로 구분된 뒷 단어 삭제
 dB
 공백을 구분된 앞 단어 삭제
 
 
dd
 커서가 있는 라인 삭제
 D
 커서가 있는 라인의 나머지 삭제
 
 
d)
 문장의 나머지 삭제
 d}
 문단의 나머지 삭제
 
 
dG
 파일의 나머지 삭제
 dH
 화면의 시작까지 삭제
 
 
dL
 화면의 나머지 삭제
 J
 커서와 다음 단어 사이의 모든 공백 삭제
 
 
바꾸기 명령
 
 
R
 커서에 잇는 문자 대치
 R
 입력 모드로 한 문자식 덮어 씀
 
 
s
 커서가 있는 문자 삭제 후 입력 모드로 전환
 D
 커서가 있는 줄을 삭제한 후 입력 모드로 전환
 
 
cb
 커서가 있는 앞 문자 삭제 후 입력 모드
 cW
 공백으로 구분된 뒷 단어를 삭제한 후 입력 모드
 
 
cB
 공백으로 구분된 앞 단어 삭제 후 입력 모드
 cc
 커서가 있는 라인을 삭제하고 입력 모드
 
 
C
 커서가 있는 라인의 나머지를 삭제하고 입력 모드로 전환
 cO
 커서에서부터 라인의 시작까지 텍스트 바꾸기
 
 
c
 특정 텍스트 바꾸기
 c)
 문장의 나머지 바꾸기
 
 
c}
 문단의 나머지 바꾸기
 cG
 파일의 나머지 바꾸기
 
 
cH
 화면의 시작까지 바꾸기
 cL
 화면의 나머지 바꾸기
 
 
텍스트 이동
 
 
p
 삭제나 복사된 텍스트를 커서가 있는 문자나 라인 뒤에 삽입
 P
 삭제나 복사된 텍스트를 커서가 있는 문자나 라인 앞에 삽입
 
 
dw p
 커서가 있는 단어를 삭제한 후 이를 원하는 곳 커서 뒤로 삽입
 dw P
 커서가 있는 단어를 삭제한 후 이를 변경한 커서가 있는 곳으로 삽입
 
 
d p
 지정한 다음 텍스트로 삭제한 후 커서가 가리키는 곳으로 이동
 d) P
 문장의 나머지로 이동
 
 
d} p
 문단의 나머지로 이동
 dG P
 파일의 나머지로 이동
 
 
dH P
 화면 시작 부분으로 이동
 dL P
 화면의 나머지를 이동
 
 
복사
 
 
yw
 커서가 있는 단어를 복사
 yb
 커서가 잇는 앞 단어를 복사
 
 
yW
 공백으로 구분된 뒷 단어 복사
 yB
 공백으로 구분된 앞 단어를 복사
 
 
y
 특정한 다음 텍스트 복사
 yy
 커서가 있는 라인을 복사, 커서가 가리키는 곳으로 라인을 이동
 
 
y)
 문자의 나머지 복사
 y}
 문단의 나머지 복사
 
 
yG
 파일의 나머지 복사
 yH
 화면 시작까지 복사
 
 
yL
 화면의 나머지 복사
 
 
검색
 
 
/pattern
 텍스트에서 앞으로 패턴 검색
 >pattern
 텍스트에서 뒤로 패턴 검색
 
 
n
 앞 또는 뒤로 이전 검색 반복
 N
 반대 방향으로 이전 검색 반복
 
 
/
 전 검색을 앞으로 반복
 ?
 전 검색을 뒤로 반복
 
 
옵션
 옵션약어
 기능
 디폴트
 
autoindent
 ai
 들여 쓰기 가능, 탭으로 들여 쓰기 범위 지정
 off
 
autoprint
 ap
 줄이 바뀔 때 현재 줄을 화면상에서 출력
 on
 
errobells
 ed
 명령 에러가 발생시 삑 소리나게 함
 off
 
number
 nu
 줄 번호를 나타나게 함
 off
 
report
 report
 편집시 메시지를 보낼 편집 변화 크기 지정
 5
 
showmatch
 sm
 가로 닫기 괄호를 사용할 때 일치하는 가로 열기 괄호를 보여줌
 off
 
wam
 wam
 저장하지 않고 vi 종료할 때 경고 메시지를 뿌려 줌
 on
 
ignorecase
 ic
 검색 패턴에 사용되는 대소문자 구별하지 않음
 on
 
tabstopp=n
 ts=n
 탭 공백을 n 수만큼 지정
 8
 
wrapmargin=n
 wm=n
 텍스트 오른쪽 여백을 n 수만큼 지정
 0

 
vi 에디터  (출처:http://compedu.inue.ac.kr/%7Echlee56/wowlinux/vi.htm)
 
vi 기초
 

여러개 파일을 동시에 열고 싶을 때,

$ vi  *.html  (.html파일을 모두 연다)
 

    :n은 다음문서, :N은 이전문서로 간다. 

다음, 파일을 저장하거나 닫고 싶거나 다른 파일을 편집하고 싶을 때,
(먼저 ESC를 눌러서 명령을 내릴 수 있는 상태로 변환해야 합니다.)

명령
 설 명
 
ZZ or :wq
 저장하고 vi 끝내기
:w [파일이름]
 주어진 파일이름으로 파일 저장하기
:w! [파일이름]
 주어진 파일이름으로 저장/덮어쓰기
:q!
 편집한 내용을 저장하지 않고 vi 끝내기
:e!
 편집한 내용을 저장하지 않고 최종 저장된 상태로 파일 열기
:w 새파일이름
 현재 작업중인 파일을 새파일이름으로 저장하기
:e 열고_싶은_파일이름
 vi를 끝내지 않고 다른 파일 편집하기

vi의 세가지 모드
 

vi에는 세가지 모드가 있습니다. Command, Insert, ex 모드랍니다.

모 드
 전환키
 설 명
 
Command Mode
 ESC
 문서내의 텍스트를 지우거나, 복사하거나, 추가하거나, 삽입하거나, 옮기거나 할 수 있는 명령을 사용할 수 있는 모드입니다.
 
Insert Mode
 i,a,o,O, ...
 문서에 텍스트를 추가하거나, 삭제하거나, 복사할 수 있는 모드입니다.
 
ex Mode
 :
 맨 아래 라인에 확장된 명령어를 입력할 수 있도록 해줍니다.
 

파일 안에서 커서 움직이기
 

한칸씩 이동하는 것은 화살표키로도 가능하지만, vi명령을 사용할 경우 '3h'와 같이 사용하여, '오른쪽으로 3칸이동'과 같은 명령을 수행할 수 있다.

입력 키
 기 능
 입력 키
 기 능
 
h
 오른쪽으로 한 칸
 b
 한 단어 뒤로 이동
 
j
 아래로 한 칸
 B
 특수문자/기호들은 단어로 치지 않고, 한 단어 뒤로 이동
 
k
 위로 한 칸
 w
 한 단어 앞으로 이동
 
l
 왼쪽으로 한 칸
 W
 특수문자/기호들은 단어로 치지 않고, 한 단어 앞으로 이동
 
0
 라인의 시작으로 이동
 :0
 문서의 맨 앞으로
 
$
 라인의 끝으로 이동
 :$
 문서의 맨 뒤로
 
^
 라인의 첫 번째 단어로 이동
 
 
 

텍스트를 편집하기 위한 명령
 

입력 키
 기 능
 입력 키
 기 능
 
i
 insert, 현재 문자 앞에서부터 입력
 cw
 한단어 change
 
a
 append, 현재 문자 뒤부터 입력
 x
 한문자 delete
 
o
 현재 줄 아래 한 줄 삽입
O : 현재 줄 위에 한 줄 삽입
 y
 yank(copy) text, 문자 복사
yw : 단어 복사
yy : 한줄 복사
3yy : 세줄 복사

 
r
 replace

 p
 put(paste) 현재 줄 다음 줄에 버퍼의 내용을 붙인다.
 
R
 현재 문자 이후부터 replace
 P
 현재 줄 앞에 버퍼의 내용을 붙인다.
 
dw
 delete word
 u
 마지막 명령을 Undo
U : 그줄에서 수행한 명령들을 Undo
 
dd
 delete line
 J
 join, 두 줄을 연결한다.
 


vi에서는 정규표현식을 사용하여 여러 가지 작업을 효율적으로 처리할 수 있습니다.
예를들어, 다음 명령으로 정해진 패턴을 삭제하거나, 바꿀 수 있습니다.

    :s/old/new/g
    --> old를 찾아 new로 바꾸어 준다.

    :10,50s/old/new/g
    --> 10~50Line 사이에 있는 old를 찾아 new로 바꾸어 준다.

    :1,$s/old/new/g
    :%s/old/new/g
    --> 현재 문서의 처음부터 끝까지 old를 찾아 new로 바꾸어 준다.

    :1,$s/old/new/gc
    --> c옵션에의해 바꾸기 전에 항상 물어본다.

환경설정 set 명령
 


set 명령은 vi의 각종 환경을 설정하는데 사용됩니다.

set 명령의 환경 변수 설정은 세가지 타입이 있습니다.

    Boolean(on|off), Numeric, String

어떤 환경변수가 있는지는 다음 명령으로 확인해 보세요.

    :set all

 

vi 환경 설정하기
 

~/.exrc

vi는 실행될 때마다, 위의 파일을 읽는다.

이 파일은 자신의 홈디렉토리 안에 만들어 주면 되고,

기본적으로 Tab size, Line Number 출력 여부, 자동 들여쓰기 여부,

좌표 출력 여부등의 여러 가지 설정을 자신의 취향에 맞게 할 수 있습니다.

set autoindent
set number