UNIX ™ /Linux Overview Unix/LINUX Intro. UNIX/Linux History.
UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어...
Transcript of UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어...
![Page 1: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/1.jpg)
1차시: UNIX vi editor
• 프로그래밍 및 실험
• 제 1주
• 동국대학교 조영석
이 문서는 나눔글꼴로 작성되었습니다. 설치하기
![Page 2: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/2.jpg)
본 강의자료는 아래 명시한 교재를 사용한 강좌를 위해 작성되었으므로 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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/3.jpg)
UNIX – VI 문서 편집기
동국대학교 컴퓨터학과
![Page 4: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/4.jpg)
목 차
유닉스(UNIX) 소개 및 특징
문서 편집기구조 및 종류
vi 문서 편집기
![Page 5: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/6.jpg)
1. 유닉스 소개 및 특징(계속)
1.2 유닉스(UNIX) 특징
① 대화형시스템: 사용자가 명령을 내리면 시스템은 그 명령을 수행
하고 결과를 알려줌.
② 높은 이식성: C언어로 구성(80%)되어 있어 타기종에 이식이
용이함.
③ 멀티태스킹 시스템: 동시에 여러개의 프로세서 수행이 가능.
④ 멀티유저 시스템: 여러명의 사용자가 동시 사용이 가능.
⑤ 쉘 프로그래밍: 반복적이고 복잡한 명령어를 대화식으로 간단히
처리할 수 있음.
⑥ 계층적 파일시스템: 계층적 구조의 파일시스템 형태로 사용자가
그룹간의 디렉토리 및 파일을 효과적으로 운용
![Page 7: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/9.jpg)
3. vi 문서 편집기
3.1 정의
vi 문서 편집기란 터미널 모드에서 편집을 할 수 있게 해주는
일종에 에디팅 툴
윈도우, 윈도우용 에디터(예: 윈도우즈의경우 워드나 아래아 한글, 노트패드 등)가 없는 상태에서 텍스트 파일을 편집하기란 쉽지 않겠죠 ?
유닉스에서는 기본적으로 텍스트 파일을 에디팅 할 수 있도록 해주는 툴로 vi 문서 편집기를 지원함
![Page 10: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/10.jpg)
3. vi 문서 편집기(계속)
![Page 11: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/11.jpg)
3. vi 문서 편집기(계속)
![Page 12: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/12.jpg)
3. vi 문서 편집기(계속)
![Page 13: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/13.jpg)
3. vi 문서 편집기(계속)
![Page 14: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/14.jpg)
3. vi 문서 편집기(계속)
![Page 15: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/15.jpg)
3. vi 문서 편집기(계속)
![Page 16: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/16.jpg)
3. vi 문서 편집기(계속)
![Page 17: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/17.jpg)
3. vi 문서 편집기(계속)
![Page 18: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/18.jpg)
3. vi 문서 편집기(계속)
![Page 19: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/25.jpg)
3. vi 문서 편집기(계속)
- 데이터 입력 키보드의 ESC를 누른 후 소문자 i 를 입력 다음과 같은 C 프로그램 코드 입력
![Page 26: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/26.jpg)
3. vi 문서 편집기(계속)
- 데이터 저장
작성했던 문서를 파일로 저장한 후 종료하기
키보드의 Esc키를 누른 후 콜론(:), w, q를 입력한 후 엔터키 입력
![Page 27: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/33.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/34.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/37.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/38.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/39.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/40.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/41.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/42.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/43.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/44.jpg)
3. vi 문서 편집기(계속)
- 편집된 문서 실행결과
![Page 45: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/45.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/46.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/47.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/48.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/49.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/50.jpg)
3. vi 문서 편집기(계속)
데이터 치환 예1)
![Page 51: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/51.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/52.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/53.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/54.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/55.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/56.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/57.jpg)
3. vi 문서 편집기(계속)
3.2.15 문자열 탐색(1)
![Page 58: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/58.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/59.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/60.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/61.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/62.jpg)
3. vi 문서 편집기(계속)
3.2.17 그 밖의 유용한 편집 명령
![Page 63: UNIX vi editorcontents.kocw.net/KOCW/document/2014/dongguk/choyoungsuk...UNIX 명령어 입력상에서 vi 를 입력한 후 생성/ 편집할 파일명 을 붙여준다 EX) % vi hello.c](https://reader033.fdocuments.net/reader033/viewer/2022041614/5e39e822ac76ac65453b35c3/html5/thumbnails/63.jpg)
3. vi 문서 편집기(계속)
3.2.17 그 밖의 유용한 편집 명령