unix vi editorcontents.kocw.net/kocw/document/2014/dongguk/choyoungsuk...unix 명령어...

64
1 차시 : UNIX vi editor 프로그래밍 실험 1동국대학교 조영석 문서는 나눔글꼴로 작성되었습니다. 설치하기

Upload: others

Post on 18-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

1차시: UNIX vi editor

• 프로그래밍 및 실험

• 제 1주

• 동국대학교 조영석

이 문서는 나눔글꼴로 작성되었습니다. 설치하기

Page 2: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

본 강의자료는 아래 명시한 교재를 사용한 강좌를 위해 작성되었으므로 2차시 이후의 자료는, 많은 부분이 교재의 내용과 같거나 유사하며, 부분적으로 보충을 위한 내용이 작성자에 의해 추가되었음. Kelly and Pohl, A Book on C, 4th ed., Addison-Wesley, 1998 번역본: 김명호 역 A Book on C, 홍릉과학출판사, 2000

Page 3: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

UNIX – VI 문서 편집기

동국대학교 컴퓨터학과

Page 4: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

목 차

유닉스(UNIX) 소개 및 특징

문서 편집기구조 및 종류

vi 문서 편집기

Page 5: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

1. 유닉스 소개 및 특징

1.1 유닉스(UNIX) 소개

우리가 개인용 컴퓨터에서 MS-DOS(도스)나 WIN95를 운영체제로 사용하는 것처럼 웍스테이션에서는 멀티프로세싱과 멀티태스킹을 지원하는 유닉스라는 운영체제를 사용

1970년대 초 Bell연구소에서 처음 개발하였으며 도스도 유닉스를 본따서 만든 것 이라고 할 수 있음

유닉스는 프로세스관리, 메모리관리와 파일관리 등의 기능을 비롯하여 통신기능까지 제공하는 뛰어난 사용 인터페이스를 지원함

Page 6: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

1. 유닉스 소개 및 특징(계속)

1.2 유닉스(UNIX) 특징

① 대화형시스템: 사용자가 명령을 내리면 시스템은 그 명령을 수행

하고 결과를 알려줌.

② 높은 이식성: C언어로 구성(80%)되어 있어 타기종에 이식이

용이함.

③ 멀티태스킹 시스템: 동시에 여러개의 프로세서 수행이 가능.

④ 멀티유저 시스템: 여러명의 사용자가 동시 사용이 가능.

⑤ 쉘 프로그래밍: 반복적이고 복잡한 명령어를 대화식으로 간단히

처리할 수 있음.

⑥ 계층적 파일시스템: 계층적 구조의 파일시스템 형태로 사용자가

그룹간의 디렉토리 및 파일을 효과적으로 운용

Page 7: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

2. 문서 편집기구조 및 종류

디스크 버퍼

(임시 저장장소)

1. 편집기에서 파일 호출

2. 편집기에서 파일 수정

3. 파일 저장

Why ? 파일 내용을 잘못 수정한 경우 버퍼의 내용 무시 …. 작업 취소 기능 제공

2.1 문서편집기 구조

Page 8: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

2. 문서 편집기구조 및 종류(계속)

2.2 UNIX 문서 편집기

줄 단위 데이터 편집기 (라인 편집기)

- ed

- ex

디스플레이 편집기 (화면 편집기)

- vi

- 모든 UNIX에 있음.

- emacs

- 막강한 기능 제공. 설치해서 사용해야 함.

Page 9: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기

3.1 정의

vi 문서 편집기란 터미널 모드에서 편집을 할 수 있게 해주는

일종에 에디팅 툴

윈도우, 윈도우용 에디터(예: 윈도우즈의경우 워드나 아래아 한글, 노트패드 등)가 없는 상태에서 텍스트 파일을 편집하기란 쉽지 않겠죠 ?

유닉스에서는 기본적으로 텍스트 파일을 에디팅 할 수 있도록 해주는 툴로 vi 문서 편집기를 지원함

Page 10: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Page 11: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Page 12: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Page 13: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Page 14: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Page 15: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Page 16: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Page 17: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Page 18: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Page 19: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2 사용법 3.2.1 유닉스 서버 접속, 로그인과 로그아웃

