Linux/Unix 예제의 입력 출력 리디렉션

리디렉션이란 무엇입니까?

리디렉션은 명령을 실행할 때 표준 입출력 장치를 변경할 수 있는 Linux의 기능입니다. 모든 작업의 ​​기본 작업 흐름 리눅스 명령어 즉, 입력을 받아 출력을 내는 것입니다.

  • 표준 입력(stdin) 장치는 키보드입니다.
  • 표준 출력(stdout) 장치는 화면입니다.

리디렉션을 사용하면 위의 표준 입력/출력을 변경할 수 있습니다.

LINK 비디오에 접근할 수 없는 경우

출력 리디렉션

The '>' 기호는 출력(STDOUT) 리디렉션에 사용됩니다.

출력 리디렉션

예:

ls -al > listings

여기에서 명령 ls -al의 출력은 화면 대신 파일 "목록"으로 리디렉션됩니다.

출력 리디렉션

주의 사항: 명령 출력을 파일로 리디렉션하는 동안 올바른 파일 이름을 사용하십시오. 동일한 이름을 가진 기존 파일이 있는 경우 리디렉션된 명령은 해당 파일의 내용을 삭제한 다음 덮어쓸 수 있습니다."

파일을 덮어쓰지 않고 기존 파일에 내용을 더 추가하려면 다음을 사용해야 합니다. ,' 연산자.

출력 리디렉션

표준 출력을 파일뿐만 아니라 장치로 리디렉션할 수 있습니다!

$ cat music.mp3 > /dev/audio

cat 명령은 music.mp3 파일을 읽고 출력을 오디오 장치인 /dev/audio로 보냅니다. PC의 사운드 구성이 올바른 경우 이 명령은 music.mp3 파일을 재생합니다.

입력 리디렉션

The '' 기호는 입력(STDIN) 리디렉션에 사용됩니다.

입력 리디렉션

예: Linux의 메일 프로그램을 사용하면 터미널에서 이메일을 보낼 수 있습니다.

표준 장치 키보드를 사용하여 이메일의 내용을 입력할 수 있습니다. 하지만 이메일에 파일을 첨부하려면 다음 형식의 입력 리디렉션 연산자를 사용할 수 있습니다.

Mail -s "Subject" to-address < Filename

입력 리디렉션

이렇게 하면 이메일에 파일이 첨부되어 수신자에게 전송됩니다.

위의 예는 간단했습니다. 파일을 활용하는 몇 가지 고급 리디렉션 기술을 살펴보겠습니다. Descript또는

입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에 Descript오르스(FD)

Linux/Unix에서는 모든 것이 파일입니다. 일반 파일, 디렉터리, 심지어 장치도 파일입니다. 모든 파일에는 File이라는 관련 번호가 있습니다. Descript또는 (FD).

화면에도 파일이 있습니다 Descript또는. 프로그램이 실행되면 출력이 파일로 전송됩니다. Descript또는 화면의 모니터에 프로그램 출력이 표시됩니다. 출력이 파일로 전송되는 경우 Descript또는 프린터의 경우 프로그램 출력이 인쇄되었을 것입니다.

오류 리디렉션

터미널에서 프로그램/명령을 실행할 때마다 표준 입력, 표준 출력, 표준 오류 등 3개 파일이 항상 열려 있습니다..

오류 리디렉션

이 파일은 프로그램이 실행될 때마다 항상 존재합니다. 파일 설명자 이전에 설명한 대로 각 파일과 연관되어 있습니다.

입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에 Descriptor
표준 입력 STDIN 0
표준 출력 STDOUT 1
표준 오류 STDERR 2

기본적으로 오류 스트림은 화면에 표시됩니다. 오류 리디렉션은 오류를 화면이 아닌 다른 파일로 라우팅하는 것입니다.

오류 리디렉션이 필요한 이유는 무엇입니까?

오류 리디렉션은 매우 인기 있는 기능 중 하나입니다. 유닉스 / 리눅스.

UNIX를 자주 사용하는 사용자는 많은 명령이 엄청난 양의 오류를 제공한다고 생각할 것입니다.

  • 예를 들어, 파일을 검색하는 동안 일반적으로 권한 거부 오류가 발생합니다. 이러한 오류는 일반적으로 특정 파일을 검색하는 사람에게 도움이 되지 않습니다.
  • 쉘 스크립트를 실행하는 동안 오류 메시지가 정상적인 프로그램 출력을 어지럽히는 것을 원하지 않는 경우가 많습니다.

해결책은 오류 메시지를 파일로 리디렉션하는 것입니다.

예제 1

$ myprogram 2>errorsfile

오류 리디렉션이 필요한 이유

위에서 우리는 프로그램 이름 myprogram을 실행하고 있습니다.

표준 오류에 대한 파일 설명자는 2입니다.

"2>"를 사용하여 오류 출력을 "errorfile"이라는 파일로 리디렉션합니다.

따라서 프로그램 출력이 오류로 인해 복잡해지지 않습니다.

예제 2

다음은 find 문을 사용하는 또 다른 예입니다.

find . -name 'my*' 2>error.log

"find" 명령을 사용하여 "name"이 "my"로 시작하는 파일을 "." 현재 디렉토리에서 검색합니다.

오류 리디렉션이 필요한 이유

예 3 : 좀 더 복잡한 예를 살펴보겠습니다.

서버 관리자는 종종 디렉토리를 나열하고 오류와 표준 출력을 모두 파일에 저장하여 나중에 처리할 수 있습니다. 명령은 다음과 같습니다.

ls Documents ABC> dirlist 2>&1

여기

  • 한 파일의 출력을 다른 파일의 입력에 씁니다. 2>&1은 STDERR이 STDOUT(파일 디렉토리 목록)의 대상으로 리디렉션됨을 의미합니다.
  • 우리는 오류 출력을 표준 출력으로 리디렉션하고 있으며 이는 차례로 파일 dirlist로 리디렉션됩니다. 따라서 두 출력 모두 dirlist 파일에 기록됩니다.

오류 리디렉션이 필요한 이유

요약

  • Linux의 각 파일에는 해당 파일이 있습니다. Descript아니면 그것과 관련된
  • 키보드는 표준 입력 장치이고 화면은 표준 출력 장치입니다.
  • “>”는 출력 리디렉션 연산자입니다. “>>”는 기존 파일에 출력을 추가합니다.
  • “<”는 입력 리디렉션 연산자입니다.
  • ">&"는 한 파일의 출력을 다른 파일로 리디렉션합니다.
  • 해당 파일을 사용하여 오류를 리디렉션할 수 있습니다. Descript또는 2.