Presentation is loading. Please wait.

Presentation is loading. Please wait.

화면편집기(vi) 사용하기 ㅎㅎ 유닉스 편집기 vi의 사용 방법 vi의 환경설정 한빛미디어(주)

Similar presentations


Presentation on theme: "화면편집기(vi) 사용하기 ㅎㅎ 유닉스 편집기 vi의 사용 방법 vi의 환경설정 한빛미디어(주)"— Presentation transcript:

1 화면편집기(vi) 사용하기 ㅎㅎ 유닉스 편집기 vi의 사용 방법 vi의 환경설정 한빛미디어(주)

2 학습목표 4장. 화면편집기(vi) 사용하기 유닉스에서 사용하는 편집기의 종류를 이해한다.

3 행 단위 편집기 (라인 편집기) 화면 편집기 Section 01 유닉스의 편집기 ed ex sed vi emacs
모든 UNIX에 있음. emacs 막강한 기능 제공. 설치해서 사용해야 함.

4 파일 내용을 잘못 수정한 경우 버퍼의 내용 무시 작업 취소 기능 제공 Section 02 vi의 사용 방법 디스크 버퍼
(임시 저장장소) 편집기에서 파일 호출 편집기에서 파일 수정 파일 저장

5 vi의 동작 모드 Vi에서는 대소문자를 별도의 명령으로 해석한다. 명령 모드 입력 모드 i,I,a,A,o,O Esc 입력한 내용을 명령어로 해석 입력한 내용이 버퍼로 옮겨져 추가, 수정됨 vi 시작 커서이동 페이지이동 글자 삭제 줄 삭제 등 마지막행 모드 특별명령처리 vi 종료 :, /, ? 검색,저장 바꾸기 줄 이동 등 ZZ q,q! w HDD Enter

6 vi vi 파일_이름 $ vi $ vi first vi 시작하기 새로운 파일 시작 파일 저장할 때 이름 지정
지정한 이름이 없으면 새로운 파일 생성 지정한 이름이 있으면 기존 파일 열기 텔넷 hanbitbook.co.kr $ vi 텔넷 hanbitbook.co.kr $ vi first

7 vi 초기 화면 ~ “first.txt” [새 파일] 80칼럼 26행 빈 줄 화면 크기에 따라 행과 칼럼수는 달라진다.

8 입력이 끝나면 “입력모드”에서 “명령모드”로 돌아와야 한다.
입력 명령 입력 명령(명령모드->입력모드) 명령키 수행 작업 i 커서 앞에 삽입 a 커서 뒤에 삽입 o 현재 줄 다음에 삽입 I 현재 줄 첫 칸 앞에 텍스트 입력 A 현재 줄 끝에 텍스트 입력 O 현재 줄 앞에 삽입 입력이 끝나면 “입력모드”에서 “명령모드”로 돌아와야 한다. Esc 주의!

9 저장 명령 종료 명령(저장후 종료 또는 그냥 종료) 저장 및 종료 명령 저장하거나 종료하려면 “명령모드”로 돌아와야 한다.
명령키 수행 작업 :w  현재의 파일명으로 파일 저장 :w 파일명  지정한 파일명으로 파일 저장 명령키 수행 작업 :q  작업 내용을 저장하였으면 vi 종료 :q!  작업내용을 저장하지 않고 vi 종료 :wq 작업 내용을 저장한 후 vi 종료 :wq 파일명 작업 내용을 지정한 파일명으로 저장한 후 vi 종료 zz (shift-zz)

10 실습하기 파일 생성 : text.txt mane is Gil-dong Hong. I wake up in the morning.
[실습하기] 입력 및 저장 실습하기 실습 디렉토리 구성 파일 생성 : text.txt 텔넷 hanbitbook.co.kr $ cd $ mkdir Unix/ch4 $ cd Unix/ch4 $ vi test.txt mane is Gil-dong Hong. I wake up in the morning. This is a living loom. A that’s a bedloom.

11 실습하기 [실습하기] 입력 및 저장 vi test.txt i My Esc키 G o nd :w test2.txt
텔넷 hanbitbook.co.kr mane is Gil-dong Hong. I wake up in the morning. This is a living loom. A that’s a bedloom. i My Esc키 G o nd :w test2.txt 텔넷 hanbitbook.co.kr My mane is Gil-dong Hong. I wake up in the morning. This is a living loom. And that’s a bedloom. test2.txt

