유닉스 재지향과 파이프에 대한 의문입니다.

offline2의 이미지

파이프와 재지향에 대한 차이점을 설명하는 글 중에

ls > lpr
 
ls | lpr

이 두가지의 차이점을 비교하는 것이 있었습니다.
ls | lpr 은

ls > file
lpr < file

로 바꿔 쓸 수 있으니
결국 lpr 명령에 file을 파라미터로 넘겨서 실행하는 것이라고 생각하는데

ls > lpr 의 경우에는

ls의 출력을 lpr이 받아들일 방법이 없어서(stdin으로 받을 수 없어서) 결과를 출력하지 못하는 것인가요?

redirection이라는 것이 대상에 대해 stdin을 변경하는 것인지

아니면 어떤 다른 원리로 작동하는 것인지 궁금합니다.

태훈의 이미지

이걸 이해 하시려면 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)이 각각 무엇을 의미하는지 아셔야 합니다.

자세히 설명드리면 길어지니 간단하게 현재 사용하시는 입/출력을 하는 콘솔을 의미한다고 생각하시면 됩니다. 키보드와 모니터가 될 수도 있고,
시리얼 장치가 될 수도 있고, 시스템마다 다릅니다. 그냥 복잡하니까 키보드(stdin)랑 모니터(stdout/stderr)이라고 생각하세요.

파이프

$ 명령어1 | 명령어2

형태로 되어 있으면 명령어1의 표준 출력(stdout)명령어2의 표준 입력(stdin)으로 변경하는 것입니다. 그래서, 명령어1을 수행
한 뒤에 콘솔에 출력 할 메세지를 명령어2의 입력으로 넣어줍니다.

리다이렉션

$ 명령어 > 파일

형태로 많이 사용합니다. 즉, 쉘에서 파일 읽기/쓰기를 할 때 리다이렉션을 사용합니다.

* > : 명령어의 표준 출력 내용을 파일에 쓰기
* >> : 명령어의 표준 출력 내용을 파일에 추가
* < : 명령어의 표준 입력을 파일로 변경(파일 내용을 읽음)
* 2> : 명령어의 표준 에러를 파일로 쓰기

ex>
$ make 2> err_msg.txt

이렇게 하면 컴파일 중에 에러 메세지를 'err_msg.txt' 파일에 저장합니다.

Just do it!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.