입출력 리다이렉션(I/O Redirection)란?

셸에서 명령의 표준 입력·표준 출력·표준 오류 출력의 행선지를 화면이나 키보드 대신 파일 등으로 바꾸는 것. >는 파일에 덮어쓰기, >>는 끝에 추가, <는 파일을 표준 입력으로 하고, 2>는 표준 오류 출력(번호 2)을 파일로 향하게 한다. 2>&1은 표준 오류 출력을 '그 시점의' 표준 출력의 행선지에 맞추므로, > file 2>&1과 2>&1 > file은 결과가 다르다.

일본어 명칭: 入出力のリダイレクト

입출력 리다이렉션(I/O Redirection)은(는) Linux와 커맨드 라인 기초 등 1개 분야의 연습 문제 3개에 나와요.

분야: Linux와 커맨드 라인 기초

도전해 보기: 입출력 리다이렉션(I/O Redirection) 관련 문제

SSH로 접속한 서버에서 시간이 걸리는 처리를 './run.sh &'로 시작한 다음 접속을 끊었더니 처리도 멈춰 버렸다. 접속을 끊은 후에도 처리를 계속하게 하는 시작 방법으로 가장 적절한 것은?

  1. A./run.sh > run.log 2>&1 &
  2. Bnice -n 19 ./run.sh > run.log 2>&1 &
  3. Cnohup ./run.sh > run.log 2>&1 &
정답과 해설 보기

정답: C. nohup ./run.sh > run.log 2>&1 &

접속이 끊기면 터미널의 행업을 알리는 SIGHUP이 셸(shell)에 보내지고, bash 등의 셸은 자신의 작업에도 SIGHUP을 보냅니다. SIGHUP을 받았을 때의 기본 동작은 종료이므로 백그라운드 작업도 멈춥니다. nohup은 명령이 SIGHUP을 무시하도록 하여 시작하며, 출력을 파일로 향하게 해 두면 접속을 끊은 후에도 처리가 계속됩니다. 출력을 리다이렉션하지 않고 터미널에서 시작하면, nohup은 출력을 nohup.out이라는 파일에 씁니다. tmux나 screen 같은 터미널 다중화 소프트웨어를 사용하여 나중에 같은 화면에 다시 연결하는 방법도 자주 쓰입니다.

해설 속 입출력 리다이렉션(I/O Redirection)

입출력 리다이렉션(I/O Redirection)이(가) 나오는 문제 (3)

  1. 위의 명령을 순서대로 실행했을 때, 마지막 cat으로 표시되는 내용으로 올바른 것은?
  2. 위와 같이 a.txt는 있고 nofile은 없는 디렉터리에서 마지막 명령을 실행했다. 결과로 올바른 것은?
  3. SSH로 접속한 서버에서 시간이 걸리는 처리를 './run.sh &'로 시작한 다음 접속을 끊었더니 처리도 멈춰 버렸다. 접속을 끊은 후에도 처리를 계속하게 하는 시작 방법으로 가장 적절한 것은?

관련 용어

SSH 셸(Shell) 슈퍼유저(Superuser) 시그널(Unix 시그널) 심볼릭 링크(Symbolic Link) 정규 표현식(Regular Expression) 파이프(|) 파일 권한(퍼미션) 하드 링크(Hard Link) 환경 변수(Environment Variable)

용어집으로 돌아가기