> /dev/null의 의미

강지현·2024년 11월 6일

Linux 운영체제 (1주)

목록 보기
10/13
post-thumbnail

리눅스 명령어를 보면 2>&1 , 2>&1 & , 2>/dev/null 등의 명령어를 본 적 있을 것이다.

1> /dev/null

grep -i "java" ./* 1> /dev/null
  • 현재 경로에서 문자열을 검색하고, stdout(정상) 출력에 해당하는 값을 /dev/null 로 보낸다.

  • 리눅스에서 /dev 디렉토리는 하드웨어 장치와 연관된 특수 파일이 존재하는 디렉토리로 /dev/null 공간에 전송된 모든 데이터는 버려진다.

> /dev/null 2>&1

# & 다음에 파일 디스크립터가 오는 것을 명시
grep -i "java" ./* > /dev/null 2>&1
# 두 번째 &은 백그라운드에서 실행하라는 의미
# 모든 출력을 /dev/null에 버리고 백그라운드에서 구동
java -jar spring.jar > /dev/null 2>&1 &
  • 2>&1 : &은 다음에 파일 디스크립터가 오는 것을 알려주는 역할
    따라서 표준 에러를 다음에 올 파일 디스크립터로 변경해서 사용하겠다는 의미가 된다.

  • 반대로 1>&2 로 작성하면 표준 출력을 표준 에러로 사용하겠다는 의미이다. 마지막에 & 혼자 쓰이는 경우는 백그라운드로 사용할 때 쓰인다.

[명령어] > [파일1] > [파일2]

grep -i "dummy" ./* 2> error.t 1> success.t
  • 표준 출력과 에러 출력을 별도의 파일로 분리하는 방법이다.

<< !

# << ! 사용으로 멀티라인 입력 ! 대신 아무 문자 사용 가능
cat << !
asd
asd
!
# sqlplus를 사용해서 SQL문 결과를 파일로 저장
sqlplus SCOTT/TIGER << !

spool result.t

SELECT
	*
FROM
	DUAL
;

spool off

exit
!
  • << 다음에 문자를 사용하여 멀티라인 입력이 가능하다.

  • 다음에 나올 아무 문자나 사용해도 상관없으며, 마지막에 동일한 문자를 입력하면 종료된다.

  • 셸을 통해 sql문을 실행하고 파일로 저장할 때 유용하게 쓰인다.

profile
시작!!

0개의 댓글