。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

강의/DevOps Linux

[DevOps-Linux] 7. Shell -3 //표준 입출력과 리다이렉션

quarrrter 2023. 7. 18. 00:13

표준 입출력과 리다이렉션

표준 입출력 - 장치 (Device)

표준 입출력 (Standard In/Output) 장치 : 컴퓨터와 상호 작용할 수 있는 가장 기본적인 장치 

표준 출력/ 표준에러 장치: 기본(모니터)

표준 입력 장치: 기본(키보드)

 

 

표준 입출력 - 인터페이스

표준 입력/출력/에러 - 표준 입출력 장치를 위한 (리눅스의) 인터페이스

(리눅스의 프로그램이 데이터를 보내고 받기 위한 창구)

stdin (표준 입력) : 0
stdout (표준 출력) : 1
stderr (표준 에러) : 2

 

Redirection

-입출력의 방향을 다시 정한다-

 

출력 리다이렉션

명령 > 파일 (명령 1> 파일) : 명령의 표준 출력을 지정한 파일로 변경 (파일이 없으면 생성, 있으면 덮어쓰기)

명령 >> 파일 : 파일이 없으면 생성, 있으면 끝에 추가 

 

에러 리다이렉션

명령 2> 파일: 명령의 표준 에러 출력을 지정한 파일로 변경 

 

응용 : ls -al . kkk  : -al.  + -al kkk 

1. ls -al .kkk > ls_log2 2> ls_err2

표준 출력은 ls_log2 파일로, 표준 에러는 ls_err2 파일로 리다이렉션

2. ls -al . kkk 2> /dev/null 

표준에러를 /dev/null 파일로 리다이렉션, 표준 출력만 모니터로 나타남 

/dev/null (가상의 문자 장치 파일) : 출력/ 에러 내용을 버리는데 사용(블랙홀)

3. ls -al . kkk >ls_log3 2>&1

표준 출력과 에러를 하나의 파일로 리다이렉션

표준 출력은 ls_log3 파일로, 표준 에러는 변경된 표준 출력(ls_log3)로 리다이렉션 

&1 : 표준 출력의 파일 디스크립터 

 

입력 리다이렉션 

1. 명령 < 파일 (명령 0< 파일) : 명령의 표준 입력을 지정한 파일로 변경 (파일로부터 입력)

  .bashrc 파일의 내용을 입력받아 출력: cat <. bashrc (cat .bashrc와 동일)

2. 명령 << 구분 문자열: << 뒤에 지정한 구분문자열이 다시 입력될때까지 표준 입력을 수행, 이후 구분 문자열 이전까지의 내용에 대해 명령 수행

표준 입력으로 받은 내용을 hello 파일에 출력(저장)

cat << EOF > hello 

ekdma EOF 이전까지 입력 받은 내용을 출력, 출력을 hello 파일로 변경