셸 의 입 출력 방향 변경

2934 단어 셸 스 크 립 트
목차
다시 지정 명령 목록
출력 방향 변경
입력
방향 을 바 꾸 어 심도 있 게 설명 하 다.
Here Document
/dev/null 파일
총결산
학습 자료
대부분의 UNIX 시스템 명령 은 터미널 에서 입력 을 받 고 출력 을 터미널 로 보 냅 니 다.하나의 명령 은 보통 표준 입력 이라는 곳 에서 입력 을 읽 습 니 다. 기본 적 인 상황 에서 이것 은 마침 터미널 입 니 다.마찬가지 로 하나의 명령 은 보통 출력 을 표준 출력 에 기록 합 니 다. 기본 적 인 상황 에서 이것 도 터미널 입 니 다.
다시 지정 명령 목록
명령 하 다.
설명 하 다.
command > file
표준 출력 을 file 파일 로 다시 지정 합 니 다.
command < file
표준 입력 을 file 파일 로 다시 지정 합 니 다.
command >> file
표준 출력 추가 방식 을 dile 파일 로 재 설정 합 니 다.
n > file
파일 설명 자 를 n 으로 하 는 파일 을 file 로 바 꿉 니 다.
n >> file
파일 설명 자 를 n 으로 하 는 파일 을 file 로 추가 합 니 다.
n >& m
출력 파일 m 와 n 을 합 칩 니 다.
n
입력 파일 m 와 n 을 합 칩 니 다.
<< tag
태그 시작 과 태그 끝 사이 의 내용 을 입력 합 니 다.
파일 설명자 0 은 보통 표준 입력 (stdIN) 이 고, 1 은 표준 출력 (stdOUT) 이 며, 2 는 표준 오류 출력 (stdERR) 이다.
출력 방향 변경
$ who > users
执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件。
输出重定向会覆盖文件内容.
$ echo "菜鸟教程:www.runoob.com" > users
如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾.
echo "菜鸟教程:www.runoob.com" >> users

입력
Unix 命令也可以从文件获取输入,语法为:
command1 < file1
本来需要从键盘获取输入的命令会转移到文件读取内容。

wc -l users
wc -l  outfile
同时替换输入和输出,执行command1,从文件infile读取内容,然后将输出写入到outfile中。

방향 을 바 꾸 어 심도 있 게 설명 하 다.
일반적으로 유 닉 스/리 눅 스 명령 이 실 행 될 때마다 세 개의 파일 을 엽 니 다.
표준 입력 파일 (stdin): stdin 의 파일 설명 자 는 0 이 고 유 닉 스 프로그램 은 기본적으로 stdin 에서 데 이 터 를 읽 습 니 다
표준 출력 파일 (stdout): stdout 의 파일 설명 자 는 1 이 고 유 닉 스 프로그램 은 기본적으로 stdout 에 데 이 터 를 출력 합 니 다
표준 오류 파일 (stderr): stderr 의 파일 설명 자 는 2 이 고 유 닉 스 프로그램 은 stderr 흐름 에 오류 정 보 를 기록 합 니 다
기본적으로 command > file 은 stdout 을 file 로, command < file 은 stdin 을 file 로 다시 설정 합 니 다.
如果希望 stderr 重定向到 file,可以这样写:
$ command 2 > file

如果希望 stderr 追加到 file 文件末尾,可以这样写:
$ command 2 >> file

如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写:
$ command > file 2>&1
或者
$ command >> file 2>&1

如果希望对 stdin 和 stdout 都重定向,可以这样写:
$ command < file1 >file2
command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。

Here Document
Here Document 는 Shell 의 특수 한 재 설정 방식 으로 입력 을 대화 식 Shell 스 크 립 트 나 프로그램 으로 재 설정 합 니 다.
command << delimiter
    document
delimiter
它的作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。
典型的就是EOF结束符.

$ wc -l << EOF
    欢迎来到
    菜鸟教程
    www.runoob.com
EOF

/dev/null 파일
如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:
$ command > /dev/null

/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。

如果希望屏蔽 stdout 和 stderr,可以这样写:
$ command > /dev/null 2>&1

총결산
셸 의 방향 을 체계적으로 분석 한 후에 비슷 한 문제 에 부 딪 히 면 쉽게 풀 릴 것 이다.
학습 자료
https://www.runoob.com/linux/linux-shell-io-redirections.html
https://blog.csdn.net/simon_dong618/article/details/11674279

좋은 웹페이지 즐겨찾기