강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

vi edit 사용
작성자 : 13 김영철
등록날짜 : 2009.01.29 16:39
2,819
== Vi 사용법 ==

{{{
V I 편집기

text파일을 편집하기 위한 editor는 line editor "ed"와 screen editor "vi"가 사용된다.

vi 편집은 대화식 편집기(Interactive Text Editor) 로서 기존의 편집기 ex에 시초를 둔 디스플레이 지향의 편집기이며 ed 편집기보다 훨씬 편리한 기능을 부여 받으며, 화면 전체의 데이터를 편집할 수 있기 때문에 커서를 상하좌우 마음대로 이동시킬 수 있어 매우 편리하다.

파일 명은 사용자가 임의로 정할 수 있으며 14자 이내의 영, 숫자 조합이면 가능하며 특수문자($,%,=,+,-)와 함께 사용하는 것을 배제한다.

시작
$ vi file_name

text입력
text를 입력하는 방법중 하나는 문자 "a"(append 화면에 표시안됨)를 입력하고 text를 입력하며, 각행을 분리할 때 키를 누른다.

text 보관 및 종료
명령어 모드(인 상태)에서 ":"을 입력한 후 w로 해당파일을 보관하고 q!로 작업을 종료한다.

커서 명령
h 왼쪽으로 커서 이동
j 아래로 커서 이동
k 위로 커서 이동
l 오른쪽으로 커서이동
w 한 단어 오른쪽으로 커서 이동
b 한 단어 왼쪽으로 커서 이동
Return 한 문자 왼쪽으로 커서 이동
Backspsce 한 문자 으로 커서 이동
Space Bar 화면의 맨 위로 이동
H 화면의 중간으로 이동
M 화면의 중간으로 이동
L 화면의 맨 아래로 이동
Ctrl+F 한 화면 앞으로 이동
Ctrl+D 반 화면 앞으로 이동
Ctrl+B 한 화면 뒤로 이동
Ctrl+U 반 화면 뒤로 이동

문자와 행 삽입
a 커서 오른쪽에 문자 삽입
A 커서 오른쪽, 행의 끝에 문자삽입
i 커서 왼쪽에 문자삽입
I 커서 왼쪽,행의 처음에 문자 삽입
o 커서 아래에 행 삽입
O 커서 위에 행 삽입


작업종료후 입력

텍스트 변경
cw 단어 변경
cc 행 변경
C 커서 오른쪽의 행 변경
s 커서가 위치한 문자열 대체
r 커서 위치 문자를 다른 문자로 대체
r-Return 행 분리
J 현재 행과 아래 행 결합
xp 커서 위치 문자와 오른쪽 문자교환
u 이전 명령 취소
U 행 변경 사항 취소
:u 이전의 최종행취소

텍스트 삭제
x 문자 삭제
dw 단어 삭제
dd 행 삭제
D 커서 오른쪽 행 삭제
:5,10 d 5-10번째 행 삭제

텍스트복사 및 이동 명 령 어
yy 행 yank 또는 복사
Y 행 yank 또는 복사
p yank되거나 복사된 행 현재행 아래 삽입
P yank되거나 복사된 행 현재행 위에 삽입
:1,2 co 3 1-2행을 3행 다음으로 복사
:4,5 m 6 4-5행을 6행 다음으로 이동

행번호 설정
:set nu 행번호 표시

:set nonu 행번호 숨기기

탐색 및 대체
/string/ string 탐색
?string? string 역 방향 탐색
n(N) string의 다음(이전) 계속 탐색
:s/str/rep 현재행의 str을 rep로 대체
:%s/str/rep/g 파일 전체 str을 rep로 대체

보관 및 종료
:w 변경사항 보관
:wp 변경사항 보관후 vi 복관
:q! 변경사항을 보관하지않고 종료
:wq! 변경사항 보관후 종료

vi 명령들

1. Cursor를 옮기는 여러가지 방법
2. 화면을 옮기는 여러가지 방법
3. 한 화면 안에서 cursor를 옮기는 방법
4. 한 line 안에서 cursor를 옮기는 방법
5. 검색
6. vi를 빠져나가는 방법
7. 삽입 mode
8. Yanking : (Copying)
9. Deleting
10. Putting
11. Interactive edit : (search and replace)
12. Global 명령
13. Reading in files
14. 여러 화일의 edit
15. Miscellancenous commands

1. Cursor를 옮기는 여러가지 방법

k(-)

||
h(bs) <------> l(sp)
||

j(+)

h,j,k 와 i 를 이용하영 간단히 키보를 누르면 cursor의 위치가 변경됩니다.

괄호에 있는 키를 선택하여도 됩니다.

bs : BackSpace
sp : Space bar

2. 화면을 옮기는 여러가지 방법

^f - (FORWARD 화면을 one page 앞으로 옮김)
^b - (BACKWARD 화면을 one page 뒤으로 옮김)
^d - (DOWN 화면을 반 page 앞으로 옮김)
^u - (UP 화면을 반 page 뒤으로 옮김)

3. 한 화면 안에서 cursor를 옮기는 방법

H - HOME, 한 화면의 top line으로 옮긴다.
M - MIDDLE, 한 화면의 중간으로 옮긴다.
L - LAST, 한 화면의 마지막 line으로옮긴다.
G - GOTO, 화일의 마지막 line으로 옮긴다.
nG - GOTO nth line the file (or :n)
^G - GIVES file status

4. 한 line 안에서 cursor를 옮기는 방법

w - WORD, 한단어 앞으로
b - BACKWARD, 한단어 뒤로
e - END, 현재 cursor가 위치한 맨 뒤로
o - zero, line의 맨 앞으로 (or ^)
$ - end, line의 맨뒤로

5. 검색

/pattern - scan (/ 'pattern'이라는글자를 현재 cursor가 위치한 곳의 다음 단어를 검색)
?pattern - scan (? 'pattern'이라는 글자를 현재 cursor가 위치한 곳의 앞 단어를 검색)
n - 앞쪽에서 입력했었던 문자 'pattern' 의 다음단어를 검색
N - 앞쪽에서 입력했었던 문자 'pattern' 의 다음 앞 단어를 검색

6. vi를 빠져나가는 방법

:q! - 화일의 내용을 저장하지 않고 exit
:w - WRITE, vi를 빠져나가지 않으면서 내용을 저장
:wq - WRITE and QUIT, vi를 빠져나가면서 내용을 저장
ZZ - :wq의 명령과 같다.

7. 삽입 mode

i - INSERT, cursor 위치 부터 문자 삽입
I - INSERT, line의 맨 앞부터 문자 삽입
a - APPEND, cursor 다음 위치 부터 문자 삽입
A - APPEND, cursor 위치한 line의 끝부터 문자 삽입
o - OPEN line, 현재의 line 다음에 line 삽입
O - OPEN line, 현재의 line 앞에 line 삽입
r - REPLACE, 한 문자만을 대치 (does not require ESC)
R - REPLACE, ESC 키가 입력될때 까지 대치
cw - CHANGE word, cursor가 위치한 곳의 단어 끝까지 대치 (cnw - change n number of words)
C - CHANGE, cursor가 위치한 곳에서 line 끝까지 대치
u - UNDOES, 마지막 명령의 취소
U - UNDOES, line전체를 원 상태로 복구

Note : INSERT mode 를 만든는 모든 문자(i, a, o,r, c, s <대문자 포함>)를
사용하는 경우 insert mode에서 입력 한 내용을 취소하고자 하면,
ESC 를 누르고 undo를 수행하는 u를 입력하면 된다.

Note : ESC (escape key 는 삽입) insert를 중지 시키고 명령어 mode로 돌아가는 키이다.

8. Yanking : (Copying)

Y - YANKS (copies line을 사용자가 보이지 않는 buffer에 저장)
yy - YANKS (copies line을 사용자가 보이지 않는 buffer에 저장)
nY - YANKS n , n line을 사용자가 보이지 않는 buffer에 저장

9. Deleting

x - deletes, 문자 하나를 삭제 (also 'd sp')
dw - DELETES words, 문자 하나를 삭제
D - DELETES, cursor가 있는 곳에서 부터 line끝 까지 삭제
dd - DELETES lines, line하나를 삭제 하고 보이지 않는 buffer에 저장
ndd - DELETES n, n line을 삭제 하고 보이지 않는 buffer에 저장
(i.e., 10dd deletes 10 lines)

10. Putting

p - PUTS, cursor가 위치한 다음 line에 보이지 않는 buffer의 내용을 삽입
P - PUTS, cursor가 위치한 앞 line에 보이지 않는 buffer의 내용을 삽입
xp - cursor 가 위치한 문자와 다음 문자를 교환

11. Interactive edit : (search and replace)

/pattern - find, pattern이라는 문자를 검색
cw - change word, 단어를 대치 (cw. dw, r, s, etc.)
n - find, 앞에서 검색했던 'pattern'이라는 문자를 검색하는 반복 명령
N - find, 앞에서 검색했던 'pattern'이라는 문자를 역순으로 검색 하는 반복 명령

12. Global 명령

Global replacement :1,\$s/string1/string2/g
1 line부터 끝까지 string1 를 string2 로 대치
e.g., :1,\$s/sun/SUN/

Global delete :g/pattern/d
1 line부터 끝까지 pattern 을 제거
e.g., :g/###/d (to delete lines inserted by cc file.c | error-v)

13. Reading in files

:r file2 - cursor가 위치한 다음 line에 file2를 삽입

14. 여러 화일의 edit

:w - 다른 화일을 읽기전에 현재의 화일을 저장 (file1)
:e file2 - 두번째 file을 edit하기 위해 load (file2)
:w - 두번째 화일을 저장 (file2)
:e # - original file 을 수정하기 위해 load (file1)
example:w /* file1을 빠져 나가기전에 저장 */
:e file2 /* file2 load */
\x4Y /* buffer 'x'에 file2의 top 4 line을 저장 */
:e # /* file1 을 load (no changes) */
\"xP /* buffer 'x'에 저장 되어 있는 내용을 put */

15. Miscellancenous commands

:! cmd - editor안에서 shell command를 수행 하고자 할때
~ - (tilde or 'wavy') 대문자를 소문자로 소문자를 대문자로 교환
% - 한 line안에서 (,,{,},[,]를 검색)
mx - 문자 x에 현재 위치를 표시
d'x - 문자 x에 표시된 위치 부터 현재 cursor 위치 까지 삭제
^V - allows for insertion of control characters (e.g.,^L)
?string - scan (/ backward for 'pattern')
:n,m w file - n line에서 m line까지 내용을 file 이라는 이름으로 (e.g., 15,25 w file)
J - JOINS, cusor가 있는 line과 다음 line을 join
:set ai - editor 가 자동적으로 insert tabs을 삽입
:set list - special characters 를 보여줌 (i.e., non-printable characters)
:set nows - stop wraparound search
:set ts=n - set tab stops to be other than the default (8)
:set wm=n - set wrap margin (automatic carriage return insert at n)
}}}

