메뉴 건너뛰기

(*.168.0.1) 조회 수 256 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기
Extra Form

유닉스 파일 디스크립터 : > /dev/null 2>&1

유닉스 가이드를 읽던 중 아래와 같은 예제 구문이 나왔다.

$cat notexist > /dev/null 2>&1

저 /dev/null 2>&1 형태는 예전에 크론탭 동작하는 쉘에서도 언뜻 본 기억이 있는데,..
정확히 무슨 뜻일까?
 

해결책:
위 구문을 이해하기 위해 일단 유닉스의 파일 디스크립터(File Descriptor)에 대해 알아보자.

유닉스 프로그램이 파일에 뭔가 작업을 하기 위해서는 일단 파일을 열어야 한다.
이 때, 유닉스는 열려있는 파일을 구분하기 위해 파일에 간단한 숫자를 붙인다.
이 숫자를 파일 디스크립터라고 하고, 0부터 9까지 존재한다.

유닉스 프로그램은 기본적으로 아래 3개의 "파일"을 열어둔다.
- Standard Input (표준 입력, STDIN, 키보드)
- Standard Output (표준 출력, STDOUT, 스크린)
- Standard Error (표준 에러, STDERR, 스크린에 뿌려질 에러 메세지)

열려있는 표준 파일은 구분을 위해 숫자(파일 디스크립터)를 할당받으며, 각각 아래와 같다.
STDIN = 0, STDOUT = 1, STDERR = 2 

0, 1, 2 외의 파일 디스크립터(3~9)는 추가로 열리는 다른 파일을 구분하기 위해 사용된다.


리다이렉션(redirection, 재지향)은 열려있는 파일의 입출력을 다른 파일로 변활할 때 사용된다.
리다이렉터는 ">"로 나타내며, 쉽게, "모든 출력은 꺽쇠의 방향으로!" 라고 이해하면 된다. 
 

라다이렉터는 파일 디스크립터와 함께 사용될 수 있으며, 몇 가지 예를 들면 아래와 같다.

  > file
      표준 출력을 파일로 보낸다.
  1> file
      위와 동일하다. > 앞의 1은 표준 출력에 대한 파일 디스크립터를 나타낸다. 
  2> file 
      에러 출력을 file 로 보낸다.
  < file
      file로부터 표준 입력을 받는다.
  0< file
      위와 동일하다. < 앞의 0은 표준 입력 파일 디스크립터를 나타낸다.
  i>&j
      
i번 파일 디스크립터를 j번 파일 디스크립터로 리다이렉트한다.
      즉, i가 가리키는 파일의 모든 출력은 j가 가리키는 파일로 보낸다. 


따라서, 위 문제점에서의 구문은 아래와 같은 형태로 정리될 수 있다.
$cat notexist > /dev/null 2>&1


cat notexist : notexist 파일의 내용을 조회해서,
> : (표준 출력으로) 나오는 결과를 다음 파일로 보낸다.
/dev/null
 : 유닉스의 블랙홀과 같은 파일이다. 이 파일을 모든 출력을 흡수한다. (보이지 않는다.)
2> : 에러 메세지가 발생할 경우에는, 즉 에러 출력을,
&1 : 1번 표준 출력 파일 디스크립터가 참조하고 있는 곳으로 보낸다.

즉, 조회한 내용과 발생한 에러 모두 표시하지 않겠다는 뜻이었다.
 

 