유닉스 서버 접속 실행( R ) -> 입력창에 telnet dalma.dongguk.ac.kr dalma 서버에 접속됨

로그인(login) 유닉스 서버 시스템에 접속하는 일 같은 사람이 동시에 여러 번 로그인 가능

로그아웃(logout) 서버의 접속을 중단하는 일 남겨 둔 작업이 있는지 확인 - accounting!

Page 20: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.3 vi 모드

명령 모드 입력 모드

i,a,o,O,R

Esc 입력한 내용을 명령어로 해석

입력한 내용이 버퍼로 옮겨져 데이터가 추가, 수정됨

Page 21: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.4 vi 시작하기

vi 새로운 파일 시작 파일 저장할 때 이름 지정

vi 파일_이름 지정한 이름이 없으면 새로운 파일 생성 지정한 이름이 있으면 기존 파일 열기

Page 22: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.5 파일생성

UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명을 붙여준다

EX) % vi hello.c vi가 실행되면 화면 상태가 아래와 같이 변경된다.

Vi 편집기에서 hello.c 파일 생성

Page 23: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.5 파일생성

UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명을 붙여준다

EX) % vi hello.c vi가 실행되면 화면 상태가 아래와 같이 변경된다.

Enter (실행)후 화면

Page 24: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.6 데이터 입력 / 저장하기 데이터 입력 명령어 사용 데이터 저장 명령어

명령어 수행 작업

i 커서 앞에 삽입

a 커서 뒤에 삽입

명령어 수행 작업

:w ↵ 현재의 파일명으로 파일 저장

:w 파일명 ↵ 지정한 파일명으로 파일 저장

Page 25: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

- 데이터 입력 키보드의 ESC를 누른 후 소문자 i 를 입력 다음과 같은 C 프로그램 코드 입력

Page 26: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

- 데이터 저장

작성했던 문서를 파일로 저장한 후 종료하기

키보드의 Esc키를 누른 후 콜론(:), w, q를 입력한 후 엔터키 입력

Page 27: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.7 실행하기(compile)

저장이 완료된 문서를 실행 가능한 파일로 변환

% gcc hello.c (실행 가능한 파일로 변환)

% a.out (변환된 파일 실행)

Page 28: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

% gcc –o : 출력 화일명을 정하는 옵션 Ex1) % gcc –o hello hello.c Ex2) % gcc hello.c –o hello 순서 바꿔도 결과는 똑같이 나옴.. ./hello 로 실행.

Page 29: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

C Program의 작성(정리)

vi sea.c /* c program을 sea.c에 편집*/

gcc sea.c /* c program compile */

a.out /* compile된 c program을 실행*/

move a.out sea /* 또는 mv a.out sea*/

gcc –o sea sea.c /* compile 결과를 sea에 저장 */

Page 30: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.8 gcc 옵션

% gcc –v : 버전 알아보는 옵션

Page 31: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

% gcc –c : 컴파일 작업 옵션 결과적으로 만들어진 파일은 hello.c에서 .c 부분을 떼어내고 .o를 붙인 화일. 오브젝트 화일 또는 목적 화일 이라고 함.

Ex) % gcc –c hello.c

Page 32: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

Redirection(재지정) - a.out > FILENAME - 예제

출력을 result 파일에 저장 result 파일 보기

Page 33: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

리다이렉션(Redirection) 출력 리다이렉션

- 프로세스의 출력을 파일에 저장할 수 있게 한다.

예)

command > filename // command의 표준 출력을 filename파일로 보낸다.

command >> filename //command의 표준 출력을 filename이라는 파일의 끝에 덧붙인다

Page 34: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

리다이렉션(예)

# cat > text //파일의 생성 I remember walking in the rain, on a cold and dark September, ^D (ctrl+d) // 입력의 끝

text 파일 내 내용 입력

Page 35: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

리다이렉션(예)

# cat > text //파일의 생성 I remember walking in the rain, on a cold and dark September, ^D (ctrl+d) // 입력의 끝

text 파일 생성

Page 36: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

리다이렉션(예) # cat text // text파일 보기 I remember walking in the rain, on a cold and dark September,

text 파일 출력 화면

Page 37: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

리다이렉션(예) # cat >> text //파일의 끝에 덧붙이기 brown Autumn leaves were falling softly to the ground. ^D (ctrl+d) // 입력의 끝 # cat text //text파일 보기

