최고의 셸 입력 / 출력 리디렉션 튜토리얼 2024년, 이 튜토리얼에서는 출력 재 지정,입력 리디렉션,여기에 문서,을 / dev / null 파일,를 배울 수 있습니다.
대부분의 UNIX 시스템은 터미널 입력에서 명령을 수용하고 출력 터미널로 다시 전송됩니다 생성. 일반적으로 로컬 입력에서 읽은 명령은 기본적으로,이 터미널 될 일이, 표준 입력을했다. 마찬가지로, 명령은 일반적으로이 터미널이며, 기본적으로 표준 출력에 출력을 기록합니다.
다음과 같이 리디렉션 명령 목록입니다 :
명령 | 설명 |
---|---|
명령> 파일 | 출력을 파일로 리디렉션합니다. |
명령 <파일 | 파일에 입력을 리디렉션합니다. |
명령 >> 파일 | 출력은 첨부 된 파일로 리디렉션합니다. |
N> 파일 | 파일로 리디렉션 n 개의 파일의 파일 기술자. |
N >> 파일 | 파일 기술자 n은 파일을 리디렉션하는 추가적인 방법을 제기합니다. |
N> & m | 출력 파일 m 및 n은 병합된다. |
N <& m | 입력 파일 m 및 n은 병합된다. |
<< 태그 | 입력으로의 시작 태그와 종료 태그의 태그의 태그 콘텐츠. |
파일 기술자 0은 표준 입력 (STDIN)이 1은 표준 출력 (STDOUT), 2는 표준 오류 출력 (STDERR)입니다, 보통합니다.
달성하기 위해 특정 기호를 삽입하는 명령 사이에 일반적으로 리디렉션합니다. 특히, 이와 같은 기호는 다음 구문에 표시된 :
command1 > file1
위의 명령은 Command1 및 다음 출력을 파일 1에 저장된 콘텐츠를 실행합니다.
이미 존재하는 어떤 콘텐츠가 새로운 콘텐츠로 대체 될 않습니다 FILE1. 이 파일의 마지막에 새로운 내용을 추가하려면 >> 연산자를 사용합니다.
는 사용자 파일 (사용자)에 명령의 출력을 리디렉션합니다 완료 다음 명령을 실행합니다 :
$ who > users
실행 후, 출력 지정된 파일에 대한 디폴트 표준 출력 장치 (단말기)로부터 리다이렉트 된 때문이고, 말단에 어떠한 출력도 없다.
해당 파일의 내용을 볼 cat 명령을 사용할 수있다 :
$ cat users _mbsetupuser console Oct 31 17:35 tianqixin console Oct 31 17:35 tianqixin ttys000 Dec 1 11:33
출력 리디렉션 파일의 내용을 덮어 씁니다, 다음의 예를 참조하십시오
$ echo "本教程:www.w3write.com" > users $ cat users 本教程:www.w3write.com $
당신이 덮어 쓰기 파일의 내용을 원하지 않는 경우, 당신은 예를 들어, 파일에 추가 >>을 사용할 수 있습니다 :
$ echo "本教程:www.w3write.com" >> users $ cat users 本教程:www.w3write.com 本教程:www.w3write.com $
그리고 출력 재 지정과 같은 파일에서 입력을 할 수 있습니다 유닉스 명령은 구문은 다음과 같습니다
command1 < file1
따라서, 키보드로부터 입력을 얻을 수있는 원래의 필요 내용을 읽을 명령 파일로 전송됩니다.
참고 : 기호보다 더 큰 출력 리디렉션 (>), 입력 리디렉션 미만 (<).
그런 다음, 상기 실시 예는, 다음 명령을 실행 행 사용자 파일의 수를 계산해야
$ wc -l users 2 users
또한 사용자에게 입력 파일을 리디렉션 할 수 있습니다 :
$ wc -l < users 2
주 : 상기 두 가지 예의 결과는 다르다 : 첫 번째 예, 출력 파일명 것, 두 번째는 단지 표준 입력으로부터 판독 알고 있지 때문이다.
command1 < infile > outfile
파일에서 읽은이 infile, 다음 Command1을 실행, 입력 및 출력 모두를 교체 한 다음 OUTFILE 출력을 작성합니다.
정상적인 상황에서는 각 유닉스 / 리눅스 명령을 실행 세 개의 파일을 엽니 다 :
파일에 기본 명령> 파일 리디렉션 표준 출력으로 명령을 <파일은 파일로 리디렉션 표준 입력됩니다.
이 파일에 표준 오류를 리디렉션하려는 경우, 당신은 쓸 수 있습니다 :
$ command 2 > file
당신이 파일 열려진 파일의 끝에 추가하려는 경우, 당신은 쓸 수 있습니다 :
$ command 2 >> file
2는 표준 오류 파일 (표준 오류)를 나타냅니다.
이 파일로 리디렉션 표준 출력과 표준 에러 후 병합 할 경우, 당신은 쓸 수 있습니다 :
$ command > file 2>&1 或者 $ command >> file 2>&1
당신은 표준 입력과 표준 출력을 재 지정하려는 경우, 당신은 쓸 수 있습니다 :
$ command < file1 >file2
명령 명령의 표준 입력은 파일 1로 연결, 파일 2에 표준 출력을 리디렉션합니다.
여기에 문서 쉘 대화 형 쉘 스크립트 또는 프로그램에 입력을 리디렉션하는 데 사용되는 특수 리디렉션 방법입니다.
다음과 같이 그것의 기본 형식은 다음과 같습니다
command << delimiter document delimiter
입력으로서 명령의 두 단락에 송신되는 콘텐츠 (문서)의 역할이다.
참고 :
- 구분 기호를 종료하면, 상단 그리드 기입해야합니다 공백 및 탭 들여 쓰기를 포함한 모든 문자를 사용할 수 없습니다 다시 앞의 문자를 가질 수 없습니다.
- 시작 분리 전후의 공백은 무시됩니다.
화장실 -l 명령으로 명령 행 컴퓨팅 여기에 문서의 행 수 :
$ wc -l << EOF 欢迎来到 本教程 www.w3write.com EOF 3 # 输出结果为 3 行 $
우리는 여기서, 예를 들면, 스크립트에 사용되는 문서 수
#!/bin/bash # author:本教程 # url:www.w3write.com cat << EOF 欢迎来到 本教程 www.w3write.com EOF
위의 스크립트, 출력의 구현 :
欢迎来到 本教程 www.w3write.com
당신이 명령을 실행하지만, 화면에 출력을 표시하지 않도록하려는 경우는 / dev / null로 출력을 리디렉션 할 수 있습니다 :
$ command > /dev/null
당신이 파일에서 읽으려고한다면, 무엇을 읽을 수는 / dev / null는, 그 내용은 폐기 될 기록, 특수 파일입니다. 그러나 / 디바이스 / 널 파일 그것이 "출력을 금지"효과로서 작용한다 그것에 명령의 출력을 재 매우 유용하다.
당신은 표준 출력과 표준 에러를 보호하려는 경우, 당신은 쓸 수 있습니다 :
$ command > /dev/null 2>&1
참고 : 0 2는 표준 오류 출력 (STDERR)이며, 1은 표준 출력 (STDOUT)이며, 표준 입력 (STDIN)입니다.