본문 바로가기
리눅스

리눅스 3장 - CLI & I/O Redirection -

by ChocoPeanut 2017. 6. 8.

리눅스 3

- CLI & I/O Redirection -

 

보통의 PCWindow의 운영체제를 사용하여 GUI 방식의 명령을 수행한다. GUI는 아이콘을 사용하여 명령을 내리게 되는데 이는 컴퓨터가 많은 에너지를 사용하게 한다. 단순히 생각해도 이미지를 매번 나타내기 때문에 그렇다는 것을 알 수 있다. 이에 비해 CLI는 더 적은 메모리와 CPU를 사용하게 된다. CLI는 명령어를 통해 명령을 수행하는데 명령어를 통해 제어를 하면 순서대로 처리하는 방식에서 큰 장점을 가진다. 이는 속도의 측면에서도 빠르게 작용한다.


CLI 방식은 하나의 명령의 실행 결과를 다른 명령의 입력으로 사용할 수 있다. 명령은 프로그램을 가리키게 되고 프로그램은 이에 맞게 프로세스로 바뀌어 수행되게 된다. 명령어를 동시에 수행하는 것도 가능하다. 두 개의 명령어 사이에 | 기호를 입력하게 되면 두 명령을 동시에 수행하게 된다.


I/O Redirection 은 명령 수행의 방향 지정이라고 할 수 있다. 그 중에서 InputOutput인 입출력에 관련된 방향 지정이다. 이 때 사용되는 기호가 >이다. > 기호를 사용하게 되면 왼쪽 값을 오른 쪽에 넣는 것을 의미하게 된다. 만약 ls l > result.txt라는 명령을 수행하게 되면 ls l의 결과 값을 result.txt라는 파일 안에 작성해서 넣어지게 된다. 출력 방향을 의미한다고 생각하면 된다. >standard output을 의미하고 2>standard error를 의미한다. 리눅스 프로그램의 흐름은 standard input을 통해 standard output 또는 standard error가 나오게 하는 것이 형태이다. 여기에 명령어나 변수 등을 활용할 수 있는 것이다.


다시 한 번 예시를 살펴보자. head라는 명령어는 text10문장만 출력하는 명령이고 head n1은 첫 문장만을 출력하는 명령이다. 이 때 head n1 < linux.txt > result.txt 라는 명령을 준다고 생각해보자. 이 명령어는 linux.txtinput으로 받아 head n1output을 내고 이를 다시 input으로 받아 result.txt에 저장하는 output을 발생시키는 명령어이다. 따라서 linux.txt의 첫 문장이 result.txt에 저장되는 것이다.


추가적으로 >>를 사용하게 되는 경우도 있다. >>를 사용하게 되면 내용을 덮어쓰는 것이 아니라 결과를 추가적으로 더 넣게 된다.

댓글0