text 파일에 내용 덧붙이기

Page 38: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

리다이렉션(예) # cat >> text //파일의 끝에 덧붙이기 brown Autumn leaves were falling softly to the ground. ^D (ctrl+d) // 입력의 끝 # cat text //text파일 보기

text 파일 내 최종 내용

Page 39: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

Input/Output Redirection(재지정)

sea > outfile /* program sea의 출력을 outfile로*/

sea < infile /* program sea의 입력을 infile 에서*/

sea < infile > outfile /* 위의 작업을 한번에*/

Page 40: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.9 vi 옵션

-r 정전등의 시스템 장애로 버퍼내의 파일이 손상될 경우 복구시킴 -R 읽기 전용으로 파일 열기 view 명령과 동일 + 파일 내용을 열때 파일의 마지막 부분만 화면에 출력 -c 지정한 명령을 수행한 후 편집 상태로 됨

Page 41: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.10 파일 읽어오기

vi vi_test.txt

:r hello.c

:e hello.c

명령어 수 행

:r 파일명 지정한 파일을 현재 커서 위치에 삽입

:e 파일명 현재 파일 대신 지정한 파일을 읽는다

Page 42: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.11 파일 이름관련 명령

cp /etc/services cursor.txt

vi cursor.txt

명령어 수 행

:f 파일명 파일 이름을 지정한 이름으로 변경

:w %.old 현재 파일을 .old 이름으로 저장해 둘 때

^G 기본 적인 파일 정보 출력

Page 43: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.12 파일 편집하기 기존에 존재하는 파일 수정.

- 앞에 만들었던 파일 개방 ex) % vi hello.c 예를 들어 아래 줄에 hello C!! 문장을 삽입해보자.

Page 44: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

- 편집된 문서 실행결과

Page 45: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

파일에 텍스트 넣기

명령어 수행 작업

i 커서 앞에 삽입

a 커서 뒤에 삽입

I 현재 줄 첫 칸 앞에 텍스트 입력

A 현재 줄 끝에 텍스트 입력

o 현재 줄 다음에 삽입

O 현재 줄 앞에 삽입

Page 46: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

편집하는 범위를 지정하는 방법 - “: 범위 편집_명령” 형태로 사용

범위 의 미

1,$ 첫 줄에서 마지막 줄까지(파일내의 모든 줄)

1,. 첫 줄에서 현재 줄까지

.,$ 현재 줄에서 마지막 줄까지

.-2 현재 줄에서 앞쪽으로 2번째 줄

10,20 10번째 줄에서 20번째 줄까지

Page 47: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

데이터 삭제

명령어 삭제 대상 수행 작업

x 문자 커서 위치의 문자 삭제

dw 단어 커서 위치의 단어 삭제

dd 줄 커서 위치의 한 줄 삭제

D 줄의 일부 커서 위치부터 줄 끝까지 삭제

:<범위>d 블록 단위의 줄 지정한 블록 삭제

u 방금 수행한 명령 취소

Page 48: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

텍스트 치환

키 치환 대상 수행 작업

r 문자 현재 커서위치의 한 문자 변경

R 문자열 현재 커서부터 ESC 입력까지 변경

cw 단어 커서 위치부터 현재 단어의 끝까지 내용 변경

cc 줄 커서가 위치한 줄의 내용 변경

C 줄 일부 커서 위치에서 줄 끝까지 내용 변경

숫자 치환_명령 : 치환 명령을 지정한 숫자 만큼 반복수행

Page 49: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

패턴에 의한 치환 - 파일 내 특정 문자열을 다른 문자열로 변경하고자 할 때 사용

명령어 수행 작업

:s/문자열1/문자열2 커서가 위치한 줄에서만 문자열1을 문자열2로 바꿈

:<범위>s/문자열1/문자열2

<범위>안의 모든 줄에 대해서 각 줄의 첫번째 문자열1을 찾아 문자열2로 바꿈

:<범위>s/문자열1/문자열2/g

<범위>안의 모든 줄에 대해서 모든 문자열1을 문자열2로 바꿈

:<범위>s/문자열1/문자열2/gc

<범위>안의 모든 줄에 대해서 각 문자열1을 문자열2로 치환할 때 수정할지 안 할지를 묻는다

