0. FD(File Descriptot) 란?
- 유닉스 운영체제에서는 모든 객체(정규 파일, 디렉토리, 소켓, 파이프 등)와 모든 장치는 모두 '파일'로 취급하여 관리한다.
간단하게는,
프로세스에서 실행되는 파일 테이블의 인덱스 값이라고 보면 된다.
프로세스가 파일을 열게 되면(접근하게 되면), 파일 디스크럽터 숫자 중 사용하지 않는 가장 작은 값을 할당해준다.
기본적으로 0, 1, 2 는 표준 입력, 표준 출력, 표준 에러로 할당 되어 있다.
(표준 입력, 표준 출력, 표준 에러는 기본적으로 열려 있다.)
알기 쉽게 0번은 입력, 1번은 출력, 2번은 에러메시지 라고 생각할 수 있겠다.
0번을 사용했을 때, 경우에 따라서 1번 혹은 2번이 실행된다.
0 : 표준 입력
- 리눅스에서는 주로 키보드를 통해 사용한다.
1 : 표준 출력
- 모니터를 통해 출력되는데, Redirection을 통해 터미널 출력이 아닌 파일에 저장이 가능하다.
2 : 표준 에러
- 표준 출력과 비슷하지만, 에러가 발생했을 경우 터미널에 출력된다.
마찬가지로 터미널 출력이 아닌 파일에 저장이 가능하다.
1. Redirection
리다이렉션(Redirection)은 '>' 혹은 '>>' 으로 사용하며,
FD와 연관지어 예를 들자면,
(base) [root@inno_tech /]# LS 2> test_rd
(base) [root@inno_tech /]# vi test_rd
bash: LS: 명령을 찾을 수 없습니다...
유사한 명령: 'ls'
~
.
.
.
위에서 보여준 예시는 표준에러를 test_rd에 저장 하도록 한 내용이다.
LS라는 명령어가 에러가 났을 경우 test_rd 라는 파일에 내용을 저장하도록 한 것이다.
반대로 1번을 사용했다면 어떻게 될까?
다음 예시를 보자.
(base) [root@inno_tech /]# LS 1> test_rd
bash: LS: 명령을 찾을 수 없습니다...
유사한 명령: 'ls'
위 처럼 에러 메시지가 터미널에 출력된다.
파일은 생성되지만, 아무 내용도 저장되지 않는다.
기본적으로 1은 빼고 써도 똑같이 동작한다.
그렇다면 '>' 와 '>>'의 차이점은 무엇일까?
'>' 와 '>>' 모두 파일이 없다면 파일을 생성하여 명령어의 대한 내용을 저장한다.
둘의 차이점은
'>' 는 덮어쓰기 와 같고,
'>>'는 붙여쓰기 와 같다.
'Linux' 카테고리의 다른 글
[Linux] link (0) | 2022.10.28 |
---|---|
[Linux] MariaDB 포트 변경 (0) | 2022.10.28 |
[Linux] /etc/profile, .bash_profile, .bashrc (0) | 2022.10.28 |
[Linux] 변수 선언 (0) | 2022.10.28 |
[linux] WebLogic 설치 (0) | 2022.10.28 |