파이프라인
두 프로그램이나 프로세스에서 한 프로그램의 입력이 다른 프로그램의 출력이 될 때 파이프라인이 쓰인다.
예를들면
ls --help | grep sort
에서 enter 와 backspace 사이에 잇는 " | " 가 파이프라인의 표현이다.
ls --help | grep sort 는 ls --help 의 출력중 'sort' 를 찾아 출력한다.
IO Redirection
io 는 각각 input, output의 줄임말이고 redirection 은 어딘가로 우회 한다는 뜻이니 "인풋을 아웃풋으로 주는데 우회해서 준다" 는 뜻이 된다.
좀 더 자세히 설명하기 위해 그림을 보자.
이 자료에서 Unix process 라는 것은 ls, grep, mkdir 같은 명령어 프로세스
command-line arguments 는 명령어의 옵션,
standard output 은 표준출력,
standard Error 는 표준에러 를 뜻한다.
우리가 잘 아는 ls 의 명령어로 예를 들어보자
ls -l
이라는 명령어는 현재 위치한 곳의 파일이나 디렉토리들을 출력해준다.
redirection 을 해줄때는 ' > '을 쓰는데
ls -l > result.txt
라고 명령을 내린 후 쉘을 보면
쉘이 아무 말이 없다.
그럼 그 출력은 어디로 갔을까.
짠 !
출력이 result.txt 로 들어갔스빈다.
쉘에 나와야 될 출력을 result.txt로 redirection 했네요 ~
이런게 io redirection 입니당.
근데 사실은 > 얘는 1> 에서 1이 생략 되있는 겁니다.
아까 출력에 standard output 이랑 standard error 가 있댔져 ?
1> 은 standard output 으로 redirection
2> 은 standard error 로 redirection
그래서
cp new 1> result.txt 2> error.log
이런식으로 일부러 에러를 내고 결과를 확인해보면
error.log 에 에러의 출력이 들어가있다.
참고로 > 은 출력을 계속 덮어쓰게 되고
>> 은 append 된다.
<< 은 입력을 받는다.
참고로 하나 더
ls -al > /dev/null 에서 /dev/null 은 유닉스 계열에서 휴지통같은 존재임
ls -al > /dev/null 하면 ls -al 의 출력을 그냥 휴지통으로 보내는 것
'linux' 카테고리의 다른 글
Daemon introduction - 데몬 개요 (0) | 2022.03.17 |
---|---|
Linux Background Execute - 백그라운드 실행 (0) | 2022.03.16 |
Linux - Ubuntu 디렉토리 구조 (0) | 2022.03.16 |
apt-get 명령어 정리 (0) | 2022.03.14 |
linux 기본 명령어 정리 (0) | 2022.03.11 |
댓글