출처 : Tong - ddakzzi님의 SERVER통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2895 ftp로 원격서버의 데이터 자동백업 13 김영철 01.29 2594
2894 계정 자동 세팅 13 김영철 01.29 2715
2893 응급복구 13 김영철 01.29 2572
2892 특정 계정에대해서 telnet 접속 X , ftp 접속 O 13 김영철 01.29 2818
2891 rootman의 서버 초기세팅시 초기 설정사항 퍼미션 및 소유권변경 정보 13 김영철 01.29 2397
2890 네임서버 설정 13 김영철 01.29 2462
2889 트래픽을 증가시키는 외부사이트의 이미지 퍼가기를 막기 위한 apache config 설정 13 김영철 01.29 2705
2888 리눅스 도메인 셋팅방법 13 김영철 01.29 2375
2887 리눅스 서브도메인 셋팅방법 13 김영철 01.29 2821
2886 아파치 - throttle 모듈 설치 13 김영철 01.29 2736
2885 APM - 단독서버 운영을 위한 셋팅 13 김영철 01.29 2945
열람중 vi edit 사용 13 김영철 01.29 2820
2883 TOMCAT 13 김영철 01.29 2415
2882 vi 명령어 2 13 김영철 01.29 3237
2881 ncftp, ncftpget, ncftpput - 서브디렉토리 전송 13 김영철 01.29 3686
2880 ncftp, ncftpget, ncftpput - 서브디렉토리 전송 13 김영철 01.29 2588
2879 [서버운영] ncftp 100% 활용하기 13 김영철 01.29 2622
2878 rsync (remote sync daemon) UNIX 서버간 원격 복사 13 김영철 01.29 3106
2877 rsync 와 ssh 를 이용한 파일 전송 13 김영철 01.29 3436
2876 rsync윈도우에서 리눅스로 백업하기 13 김영철 01.29 3953
2875 RSYNC 사용하기 13 김영철 01.29 2450
2874 ssh 재시작(각종 변곃후) 13 김영철 01.29 2974
2873 ssh 보안설정1 13 김영철 01.29 2655
2872 find 명령어 사용법 13 김영철 01.29 2497
2871 chgrp 명령어 사용법 13 김영철 01.29 4425
2870 killall 명령어 사용법 13 김영철 01.29 3479
2869 kill 명령어 사용법 13 김영철 01.29 2803
2868 ps 명령어 사용법 13 김영철 01.29 3782
2867 루트밑에 특정 확장자 파일을 특정디렉토리에 복사 13 김영철 01.29 2917
2866 쉘스크립트 암호화 13 김영철 01.29 2721
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취