표준 파일 디스크립터
: 리눅스 시스템은 모든 개체를 파일로 다룬다. 리눅스는 파일 디스크립터를 사용하여 각 파일 개체를 식별한다.
디스크립션 | 약어 | 설명
0 | STDIN | 표준입력 |
1 | STDOUT | 표준출력 |
2 | STDERR | 표준에러 |
STDIN
: STDIN 파일 디스크립터는 셸의 표준 입력을 의미한다. 터미널에서 표준 입력은 키보드를 뜻한다.
cat 명령어만 입력할 경우 STDIN에서 입력을 받아들인다.
cat
hello
hello
world
world
입력 리다이렉션 기호(<)를 사용하면 리눅스는 표준 입력 디스크립터를 리다이렉트가 가리키는 파일로 바꾼다.
cat 명령어가 STDIN이 아닌 다른 파일로부터 입력을 받을 수 있도록 아래와 같이 사용할 수 있다.
cat < hello
helloworld!
STDOUT
: STDOUT 파일 디스크립터는 셸의 표준 출력을 의미한다. 터미널에서 표준 출력은 모니터를 뜻한다.
출력 리다이렉션을 사용하여 파일로 리다이렉트 할 수 있다.
df -h > dffile
cat dffile
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.5G 8.7M 1.5G 1% /run
/dev/mapper/rl-root 48G 1.1G 44G 3% /
/dev/sda1 920M 173M 684M 21% /boot
/dev/mapper/hk-stack2 974M 24K 907M 1% /test/stack
/dev/sda3 952M 7.0M 945M 1% /boot/efi
/dev/mapper/hk-stack 12G 120M 12G 1% /test/stack
tmpfs 768M 0 768M 0% /run/user/0
> 을 사용하면 파일을 덮어쓰고, >>을 사용하여 데이터를 추가할 수 있다.
echo "hello world!" >> dffile
cat dffile
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.5G 8.7M 1.5G 1% /run
/dev/mapper/rl-root 48G 1.1G 44G 3% /
/dev/sda1 920M 173M 684M 21% /boot
/dev/mapper/hk-stack2 974M 24K 907M 1% /test/stack2
/dev/sda3 952M 7.0M 945M 1% /boot/efi
/dev/mapper/hk-stack 12G 120M 12G 1% /test/stack
tmpfs 768M 0 768M 0% /run/user/0
hello world!
STDERR
: 셸은 STDERR 파일 디스크립터를 사용하여 오류 메시지를 처리한다.
STDERR 파일 디스크립터는 기본적으로 STDOUT 파일 디스크립터와 같은 곳을 가리킨다.
하지만 STDOUT를 리다이렉션 했을 때 STDERR까지 자동으로 리다이렉트 되지는 않는다.
# 오류 리다이렉트
ls -al stack 2> study
cat study
ls: cannot access 'stack': No such file or directory
/dev/null
: Null 파일 표준 위치
Null 파일은 아무 것도 포함하지 않은 파일이다. 셸이 널 파일로 보내는 모든 출력은 저장되지 않으며 따라서 없어진다.
ls -al > /dev/null
cat /dev/null
위 방법을 이용하면 파일을 삭제하지 않고 기존 파일 내용을 삭제할 수 있다.
cat /dev/null > study
cat study
'시리즈 > Linux 기초 다지기 2023 (개편 예정) - 시리즈' 카테고리의 다른 글
리눅스 기초 다지기 - 37. sed (0) | 2025.03.13 |
---|---|
리눅스 기초 다지기 - 36. editor (vi, nano) (0) | 2025.03.13 |
리눅스 기초 다지기 - 커맨드 익숙해지기(cat, find, grep, watch, which, whatis) (0) | 2025.03.13 |
리눅스 기초 다지기 - 34. ps (0) | 2025.03.13 |
리눅스 기초 다지기 - 33. nmon (0) | 2025.03.13 |