12 화살표 키 이용 H, J, K, L 키 이용 커서이동명령 [1/3] 이동 명령어 한 행 위 k 한 행 아래 j
한 문자 오른 쪽 l 한 문자 왼쪽 h 행의 시작 ^ 또는 0 행의 마지막 $ 이전 행의 처음 - 다음 행의 처음 + 또는  k h l j 오른쪽 왼쪽 아래로 위로

13 현재 화면에서 커서 이동 지정한 곳으로 이동 커서이동명령 [2/3] 이동 명령키 키 화면 맨 위로 H 키 화면 중간으로 M
키 화면 맨 아래로 L 다음 단어의 첫문자로 w 이전 단어의 첫문자로 b 다음 단어의 끝 글자로 e 이동 명령키 줄 번호 n 위치로 :n 또는 nG 파일의 끝 줄로 이동 :$ 또는 G n줄 만큼 앞으로 이동 n+ n줄 만큼 뒤로 n- 현재 문장의 처음으로 ( 다음 문장의 처음으로 ) 현재 문단의 처음으로 { 다음 문단의 처음으로 }

14 커서이동 예제 커서이동명령 [3/3] H k M w $ ^ e j L b 1 #include <stdio.h> 2
3 main() { char c; 5 printf(“Hello, C World\n”); printf("=====\n"); printf(“select menu item\n"); printf("1. unix\n"); printf("2. linux\n"); printf("=====\n"); 12 } ~ H L M ^ $ j k w b e

15 실습하기 커서를 1행으로 이동 : 1G 또는 :1 1행의 두번째 단어로 이동 : w 2행으로 이동 : j
[실습하기] 커서 이동 실습하기 vi test.txt 텔넷 hanbitbook.co.kr My mane is Gil-dong Hong. I wake up in the morning. This is a living loom. And that’s a bedloom. 커서를 1행으로 이동 : 1G 또는 :1 1행의 두번째 단어로 이동 : w 2행으로 이동 : j 커서를 좌로 이동 : ㅣ 마지막행으로 이동 : G 또는 :$

16 화면에 나타나지 않은 부분으로 화면 이동 화면이동 이 동 명령키 반 화면 위로 ^u 반 화면 아래로 ^d 한 화면 위로 ^b
#include <stdio.h> main() { printf(“Hello 1\n”); printf(“Hello 2\n”); printf (“Hello 8\n”); } 이 동 명령키 반 화면 위로 ^u 반 화면 아래로 ^d 한 화면 위로 ^b 한 화면 아래로 ^f 한 줄만 위로 ^y 한 줄만 아래로 ^e 파일내용 다시 출력 ^l 텔넷 hanbitbook.co.kr printf(“Hello 3\n”); printf(“Hello 4\n”); printf(“Hello 5\n”); printf(“Hello 6\n”); printf(“Hello 7\n”);

17 :set nu ^u ^d ^f ^b ^y ^e ^l :set nonu 실습하기 [실습하기] 화면 이동
vi /etc/profile 왼쪽 순서에 따라 화면 이동을 실습 텔넷 hanbitbook.co.kr # ident # The profile trap “” 2 3 export LOGNAME PATH if [ “$TERM = “” ] ….. :set nu ^u ^d ^f ^b ^y ^e ^l :set nonu

18 명령모드에서 동작 내용 삭제 및 취소 명령어 삭제 대상 수행 작업 x, #x 문자 커서 위치의 문자 삭제(예:3x)
dw, #dw 단어 커서 위치의 단어 삭제 dd, #dd 커서 위치의 줄 삭제 D(shift-d) 줄의 일부 커서 위치부터 줄 끝까지 삭제 u 방금 수행한 명령 취소 U 해당 줄의 모든 편집 취소

19 1G 11x jj llll D j dd u :w 실습하기 [실습하기] 삭제 및 취소 vi test2.txt
텔넷 hanbitbook.co.kr My mane is Gil-dong Hong. I wake up in the morning. This is a living loom. And that’s a bedloom. 1G 11x jj llll D j dd u :w 텔넷 hanbitbook.co.kr Gil-dong Hong. I wake up in the morning. This

20 명령모드에서 동작 내용 수정 키 수정 대상 수행 작업 r 문자 현재 커서위치의 한 문자 변경 R 문자열
현재 커서부터 ESC 입력까지 변경 cw 단어 커서 위치부터 현재 단어의 끝까지 내용 변경 cc 커서가 위치한 줄의 내용 변경 s, ns 현재 커서부터 내용 변경(예:5s) C 줄 일부 커서 위치에서 줄 끝까지 내용 변경

21 실습하기 [실습하기] 수정 vi test.txt 1G w cw name Esc키 jjw r r r ] j j 7s
텔넷 hanbitbook.co.kr My mane is Gil-dong Hong. I wake up in the morning. This is a living loom. And that’s a bedloom. 1G w cw name Esc키 jjw r r r ] j j 7s bedroom :w 텔넷 hanbitbook.co.kr My name is Gil-dong Hong. I wake up in the morning. This is a living room. And that’s a bedroom.

