Search
🔵

bb8.1_1__2_1. title: 익명 파이프(Anonymous pipe), 리다이렉션(Redirection), append 모드 등의 본질은 결국 파일 디스크립터 연결이다.

생성
🚀 prev note
♻️ prev note
bb8.1_1__2. title: 유닉스(UNIX) 시스템과 유닉스 계열(‣) 시스템에서는 1973년부터 파일에 접근할 때 파일 디스크립터(File descriptor)라는 추상적인 핸들을 이용한다. 이를 기준삼아 다양한 추상화 수준을 엿볼 수 있다. 우리에게 가장 익숙한 파일 포인터는 파일 디스크립터를 애플리케이션 프로그래머가 사용하기 쉽도록 추상화한 것이다. 파일 디스크립터는 각 프로세스에 의해 열린 파일들을 저장하는 구조체 배열인 파일 디스크립터 테이블을 추상화한다. 파일 디스크립터 테이블은 모든 프로세스에 의해 열린 파일들은 저장하는 파일 테이블(File table)을 추상화한다. 파일 테이블은 실제로 파일의 내용을 포함하고 있는 아이노드 테이블(Inode table)을 추상화한다.
bc9.3__1.1_1. title: 모든 것이 파일인 유닉스 시스템에서 read() 혹은 write() 작업을 수행할 때 EoF 이라는 개념이 있다는 사실에 주의하라.
bb8.1.1_1. title: 1971년 세계 최초의 셸(Shell)은 첫 유닉스(UNIX) 운영체제에 탑재된 톰프슨 셸(Thompson shell)이다. 리다이렉션(‣)과 파이프(‣)문법을 만든 셸이다.
🚀 next note
♻️ next note
14 more properties
find ~ | wc -l
Bash
복사
파이프: find ~ 의 표준 출력을 wc -l 명령의 표준 입력으로 연결
strace ls 2> strace.txt
Bash
복사
리다이렉션: strace ls 의 표준 에러(파일 디스크립터 2번)를 strace.txt 파일로 연결
cat > hello.txt hello ^D
Bash
복사
리다이렉션: 표준 입력을 hello.txt 파일로 연결. ^D는 EoF를 의미한다.
tar c . | zstd -T0 -c > hello.tar.zst
Bash
복사
현재 디렉토리를 아카이빙한다. 아카이빙된 파일을 압축하기 위해 gzip에 연결한다(참고1:UNIX시스템에서 아카아빙과 압축은 다르다). -T를 이용해 멀티쓰레딩하고, -c를 이용해 파일로 리다이렉션한다. 명령어 모르겠으면 man을 보자.
zstd -d -T0 -c hello.tar.zst | tar x
Bash
복사
압축 해제도 마찬가지다.
parse me : 언젠가 이 글에 쓰이면 좋을 것 같은 재료들.
1.
None
from : 과거의 어떤 생각이 이 생각을 만들었는가?
2.
EoF는 파일이 끝났다는 것을 의미하는데, EoF가 파일 디스크립터를 이용해 파일 읽기 명령을 수행하는 read()함수와 어떤 연관이 있는지를 이해하기 위해서는 앞의 글을 참고하라.
supplementary : 어떤 새로운 생각이 이 문서에 작성된 생각을 뒷받침하는가?
1.
None
opposite : 어떤 새로운 생각이 이 문서에 작성된 생각과 대조되는가?
1.
None
to : 이 문서에 작성된 생각이 어떤 생각으로 발전되고 이어지는가?
1.
None
참고 : 레퍼런스
1.