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 명령어는 날짜는 출력해준다.