22 명령모드에서 동작 편집기능 – 복사, 잘라내기, 붙이기 행 삭제와 잘라내기는 동일한 동작이다. 명령어 수행 작업 yy, #yy
p 현재 행 다음에 버퍼 내용 삽입 P 현재 행 위쪽에 버퍼 내용을 삽입 dd, #dd 현재 행을 잘라내기

23 버퍼 버퍼 종류 사용 예 버퍼의 사용 Vi는 작업 내용을 버퍼에 저장 – 실행 취소 가능 복사하기, 잘라내기에 사용
Unnamed buffer (이름 없는 버퍼) Named buffers (이름이 있는 버퍼) “a, “b, … “z Numbered buffers(번호가 있는 버퍼) “1, “2, …,“9 사용 예 “a3yy -> 현재 행부터 아래로 3줄을 a버퍼에 저장 “ap -> a버퍼의 내용을 붙이기

24 편집하는 범위를 지정하는 방법 마지막행 모드에서 사용 “: 범위 편집_명령” 형태로 사용 범위지정 방법 범위 의 미 1,$
의 미 1,$ 첫 줄에서 마지막 줄까지(파일내의 모든 줄) % 1,. 첫 줄에서 현재 줄까지 .,$ 현재 줄에서 마지막 줄까지 .-2 현재 줄에서 앞쪽으로 2번째 줄 10,20 10번째 줄에서 20번째 줄까지

25 마지막행 모드에서 사용 마지막행 모드에서 복사와 잘라내기 명령어 수행 작업 :#y
:#d #으로 지정한 행을 삭제(:10d -> 10행을 삭제) :<범위>d 범위로 지정한 행을 복사(예, :10,20d -> 10행~20행을 삭제) :pu 현재 행 다음에 버퍼내용 붙이기 :#pu #으로 지정한 행 다음에 버퍼내용 붙이기(예, :5pu)

26 실습하기 test2.txt test.txt [실습하기] 버퍼를 이용한 복사
vi test.txt -> test2.txt로 복사 test2.txt 텔넷 hanbitbook.co.kr My name is Gil-dong Hong. I wake up in the morning. This is a living room. And that’s a bedroom. 텔넷 hanbitbook.co.kr My name is Gil-dong Hong. I wake up in the morning. This is a living room. And that’s a bedroom. test.txt :3 2) yy 3) p 4) j 5) dd 6) p 7) “ayy 8) :w 9) :e test.txt 10)“ap 텔넷 hanbitbook.co.kr My name is Gil-dong Hong. And that’s a bedroom. I wake up in the morning. This is a living room.

27 마지막행 모드에서 사용 검색 기능 명령어 수행 작업 /문자열 현재 위치부터 파일 앞쪽으로 문자열 탐색 ?문자열
현재 위치부터 파일 뒤쪽으로 문자열 탐색 n 다음 문자열 탐색 N 역방향으로 문자열 탐색

28 /room n ?name N 실습하기 [실습하기] 문자열 탐색 vi test.txt 텔넷 hanbitbook.co.kr
My name is Gil-dong Hong. And that’s a bedroom. I wake up in the morning. This is a living room. /room n ?name N

