원글 : https://gracefulprograming.tistory.com/100

PIPE ( | )

어떠한 명령어의 입력 - 실행 - 결과 를 하나의 파이프라인처럼 흘러가도록 연결하는것
( | ) 을 입력하여 실행
ex) cat test.sh | grep sh
이렇게 만든 명령은 cat명령의 결과를 grep의 명령어에 전달하는 것이다.
전달하면서 "test.sh 파일에서 sh라는 글자가 포함된 라인만 출력하라" 라는 의미로 전달된다

###cat test.sh
#!/bin/bash
INSTALLFILE="/home/src/install.sh"
if [ -e ${INSTALLFILE} ] ; then
        echo " ${FILENAME} exists"
#결과
cat test.sh | grep sh
#!/bin/bash
INSTALLFILE="/home/src/install.sh"

Redirection ( > , >> , >& ..)

리눅스 쉘은 표준 입출력을 파일 형태로 열게되는데
stdin : 표준입력 (키보드)
stdout : 표준출력 (모니터)
stderr : 표준에러 (모니터)
기본적으로, 프로그램의 연산결과를 출력장치로 내보내는데, 이렇게 보내지는 데이터를 임의로 다른 장치로 보내는 것을 redirection이라고 함 (낚아채서 내가원하는 곳으로)

사용

리눅스에서 열려있는 파일은 (0,1,2 의 파일 디스크립터) File Discriptor를 할당받으며, 이를 이용하여 redirection한다

> file

표준출력을 파일로 redirection (없으면 만들고 있으면 덮어써)

# mkdir study
# cd study/
# vi test.txt
텍스트 라인 1
텍스트 라인 2
33333
~
~
##### :wq 로 저장
cat test.txt > 1stout
# ls
1stout  test.txt

1stout 이라는 파일이 생성되었으며, 그 안엔

# cat 1stout 
텍스트 라인 1
텍스트 라인 2
33333

이 담겨있다

>> file

> file 과 비슷 + 덮어쓰는 것이 아닌 끝에 덧붙임

2>&1

표준에러를 표준출력으로 보냄

< file

파일로부터 표준 입력을 받도록

+ Recent posts