23.07.30 최초 작성
시스템 콜을 이용해 System Program을 작성하는 것
- System Program : 시스템을 구성하는 자원을 다루거나 응용 프로그램에 서비스를 제공하는 프로그램
- System Call Interface : 시스템 프로그램이 제공하는 기능을 사용하기 위한 통로로 커널의 모듈을 직접 호출 함
- Library Function : 미리 컴파일 된 함수로 System Call을 통해 커널을 호출 함
| 명령어 | 기능 | 주요 옵션 | 예제 |
|---|---|---|---|
| ps | 현재 실행중인 프로세스의 정보 출력 | -u, -ef | ps -ef |
| ps -u (사용자 ID) | |||
| kill | 프로세스 강제 종료 | -9 | kill (pid) |
| 명령어 | 기능 | 주요 옵션 | 예제 |
|---|---|---|---|
| telnet | 유닉스시스템에 접속 | telnet velog.io | |
| logout | 유닉스시스템에 접속해제 | logout | |
| exit | 유닉스시스템에 접속해제 | exit |
| 명령어 | 기능 | 주요 옵션 | 예제 |
|---|---|---|---|
| pwd | 현재 디렉토리 경로 출력 | pwd | |
| ls | 현재 디렉토리 내용 출력 | - a : 숨김파일 출력 | ls -a/tmp |
| -l 파일 상세정보 출력 | ls - l | ||
| cd | 현재 디렉토리 변경 | cd /tmp | |
| cd ~pigeon | |||
| cp | 파일 / 디렉토리 복사 | cp a.txt b.txt | |
| -r : 디렉토리 복사 | cp -r dir1 dir2 | ||
| mv | 파일 / 디렉토리 이름변경 & 이동 | mv a.txt b.txt | |
| mv a.txt dir1 | |||
| rm | 파일 / 디렉토리 삭제 | rm a.txt | |
| -r : 디렉토리 삭제 | rm -r dir1 | ||
| mkdir | 디렉토리 생성 | mkdir dir1 | |
| rmdir | 빈 디렉토리 삭제 | rmdir dir1 | |
| cat | 파일 내용 출력 | cat a.txt | |
| more | 파일 내용 쪽단위로 출력 | more a.txt | |
| chmod | 파일 접근권한 변경 | chmod +x a.exe | |
| grep | 패턴 검색 | grep asdf a.txt |
| 명령어 | 기능 | 주요 옵션 | 예제 |
|---|---|---|---|
| su | 사용자 계정 변경 | su | |
| -:변경할 사용자의 환경 초기화 파일 실행 | su - | ||
| su - kim | |||
| tar | 파일/디렉토리 묶기 | -cvf : tar파일 생성 | |
| -tvf : tar파일 내용 보기 | |||
| -xvf : tar파일 풀기 | |||
| whereis | 파일 위치 검색 | whereis ls | |
| which | 파일 위치 검색 | which ls |
gcc [options] filename
-c : object file만 생성
-o : excution file name 지정
(Target) : (Dependencies)
(Recipe)
clean :
rm -f *.o
rm -f $(TARGET)
make clean
Build로 생성된 파일들 삭제하는 규칙
CC = gcc
CFLAGS = -g -Wall
OBJS = main.o foo.o bar.o
TARGET = app.out
$(TARGET): $(OBJS)
$(CC) -O @ $(OBJS)
main.o : foo.h bar.h main.c
foo.o : foo.h foo.c
bar.o : bar.h bar.c
정리가 잘 된 글이네요. 도움이 됐습니다.