29 마지막행 모드에서 사용 바꾸기 기능 명령어 수행 작업 :s/문자열1/문자열2/
커서가 위치한 줄에서만 문자열1을 문자열2로 바꿈 :<범위>s/문자열1/문자열2/ <범위>안의 모든 줄에 대해서 각 줄의 첫번째 문자열1을 찾아 문자열2로 바꿈 :<범위>s/문자열1/문자열2/g <범위>안의 모든 줄에 대해서 모든 문자열1을 문자열2로 바꿈 :<범위>s/문자열1/문자열2/gc <범위>안의 모든 줄에 대해서 각 문자열1을 문자열2로 치환할 때 수정할지 안 할지를 묻는다

30 실습하기 :s/dong/sun/ :%s/is/was/g :2,5 s/And/But/g :w [실습하기] 범위를 이용한 바꾸기
vi test.txt 텔넷 hanbitbook.co.kr My name is Gil-dong Hong. And that’s a bedroom. I wake up in the morning. This is a living room. :s/dong/sun/ :%s/is/was/g :2,5 s/And/But/g :w 텔넷 hanbitbook.co.kr My name was Gil-sun Hong. But that’s a bedroom. I wake up in the morning. This was a living room.

31 파일 읽어오기 / 여러 파일 편집 vi에서 쉘 명령 실행 기타 기능 [1/2] 명령어 수 행 :r 파일명
지정한 파일을 현재 커서 위치에 삽입 :e 파일명 현재 파일 대신 지정한 파일을 읽음 :n vi시작시 여러 파일을 지정하였을 경우 다음 파일로 이동 명령어 수행 작업 :!명령 vi를 중단하고 지정한 명령 수행 (vi로 돌아올 때 : ) :sh vi를 잠시빠져나가서 쉘을 수행 (vi로 돌아올때 : exit)

32 :!ls -l Esc키 :sh ls -l exit 실습하기 [실습하기] 쉘 명령 실행 vi test2.txt
텔넷 hanbitbook.co.kr My name is Gil-dong Hong. I wake up in the morning. This is a living room. And that’s a bedroom. :!ls -l Esc키 :sh ls -l exit

33 알아두면 유용한 명령키들 기타 기능 [2/2] 명령어 수 행 :f 파일명 파일 이름을 지정한 이름으로 변경 :w %.old
수 행 :f 파일명 파일 이름을 지정한 이름으로 변경 :w %.old 현재 파일을 .old 이름으로 저장해 둘 때 ^g 기본적인 파일정보 출력(파일명, 라인수 등) J 현재 줄과 다음 줄 연결 . 바로 이전에 수행한 명령 재 실행 ~ 현재 커서 위치의 한 문자를 소문자 혹은 대문자로 전환

34 :3 J l ~ . :w 실습하기 [실습하기] 기타 명령어 vi test2.txt 텔넷 hanbitbook.co.kr
My name is Gil-dong Hong. I wake up in the morning. This is a living room. And that’s a bedroom. 텔넷 hanbitbook.co.kr My name is Gil-dong Hong. I wake up in the morning. THIS is a living room.This is a living room. And that’s a bedroom.

35 vi의 환경을 설정하는 특수명령과 변수들 Section 03 vi 환경 설정 명령어 수행 작업 :set nu
파일 내용의 각 줄에 줄 번호 표시 (보이기만 할 뿐 저장은 되지 않는다.) :set nonu 줄 번호 취소 :set list 눈에 보이지 않는 특수문자표시(tab:^I, eol:$ 등) :set nolist 특수문자보기 기능 취소 :set showmode 현재 모드 표시 :set noshowmode 현재 모드 표시기능 취소 :set set으로 설정한 모든 vi변수 출력 :set all 모든 vi 변수와 현재 값 출력

36 test.txt test2.txt [실습하기] 최종 파일 텔넷 hanbitbook.co.kr
My name was Gil-sun Hong. But that’s a bedroom. I wake up in the morning. This was a living room. 텔넷 hanbitbook.co.kr My name is Gil-dong Hong. I wake up in the morning. THIS is a living room.This is a living room. And that’s a bedroom.

37


Download ppt "화면편집기(vi) 사용하기 ㅎㅎ 유닉스 편집기 vi의 사용 방법 vi의 환경설정 한빛미디어(주)"

Similar presentations


Ads by Google