IO Redirection

: output 될 결과물의 방향을 돌리는 것이라고 생각하자.

예 1)  ls -l > result.txt  

ls -l 을 입력하여 화면에 출력할 결과물을  result.txt 파일에 작성하게 해준다.

이 때 > Standard Output의 경우, 꺾쇠 앞에는 1이 생략되어있다.  

1> 디폴트 값이 1이다. 

2> 2가 되면 Standard Error 를 의미한다.

여기서 ls 가 Unix Process 이다.  이 프로그램에 -l 인자 ( Command-line Arguments )를 넘겨주는 것으로 보면된다.


rm result.txt  로 rm 명령어를 사용하여 result.txt를 삭제해주자.

이 상태에서 다시 rm result.txt를 입력하면 에러내용이 화면에 출력된다.

이렇게 화면에 출력된 에러를 redirection 시켜줄려고 하면 

rm result.txt > error.log 이렇게 하면 될까 ?

안된다.  왜냐하면 error 의 경우에는 standard output Data가 아니기때문이다. 이 때는 꺾쇠 앞에 2를 붙여야 한다.

꺾쇠 앞 2의경우 Standard errorredirection을 의미한다. 


예 2) rm reult.txt 2> error.log로 이 상황을 해결해야한다. 


>> 꺾쇠가 두개면?????

예 3)  ls -l >> result.txt 

ls -l 을 입력하여 수행된 결과를 result.txt 파일에 덮어쓰기 한 것이 아니라,  append 하는 것이다.

덧 붙인다. 기존의 내용을 그대로 두고 !!




순차적 프로그래밍 ( 프로세싱)

 - 하나의 프로그램 결과를 > 다른 프로그램의 입력으로 ..  

 - 하나의 명령 실행결과를 > 다른 명령의 입력으로 ..

 - 하나의 process 출력을 > 다른 process의 입력으로 제공 하는 형태 


파이프 (Pipe) , 파이프라인 (Pipeline)

 - 둘 이상의 명령을 묶어 출력의 결과를 다른 프로그램의  입력으로 전환하는 기능 

 - 즉,  명령어의 표준 출력을 또다른 명령어의 표준 입력과 연결시킬 수 있다. 

 

실습 

 1. ls -l  : 해당위치에서 디렉터리 및 파일 목록을 화면에 출력해준다. 

 2. ls -l  |  grep sort  해당 위치에서 디렉터리 및 파일 목록을 화면에 출력해주는데, sort라는 문자열이 속한 행만 화면에 출력해준다. 

 3. ls -l  |  grep sort  |  grep file  해당 위치에서디렉터리 및 파일목록을 화면에 출력해주는데, sort라는 문자열이 속하면서 file이라는 문자열이 동시에 속

한 행을 화면에 출력해준다.


1. cat 해당 파일의 내용을 화면에 출력한다. 

2. grep [옵션] [문자열] [찾기대상이 될 파일명]

: 파일에서 특정한 패턴(문자열)을 찾는 명령로써, 이는 해당 문자열이 들어있는 파일을 찾아 그 문자열이 들어가 있는 라인을 화면에 출력한다. 


ex) grep test test2222.txt


※ 명령어들도 하나의 프로그램인 것 알아두자. 

왜 서버와 같은 컴퓨터는 CLI환경의 프로그램을 쓰는가 ? (TUI, CLI 프로그램의 장점)

1. GUI 환경의 운영체제는 리소스를 많이 잡아먹는다. 

2. 순차적프로그래밍을 진행하고 싶을 경우, 진행되고있는 해당 프로그램이 완전히 끝난 것을 직접 체크해야한다.

3. 명령어를 사용하여 프로그램을 구성하면 특정 작업이 진행되는동안을 직접적으로 보고있지 않아도된다. 명령어가 끝난 결과만을 확인해주면된다.



 1) 실습 

 mkdir -p /chpark/test1; cd test1 


이렇게 세미콜론을 사용하여 일련의 명령들을 연속적으로 수행시킬수 있다.  굳이 한 명령의 결과를 기다리고 있다가 다른 명령을 실행하지 않고도 

연속적으로 진행이된다. 


 

리눅스 CLI , TUI 환경에서 파일 다운로드 (wget, git) 이용


https://opentutorials.org/course/2598/14188

+ Recent posts