IO Direction

ppparkta·2022년 3월 30일
0

리눅스

목록 보기
2/7
post-thumbnail

*22년 3월 29일~4월 10일 학습한 생활코딩 리눅스 강의 정리본입니다.

IO Direction

쉬운 알파벳 몇글자 끄적이다가 갑자기 이론적인 부분이 나와서 당황했다. IO Directioninput/output/direction이라고 한다.

🔔입출력 위치를 바꿔서 터미널을 보다 편하게 사용하는 기능으로 이해했다.

주의할 점은 어떤 명령어로 standard inputredirection으로 가져갈 수 있는 값은 standard output뿐이다.
redirection 명령어는 '>'인데 C언어의 iostream을 생각하면 이해가 쉽다. 기본 값에 숫자 1이 생략되어 있다고 한다. 즉 '>'와 '1>'는 같은 의미이다. 그렇다면 standard error를 가져가기 위해서는 어떻게 해야할까? '2>'를 사용하면 된다. 아래는 해당 내용을 필기한 것이다.

  • standard output을 원할 경우 '1>'
  • standard error를 원할 경우 '2>'


Output 사용방법

설명만 들어서는 사용방법이 감이 안 잡힌다. 아래 사진은 ls -l을 입력했을 때 나오는 모든 목록이다. linux.txt파일을 사용해서 standard output은 result.txt에, standard error는 error.txt에 저장하는 코드를 작성해보겠다.

linux.txt 1> result.txt >2 error.txt

코드 작성 후 ls -l을 입력하면 result.txt와 error.txt가 생성된 것을 확인할 수 있다.


Input 사용방법

output보단 쓸모없는 기능이라고 한다. 그래도 이해하고 지나가고 싶어서 나름대로 열심히 들어봤다. 마찬가지로 C언어의 iostream으로 이해할 수 있다. 어떤 값을 standard input 값으로 입력하도록 해주는 것인데, 아까 사용한 linux.txt파일을 사용해서 이 파일의 첫줄만 출력되도록 코드를 작성해보겠다.

head -n1 linux.txt

head -n1 < linux.txt

두 코드에 '<'이 있고 없고의 차이점이 있지만 결과는 동일하다. 다만 출력하는 값이 가지는 의미는 다르다.

  • head -n1 linux.txt가 출력하는 값은 command-line arguments의 값이다. -n1이라는 인자값을 출력하기 때문이다.

  • 그러나 '<'를 사용한 head -n1 < linux.txt가 출력하는 값은 standard input값이다. '<'은 standard input값만을 내보낼 수 있기 때문이다.

  • 같은 출력 결과에도 의미가 다르다. 말장난같지만 차이점을 익혀두면 도움이 될 것 같다.


Input과 Output을 함께 사용

위에서 사용한 두개의 코드를 동시에 사용하는 것도 가능하다.

head -n1 < linux.txt > one.txt

  • 이 코드는 linux.txt의 첫 행 내용을 one.txt에 내보내는 코드이다. 인풋과 아웃풋을 함께 사용할 수 있다.
  • 참고로 계속 나온 head는 파일의 10번째 행까지 출력하는 명령어이다. 뒤에 -n숫자 인자를 붙여서 출력되는 자릿수를 조절할 수 있다. -n1은 첫번째 행까지 출력한다는 의미이다.

강의 들으면서 작성한건데 끝나갈 때 쯤 이렇게 standard input과 standard output의 흐름을 통틀어 iostream이라고 한다고 한다. C언어로 이해한 내용과 비슷한 것이 아닌 그냥 같은 내용이었다. 살짝 허무하다.

profile
겉촉속촉

0개의 댓글