-
[week3] Shell script & MakefileComputer Science🖥️/System Programming 2021. 12. 6. 08:33
<Shell Script>
1. What is Shell?
: user와 os 사이의 Interface program
- window command prompt와 유사하다
- bash version: $/bin/bash -version (bash shell version 확인 명령어)
2. Redirection & Pipes (shell script를 위한 명령어)
- File descriptor(fd)
: open file에 대한 식별 번호
- 프로세스가 file이나 device에 접근하기 위해 사용된다.
- standard fd(0~2는 기본 설정)
stdin(0): standard input // keyboard
stdout(1): standard output //terminal
stderr(2): standard error output//error message
- Redirection
: standard file descriptor를 다른 파일에 관한 것으로 치환할 때 쓰이는 것
- input/ output redirection
- >(overwrite), >>(append)
- <(stdin) ( B < A : A 파일로부터 data 를 받아 B에 적겠다는 것)
- Pipe
: process간의 stdin, stdout을 연결하는 데에 사용
-connect process
ex. cat test.txt | grep "a"
원래 cat은 결과물이 stdout으로 보여져야 하지만 stdin 으로 바꿔 "a"로 가는 것
3. Shell Programming
- 쉘 프로그래밍엔 두가지 방법이 존재한다.
- Line command //한줄씩 프롬프트에 command 입력
- Execute a shell script // 파일 입력
4. Shell script
: Shell script는 commands를 쓰는 text file이다.
5. Grammars of Shell
- Variable
: String, number, environment, parameter
- Condition
: Boolean
- Condition control
: if, elif, for, while, until, case
- List
- Function
- Reversed command
<Makefile>
1. Why Makefile?
: compile을 자동화 할 수 있는 makefile
- 코드를 모아 간단히 컴파일 하도록 돕는다.
- 소스 파일들간의 관계 표현이 가능하다.
- 각 파일의 엽데이트를 위한 명령어가 존재한다.
- changed file이 있으면 반영한다.
=> gcc -o test main.c test.c hello.c vs make
2. Rule
[Makefile의 작성 규칙]
target ... : prerequisites...
recipe
.......
- target: 프로그램에 의해 생성되는 파일의 이름 / make command에 의해 수행할 작업의 이름
- prerequisite : target을 만들기 위해 필요한 input(parameter)으로써 사용되는 파일
- recipe: 실제 수행할 내용
ex)
#Makefile hello: main.o hello.o gcc -o hello main.o hello.o main.o: main.c gcc -c main.c hello.o: hello.c gcc -c hello.c clean: rm *.o hello
3. How make process?
process in make file 'Computer Science🖥️ > System Programming' 카테고리의 다른 글
[week4]File I/O (0) 2021.12.06