Page 50: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

데이터 치환 예1)

Page 51: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

텍스트 붙이기 - 버퍼

Vi는 작업 내용을 버퍼에 저장 – 실행 취소 가능

- 버퍼 종류 Unnamed buffer (이름 없는 버퍼) Named buffers (이름이 있는 버퍼) “a, “b, … “z Numbered buffers(번호가 있는 버퍼) “1, “2, …,“9

Page 52: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

명령어 수행 작업

yy 현재 줄을 버퍼로 복사

p 현재 줄 다음에 버퍼 내용 삽입

:<범위>y <범위>의 모든 줄을 버퍼로 복사

:pu 현재 줄 다음에 버퍼 내용을 삽입

:npu N번째 줄 다음에 버퍼 내용을 삽입

“knyy 버퍼 “k로 n줄 만큼 복사

“kp 버퍼 “k의 내용을 현재 줄 다음에 삽입

Page 53: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.13 화면이동 화면에 나타나지 않은 파일의 내용을 편집할 때 필요

main() { int a, b, c; char k; else printf (“%d”, a);

for (a=1; a< 10; a++) sum += a;

이동 명령어

반 화면 위로 ^U

반 화면 아래로 ^D

한 화면 위로 ^B

한 화면 아래로 ^F

한 줄만 위로 ^Y

한 줄만 아래로 ^E

파일내용 다시 출력 ^L

현재 커서 위치를 첫 줄로 Z

현재 커서 위치를 마지막줄로 Z+~

현재 커서 위치를 중간줄로 Z+>

Page 54: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.14 커서이동 화살표 키 이용 h, j, k, l 키 이용

k

h l

j

이동 명령어

한 줄 위 k

한 줄 아래 j

한 문자 오른 쪽 l

한 문자 왼쪽 h

줄의 시작 ^ 또는 0

줄의 마지막 $

이전 줄의 처음 -

다음 줄의 처음 + 또는 ↵

Page 55: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

현재 화면에서 커서이동

이동 명령어

키 화면 맨 위로 H

키 화면 중간으로 M

키 화면 맨 아래로 L

한 단어 앞으로 w

한 단어 뒤로 b

다음 단어의 끝 글자로 e

현재 화면에서 커서이동

이동 명령어

줄 번호 n 위치로 :n 또는 nG

파일의 끝 줄로 이동 :$ 또는 G

n줄 만큼 앞으로 이동 n+

n줄 만큼 뒤로 n-

현재 문장의 처음으로 (

다음 문장의 처음으로 )

현재 문단의 처음으로 {

다음 문단의 처음으로 }

Page 56: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.15 문자열 탐색

명령어 수행 작업

/문자열 현재 위치부터 파일 앞쪽으로 문자열 탐색

?문자열 현재 위치부터 파일 뒤쪽으로 문자열 탐색

n 다음 문자열 탐색

N 역방향으로 문자열 탐색

Page 57: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.15 문자열 탐색(1)

Page 58: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.15 문자열 탐색(2)

대문자 ‘N’ – 이전 단어로 이동

Page 59: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.15 문자열 탐색(2)

소문자 ‘n’ – 다음 단어로 이동

Page 60: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.16 쉘 명령 사용 - Vi 편집기 상에서 간단한 쉘 명령을 수행하는 방법

명령어 수행 작업

:!명령 Vi를 중단하고 지정한 명령 수행

(vi로 돌아올 때 : ↵)

:sh Vi를 잠시빠져나가서 쉘을 수행

(vi로 돌아올때 : exit)

Page 61: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.17 그 밖의 유용한 편집 명령

명령어 수행 작업

:set number

:set nu 파일 내용의 각 줄에 줄 번호 부여

:set nonumber

:set nonu 줄 번호 취소

J 현재 줄과 다음 줄 연결

. 바로 이전에 수행한 명령 재 실행

~ 현재 커서 위치의 한 문자를 소문자 혹은 대문자로 전환

Page 62: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.17 그 밖의 유용한 편집 명령

Page 63: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

3. vi 문서 편집기(계속)

3.2.17 그 밖의 유용한 편집 명령

Page 64: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c

이 문서는 나눔글꼴로 작성되었습니다. 설치하기

감사합니다.