메뉴 건너뛰기

(*.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번 표준 출력 파일 디스크립터가 참조하고 있는 곳으로 보낸다.

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

 

  1. ps에서 pid 목록만 가져와서 kill하기

    ps에서 pid 목록만 가져와서 kill하기 /* * http://sosal.kr/ * made by so_Sal */ 1. 원하는 프로세스 목록만 가져오기 - ps, grep 2. 프로세스 목록에서 pid만 가져오기 - AWK (GAWK) 3. kill 명령어로 한번에 프로세스 종료하기 4. Shell script를 이용하...
    Date2023.06.16 Reply0 Views820
    Read More
  2. 05. 프로세스 스케줄러 2

    05. 프로세스 스케줄러 2 (실습과 그림으로 배우는 리눅스 구조) ​ 컨텍스트 스위치 논리 CPU 상에서 동작하는 프로세스가 다른 프로세스로 바뀌는 것을 말함 기본적으로는 타임 슬라이스를 다 소비했을 경우 발생 ​ 따라서 코드상에서 두 번의 함수콜이 있다...
    Date2023.06.16 Reply0 Views301
    Read More
  3. CentOS 7 / SSH / 포트 변경하는 방법

    리눅스 서버에 SSH 접속을 하는 공격이 있습니다. SSH Brute Force라고 하는데, 여러 아이디와 비밀번호로 로그인을 시도하는 공격입니다. 이 공격을 방어하는 방법은 여러가지가 있습니다. root 계정으로 로그인 못하게 하기 암호를 복잡하게 만들기 접속 가...
    Date2023.04.12 Reply0 Views323 file
    Read More
  4. CentOS 7 / ntp로 시간 동기화 하는 방법

    리눅스가 OS인 서버의 시간과 실제 시간을 동기화하는 방법 중의 하나는 ntp를 이용하는 것입니다. CentOS 7에 ntp를 설치하고 설정하는 방법을 요약합니다. ntp 설치yum install ntp동기화할 서버 주소가까운 곳에 있는 시간 서버를 사용하는 게 좋습니다. (...
    Date2023.04.12 Reply0 Views681 file
    Read More
  5. No Image

    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%80%EC%9D%B4%EB%93%9C SMTP 메일 서버 Port 오픈 [root@test ~]# firewall-cmd --zone=public -...
    Date2023.03.21 Reply0 Views359
    Read More
  6. No Image

    EOS,EOL,EOD,EOST,EOSL이란?

    EOS,EOL,EOD,EOST,EOSL이란? 각기 의미는 다르지만 하나의 공통된 것을 공유하고 있습니다. 벤더사(제조사)에서 만드는 '제품'에 대한 '유통 수명'에 관련된 내용입니다. 하드웨어와 소프트웨어로 나눌 수 있으며 제품에 대한 사용가능여부에 대한 판단을 하기...
    Date2023.03.06 Reply0 Views632
    Read More
  7. No Image

    BYOL : Bring Your Own License

    BYOL이란 무엇입니까? BYOL은 Bring Your Own License(자체 라이선스 가져오기)의 약자입니다. Oracle BYOL을 사용하면 고객이 현재 보유하고 있는 라이선스를 동등한 수준의 고도로 자동화된 Oracle PaaS용 온프레미스 소프트웨어에 적용할 수 있습니다. 이전...
    Date2023.03.06 Reply0 Views290
    Read More
  8. No Image

    리눅스에서 커널 버전, 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 GNU/Linux root@jongroinf-aiinfo:~# cat /proc/version Linux version 5.4.0-144-generic (build...
    Date2023.03.05 Reply0 Views312
    Read More
  9. Ubuntu 20.04 LTS (Focal Fossa) 데스크탑 달라진 점과 간단 후기

    우분투 20.04 LTS (Focal Fossa) 데스크탑 달라진 점과 간단 후기 2020년 4월 23일에 우분투 20.04 LTS 버전이 릴리즈 됩니다. 저는 12.04 LTS 가 나왔던 대학생 때부터 우분투를 노트북에 올려서 잘 사용했었습니다. 대학생 때는 가난해서 맥북을 살 수 없었...
    Date2020.06.22 Reply0 Views346
    Read More
  10. Ubuntu 20.04 LTS (Focal Fossa) 데스크탑 설치 후 해야하는 것들

    우분투 20.04 LTS (Focal Fossa) 데스크탑 설치 후 해야하는 것들 1. Google Chrome 설치대한민국 만민의 인터넷 브라우저 Chrome 을 설치해줍니다. 우분투에는 기본적으로 Firefox 제품군이 설치되어 있지만 저는 크롬의 노예이므로... https://www.google.co...
    Date2020.06.22 Reply0 Views343
    Read More
  11. Ubuntu release 일람표

    버전 번호코드명배포일[2]지원 기간[3]커널 버전데스크톱서버4.10Warty Warthog2004년 10월 20일2006년 04월 30일2.6.85.04Hoary Hedgehog2005년 04월 08일2006년 10월 31일2.6.105.10Breezy Badger2005년 10월 13일2007년 04월 13일2.6.126.06 LTSDapper Drak...
    Date2020.06.20 Reply0 Views295 file
    Read More
  12. UMASK 사용법

    UMASK 사용법 unix 의 파일 사용권한 --> r the file is readable --> w the file is writable --> x the file is executable * the indicated permission is not granted ls -al 커맨드로 확인해보면 drwxrwxrwx 이란 10자리 권한 필드가 보이죠? 첫번째 d 가...
    Date2018.12.09 Reply0 Views348 file
    Read More
  13. No Image

    Ubuntu 18.04 한글 설정

    Ubuntu 18.04 한글 설정 1.설치 및 한글 입력 추가설치 sudo apt-get install ibus-hanul Settings – 지역 및 언어 – 입력 소스 + 버튼으로 Korean – hangul 추가 (Lanuage Setting Menu에서 직접 하면 안됨. 입력 소스에는 ‘한국어(Hangul) 하나만 두고 기존 ...
    Date2018.10.10 Reply0 Views297
    Read More
  14. No Image

    Ubuntu 18.04를 설치한 뒤에 해야 할 6가지

    Ubuntu 18.04를 설치한 뒤에 해야 할 6가지 오늘은 이번에 출시 된 우분투 18.04를 설치하고 진행해야 될 6가지를 적어보려합니다. 이 문서를 적으려고 사전 정보를 수집하다 느낌점으로는 우분투의 버전이 올라갈수록 설정해야될 일이 점점 줄어들면서, 편리...
    Date2018.10.10 Reply0 Views308
    Read More
  15. No Image

    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 Enter new UNIX password: Retype new UNIX password: 3. Auto Login 설정 /etc/pam.d/gdm-password...
    Date2018.10.10 Reply0 Views462
    Read More
  16. 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 by Digital Equipment Corporation (DEC). The first model, the MicroVAX I, was introduced in...
    Date2017.03.04 Reply0 Views337
    Read More
  17. No Image

    Linux, Unix, AIX 명령어 비교

    대분류 조회 항목 AIX LINUX(Redhat) User Accounts Create new user mkuser useradd   Delete user rmuser userdel General Commands Administrator smit linuxconf   Virtual Memory statistics vmstat vmstat   I/O statistics iostat iostat   Error l...
    Date2017.02.24 Reply0 Views385 file
    Read More
  18. Ubuntu - 우리가 함께 있기에 내가 있다

    우리가 함께 있기에 내가 있다 세상의 모든 아이는 특별하답니다. 나와 내 아이의 행복에서 한 걸음 더 나아가 '우분투'의 마음으로 우리 '함께' 따뜻한 세상을 만들어 가면 좋겠습니다.
    Date2016.05.28 Reply0 Views313 file
    Read More
  19. No Image

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

    유닉스 파일 디스크립터 : > /dev/null 2>&1 유닉스 가이드를 읽던 중 아래와 같은 예제 구문이 나왔다. $cat notexist > /dev/null 2>&1 저 /dev/null 2>&1 형태는 예전에 크론탭 동작하는 쉘에서도 언뜻 본 기억이 있는데,.. 정확히 무슨 뜻일까...
    Date2016.05.10 Reply0 Views256
    Read More
  20. No Image

    ab -n 1000 -c 3 http://home.aiinfo.co.kr/

    #ab -n 1000 -c 3 / This is ApacheBench, Version 2.3 <$Revision: 1638069 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking jongroinf.com...
    Date2016.04.05 Reply0 Views296
    Read More
목록
Board Pagination Prev 1 2 3 Next
/ 3