"유닉스에서 모든 것은 파일이다" - 유닉스프로그래밍 수강하면서 기억나는 말... ㅋㅋㅋ

리눅스를 찬찬히 공부하며 다시 정리해봅니다

 

1. 리눅스 디렉토리 구조

- linux file system hierarchy standard가 존재.

- 제일 상단에 root filesystem(/)가 있는 트리구조.

 

 

2. 디렉토리 종류 및 역할

- /(root) : 최상위 디렉토리

- /bin (/usr/bin) : 리눅스 기본 명령어

- /sbin (/usr/sbin) : 리눅스 시스템 관리용 명령어

- /usr : 애플리케이션, 유틸리티 설치 디렉토리

- /etc : 시스템 설정파일

- /var : 비교적 변동이 잦은 파일 ( /var/log- 로그파일 존재 )

- /tmp : 임시디렉토리

- /proc : 메모리에서 동작중인 프로세스들 정보를 확인

- /sys : 시스템 하드웨어 정보나 가상 파일 시스템들

- /root : 시스템 최고 관리자인 root 사용자의 홈 디렉토리

- /home : 일반 사용자들의 홈 디렉토리 ( ubuntu가 보통 여기 존재 /home/ubuntu 익숙.....)

- /dev : 하드웨어 장치 파일

- /lib : 라이브러리

 

 

3. 기본적인 리눅스 명령어

- pwd : 현재 작업중인 디렉토리 [present working directory]

- cd : 디렉토리 이동 [change directory]

- ls : 위치한 디렉토리의 파일목록 표시 

- mkdir : 디렉토리 생성

- cp : 파일을 복사

- mv : 파일을 이동

- rm : 파일을 제거

- cat : 파일의 내용을 화면에 출력하거나 파일을 만드는 명령어 [ concatenate ]

- chmod : 권한 변경 (rwxrwxrwx)  

- touch : 파일이나 디렉토리의 최근 업데이트 일자를 현재시간으로 변경

- find : 특정 파일이나 디렉토리를 검색한다. [ find 경로  -name 파일명 ]

- 파이프 란 ?

 # 간단하게 말하자면 한 프로세스의 출력이 다른 프로세스의 입력으로 들어가서

    두개의 프로세스가 inter-communication 을 하는 것이다.

 # FIFO basis

 # half duplex ( full duplex를 굳이 하자면 가능 하기는 하지만 이를 권고)

    (보내는 쪽은 보내기만, 받는 쪽은 받기만)

 # 공통 부모인 프로세스나 친척들 끼리 파이프를 사용가능 (parent-child뿐만 아니라 child-child도 가능(공통조상에서        파이프를 열였을 경우))

 # 공통조상이 아닌 프로세스들 끼리 파이프와 같은 기능을 사용하고 싶을 때는 FIFO 를 이용

 #  #include<iostream>

     int pipe(int filedes[2]);

 # 프로세스가 파이프를 통해 read를 하려고 하는 경우

     -1. pipe is not empty : read를 하고 즉시 리턴 한다. (리턴값은 읽은 데이터의 바이트 수)

     -2. pipe is empty : read가 block된다. ( write를 통해서 들어올 때까지 기다림)

 # 프로세스가 파이프를 통해 write를 하려고 하는 경우

     -1. pipe is not full : 즉시 write하고 리턴한다.

     -2. pipe is full : 빈(여유)공간이 만들어 질때 까지 block(기다림)

 # 파이프의 한쪽이 closed(닫힌경우)

     -1 . (write 가 닫혔을 때) read의 경우 데이터 파일을 다 읽고 나면 0을 리턴한다.

     -2 . (read 가 닫혔을 때) write의 경우 write를 해도 read할 프로세스가 없다.

          커널이 SIGPIPE라는 시그널을 보낸다.(write를 실행한 프로세스에게)

                (default 값은 죽는것.)

          시그널을 무시하거나 잡아서(catch) 핸들러를 수행하거나 할경우 -1을 리턴하고

          errno을 EPIPE로 셋팅한다.

 

+ Recent posts