프로그램 작성과 컴파일
gedit 문서 편집기
GNU의 대표적인 GUI 텍스트 편집기
GNOME 환경의 기본 편집기
gedit 메뉴 | |
파일 | 새로 만들기, 열기, 저장, 되돌리기, 인쇄 |
편집 | 입력 취소, 다시 실행, 잘라내기, 복사, 붙여넣기, 삭제 |
보기 | 도구모음, 상태표시줄, 전체화면, 강조모드 |
검색 | 찾기, 바꾸기, 줄로 이동 |
도구 | 맞춤법 검사, 오타가 있는 단어 강조, 언어 설정, 문서 통계 |
문서 | 모두 저장, 모두 닫기, 새 탭 그룹, 이전 문서 |
gcc 컴파일러
$ gcc [-옵션] 파일
c 프로그램을 컴파일. 옵션을 사용하지 않으면 실행파일 a.out를 생성.
-c 옵션 : 목적 파일 생성, -o 옵션 : 실행 파일 생성
단일 모듈 프로그램
코드의 재사용(reuse)이 어렵고, 여러 사람이 참여하는 프로그래밍이 어려움.
다중 모듈 프로그램
여러 개의 .c 파일들로 이루어진 프로그램. 일반적으로 복잡하며 대단위 프로그램인 경우에 적합.
(ex) main 프로그램과 copy 함수를 분리하여 별도 파일 작성
자동 빌드 도구
make 시스템
대규모 프로그램의 경우에는 헤더, 소스파일, 목적파일, 실행파일의 모든 관계를 기억하고 체계적으로 관리하는 것이 필요.
make 시스템을 이용하여 효과적으로 작업.
다중 모듈 프로그램을 구성하는 일부 파일이 변경 > 변경된 파일만 컴파일 하고, 의존관계에 따르파일만 다시 컴파일
메이크파일
실행파일을 만들기 위해 필요한 파일들. 그들 사이의 의존 관계이며 만드는 방법을 기술.
make 시스템
메이크파일을 이용하여 파일의 상호 의존 관계를 파악하여 실행파일을 쉽게 다시 만듬.
$ make [-f 메이크파일]
make 시스템은 메이크파일(makefile 혹은 Makefile)을 이용하여 보통 실행파일을 빌드.
옵션을 사용해 별도의 메이크파일 지정 가능.
구성
목표(target) : 의존리스트(dependencies), 명령리스트(commands)
gdb 디버거
gdb 디버거(GNU debugger)
가장 대표적인 디버거.
주 기능 : 정지점(breakpoint) 설정, 한줄씩 실행, 변수 접근 및 수정, 함수 탐색, 추적(tracing)
gdb 사용을 위한 컴파일 : -g 옵션을 이용하여 컴파일
gdb 실행
$ gdb [실행파일]
gdb 디버거는 실행파일을 이용하여 디버깅 모드로 실행.
gdb 기능 | |
소스보기 l(ist) | l[줄번호] 지정된 줄을 프린트 l[파일명]:[함수명] 지정된 함수를 프린트 set listsize n 출력되는 줄의 수를 n으로 변경 |
정지점 b(reak), clear, d(elete) | b[파일:]함수 파일의 시작부분에 정지점 설정 b n n번 줄에 정지점을 설정 b +n 현재줄에서 n개 줄 이후에 정지점 설정 b -n 현재줄에서 n개 줄 이전에 정지점 설정 info b 현재 설정된 정지점을 출력 clear 줄번호 해당 정지점을 삭제 d 모든 정지점을 삭제 |
프로그램 수행 | r(un) 인수 명령줄 인수를 받아 프로그램 수행 k(ill) 프로그램 수행 강제 종료 n(ext) 멈춘 지점에서 다음줄을 수행하고 멈춤 s(tep) n과 같은 기능 함수호출 시 함수내부로 진입 c(ontinue) 정지점을 만날 때까지 계속 수행 u 반복문에서 빠져나옴 finish 현재 수행하는 함수의 끝으로 이동 return 현재 수행중인 함수를 빠져나옴 quit 종료 |
변수 값 프린트 p(rint) | p [변수명] 해당변수값 프린트 p 파일명::[변수명] 특정 파일의 전역변수 프린트 p [함수명]::[변수명] 특정 함수의 정적 변수 프린트 info locals 현재 상태의 지역변수 리스트 |
이클립스 통합개발 환경
다양한 언어를 지원하는 통합개발환경.
vi 에디터
기본 텍스트 에디터로 매우 강력한 기능을 가지나 배우는데 상당한 시간과 노력 필요.
명령모드 / 입력모드
마지막 줄 모드
:wq : 작업 내용을 저장하고 종료
:q : 아무런 작업을 하지 않은 경우의 종료
:q! : 작업 내용을 저장하지 않고 종료
vi 내부 명령어
원하는 위치로 이동하는 명령 | 커서 이동 | h,← : 한 칸 왼쪽 j,↓ : 한 칸 아래쪽 k,↑ : 한 칸 위쪽 l,→ : 한 칸 오른쪽 BACKSPACE : 왼쪽으로 한 칸 SPACE : 오른쪽으로 한 칸 - : 이전 줄의 처음 + : 다음 줄의 처음 RETURN : 다음 줄의 처음 0 : 현재 줄의 맨 앞 $ : 현재 줄의 끝 ^ : 현재 줄의 첫 글자 W : 다음 단어의 첫 글자 B : 이전 단어의 첫 글자 |
화면 이동 | ^F : 한 화면 아래로 ^B : 한 화면 위로 ^D : 반 화면 아래로 ^U : 반 화면 위로 |
|
특정 줄 이동 | nG : n번쨰 줄로 이동 1G : 첫 줄로 이동 G : 마지막 줄로 이동 :n : n번째 줄로 이동 |
|
탐색(search) | /탐색패턴 :forward 탐색 ?탐색패턴 : backward 탐색 |
|
입력 모드로 전환하는 명령 | 입력모드 전환 | i : 커서 위치 앞에 삽입 a : 커서 위치 뒤에 삽입 I : 현재 줄의 앞에 삽입 A : 현재 줄의 뒤에 삽입 o : 현재줄의 아래에 전개 O : 현재 줄의 위에 전개 |
수정 혹은 삭제 명령 | 현재 커서 중심 수정 |
r : 단지 한 글자만 변경 R : 입력하는 대로 겹쳐 쓰기 s : 현재 글자 삭제 삽입 상태 C : 커서로부터 줄 끝까지 변경 cc : 현재 줄 전체를 변경 cw : 현재 단어를 삭제하고 변경 |
삭제 | x : 커서가 있는 문자 지우기 X : 커서의 왼쪽 문자 지우기 D : 커서부터 줄끝까지 지우기 Dd : 현재 줄의 전체를 지우기 :n,m d : n~m번쨰 줄 삭제 |
|
대치, 수행취소 / 재수행 | 대치 명령 | 각줄의 해당돠는 첫번쨰 단어만 대치 :s/패턴/스트링 : 현재 줄에서 대치 :n,m,s/패턴/스트링 : 지정된 줄 범위에서 대치 :n s/패턴/스트링 : 지정된 줄(n)에서 대치 s/패턴/스트링/g : 해당되는 모든 단어 대치 |
수행취소 / 재수행 |
u : 방금 전 수행 내용 취소(undo) U : 현재 줄 수행 내용을 취소, 방금 전 수행 내용을 반복(redo) |
|
복사 / 붙이기 | 줄 내용 복사 (copy) |
nY : 현재 줄에서부터 n개의 줄 복사 :n,m y: n번쨰 줄에서 m번째 줄까지를 버퍼에 복사 |
마지막으로 삭제 / 복사한 내용을 붙이기 (put) | p: 버퍼 내용을 커서의 뒤(혹은 아래)에 삽입 P: 버퍼 내용을 커서의 앞(혹은 위)에 삽입 |
|
파일에 저장 및 끝내기 | 파일에 저장 | :w : 현재 파일에 저장 :w 파일이름 : 지정된 파일에 저장 |
파일에 저장/ 끝내기 |
:wq : 현재 파일에 저장하고 종료 ZZ : 현재 파일에 저장하고 종료 |
|
저장하지 않고 끝내기 | :q : 아무런 작업도 하지 않은 경우 종료 :q! : 작업 내용을 저장하지 않고 종료 |
|
기타 | 다른 파일 편집 | :e 파일이름 : 현재 파일 대신에 주어진 파일 열기 :e# 이전 파일을 다시 열기 |
줄 번호 붙이기 | 줄 번호를 붙이거나 없애기 :set number : 줄번호 붙이기 :se nu : 줄번호 붙이기 :set nonumber :줄번호 없애기 :se non :줄번호 없애기 |
|
쉘 명령어 수행 | 편집기 내에서 쉘 명령어 수행 :!ls :!cat |
'정리 > Linux' 카테고리의 다른 글
[LINUX] 유틸리티 (0) | 2023.05.21 |
---|---|
[LINUX] 인터넷과 원격 접속, 파일 유틸리티 (0) | 2023.05.14 |
[LINUX] 쉘과 명령어 (0) | 2023.05.07 |
[LINUX] 파일 사용 (0) | 2023.04.09 |
[LINUX] 기본 명령어 (0) | 2023.04.02 |
댓글