본문 바로가기

강의 정리/시스템 프로그래밍

시스템 프로그래밍 (3) 리눅스 소개 2 (vi 편집기까지만 정리)

1. 유닉스 환경에서의 프로그래밍

- 프로그램 편집: vi 편집기 사용

- 컴파일: gcc 컴파일러 사용

- 디버깅: gdb 디버거 사용

 

 

2. vi 편집기 사용방법

$ vi a.cpp : vi를 실행하며 창을 띄운다.

 

- vi 편집기의 두가지 모드

-> 편집 모드: 편집을 할 수 있는 모드

-> 명령어 모드: vi 명령어를 실행시킬 수 있는 모드

 

- vi 명령어 실행시 기본적으로 명령어 모드로 시작.

-> 명령어 모드>편집 모드 전환 명령어: i, o ,a

-> 편집 모드>명령어 모드 전환 명령어: ESC키

 

* 팁: 어느모드인지 모를때는 ESC키를 눌러서 명령어 모드로 전환하고 사용.

 

 

>> 명령어 모드에서의 명령어

 

- 명령어 모드>편집 모드 전환 명령어

-> i 명령어(insert): 커서 앞에서부터 편집을 시작.

-> a 명령어(append): 커서 뒤에서부터 편집을 시작.

-> o 명령어(open): 커서 다음 줄부터 편집을 시작.

 

- 커서 이동 명령: 커서는 명령어 모드에서 이동. <-H vJ ^K ->L을 누르는 순간 실행. 

- 라인 번호를 주고 그곳으로 커서를 이동시키려면: 명령어 모드에서) ":" + 원하는 라인 번호 입력. (미입력시 마지막으로)

 

- 삭제: 명령어 모드에서) 삭제. 현재 커서가 있는 곳을 기준으로 삭제가 실행.

-> 글자 삭제: x 명령어 - 커서가 있는 곳의 글자 하나 삭제.

-> 단어 삭제: dw 명령어(delete word) - 커서가 있는 곳으로부터 단어 끝까지의 삭제.

-> 라인 삭제: dd 명령어 - 커서가 있는 라인 전체를 삭제.

--> D 명령어 - 커서가 있는 곳부터 라인 끝까지 삭제.

 

- u 명령어(undo): 방금 삭제한 것을 되살린다.

- p 명령어(put): 방금 삭제한 것을 다른 곳에 붙여넣기 하려면? 커서 이동 명령어로 커서를 원하는 곳으로 이동 -> p 명령어 사용. 

+ 라인 전체를 복사+붙여넣기 = 원하는 라인으로 커서 이동 -> Y명령어(라인 전체 복사) -> 붙여넣기 할 라인으로 커서 이동 -> p 명령어로 붙여넣기. 

 

* ".": 방금 한 명령어의 반복.

* "%": (), {} 등의 짝이 맞는 괄호로 커서가 이동하는 명령어.

* 특정 패턴이 있는 곳으로 커서를 이동시키고 싶으면 = "/" + 찾고싶은 패턴. 제일 먼저 나오는 지점으로 이동되며 n을 입력하면 다음으로 넘어간다. N을 입력하면 위로 넘어가면서 탐색. 

 

- 편집이 끝난 파일을 '저장' + '나가기' = ":wq"

- 명령어 모드에서 ":"을 입력하면 커서가 화면 하단으로 이동. 

- 저장하지 않고 나가기 명령어: ":q!" (!의 의미: 수정했지만 저장하지 않고 나가는게 확실하다는 강조)

- 다른 이름으로 저장 명령어: ":w filename"

 

 

 

3. 프로그램 컴파일과 실행

컴파일은 gcc라는 컴파일러를 사용. 컴파일할 때 컴파일할 프로그램 파일명 명시.

$ gcc test.c