나는 이렇게 학습한다/Etc

리눅스 #IO Redirection

daco2020 2021. 9. 13. 22:20

 오늘 배운 것 

IO : input, output

Redirection : 방향 재설정

 

Output

ex. ls -l > [파일명.txt]

>>> '>' 출력할 값을 > 다음 파일에 저장해라. : 출력값 방향 재설정

리눅스 명령어로 출력할 값의 방향을 설정할 수 있다.

스탠다드 아웃풋 : 터미널 창으로 그냥 출력하는 것

'스탠다드 아웃풋'을 리다이렉션 : 1> 또는 > 를 이용하여 설정

'스탠다는 에러'를 리다이렉션 : 2> 로 설정 : 에러 메시지 출력을 다른 방향으로 출력하는 것

ex. rm rename2.txt 1> result.txt 2> error.log 

>>> 리네임2 파일을 리썰트 파일로 변경하여 출력(리네임2 파일이 존재한다면), 만약 에러가 뜨면 에러 메시지가 에러 파일로 출력

 

Input

cat 사용법 참고 링크

스탠다드 인풋 예시 : cat < daco.txt

커멘드라인 아규먼트(인자) 예시 : cat daco.txt

결과 값은 둘 다 동일하며 주로 후자를 사용한다.

 

ex. head -n1 < linux.txt > linux2.txt

>>> 리눅스 파일 머리글 첫 번째 행이 출력되고 그 값을 리눅스2 파일로 출력된다. (스탠다드 인풋과 동시에 스탠다드 아웃풋이 된 것이다)

 


잘 사용하지 않는 기능들

Append

아웃풋 시 덮어쓰기가 아닌 추가하기 : '>>' 를 사용

ex. ls -al >> result.txt

인풋 시 덮어쓰기가 아닌 추가하기 : '<<' 를 사용

ex. mail egoing@gmail.com <<eot

>hi

>my name is

>daco

>eot

>>> 메일로 eot 라는 문자가 나오기 전까지의 내용들을 입력하여 보낸다 (eot는 << 바로 다음에 붙은 단어이다. 변경 가능함)

 

/dev/null

터미널 화면에도, 파일로도 결과를 출력하고 싶지 않을 때

ex. ls -al > /dev/null

>>> 휴지통 같은 곳이라고 보면 됨.

 

 

 


 

 오늘 느낀 것 

근데 인풋이라고 하는데 터미널 화면에 출력되는 걸 인풋이라고 할 수 있는 건지 잘 모르겠다. 그냥 출력의 다른 모습 같은데 말이다. 신기한 것은 인풋 기능으로 터미널에서 이메일을 보낼 수 있다는 것. 그리고 아웃풋에서 rm 명령어를 이용해 지우는 것이 아닌 다른 파일로 바꾸는 것, 출력 값을 파일로 저장하는 것은 유용해보이긴 했다.

 

개발자들은 터미널을 자주 이용한다는데 실제 업무에서는 어떻게 사용될지 궁금하기도 하다. 파일 정리같은 것을 gui 보다 더 잘 할 수 있을까? 왠지 터미널을 쓸수록 지저분해질 것 같은데... 어서 실무를 통해 어떻게 관리하는지 경험해보고 싶다.