List of Articles
번호 제목 날짜 조회 수
22 ps에서 pid 목록만 가져와서 kill하기 ps에서 pid 목록만 가져와서 kill하기 /* * http://sosal.kr/ * made by so_Sal */ 1. 원하는 프로세스 목록만 가져오기 - ps, grep 2. 프로세스 목록에서 pid만... 2023.06.16 820
21 05. 프로세스 스케줄러 2 05. 프로세스 스케줄러 2 (실습과 그림으로 배우는 리눅스 구조) ​ 컨텍스트 스위치 논리 CPU 상에서 동작하는 프로세스가 다른 프로세스로 바뀌는 것을 말함 기... 2023.06.16 301
20 CentOS 7 / SSH / 포트 변경하는 방법 리눅스 서버에 SSH 접속을 하는 공격이 있습니다. SSH Brute Force라고 하는데, 여러 아이디와 비밀번호로 로그인을 시도하는 공격입니다. 이 공격을 방어하는 방... file 2023.04.12 323
19 CentOS 7 / ntp로 시간 동기화 하는 방법 리눅스가 OS인 서버의 시간과 실제 시간을 동기화하는 방법 중의 하나는 ntp를 이용하는 것입니다. CentOS 7에 ntp를 설치하고 설정하는 방법을 요약합니다. ntp... file 2023.04.12 681
18 CentOS 7 / ReHat 7 / ProLinux 7 sendmail 설치 및 세팅 https://yumserv.tistory.com/186 https://yjshin.tistory.com/entry/CentOS-7-%EB%A9%94%EC%9D%BC-%EB%B3%B4%EB%82%B4%EA%B8%B0-SMTP-%EC%84%A4%EC%B9%98-%EA%B0... 2023.03.21 359
17 EOS,EOL,EOD,EOST,EOSL이란? EOS,EOL,EOD,EOST,EOSL이란? 각기 의미는 다르지만 하나의 공통된 것을 공유하고 있습니다. 벤더사(제조사)에서 만드는 '제품'에 대한 '유통 수명'에 관련된 내용... 2023.03.06 632
16 BYOL : Bring Your Own License BYOL이란 무엇입니까? BYOL은 Bring Your Own License(자체 라이선스 가져오기)의 약자입니다. Oracle BYOL을 사용하면 고객이 현재 보유하고 있는 라이선스를 동... 2023.03.06 290
15 리눅스에서 커널 버전, uname -a , cat /proc/version root@jongroinf-aiinfo:~# uname -a Linux jongroinf-aiinfo 5.4.0-144-generic #161~18.04.1-Ubuntu SMP Fri Feb 10 15:55:22 UTC 2023 x86_64 x86_64 x86_64 G... 2023.03.05 312
14 Ubuntu 20.04 LTS (Focal Fossa) 데스크탑 달라진 점과 간단 후기 우분투 20.04 LTS (Focal Fossa) 데스크탑 달라진 점과 간단 후기 2020년 4월 23일에 우분투 20.04 LTS 버전이 릴리즈 됩니다. 저는 12.04 LTS 가 나왔던 대학생 ... 2020.06.22 346
13 Ubuntu 20.04 LTS (Focal Fossa) 데스크탑 설치 후 해야하는 것들 우분투 20.04 LTS (Focal Fossa) 데스크탑 설치 후 해야하는 것들 1. Google Chrome 설치대한민국 만민의 인터넷 브라우저 Chrome 을 설치해줍니다. 우분투에는 ... 2020.06.22 343
12 Ubuntu release 일람표 버전 번호코드명배포일[2]지원 기간[3]커널 버전데스크톱서버4.10Warty Warthog2004년 10월 20일2006년 04월 30일2.6.85.04Hoary Hedgehog2005년 04월 08일2006년... file 2020.06.20 295
11 UMASK 사용법 UMASK 사용법 unix 의 파일 사용권한 --&gt; r the file is readable --&gt; w the file is writable --&gt; x the file is executable * the indicated permission is not... file 2018.12.09 348
10 Ubuntu 18.04 한글 설정 Ubuntu 18.04 한글 설정 1.설치 및 한글 입력 추가설치 sudo apt-get install ibus-hanul Settings – 지역 및 언어 – 입력 소스 + 버튼으로 Korean – hangul 추가... 2018.10.10 297
9 Ubuntu 18.04를 설치한 뒤에 해야 할 6가지 Ubuntu 18.04를 설치한 뒤에 해야 할 6가지 오늘은 이번에 출시 된 우분투 18.04를 설치하고 진행해야 될 6가지를 적어보려합니다. 이 문서를 적으려고 사전 정보... 2018.10.10 308
8 Auto root Login 설정 - Ubuntu 18.04 Auto root Login 설정 - Ubuntu 18.04 1. 설정 환경 Ubuntu 18.04 LTS 64bit, root user 2. root Password 설정 passwd tool을 이용한다. # sudo passwd root Ent... 2018.10.10 462
7 Micro VAX MicroVAX MicroVAX 3600 (left) with disk drive above and printer on right The MicroVAX was a family of low-costminicomputers developed and manufactured ... 2017.03.04 337
6 Linux, Unix, AIX 명령어 비교 대분류 조회 항목 AIX LINUX(Redhat) User Accounts Create new user mkuser useradd   Delete user rmuser userdel General Commands Administrator smit linux... file 2017.02.24 385
5 Ubuntu - 우리가 함께 있기에 내가 있다 우리가 함께 있기에 내가 있다 세상의 모든 아이는 특별하답니다. 나와 내 아이의 행복에서 한 걸음 더 나아가 '우분투'의 마음으로 우리 '함께' 따뜻한 세상을 ... file 2016.05.28 313
» 유닉스 파일 디스크립터 : > /dev/null 2>&1 유닉스 파일 디스크립터 : &gt; /dev/null 2&gt;&amp;1 유닉스 가이드를 읽던 중 아래와 같은 예제 구문이 나왔다. $cat notexist &gt; /dev/null 2&gt;&amp;1 저 /dev/null 2... 2016.05.10 256
3 ab -n 1000 -c 3 http://home.aiinfo.co.kr/ #ab -n 1000 -c 3 / This is ApacheBench, Version 2.3 &lt;$Revision: 1638069 $&gt; Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Lic... 2016.04.05 296
목록
Board Pagination Prev 1 2 3 Next
/ 3