diff --git a/README.md b/README.md index cbe59424354fbae7b9ee0bb3689b0eabbeac179f..95501db262a6193673b4e4e1fb003505401a91bf 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,79 @@ > * $wc : word count의 약자로 어떠한 것에 대해 단어 개수를 세어준다. +## lesson02 +1. 퍼미션에서 제일 앞에 기호 +> * 퍼미션에서 제일 앞의 기호는 종류를 나타낸다. +> * 여러 종류가 있는데 그 중 4가지만 보면 아래와 같다. +>> 1. l : simbolick link +>> 2. d : directory +>> 3. c : character 디바이스 +>> 4. b : block 디바이스 -## Lecture 2 +2. 메세지 보내기 +> * $wall ## 명령어는 모든사람에게 ##이란 메시지를 보낼 수 있게 해준다. +> * $write name ## 명령어는 name이란 사람에게 ##이란 메세지를 보내준다. +> * $mesg n : 나에게 오는 메세지를 받지 않을 수 있도록 해준다. -## Lecture 3 +3. $man 명령어 사용 +> * $man 명령어는 어떤것에 대한 메뉴얼 확인을 할 때에 사용한다. + +4. $ps 명령어 사용 +> * $ps : 실행중인 프로세스들을 출력해준다. + +5. 여러 파일들 위치 +> * /var/log tail -200 auth.log 로 이동하여 .log파일을 살펴보면 root에 로그인을 시도했다 등의 기록들을 볼 수 있다. +> * /usr/include 안에 들어가면 우리가 c언어에서 include 하는 것들을 상세히 볼 수 있다. (예를 들어 stdio.h 등이 있다.) + +6. vi editor 사용 팁 +> * 줄의 number를 보고 싶을 때에는 +" :set number "를 해주면 된다. +> * 특정 키워드를 찾고 싶을 때에는 " :/ ### " 으로 ###이란 키워드는 찾을 수 있다. + +7. input, output 스트림 +> * input, output 스트림은 버퍼로 이해하면 된다. +> * stdin, stdout, stderr 각각은 디바이스 이다. + +8. 실행파일 생성하기 +>> 1. 먼저 .c파일을 생성해야 하는데 아래와 같은 코드의 hello.c 파일을 생성했다고 하자 +```c +#include<stdio.h> +int main() +{ + FILE *fout; + fout = fopen("output.txt", "w"); + fprintf(fout, "Hello World\n"); + fclose(fout); +} +``` +>> * 이 때 c 파일 생성시 file을 open하여 사용하고 마지막에는 꼭 fclose로 파일을 닫아 주어야 한다. +>> 2. 생성한 hello.c파일을 $cc hello.c 와 같이 cc명령을 이용하여 컴파일 한다. +>> 3. ./a.out 을 통해 생성한 실행파일을 실행시킨다. +> + 위에서 생성한 hello.c파일을 더 많이 쓰이는 방법으로 다시 생성한 코드는 아래와 같다. +```c +#include <stdio.h> +int main() +{ + int in_a; + fscanf(stdin, "%d", &in_a); + fprintf(stdout, "Hello stdout %d\n", in_a); + fprintf(stdout, "Hello stderr %d\n", in_a); +} +``` +> * 위와 같은 방식으로 코드는 일반적으로 더 많이 쓰이는 코드이며 stdout과 stderr이 구분되어 있는 것을 볼 수 있다. + +9. 다양한 리디렉션 사용법 +>1. 0< or < : stdin 을 나타내는 리디렉션 +>2. 1> or > : stdout 을 나타내는 리디렉션 +>3. 2> : stderr를 내보내는 리디렉션 +>4. \>> : 내용을 추가하는 리디렉션 (위의 세개는 내용을 덮어쓰지만 해당 리디렉션은 내용을 덮어쓰지 않고 추가한다.) +> * 예를 들어 $./a.out < in.txt > out.txt 2> err.txt 를 하게 되면 ./a.out의 input으로 in.txt란 파일을 넣고 out.txt에 stdout출력물을 저장시키고, err.txt에 stderr를 저장시키게 된다. +> * mort명령어를 사용하여 $more in.txt out.txt err.txt 로 세 개의 txt파일을 살펴보면 ./a.out에 input으로 전달된 내용과 stdout, stderr의 출력물들을 각각 하나씩 잘 보여준다. + +10. sleep 명령어를 사용하여 메세지 보내기 +> * $sleep 100; echo "message" : 100초 후에 메시지를 보낸다. +> * $kill %1 %2 를 하면 처음 명령과 두 번째 명령 즉, sleep 100이란 명령과 echo "message"란 명령 둘 다 종료시켜준다. + +11. date 명령어 +> * $date 명령어는 날짜는 출력해준다.